diff --git a/modoboa_installer/compatibility_matrix.py b/modoboa_installer/compatibility_matrix.py index f610124..f1db5f9 100644 --- a/modoboa_installer/compatibility_matrix.py +++ b/modoboa_installer/compatibility_matrix.py @@ -21,13 +21,14 @@ COMPATIBILITY_MATRIX = { "modoboa-sievefilters": ">=1.1.1", "modoboa-webmail": ">=1.2.0", }, - "2.1.0": { - "modoboa-pdfcredentials": None, - "modoboa-dmarc": None, - "modoboa-imap-migration": None, - }, } EXTENSIONS_AVAILABILITY = { "modoboa-contacts": "1.7.4", } + +REMOVED_EXTENSIONS = { + "modoboa-pdfcredentials": "2.1.0", + "modoboa-dmarc": "2.1.0", + "modoboa-imap-migration": "2.1.0" +} diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index a2eab3a..a76b920 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -99,6 +99,16 @@ class Modoboa(base.Installer): if sys.version_info.major == 2 and sys.version_info.micro < 9: # Add extra packages to fix the SNI issue packages += ["pyOpenSSL"] + for extension in list(self.extensions): + if extension in compatibility_matrix.REMOVED_EXTENSIONS.keys(): + modoboa_version = self.config.get("modoboa", "version") + if modoboa_version != "latest": + max_version = utils.convert_version_to_int( + compatibility_matrix.REMOVED_EXTENSIONS[extension]) + modoboa_v_int = utils.convert_version_to_int(modoboa_version) + if modoboa_v_int < max_version: + continue + self.extensions.remove(extension) python.install_packages( packages, self.venv_path, upgrade=self.upgrade,