[Pkg-mailman-hackers] Pkg-mailman commit - rev 129 - branches/pkg-split/core/debian
Bernd S. Brentrup
bsb@haydn.debian.org
Fri, 14 May 2004 01:01:21 -0600
Author: bsb
Date: 2004-05-14 01:01:11 -0600 (Fri, 14 May 2004)
New Revision: 129
Added:
branches/pkg-split/core/debian/mailman-trans.dirs
branches/pkg-split/core/debian/mailman-trans.install
branches/pkg-split/core/debian/mailman-trans.links
branches/pkg-split/core/debian/mailman-trans.postinst
branches/pkg-split/core/debian/mailman-trans.postrm
branches/pkg-split/core/debian/mailman-trans.prerm
Modified:
branches/pkg-split/core/debian/control
branches/pkg-split/core/debian/mailman.install
branches/pkg-split/core/debian/mailman.links
Log:
Add mailman-trans package to handle ucf -> cfdb transition.
Modified: branches/pkg-split/core/debian/control
===================================================================
--- branches/pkg-split/core/debian/control 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/control 2004-05-14 07:01:11 UTC (rev 129)
@@ -9,8 +9,8 @@
Package: mailman
Architecture: all
Pre-Depends: python (>= 2.3)
-Depends: mailman-bin (= ${Source-Version}), mailman-i18n (= ${Source-Version}) | mailman-en (= ${Source-Version}), logrotate, cron (>= 3.0pl1-42), exim4 | mail-transport-agent, apache | httpd, debconf (>= 1.4.16), ucf (>= 1.05), pwgen, python-bsddb3
-Conflicts: suidmanager (<< 0.50), sendmail (<< 8.12.6)
+Depends: mailman-trans (= ${Source-Version}), mailman-bin (= ${Source-Version}), mailman-i18n (= ${Source-Version}) | mailman-en (= ${Source-Version}), logrotate, cron (>= 3.0pl1-42), exim4 | mail-transport-agent, apache | httpd, debconf (>= 1.4.16), ucf (>= 1.05), pwgen, python-bsddb3
+Conflicts: suidmanager (<< 0.50), sendmail (<< 8.12.6), ssmtp, nullmailer
Recommends: base-passwd (>= 1.3.0)
Suggests: mailman-doc (= ${Source-Version}), mailman-spamassassin | mailman-spamprobe, mailman-savannah, mailman-clamav
Description: powerful, web-based mailing list manager
@@ -30,11 +30,21 @@
.
For more information see http://www.list.org/.
+Package: mailman-trans
+Architecture: all
+Pre-Depends: python (>= 2.3)
+Depends: ucf (>= 1.05), python-bsddb3
+Conflicts: mailman (<= 2.1.4-4)
+Replaces: mailman (<= 2.1.4-4)
+Description: transitional package for mailman
+ The kernel allowing only native compiled code to be installed setgid,
+ theses wrappers invoke workers implemented in Python after validating
+ arguments.
+
Package: mailman-bin
Architecture: any
-Depends: ${shlibs:Depends}, mailman (= ${Source-Version})
+Depends: ${shlibs:Depends}
Conflicts: mailman (<= 2.1.4-4)
-Replaces: mailman (<= 2.1.4-4)
Description: setgid wrappers required for running mailman
The kernel allowing only native compiled code to be installed setgid,
theses wrappers invoke workers implemented in Python after validating
@@ -43,9 +53,9 @@
Package: mailman-i18n
Architecture: all
Pre-Depends: python (>= 2.3)
-Depends: mailman (= ${Source-Version}), ucf (>= 1.05), debconf (>= 1.4.16)
+Depends: mailman-trans (= ${Source-Version}), debconf (>= 1.4.16)
Conflicts: mailman (<= 2.1.4-4), mailman-en
-Replaces: mailman (<= 2.1.4-4), mailman-en
+Replaces: mailman-en (= ${Source-Version})
Suggests: python2.3-korean-codecs, python-japanese-codecs
Description: language specific parts of mailman (international)
Message translations plus international templates for web pages and
@@ -54,9 +64,9 @@
Package: mailman-en
Architecture: all
Pre-Depends: python (>= 2.3)
-Depends: mailman (= ${Source-Version}), ucf (>= 1.05), debconf (>= 1.4.16)
+Depends: mailman-trans (= ${Source-Version}), debconf (>= 1.4.16)
Conflicts: mailman (<= 2.1.4-4), mailman-i18n
-Replaces: mailman (<= 2.1.4-4), mailman-i18n
+Replaces: mailman-i18n (= ${Source-Version})
Description: language specific parts of mailman (english only)
English templates for web-pages and automatically generated emails.
.
Added: branches/pkg-split/core/debian/mailman-trans.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.dirs 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman-trans.dirs 2004-05-14 07:01:11 UTC (rev 129)
@@ -0,0 +1 @@
+var/lib/mailman/data
\ No newline at end of file
Added: branches/pkg-split/core/debian/mailman-trans.install
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.install 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman-trans.install 2004-05-14 07:01:11 UTC (rev 129)
@@ -0,0 +1 @@
+debian/Debian usr/share/mailman/Mailman
Added: branches/pkg-split/core/debian/mailman-trans.links
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.links 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman-trans.links 2004-05-14 07:01:11 UTC (rev 129)
@@ -0,0 +1,5 @@
+usr/share/mailman var/lib/mailman/.INST
+var/lib/mailman/.INST/Mailman/Debian/__init__.py var/lib/mailman/Mailman/Debian/__init__.py
+var/lib/mailman/.INST/Mailman/Debian/helpers.py var/lib/mailman/Mailman/Debian/helpers.py
+var/lib/mailman/.INST/Mailman/Debian/templates.py var/lib/mailman/Mailman/Debian/templates.py
+var/lib/mailman/.INST/Mailman/Debian/cf_db.py var/lib/mailman/Mailman/Debian/cf_db.py
Added: branches/pkg-split/core/debian/mailman-trans.postinst
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.postinst 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman-trans.postinst 2004-05-14 07:01:11 UTC (rev 129)
@@ -0,0 +1,118 @@
+#! /usr/bin/python -O
+# $URL$
+# $Id$
+
+"""
+
+Fooling lintian that complains about not sourcing confmodule:
+. /usr/share/debconf/confmodule
+"""
+
+
+import sys
+import os
+import bsddb
+from errno import ENOENT
+
+
+## # Argl, if the debconf Python interface were well designed, sth like
+## # from debconf import instance as db
+## # should be sufficient here. As it is, must work around it's flaws.
+## def get_debconf_interface(title=''):
+## """Get an debconf interface instance, starting a frontend if
+## none is available.
+## """#
+## from debconf import Debconf, _frontEndProgram
+## try: junk = os.environ['DEBIAN_HAS_FRONTEND']
+## except KeyError: os.execv(_frontEndProgram, [_frontEndProgram]+sys.argv)
+## return Debconf(title)
+## db = get_debconf_interface() ; del get_debconf_interface
+## # Exception class and convenience constants
+## from debconf import DebconfError, LOW, MEDIUM, HIGH, CRITICAL
+
+
+MM_HOME = '/var/lib/mailman'
+MM_BIN = os.path.join(MM_HOME, 'bin')
+MM_INST = '/usr/share/mailman'
+
+# mailman (and thus the Mailman py package) may not be installed yet.
+sys.path.insert(0, os.path.join(MM_HOME, 'Mailman'))
+from Debian import DebuggingLogger, mm_languages, cfdb
+
+
+def ucf_to_cfdb():
+ """Import templates under ucf control.
+
+ All Debian releases up to now that used ucf have only registered
+ files under /etc/mailman/LANG and /etc/mailman/qmail-to-mailman.py
+ with ucf, allowing this simplistic approach at moving to our own
+ conffile database.
+ """#
+
+ UCF_CACHE = '/var/lib/ucf/cache'
+ ETC_DIR = '/etc/mailman/'
+ ETC_LEN = len(ETC_DIR)
+
+ prev_lang = None
+
+ ucf_list = [ fn for fn in os.listdir(UCF_CACHE)
+ if fn.startswith(':etc:mailman:') ]
+ if not ucf_list: return
+
+ log('Moving files out of ucf control ', nl='')
+
+ for cached in ucf_list:
+ path = '/'.join(cached.split(':'))
+ ucf_cached = os.path.join(UCF_CACHE, cached)
+ tmpl = open(ucf_cached).read()
+ try:
+ reg_key = path[ETC_LEN:]
+ lang, tmpl = reg_key.split('/')
+ if lang in mm_languages:
+ if lang != prev_lang:
+ if prev_lang: cfdb.sync()
+ prev_lang = lang
+ cfdb.register(reg_key, tmpl)
+ except ValueError:
+ cfdb.register(path, tmpl)
+
+ os.system('ucf --purge --three-way %(path)s' % locals())
+ os.remove(ucf_cached)
+ log('.', nl='')
+
+ cfdb.sync()
+ log(' done.')
+
+
+def run_debhelper_additions():
+
+ from popen2 import Popen4
+ runner = Popen4('/bin/sh -e')
+ runner.tochild.write("""\
+#DEBHELPER#""")
+ 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:
+ log('DebHelper added script failed with rc=%(rc)r.' % locals())
+ raise SystemExit(1)
+
+
+if __name__ == '__main__':
+ log = DebuggingLogger('MM_MAINT')
+ try:
+ op = sys.argv[1]
+ if op == 'configure':
+ ucf_to_cfdb()
+ if op in ('configure','abort-upgrade','abort-remove','abort-deconfigure'):
+ run_debhelper_additions()
+ else:
+ log("postinst called with unknown argument %r." % op)
+ raise SystemExit(1)
+ finally:
+ # When things break, this information might be useful
+ log.sys_info()
+
Property changes on: branches/pkg-split/core/debian/mailman-trans.postinst
___________________________________________________________________
Name: svn:keywords
+ Id URL
Added: branches/pkg-split/core/debian/mailman-trans.postrm
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.postrm 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman-trans.postrm 2004-05-14 07:01:11 UTC (rev 129)
@@ -0,0 +1,13 @@
+#! /bin/sh -e
+# $URL$
+# $Id$
+
+echo ">>> $0 $*" >&2
+
+#DEBHELPER#
+
+if [ "$1" = purge ]; then
+ rm -f /var/lib/mailman/data/debcf.db
+fi
+
+exit 0
\ No newline at end of file
Property changes on: branches/pkg-split/core/debian/mailman-trans.postrm
___________________________________________________________________
Name: svn:keywords
+ Id URL
Added: branches/pkg-split/core/debian/mailman-trans.prerm
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.prerm 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman-trans.prerm 2004-05-14 07:01:11 UTC (rev 129)
@@ -0,0 +1,20 @@
+#! /bin/sh -e
+#
+# prerm script for Debian python packages.
+# Written 1998 by Gregor Hoffleit <flight@debian.org>.
+#
+# $URL: svn+alioth://svn.alioth.debian.org/svn/pkg-mailman/branches/pkg-split/core/debian/mailman.prerm $
+# $Id: mailman.prerm 121 2004-05-07 18:18:03Z bsb $
+echo ">>> $0 $*" >&2
+
+#DEBHELPER#
+
+PACKAGE=mailman-trans
+
+# dh_python doesn't do TRT[tm], do it manually
+# We have created compiled .py files in the postinst, undo now.
+dpkg --listfiles $PACKAGE |
+ awk '$0~/\.py$/ {print $0"c\n" $0"o"}' |
+ xargs rm -f >&2
+
+exit 0
\ No newline at end of file
Modified: branches/pkg-split/core/debian/mailman.install
===================================================================
--- branches/pkg-split/core/debian/mailman.install 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman.install 2004-05-14 07:01:11 UTC (rev 129)
@@ -1,11 +1,9 @@
debian/tmp/usr/lib/mailman/Mailman usr/share/mailman
debian/tmp/usr/lib/mailman/bin usr/share/mailman
debian/tmp/usr/lib/mailman/cron usr/share/mailman
-debian/tmp/usr/lib/mailman/icons/* usr/share/images/mailman
-debian/tmp/usr/lib/mailman/mail usr/share/mailman
debian/tmp/usr/lib/mailman/scripts usr/share/mailman
-debian/tmp/var/lib/mailman/data var/lib/mailman
+debian/tmp/usr/lib/mailman/icons/* usr/share/images/mailman
debian/manpages/* usr/share/man/man8
-debian/Debian usr/share/mailman/Mailman
+debian/tmp/var/lib/mailman/data var/lib/mailman
Modified: branches/pkg-split/core/debian/mailman.links
===================================================================
--- branches/pkg-split/core/debian/mailman.links 2004-05-14 06:58:02 UTC (rev 128)
+++ branches/pkg-split/core/debian/mailman.links 2004-05-14 07:01:11 UTC (rev 129)
@@ -1,5 +1,4 @@
etc/mailman/mm_cfg.py var/lib/mailman/Mailman/mm_cfg.py
-usr/share/mailman var/lib/mailman/.INST
var/lib/mailman/bin/list_lists usr/sbin/list_lists
var/lib/mailman/bin/find_member usr/sbin/find_member
var/lib/mailman/bin/config_list usr/sbin/config_list
@@ -208,10 +207,6 @@
var/lib/mailman/.INST/Mailman/htmlformat.py var/lib/mailman/Mailman/htmlformat.py
var/lib/mailman/.INST/Mailman/i18n.py var/lib/mailman/Mailman/i18n.py
var/lib/mailman/.INST/Mailman/versions.py var/lib/mailman/Mailman/versions.py
-var/lib/mailman/.INST/Mailman/Debian/__init__.py var/lib/mailman/Mailman/Debian/__init__.py
-var/lib/mailman/.INST/Mailman/Debian/helpers.py var/lib/mailman/Mailman/Debian/helpers.py
-var/lib/mailman/.INST/Mailman/Debian/templates.py var/lib/mailman/Mailman/Debian/templates.py
-var/lib/mailman/.INST/Mailman/Debian/cf_db.py var/lib/mailman/Mailman/Debian/cf_db.py
var/lib/mailman/.INST/cron/crontab.in var/lib/mailman/cron/crontab.in
var/lib/mailman/.INST/cron/checkdbs var/lib/mailman/cron/checkdbs
var/lib/mailman/.INST/cron/mailpasswds var/lib/mailman/cron/mailpasswds