From eee2c76a164a69290cc06adbcbaee55da858984f Mon Sep 17 00:00:00 2001 From: Adrien P Date: Fri, 7 Mar 2025 12:37:06 +0100 Subject: [PATCH] Use extras instead of requirements file --- modoboa_installer/python.py | 10 ---------- modoboa_installer/scripts/modoboa.py | 28 +++++++--------------------- 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/modoboa_installer/python.py b/modoboa_installer/python.py index 87903ca..6f03ea6 100644 --- a/modoboa_installer/python.py +++ b/modoboa_installer/python.py @@ -89,16 +89,6 @@ def install_package_from_repository(name, url, vcs="git", venv=None, **kwargs): utils.exec_cmd(cmd, **kwargs) -def install_package_from_remote_requirements(url, venv=None, **kwargs): - """Install a Python package from a file.""" - cmd = "{} install {} {}".format( - get_pip_path(venv), - "-r", - url - ) - utils.exec_cmd(cmd, **kwargs) - - def setup_virtualenv(path, sudo_user=None): """Install a virtualenv if needed.""" if os.path.exists(path): diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index dde382b..e35f409 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -81,8 +81,13 @@ class Modoboa(base.Installer): python.setup_virtualenv(self.venv_path, sudo_user=self.user) packages = ["rrdtool"] version = self.config.get("modoboa", "version") + extras = "postgresql" + if self.dbengine != "postgres": + extras = "mysql" + if self.devmode: + extras += ",dev" if version == "latest": - packages += ["modoboa"] + self.extensions + packages += [f"modoboa[{extras}]"] + self.extensions for extension in list(self.extensions): if extension in compatibility_matrix.REMOVED_EXTENSIONS.keys(): self.extensions.remove(extension) @@ -92,7 +97,7 @@ class Modoboa(base.Installer): ] else: matrix = compatibility_matrix.COMPATIBILITY_MATRIX[version] - packages.append("modoboa=={}".format(version)) + packages.append(f"modoboa[{extras}]=={version}") for extension in list(self.extensions): if not self.is_extension_ok_for_version(extension, version): self.extensions.remove(extension) @@ -116,25 +121,6 @@ class Modoboa(base.Installer): beta=self.config.getboolean("modoboa", "install_beta") ) - # Install version specific modules to the venv - modoboa_version = ".".join(str(i) for i in python.get_package_version( - "modoboa", self.venv_path, sudo_user=self.user - )) - # Database: - db_file = "postgresql" - if self.dbengine != "postgres": - db_file = "mysql" - db_file += "-requirements.txt" - - python.install_package_from_remote_requirements( - f"https://raw.githubusercontent.com/modoboa/modoboa/{modoboa_version}/{db_file}", - venv=self.venv_path) - # Dev mode: - if self.devmode: - python.install_package_from_remote_requirements( - f"https://raw.githubusercontent.com/modoboa/modoboa/{modoboa_version}/dev-requirements.txt", - venv=self.venv_path) - def _deploy_instance(self): """Deploy Modoboa.""" target = os.path.join(self.home_dir, "instance")