@@ -22,10 +22,14 @@ def get_pip_path(venv):
|
||||
return binpath
|
||||
|
||||
|
||||
def install_package(name, venv=None, upgrade=False, **kwargs):
|
||||
def install_package(name, venv=None, upgrade=False, binary=True, **kwargs):
|
||||
"""Install a Python package using pip."""
|
||||
cmd = "{} install {}{}".format(
|
||||
get_pip_path(venv), " -U " if upgrade else "", name)
|
||||
cmd = "{} install{}{} {}".format(
|
||||
get_pip_path(venv),
|
||||
" -U" if upgrade else "",
|
||||
" --no-binary :all:" if not binary else "",
|
||||
name
|
||||
)
|
||||
utils.exec_cmd(cmd, **kwargs)
|
||||
|
||||
|
||||
@@ -67,4 +71,4 @@ def setup_virtualenv(path, sudo_user=None, python_version=2):
|
||||
utils.exec_cmd("virtualenv {}".format(path))
|
||||
else:
|
||||
utils.exec_cmd("{} -m venv {}".format(python_binary, path))
|
||||
install_package("pip", venv=path, upgrade=True)
|
||||
install_packages(["pip", "setuptools"], venv=path, upgrade=True)
|
||||
|
||||
@@ -69,10 +69,11 @@ class Modoboa(base.Installer):
|
||||
packages = ["rrdtool"]
|
||||
version = self.config.get("modoboa", "version")
|
||||
if version == "latest":
|
||||
packages += ["modoboa"] + self.extensions
|
||||
modoboa_package = "modoboa"
|
||||
packages += self.extensions
|
||||
else:
|
||||
matrix = compatibility_matrix.COMPATIBILITY_MATRIX[version]
|
||||
packages.append("modoboa=={}".format(version))
|
||||
modoboa_package = "modoboa=={}".format(version)
|
||||
for extension in list(self.extensions):
|
||||
if not self.is_extension_ok_for_version(extension, version):
|
||||
self.extensions.remove(extension)
|
||||
@@ -84,6 +85,9 @@ class Modoboa(base.Installer):
|
||||
packages.append("{}{}".format(extension, req_version))
|
||||
else:
|
||||
packages.append(extension)
|
||||
# Temp fix for https://github.com/modoboa/modoboa-installer/issues/197
|
||||
python.install_package(
|
||||
modoboa_package, self.venv_path, binary=False, sudo_user=self.user)
|
||||
if self.dbengine == "postgres":
|
||||
packages.append("psycopg2-binary")
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user