[Fusionforge-commits] r16908 - in branches/Branch_5_1: . src/deb-specific
Roland Mas
lolando at fusionforge.org
Fri Jan 4 16:10:48 CET 2013
Author: lolando
Date: 2013-01-04 16:10:47 +0100 (Fri, 04 Jan 2013)
New Revision: 16908
Modified:
branches/Branch_5_1/
branches/Branch_5_1/src/deb-specific/create-mailing-lists.pl
Log:
[#522] Patch by Franck Villaume to fix behaviour of mailing lists in Debian
Modified: branches/Branch_5_1/src/deb-specific/create-mailing-lists.pl
===================================================================
--- branches/Branch_5_1/src/deb-specific/create-mailing-lists.pl 2012-12-30 15:06:26 UTC (rev 16907)
+++ branches/Branch_5_1/src/deb-specific/create-mailing-lists.pl 2013-01-04 15:10:47 UTC (rev 16908)
@@ -4,6 +4,7 @@
# Copyright 2001-2003, 2009 Roland Mas <lolando at debian.org>
# Copyright 2003, 2004, Christian Bayle <bayle at debian.org>
# Copyright 2005, INRIA (David Margery and Soraya Arias)
+# Copyright 2012, Franck Villaume - TrivialDev
use DBI ;
use strict ;
@@ -142,6 +143,63 @@
$dbh->commit () ;
}
+ $query = "SELECT mail_group_list.group_list_id,
+ mail_group_list.list_name,
+ users.user_name,
+ mail_group_list.password,
+ mail_group_list.description,
+ mail_group_list.is_public
+ FROM mail_group_list, users
+ WHERE mail_group_list.status = 5
+ AND mail_group_list.list_admin = users.user_id" ; # Status = 5: configuration change requested
+ $sth = $dbh->prepare ($query) ;
+ $sth->execute () ;
+ @lines = () ;
+ while (my @myarray = $sth->fetchrow_array ()) {
+ push @lines, \@myarray ;
+ }
+ $sth->finish () ;
+ foreach $line (@lines) {
+ @array = @{$line} ;
+ my ($group_list_id, $listname, $user_name, $password, $description, $is_public) ;
+ my ($tmp) ;
+ $tmp = mktemp ("/tmp/XXXXXX") ;
+ $cmd = "/usr/lib/mailman/bin/config_list -o $tmp $listname" ;
+ #print "cmd = <$cmd>\n" ;
+# Commented out on Matt Hope <dopey at debian.org> advice
+# To be revised by Roland Mas
+# system ($cmd) ;
+ open CONFIG, ">>$tmp" ;
+ print CONFIG "description = \"$description\"\n" ;
+ print CONFIG "host_name = '$sys_lists_host'\n" ;
+ if (!$is_public) {
+ print CONFIG "archive_private = True\n" ;
+ print CONFIG "advertised = False\n" ;
+ print CONFIG "subscribe_policy = 3\n" ;
+ ## Reject mails sent by non-members
+ print CONFIG "generic_nonmember_action = 2\n";
+ ## Do not forward auto discard message
+ print CONFIG "forward_auto_discards = 0\n";
+ } else {
+ print CONFIG "archive_private = False\n" ;
+ print CONFIG "advertised = True\n" ;
+ print CONFIG "subscribe_policy = 1\n" ;
+ }
+ close CONFIG ;
+ $cmd = "/usr/lib/mailman/bin/config_list -i $tmp $listname" ;
+ #print "cmd = <$cmd>\n" ;
+ system ($cmd) ;
+ unlink $tmp ;
+
+ $query = "UPDATE mail_group_list SET status = 3 where group_list_id = group_list_id" ; # Status = 3: list configured on Mailman
+ $sth = $dbh->prepare ($query) ;
+ $sth->execute () ;
+ $sth->finish () ;
+
+ #debug "Committing." ;
+ $dbh->commit () ;
+ }
+
# There should be a commit at the end of every block above.
# If there is not, then it might be symptomatic of a problem.
# For safety, we roll back.
More information about the Fusionforge-commits
mailing list