Skip to content

Commit 9f36c35

Browse files
author
Thom Pol
committed
Rename Mailman data directory if it exists and Mailman is not installed to prevent broken routes (#6314)
1 parent 81e3c76 commit 9f36c35

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

install/lib/installer_base.lib.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,6 +892,20 @@ public function configure_jailkit() {
892892
public function configure_mailman($status = 'insert') {
893893
global $conf;
894894

895+
// Fix for #6314: bug on Debian 11 systems where Mailman3 is not available and broken routes exist in the Mailman config
896+
$data_dir = '/var/lib/mailman';
897+
if (($conf['mailman']['installed'] != true) && is_dir($data_dir)) {
898+
rename($data_dir, $data_dir . '-bk');
899+
//* Create the mailman files
900+
if(!is_dir('/var/lib/mailman/data')) exec('mkdir -p /var/lib/mailman/data');
901+
if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases');
902+
exec('postmap /var/lib/mailman/data/aliases');
903+
if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/var/lib/mailman/data/virtual-mailman');
904+
exec('postmap /var/lib/mailman/data/virtual-mailman');
905+
if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
906+
exec('postmap /var/lib/mailman/data/transport-mailman');
907+
}
908+
895909
$config_dir = $conf['mailman']['config_dir'].'/';
896910
$full_file_name = $config_dir.'mm_cfg.py';
897911
//* Backup exiting file

0 commit comments

Comments
 (0)