@@ -22,10 +22,14 @@ def get_pip_path(venv):
|
|||||||
return binpath
|
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."""
|
"""Install a Python package using pip."""
|
||||||
cmd = "{} install {}{}".format(
|
cmd = "{} install{}{} {}".format(
|
||||||
get_pip_path(venv), " -U " if upgrade else "", name)
|
get_pip_path(venv),
|
||||||
|
" -U" if upgrade else "",
|
||||||
|
" --no-binary :all:" if not binary else "",
|
||||||
|
name
|
||||||
|
)
|
||||||
utils.exec_cmd(cmd, **kwargs)
|
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))
|
utils.exec_cmd("virtualenv {}".format(path))
|
||||||
else:
|
else:
|
||||||
utils.exec_cmd("{} -m venv {}".format(python_binary, path))
|
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"]
|
packages = ["rrdtool"]
|
||||||
version = self.config.get("modoboa", "version")
|
version = self.config.get("modoboa", "version")
|
||||||
if version == "latest":
|
if version == "latest":
|
||||||
packages += ["modoboa"] + self.extensions
|
modoboa_package = "modoboa"
|
||||||
|
packages += self.extensions
|
||||||
else:
|
else:
|
||||||
matrix = compatibility_matrix.COMPATIBILITY_MATRIX[version]
|
matrix = compatibility_matrix.COMPATIBILITY_MATRIX[version]
|
||||||
packages.append("modoboa=={}".format(version))
|
modoboa_package = "modoboa=={}".format(version)
|
||||||
for extension in list(self.extensions):
|
for extension in list(self.extensions):
|
||||||
if not self.is_extension_ok_for_version(extension, version):
|
if not self.is_extension_ok_for_version(extension, version):
|
||||||
self.extensions.remove(extension)
|
self.extensions.remove(extension)
|
||||||
@@ -84,6 +85,9 @@ class Modoboa(base.Installer):
|
|||||||
packages.append("{}{}".format(extension, req_version))
|
packages.append("{}{}".format(extension, req_version))
|
||||||
else:
|
else:
|
||||||
packages.append(extension)
|
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":
|
if self.dbengine == "postgres":
|
||||||
packages.append("psycopg2-binary")
|
packages.append("psycopg2-binary")
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user