[Pkg-mailman-hackers] Pkg-mailman commit - rev 118 - branches/pkg-split/core/debian
Bernd S. Brentrup
bsb@haydn.debian.org
Thu, 06 May 2004 09:59:52 -0600
Author: bsb
Date: 2004-05-06 09:59:50 -0600 (Thu, 06 May 2004)
New Revision: 118
Modified:
branches/pkg-split/core/debian/postinst
Log:
Fix all relevant directory permissions in postinst.
Probably this should better be done in a revamped check_perms.
Modified: branches/pkg-split/core/debian/postinst
===================================================================
--- branches/pkg-split/core/debian/postinst 2004-05-06 15:56:51 UTC (rev 117)
+++ branches/pkg-split/core/debian/postinst 2004-05-06 15:59:50 UTC (rev 118)
@@ -204,11 +204,47 @@
return line
+def fix_perms():
+ """Fix directory permissions to allow write access to group list.
+ """#
+ from stat import S_IMODE, S_ISGID, S_IRWXG
+
+ from Mailman.Defaults import LIST_DATA_DIR, LOG_DIR, LOCK_DIR, \
+ DATA_DIR, SPAM_DIR, PUBLIC_ARCHIVE_FILE_DIR, PRIVATE_ARCHIVE_FILE_DIR, \
+ QUEUE_DIR, INQUEUE_DIR, OUTQUEUE_DIR, CMDQUEUE_DIR, BOUNCEQUEUE_DIR, \
+ NEWSQUEUE_DIR, ARCHQUEUE_DIR, SHUNTQUEUE_DIR, VIRGINQUEUE_DIR, \
+ BADQUEUE_DIR, RETRYQUEUE_DIR, MAILDIR_DIR
+
+ import grp
+ gid = grp.getgrnam('list')[2]
+
+ for dir_ in (LIST_DATA_DIR, LOG_DIR, LOCK_DIR, DATA_DIR, SPAM_DIR,
+ PUBLIC_ARCHIVE_FILE_DIR, PRIVATE_ARCHIVE_FILE_DIR,
+ QUEUE_DIR, INQUEUE_DIR, OUTQUEUE_DIR, CMDQUEUE_DIR,
+ BOUNCEQUEUE_DIR, NEWSQUEUE_DIR, ARCHQUEUE_DIR,
+ SHUNTQUEUE_DIR, VIRGINQUEUE_DIR, BADQUEUE_DIR,
+ RETRYQUEUE_DIR, MAILDIR_DIR,):
+ stt = os.stat(dir_)
+ if stt.st_gid != gid:
+ os.chown(dir_, stt.st_uid, gid)
+ if (stt.st_mode & (S_ISGID|S_IRWXG)) != (S_ISGID|S_IRWXG):
+ os.chmod(dir_, S_IMODE(stt.st_mode) | S_ISGID | S_IRWXG)
+
+
def run_debhelper_additions():
- runit = os.popen('/bin/sh -e', 'w')
- runit.write("""\
+ from popen2 import Popen4
+ runner = Popen4('/bin/sh -e')
+ runner.tochild.write("""\
+sg list -c "umask 002; /var/lib/mailman/bin/update;"
+
#DEBHELPER#""")
- if runit.close() is not None:
+ runner.tochild.close()
+ while True:
+ rc = runner.poll()
+ if rc != -1: break
+ log(runner.fromchild.readline(), nl='')
+ log(runner.fromchild.read(), nl='')
+ if rc != 0:
raise SystemExit(1)
@@ -217,6 +253,7 @@
ucf_to_cfdb()
create_mm_cfg()
update_cron()
+ fix_perms()
run_debhelper_additions()