From d9ced63e99bb15721622b08eaa9e20b53ab23d5b Mon Sep 17 00:00:00 2001 From: Spitap Date: Sun, 16 Oct 2022 15:56:22 +0200 Subject: [PATCH] centos9 fixes --- modoboa_installer/database.py | 2 +- modoboa_installer/package.py | 16 +++++++++++++--- modoboa_installer/scripts/dovecot.py | 3 ++- .../scripts/files/dovecot/conf.d/10-ssl.conf.tpl | 2 +- modoboa_installer/scripts/spamassassin.py | 4 ---- modoboa_installer/scripts/uwsgi.py | 5 +---- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/modoboa_installer/database.py b/modoboa_installer/database.py index 45b3ad7..b8a9d1c 100644 --- a/modoboa_installer/database.py +++ b/modoboa_installer/database.py @@ -54,7 +54,7 @@ class PostgreSQL(Database): """Install database if required.""" name, version = utils.dist_info() if "CentOS" in name: - initdb_cmd = "postgresql-setup initdb" + initdb_cmd = "postgresql-setup --initdb" cfgfile = "/var/lib/pgsql/data/pg_hba.conf" package.backend.install_many(self.packages[package.backend.FORMAT]) utils.exec_cmd(initdb_cmd) diff --git a/modoboa_installer/package.py b/modoboa_installer/package.py index e18d69d..735be11 100644 --- a/modoboa_installer/package.py +++ b/modoboa_installer/package.py @@ -82,17 +82,27 @@ class RPMPackage(Package): def __init__(self, dist_name): """Initialize backend.""" + self.dist_name = dist_name super(RPMPackage, self).__init__(dist_name) - if "centos" in dist_name: + + def prepare_system(self): + if "centos" in self.dist_name: + utils.exec_cmd("dnf config-manager --set-enabled crb") self.install("epel-release") + self.update() + + def update(self): + """Update the database repo.""" + utils.exec_cmd("dnf update -y --quiet") def install(self, name): """Install a package.""" - utils.exec_cmd("yum install -y --quiet {}".format(name)) + """Need to add check for rrdtool, sendmail-milter, libmemcached and --enablerepo=crb""" + utils.exec_cmd("dnf install -y --quiet {}".format(name)) def install_many(self, names): """Install many packages.""" - return utils.exec_cmd("yum install -y --quiet {}".format(" ".join(names))) + return utils.exec_cmd("dnf install -y --quiet {}".format(" ".join(names))) def get_installed_version(self, name): """Get installed package version.""" diff --git a/modoboa_installer/scripts/dovecot.py b/modoboa_installer/scripts/dovecot.py index f015a7a..92b2bff 100644 --- a/modoboa_installer/scripts/dovecot.py +++ b/modoboa_installer/scripts/dovecot.py @@ -59,7 +59,8 @@ class Dovecot(base.Installer): context = super(Dovecot, self).get_template_context() pw = pwd.getpwnam(self.user) ssl_protocols = "!SSLv2 !SSLv3" - if package.backend.get_installed_version("openssl").startswith("1.1"): + if package.backend.get_installed_version("openssl").startswith("1.1") \ + or package.backend.get_installed_version("openssl").startswith("3"): ssl_protocols = "!SSLv3" if "centos" in utils.dist_name(): protocols = "protocols = imap lmtp sieve" diff --git a/modoboa_installer/scripts/files/dovecot/conf.d/10-ssl.conf.tpl b/modoboa_installer/scripts/files/dovecot/conf.d/10-ssl.conf.tpl index 10c127b..80400a6 100644 --- a/modoboa_installer/scripts/files/dovecot/conf.d/10-ssl.conf.tpl +++ b/modoboa_installer/scripts/files/dovecot/conf.d/10-ssl.conf.tpl @@ -41,7 +41,7 @@ ssl_key = <%tls_key_file #ssl_parameters_regenerate = 168 # SSL protocols to use -ssl_protocols = %ssl_protocols +ssl_min_protocol = %ssl_protocols # SSL ciphers to use diff --git a/modoboa_installer/scripts/spamassassin.py b/modoboa_installer/scripts/spamassassin.py index b2d0f35..78067d8 100644 --- a/modoboa_installer/scripts/spamassassin.py +++ b/modoboa_installer/scripts/spamassassin.py @@ -59,10 +59,6 @@ class Spamassassin(base.Installer): """Additional tasks.""" amavis_user = self.config.get("amavis", "user") pw = pwd.getpwnam(amavis_user) - utils.exec_cmd( - "pyzor --homedir {} discover".format(pw[5]), - sudo_user=amavis_user, login=False - ) install("razor", self.config, self.upgrade) if utils.dist_name() in ["debian", "ubuntu"]: utils.exec_cmd( diff --git a/modoboa_installer/scripts/uwsgi.py b/modoboa_installer/scripts/uwsgi.py index 6b3823d..1a6c8ca 100644 --- a/modoboa_installer/scripts/uwsgi.py +++ b/modoboa_installer/scripts/uwsgi.py @@ -29,10 +29,7 @@ class Uwsgi(base.Installer): def get_template_context(self, app): """Additionnal variables.""" context = super(Uwsgi, self).get_template_context() - if package.backend.FORMAT == "deb": - uwsgi_plugin = "python3" - else: - uwsgi_plugin = "python36" + uwsgi_plugin = "python3" context.update({ "app_user": self.config.get(app, "user"), "app_venv_path": self.config.get(app, "venv_path"),