From f30201d32b818117fa004ac6dad862a1e5bddbf7 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 28 Jul 2022 15:17:46 +0200 Subject: [PATCH 01/11] Fixed ipv6 issue --- modoboa_installer/scripts/files/postfix/main.cf.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modoboa_installer/scripts/files/postfix/main.cf.tpl b/modoboa_installer/scripts/files/postfix/main.cf.tpl index 7af5487..0123e60 100644 --- a/modoboa_installer/scripts/files/postfix/main.cf.tpl +++ b/modoboa_installer/scripts/files/postfix/main.cf.tpl @@ -3,7 +3,7 @@ inet_protocols = all myhostname = %hostname myorigin = $myhostname mydestination = $myhostname -mynetworks = 127.0.0.0/8 +mynetworks = 127.0.0.0/8 [::1]/128 smtpd_banner = $myhostname ESMTP biff = no unknown_local_recipient_reject_code = 550 From 1ae5061dfa9d44ddf2faa218510ec597e3c3e5de Mon Sep 17 00:00:00 2001 From: Spitap Date: Fri, 29 Jul 2022 16:23:32 +0200 Subject: [PATCH 02/11] mitigate false spamhaus reject --- modoboa_installer/scripts/files/postfix/main.cf.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modoboa_installer/scripts/files/postfix/main.cf.tpl b/modoboa_installer/scripts/files/postfix/main.cf.tpl index 0123e60..1be9ea5 100644 --- a/modoboa_installer/scripts/files/postfix/main.cf.tpl +++ b/modoboa_installer/scripts/files/postfix/main.cf.tpl @@ -142,7 +142,7 @@ postscreen_blacklist_action = enforce # Use some DNSBL postscreen_dnsbl_sites = - zen.spamhaus.org*3 + zen.spamhaus.org=127.0.0.[2..11]*3 bl.spameatingmonkey.net*2 bl.spamcop.net dnsbl.sorbs.net From 199a90c9e80bf6675b7b54d0a87320dbd592e6c2 Mon Sep 17 00:00:00 2001 From: Spitap Date: Sat, 30 Jul 2022 18:48:51 +0200 Subject: [PATCH 03/11] Set up return codes for other spamlist --- modoboa_installer/scripts/files/postfix/main.cf.tpl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modoboa_installer/scripts/files/postfix/main.cf.tpl b/modoboa_installer/scripts/files/postfix/main.cf.tpl index 1be9ea5..9bc9b44 100644 --- a/modoboa_installer/scripts/files/postfix/main.cf.tpl +++ b/modoboa_installer/scripts/files/postfix/main.cf.tpl @@ -143,9 +143,9 @@ postscreen_blacklist_action = enforce # Use some DNSBL postscreen_dnsbl_sites = zen.spamhaus.org=127.0.0.[2..11]*3 - bl.spameatingmonkey.net*2 - bl.spamcop.net - dnsbl.sorbs.net + bl.spameatingmonkey.net=127.0.0.2*2 + bl.spamcop.net=127.0.0.2 + dnsbl.sorbs.net=127.0.0.[2..15] postscreen_dnsbl_threshold = 3 postscreen_dnsbl_action = enforce From 743f2b2fa2bd79a5fedd1cee0f121593d99e2aba Mon Sep 17 00:00:00 2001 From: haris Date: Mon, 1 Aug 2022 14:39:55 +0200 Subject: [PATCH 04/11] Fix permissions for modoboa dovecot mailbox commands (modoboa/modoboa/issues/2157) --- modoboa_installer/scripts/dovecot.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modoboa_installer/scripts/dovecot.py b/modoboa_installer/scripts/dovecot.py index 3830216..f015a7a 100644 --- a/modoboa_installer/scripts/dovecot.py +++ b/modoboa_installer/scripts/dovecot.py @@ -104,6 +104,12 @@ class Dovecot(base.Installer): utils.copy_file(f, "{}/conf.d".format(self.config_dir)) # Make postlogin script executable utils.exec_cmd("chmod +x /usr/local/bin/postlogin.sh") + # Add mailboxes user to dovecot group for modoboa mailbox commands. + # See https://github.com/modoboa/modoboa/issues/2157. + system.add_user_to_group( + self.config.get("dovecot", "mailboxes_owner"), + 'dovecot' + ) def restart_daemon(self): """Restart daemon process. From 2149b7703f8d8e0d9d1b9a580f2a726e87ccccc1 Mon Sep 17 00:00:00 2001 From: Spitap Date: Fri, 5 Aug 2022 15:26:39 +0200 Subject: [PATCH 05/11] Add missing packages --- modoboa_installer/database.py | 2 +- modoboa_installer/scripts/postwhite.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modoboa_installer/database.py b/modoboa_installer/database.py index 41b79df..7be3e53 100644 --- a/modoboa_installer/database.py +++ b/modoboa_installer/database.py @@ -147,7 +147,7 @@ class MySQL(Database): """MySQL backend.""" packages = { - "deb": ["mariadb-server"], + "deb": ["mariadb-server", "libmysqlclient-dev"], "rpm": ["mariadb", "mariadb-devel", "mariadb-server"], } service = "mariadb" diff --git a/modoboa_installer/scripts/postwhite.py b/modoboa_installer/scripts/postwhite.py index 239d2d3..039bd11 100644 --- a/modoboa_installer/scripts/postwhite.py +++ b/modoboa_installer/scripts/postwhite.py @@ -20,6 +20,7 @@ class Postwhite(base.Installer): ] no_daemon = True packages = { + "deb": ["bind9-host"], "rpm": ["bind-utils"] } From 2ebefaa188b1ff48e69eb867888f0f7a3cddc991 Mon Sep 17 00:00:00 2001 From: Spitap Date: Wed, 14 Sep 2022 08:45:23 +0200 Subject: [PATCH 06/11] Added Nginx plugin for certbot when needed --- modoboa_installer/ssl.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modoboa_installer/ssl.py b/modoboa_installer/ssl.py index 8df9b30..a0cd4d0 100644 --- a/modoboa_installer/ssl.py +++ b/modoboa_installer/ssl.py @@ -92,6 +92,12 @@ class LetsEncryptCertificate(CertificateBackend): else: utils.printcolor("Failed to install certbot, aborting.", utils.RED) sys.exit(1) + #Nginx plugin certbot + if (self.config.has_option("nginx", "enabled") and + self.config.getboolean("nginx", "enabled")): + package.backend.update() + package.backend.install("python3-certbot-nginx") + def generate_cert(self): """Create a certificate.""" From 062ad0d9f335547e8d233168641e143a112610b2 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 15 Sep 2022 10:23:59 +0200 Subject: [PATCH 07/11] Added support for custom database port --- modoboa_installer/database.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/modoboa_installer/database.py b/modoboa_installer/database.py index 7be3e53..291c119 100644 --- a/modoboa_installer/database.py +++ b/modoboa_installer/database.py @@ -13,6 +13,7 @@ class Database(object): """Common database backend.""" + default_port = None packages = None service = None @@ -21,6 +22,8 @@ class Database(object): self.config = config engine = self.config.get("database", "engine") self.dbhost = self.config.get("database", "host") + self.dbport = self.config.getint( + "database", "port", fallback=self.default_port) self.dbuser = config.get(engine, "user") self.dbpassword = config.get(engine, "password") if self.config.getboolean("database", "install"): @@ -36,6 +39,7 @@ class PostgreSQL(Database): """Postgres.""" + default_port = 5432 packages = { "deb": ["postgresql", "postgresql-server-dev-all"], "rpm": ["postgresql-server", "postgresql-devel"] @@ -43,7 +47,7 @@ class PostgreSQL(Database): service = "postgresql" def __init__(self, config): - super(PostgreSQL, self).__init__(config) + super().__init__(config) self._pgpass_done = False def install_package(self): @@ -79,7 +83,8 @@ class PostgreSQL(Database): cmd += " -d {}".format(dbname) if dbuser: self._setup_pgpass(dbname, dbuser, dbpassword) - cmd += " -h {} -U {} -w".format(self.dbhost, dbuser) + cmd += " -h {} -p {} -U {} -w".format( + self.dbhost, self.dbport, dbuser) query = query.replace("'", "'\"'\"'") cmd = "{} -c '{}' ".format(cmd, query) utils.exec_cmd(cmd, sudo_user=self.dbuser) @@ -137,8 +142,8 @@ class PostgreSQL(Database): def load_sql_file(self, dbname, dbuser, dbpassword, path): """Load SQL file.""" self._setup_pgpass(dbname, dbuser, dbpassword) - cmd = "psql -h {} -d {} -U {} -w < {}".format( - self.dbhost, dbname, dbuser, path) + cmd = "psql -h {} -p {} -d {} -U {} -w < {}".format( + self.dbhost, self.dbport, dbname, dbuser, path) utils.exec_cmd(cmd, sudo_user=self.dbuser) @@ -146,6 +151,7 @@ class MySQL(Database): """MySQL backend.""" + default_port = 3306 packages = { "deb": ["mariadb-server", "libmysqlclient-dev"], "rpm": ["mariadb", "mariadb-devel", "mariadb-server"], @@ -202,7 +208,8 @@ class MySQL(Database): if dbuser is None and dbpassword is None: dbuser = self.dbuser dbpassword = self.dbpassword - cmd = "mysql -h {} -u {}".format(self.dbhost, dbuser) + cmd = "mysql -h {} -P {} -u {}".format( + self.dbhost, self.dbport, dbuser) if dbpassword: cmd += " -p{}".format(dbpassword) if dbname: @@ -247,8 +254,8 @@ class MySQL(Database): def load_sql_file(self, dbname, dbuser, dbpassword, path): """Load SQL file.""" utils.exec_cmd( - "mysql -h {} -u {} -p{} {} < {}".format( - self.dbhost, dbuser, dbpassword, dbname, path) + "mysql -h {} -P {} -u {} -p{} {} < {}".format( + self.dbhost, self.dbport, dbuser, dbpassword, dbname, path) ) From 23ac0bf172e8ec903235445c2b8ede0a6f98362b Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 15 Sep 2022 10:43:44 +0200 Subject: [PATCH 08/11] Complete custom database port support --- modoboa_installer/scripts/base.py | 5 ++++- modoboa_installer/scripts/files/amavis/amavisd.conf.tpl | 2 +- modoboa_installer/scripts/files/amavis/conf.d/50-user.tpl | 2 +- .../scripts/files/dovecot/dovecot-dict-sql.conf.ext.tpl | 2 +- .../files/dovecot/dovecot-sql-master-mysql.conf.ext.tpl | 2 +- .../dovecot/dovecot-sql-master-postgres.conf.ext.tpl | 2 +- .../scripts/files/dovecot/dovecot-sql-mysql.conf.ext.tpl | 2 +- .../files/dovecot/dovecot-sql-postgres.conf.ext.tpl | 2 +- .../scripts/files/opendkim/opendkim.conf.tpl | 4 ++-- modoboa_installer/scripts/modoboa.py | 8 +++++--- modoboa_installer/scripts/spamassassin.py | 6 ++++-- 11 files changed, 22 insertions(+), 15 deletions(-) diff --git a/modoboa_installer/scripts/base.py b/modoboa_installer/scripts/base.py index 8f61e5d..e59e812 100644 --- a/modoboa_installer/scripts/base.py +++ b/modoboa_installer/scripts/base.py @@ -30,7 +30,10 @@ class Installer(object): # Used to install system packages self.db_driver = ( "pgsql" if self.dbengine == "postgres" else self.dbengine) + self.backend = database.get_backend(self.config) self.dbhost = self.config.get("database", "host") + self.dbport = self.config.get( + "database", "port", fallback=self.backend.default_port) self._config_dir = None if not self.with_db: return @@ -61,7 +64,6 @@ class Installer(object): """Setup a database.""" if not self.with_db: return - self.backend = database.get_backend(self.config) self.backend.create_user(self.dbuser, self.dbpasswd) self.backend.create_database(self.dbname, self.dbuser) schema = self.get_sql_schema_path() @@ -86,6 +88,7 @@ class Installer(object): "dbengine": ( "Pg" if self.dbengine == "postgres" else self.dbengine), "dbhost": self.dbhost, + "dbport", self.dbport, } for option, value in self.config.items("general"): context[option] = value diff --git a/modoboa_installer/scripts/files/amavis/amavisd.conf.tpl b/modoboa_installer/scripts/files/amavis/amavisd.conf.tpl index b29cac2..659d738 100644 --- a/modoboa_installer/scripts/files/amavis/amavisd.conf.tpl +++ b/modoboa_installer/scripts/files/amavis/amavisd.conf.tpl @@ -112,7 +112,7 @@ $sa_local_tests_only = 0; # only tests which do not require internet access? # @storage_redis_dsn = ( {server=>'127.0.0.1:6379', db_id=>1} ); # $redis_logging_key = 'amavis-log'; # $redis_logging_queue_size_limit = 300000; # about 250 MB / 100000 -@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost', '%dbuser', '%dbpassword' ]); +@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost;port=%dbport', '%dbuser', '%dbpassword' ]); @storage_sql_dsn = @lookup_sql_dsn; $sql_allow_8bit_address = 1; diff --git a/modoboa_installer/scripts/files/amavis/conf.d/50-user.tpl b/modoboa_installer/scripts/files/amavis/conf.d/50-user.tpl index e1ef878..d6a2370 100644 --- a/modoboa_installer/scripts/files/amavis/conf.d/50-user.tpl +++ b/modoboa_installer/scripts/files/amavis/conf.d/50-user.tpl @@ -7,7 +7,7 @@ $max_servers = %max_servers; # SQL configuration # -@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost', '%dbuser', '%dbpassword' ]); +@lookup_sql_dsn = ( [ 'DBI:%dbengine:database=%dbname;host=%dbhost;port=%dbport', '%dbuser', '%dbpassword' ]); @storage_sql_dsn = @lookup_sql_dsn; $sql_allow_8bit_address = 1; diff --git a/modoboa_installer/scripts/files/dovecot/dovecot-dict-sql.conf.ext.tpl b/modoboa_installer/scripts/files/dovecot/dovecot-dict-sql.conf.ext.tpl index 8221655..aadba2f 100644 --- a/modoboa_installer/scripts/files/dovecot/dovecot-dict-sql.conf.ext.tpl +++ b/modoboa_installer/scripts/files/dovecot/dovecot-dict-sql.conf.ext.tpl @@ -1,4 +1,4 @@ -connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword +connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword # CREATE TABLE quota ( # username varchar(100) not null, diff --git a/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-mysql.conf.ext.tpl b/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-mysql.conf.ext.tpl index 353b4e5..cfeabbf 100644 --- a/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-mysql.conf.ext.tpl +++ b/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-mysql.conf.ext.tpl @@ -64,7 +64,7 @@ driver = %db_driver # connect = /etc/dovecot/authdb.sqlite # #connect = -connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword +connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword # Default password scheme. # diff --git a/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-postgres.conf.ext.tpl b/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-postgres.conf.ext.tpl index 6e12586..03b4995 100644 --- a/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-postgres.conf.ext.tpl +++ b/modoboa_installer/scripts/files/dovecot/dovecot-sql-master-postgres.conf.ext.tpl @@ -64,7 +64,7 @@ driver = %db_driver # connect = /etc/dovecot/authdb.sqlite # #connect = -connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword +connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword # Default password scheme. # diff --git a/modoboa_installer/scripts/files/dovecot/dovecot-sql-mysql.conf.ext.tpl b/modoboa_installer/scripts/files/dovecot/dovecot-sql-mysql.conf.ext.tpl index 4af0d86..4538b9a 100644 --- a/modoboa_installer/scripts/files/dovecot/dovecot-sql-mysql.conf.ext.tpl +++ b/modoboa_installer/scripts/files/dovecot/dovecot-sql-mysql.conf.ext.tpl @@ -64,7 +64,7 @@ driver = %db_driver # connect = /etc/dovecot/authdb.sqlite # #connect = -connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword +connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword # Default password scheme. # diff --git a/modoboa_installer/scripts/files/dovecot/dovecot-sql-postgres.conf.ext.tpl b/modoboa_installer/scripts/files/dovecot/dovecot-sql-postgres.conf.ext.tpl index e6328a5..abb5379 100644 --- a/modoboa_installer/scripts/files/dovecot/dovecot-sql-postgres.conf.ext.tpl +++ b/modoboa_installer/scripts/files/dovecot/dovecot-sql-postgres.conf.ext.tpl @@ -64,7 +64,7 @@ driver = %db_driver # connect = /etc/dovecot/authdb.sqlite # #connect = -connect = host=%dbhost dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword +connect = host=%dbhost port=%dbport dbname=%modoboa_dbname user=%modoboa_dbuser password=%modoboa_dbpassword # Default password scheme. # diff --git a/modoboa_installer/scripts/files/opendkim/opendkim.conf.tpl b/modoboa_installer/scripts/files/opendkim/opendkim.conf.tpl index 9f689fc..c38b94c 100644 --- a/modoboa_installer/scripts/files/opendkim/opendkim.conf.tpl +++ b/modoboa_installer/scripts/files/opendkim/opendkim.conf.tpl @@ -18,8 +18,8 @@ UMask 007 #KeyFile /etc/dkimkeys/dkim.key #Selector 2007 -KeyTable dsn:%{db_driver}://%{db_user}:%{db_password}@%{dbhost}/%{db_name}/table=dkim?keycol=id?datacol=domain_name,selector,private_key_path -SigningTable dsn:%db_driver://%{db_user}:%{db_password}@%{dbhost}/%{db_name}/table=dkim?keycol=domain_name?datacol=id +KeyTable dsn:%{db_driver}://%{db_user}:%{db_password}@%{dbhost}:%{dbport}/%{db_name}/table=dkim?keycol=id?datacol=domain_name,selector,private_key_path +SigningTable dsn:%db_driver://%{db_user}:%{db_password}@%{dbhost}:%{dbport}/%{db_name}/table=dkim?keycol=domain_name?datacol=id # Commonly-used options; the commented-out versions show the defaults. #Canonicalization simple diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index adfd9e4..ab4becf 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -144,20 +144,22 @@ class Modoboa(base.Installer): "--domain", self.config.get("general", "hostname"), "--extensions", " ".join(self.extensions), "--dont-install-extensions", - "--dburl", "'default:{}://{}:{}@{}/{}'".format( + "--dburl", "'default:{}://{}:{}@{}:{}/{}'".format( self.config.get("database", "engine"), - self.dbuser, self.dbpasswd, self.dbhost, self.dbname + self.dbuser, self.dbpasswd, self.dbhost, self.dbport, + self.dbname ) ] if self.devmode: args = ["--devel"] + args if self.amavis_enabled: args += [ - "'amavis:{}://{}:{}@{}/{}'".format( + "'amavis:{}://{}:{}@{}:{}/{}'".format( self.config.get("database", "engine"), self.config.get("amavis", "dbuser"), self.config.get("amavis", "dbpassword"), self.dbhost, + self.dbport, self.config.get("amavis", "dbname") ) ] diff --git a/modoboa_installer/scripts/spamassassin.py b/modoboa_installer/scripts/spamassassin.py index 49186f4..b2d0f35 100644 --- a/modoboa_installer/scripts/spamassassin.py +++ b/modoboa_installer/scripts/spamassassin.py @@ -45,10 +45,12 @@ class Spamassassin(base.Installer): context = super(Spamassassin, self).get_template_context() if self.dbengine == "postgres": store_module = "Mail::SpamAssassin::BayesStore::PgSQL" - dsn = "DBI:Pg:dbname={};host={}".format(self.dbname, self.dbhost) + dsn = "DBI:Pg:dbname={};host={};port={}".format( + self.dbname, self.dbhost, self.dbport) else: store_module = "Mail::SpamAssassin::BayesStore::MySQL" - dsn = "DBI:mysql:{}:{}".format(self.dbname, self.dbhost) + dsn = "DBI:mysql:{}:{}:{}".format( + self.dbname, self.dbhost, self.dbport) context.update({ "store_module": store_module, "dsn": dsn, "dcc_enabled": "#"}) return context From 1662b14cccb7e68608ea0767d1d03ec5e7a7a159 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 15 Sep 2022 10:44:46 +0200 Subject: [PATCH 09/11] Fixed syntax error --- modoboa_installer/scripts/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modoboa_installer/scripts/base.py b/modoboa_installer/scripts/base.py index e59e812..8627132 100644 --- a/modoboa_installer/scripts/base.py +++ b/modoboa_installer/scripts/base.py @@ -88,7 +88,7 @@ class Installer(object): "dbengine": ( "Pg" if self.dbengine == "postgres" else self.dbengine), "dbhost": self.dbhost, - "dbport", self.dbport, + "dbport": self.dbport, } for option, value in self.config.items("general"): context[option] = value From 915cff1ca5cf30f42320f7762b26fb4ea4b6f67f Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 15 Sep 2022 11:00:26 +0200 Subject: [PATCH 10/11] Custom database port support for automx --- modoboa_installer/scripts/automx.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modoboa_installer/scripts/automx.py b/modoboa_installer/scripts/automx.py index b086e9e..7b9ed56 100644 --- a/modoboa_installer/scripts/automx.py +++ b/modoboa_installer/scripts/automx.py @@ -33,11 +33,12 @@ class Automx(base.Installer): def get_template_context(self): """Additional variables.""" context = super(Automx, self).get_template_context() - sql_dsn = "{}://{}:{}@{}/{}".format( + sql_dsn = "{}://{}:{}@{}:{}/{}".format( "postgresql" if self.dbengine == "postgres" else self.dbengine, self.config.get("modoboa", "dbuser"), self.config.get("modoboa", "dbpassword"), self.dbhost, + self.dbport, self.config.get("modoboa", "dbname")) if self.db_driver == "pgsql": sql_query = ( From 306fc2f891d6e254ca37b120c6b49cb4c43149c2 Mon Sep 17 00:00:00 2001 From: Spitap Date: Thu, 15 Sep 2022 16:02:50 +0200 Subject: [PATCH 11/11] removed libmysqlclient-dev --- modoboa_installer/database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modoboa_installer/database.py b/modoboa_installer/database.py index 291c119..d19d8d7 100644 --- a/modoboa_installer/database.py +++ b/modoboa_installer/database.py @@ -153,7 +153,7 @@ class MySQL(Database): default_port = 3306 packages = { - "deb": ["mariadb-server", "libmysqlclient-dev"], + "deb": ["mariadb-server"], "rpm": ["mariadb", "mariadb-devel", "mariadb-server"], } service = "mariadb"