Install modoboa from sources until we find a solution.

see #197
This commit is contained in:
Antoine Nguyen
2018-04-11 14:12:24 +02:00
parent 0458b30135
commit ff2bf9994d
2 changed files with 14 additions and 6 deletions

View File

@@ -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)

View File

@@ -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: