[Pkg-mailman-hackers] Pkg-mailman commit - rev 130 - in branches/pkg-split/core/debian: . Debian contrib patches

Bernd S. Brentrup bsb at haydn.debian.org
Sun Sep 10 19:12:29 UTC 2006


Author: bsb
Date: 2004-05-18 10:29:43 -0600 (Tue, 18 May 2004)
New Revision: 130

Added:
   branches/pkg-split/core/debian/mailman-i18n.postrm
   branches/pkg-split/core/debian/patches/58_fix_translations.dpatch
   branches/pkg-split/core/debian/patches/59_build_arch_indep.dpatch
Modified:
   branches/pkg-split/core/debian/Debian/__init__.py
   branches/pkg-split/core/debian/Debian/templates.py
   branches/pkg-split/core/debian/TODO
   branches/pkg-split/core/debian/contrib/postfix-to-mailman.py
   branches/pkg-split/core/debian/mailman-i18n.config
   branches/pkg-split/core/debian/mailman-i18n.postinst
   branches/pkg-split/core/debian/mailman-i18n.prerm
   branches/pkg-split/core/debian/mailman-i18n.templates
   branches/pkg-split/core/debian/mailman-trans.install
   branches/pkg-split/core/debian/mailman-trans.postinst
   branches/pkg-split/core/debian/mailman.config
   branches/pkg-split/core/debian/mailman.dirs
   branches/pkg-split/core/debian/mailman.init
   branches/pkg-split/core/debian/mailman.install
   branches/pkg-split/core/debian/mailman.links
   branches/pkg-split/core/debian/mailman.postinst
   branches/pkg-split/core/debian/mailman.postrm
   branches/pkg-split/core/debian/mailman.preinst
   branches/pkg-split/core/debian/mailman.prerm
   branches/pkg-split/core/debian/mailman.templates
   branches/pkg-split/core/debian/patches/00list
   branches/pkg-split/core/debian/patches/40_FHS_dirs.dpatch
   branches/pkg-split/core/debian/rules
Log:
Install python code in /usr/lib/mailman getting rid
of symlinks from /var/lib/mailman.

Modified: branches/pkg-split/core/debian/Debian/__init__.py
===================================================================
--- branches/pkg-split/core/debian/Debian/__init__.py	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/Debian/__init__.py	2004-05-18 16:29:43 UTC (rev 130)
@@ -2,9 +2,13 @@
 # $Id$
 
 from helpers   import *
-from templates import mm_cfg_defaults, mm_cfg_fillin, mm_crontab
 from cf_db     import ConfFileDatabase
 
+try:
+    from templates import mm_cfg_defaults, mm_cfg_fillin, mm_crontab
+except ImportError:
+    pass
+
 mm_languages="big5 ca cs da de en es et eu fi fr gb hr hu it ja ko lt nl no pl pt pt_BR ro ru sl sr sv uk".split()
 
 cfdb = ConfFileDatabase('/var/lib/mailman/data/debcf.db')

Modified: branches/pkg-split/core/debian/Debian/templates.py
===================================================================
--- branches/pkg-split/core/debian/Debian/templates.py	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/Debian/templates.py	2004-05-18 16:29:43 UTC (rev 130)
@@ -29,7 +29,7 @@
 From a raw distribution it should be copied to mm_cfg.py.  If you
 already have an mm_cfg.py, be careful to add in only the new settings
 you want.  The complete set of distributed defaults, with annotation,
-are in /var/lib/mailman/Mailman/Defaults.py.  In mm_cfg, override only
+are in /usr/lib/mailman/Mailman/Defaults.py.  In mm_cfg, override only
 those you want to change, after the
 
   from Defaults import *
@@ -64,58 +64,57 @@
 MAILMAN_SITE_LIST = %(MAILMAN_SITE_LIST)r
 
 #-------------------------------------------------------------
-# If you change these, you have to configure your http server
-# accordingly (Alias and ScriptAlias directives in most httpds)
-DEFAULT_URL_PATTERN = %(DEFAULT_URL_PATTERN)r
-# For logos on MM web pages, add this to your httpd config:
-#   Alias %(IMAGE_LOGOS)s /usr/share/images/mailman/
-IMAGE_LOGOS         = %(IMAGE_LOGOS)r
-
+# Virtual host httpd setup, if you don't use a virtual host
+# just copy the ScriptAlias and Alias directives.
+#
+# <Virtualhost %(DEFAULT_URL_HOST)s>
+#   ServerName  %(DEFAULT_URL_HOST)s
+#   ScriptAlias %(default_url_path)s /usr/lib/cgi-bin/mailman/
+#   Alias       /pipermail/ %(PUBLIC_ARCHIVE_FILE_DIR)s/
+#   Alias       %(IMAGE_LOGOS)s /usr/share/images/mailman/
+# </VirtualHost>
 #-------------------------------------------------------------
-# Default host for web interface of newly created MLs
 DEFAULT_URL_HOST   = %(DEFAULT_URL_HOST)r
-#-------------------------------------------------------------
-# Default domain for email addresses of newly created MLs
 DEFAULT_EMAIL_HOST = %(DEFAULT_EMAIL_HOST)r
-#-------------------------------------------------------------
-# Required when setting any of its arguments.
 add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
+DEFAULT_URL_PATTERN = %(DEFAULT_URL_PATTERN)r
+IMAGE_LOGOS         = %(IMAGE_LOGOS)r
 
 #-------------------------------------------------------------
-# The default language for this server (may be changed to a
-# supported language when mailman-i18n is installed).
-DEFAULT_SERVER_LANGUAGE = %(DEFAULT_SERVER_LANGUAGE)r
+# Depending on your MTA setup, the MTA configuration variable
+# controls how aliases are generated.
+# At the time of this writing legal values are:
+# None      - your MTA automatically recognizes new lists
+# 'Postfix' - you are using postfix virtual domains
+# 'Manual'  - default, meaning you have to manually create the
+#             aliases in /etc/aliases or similar.
+# In any case, please read the MTA specific README.* in
+# /usr/share/doc/mailman before setting this.
+MTA=%(MTA)r
 
 #-------------------------------------------------------------
-# Don't use address from envelope instead of from headers when
-# determining if a message comes from a list member.
+# The USE_ENVELOPE_SENDER variable controls the order in which
+# headers are searched when determining if a message originates
+# from a subscriber.  When True, the order is Sender:, From:,
+# unixfrom, when False it is From:, Sender:, unixfrom.  In both
+# cases the first address encountered is used.
+# Debian default is not to use the envelope address when
+# determining if a message comes from a subscriber.
+# This option applies globally to all mailing lists.
 USE_ENVELOPE_SENDER    = %(USE_ENVELOPE_SENDER)r
 
 #-------------------------------------------------------------
-# By default don't send monthly password reminders for newly
-# created lists.
+# Debian default is not to send monthly password reminders
+# on newly created lists.  This can be changed per list.
 DEFAULT_SEND_REMINDERS = %(DEFAULT_SEND_REMINDERS)r
 
 #-------------------------------------------------------------
-# Uncomment this if you configured your MTA such that it
-# automatically recognizes newly created lists.
-# (see /usr/share/doc/mailman/README.{EXIM,...})
-# MTA=None   # Misnomer, suppresses alias output on newlist
+# The default language for this server (may be changed to a
+# supported language when mailman-i18n is installed).
+DEFAULT_SERVER_LANGUAGE = %(DEFAULT_SERVER_LANGUAGE)r
 
-#-------------------------------------------------------------
-# Uncomment if you use Postfix virtual domains, but be sure to
-# read /usr/share/doc/mailman/README.POSTFIX first.
-# MTA='Postfix'
-
 # Note - if you're looking for something that is imported from mm_cfg, but you
 # didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py.
-
-#-------------------------------------------------------------
-# Local settings not managed by Debian maintainer scripts. 
-# only variables not mentioned above are preserved on package
-# upgrade. If you define variables mentioned above here,
-# the last setting here will be used above and occurrences
-# below are removed.
 '''#
 
 mm_crontab = '''\
@@ -126,25 +125,25 @@
 # At 8AM every day, mail reminders to admins as to pending requests.
 # They are less likely to ignore these reminders if they're mailed
 # early in the morning, but of course, this is local time... ;)
-0 8 * * * list /var/lib/mailman/cron/checkdbs
+0 8 * * * list /usr/lib/mailman/cron/checkdbs
 #
 # At 9AM, send notifications to disabled members that are due to be
 # reminded to re-enable their accounts.
-0 9 * * * list /var/lib/mailman/cron/disabled
+0 9 * * * list /usr/lib/mailman/cron/disabled
 #
 # Noon, mail digests for lists that do periodic as well as threshhold delivery.
-0 12 * * * list /var/lib/mailman/cron/senddigests
+0 12 * * * list /usr/lib/mailman/cron/senddigests
 #
 # 5 AM on the first of each month, mail out password reminders.
-0 5 1 * * list /var/lib/mailman/cron/mailpasswds
+0 5 1 * * list /usr/lib/mailman/cron/mailpasswds
 #
 # Every 5 mins, try to gate news to mail.  You can comment this one out
 # if you don't want to allow gating, or don't have any going on right now,
 # or want to exclusively use a callback strategy instead of polling.
-# 0,5,10,15,20,25,30,35,40,45,50,55 * * * * list /var/lib/mailman/cron/gate_news
+# 0,5,10,15,20,25,30,35,40,45,50,55 * * * * list /usr/lib/mailman/cron/gate_news
 #
 # At 3:27am every night, regenerate the gzip'd archive file.  Only
 # turn this on if the internal archiver is used and
 # GZIP_ARCHIVE_TXT_FILES is false in mm_cfg.py
-27 3 * * * list /var/lib/mailman/cron/nightly_gzip
+27 3 * * * list /usr/lib/mailman/cron/nightly_gzip
 '''#

Modified: branches/pkg-split/core/debian/TODO
===================================================================
--- branches/pkg-split/core/debian/TODO	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/TODO	2004-05-18 16:29:43 UTC (rev 130)
@@ -114,5 +114,9 @@
   
   CONSIDER: When can we get rid of mailman-trans ?
 
+- In mailman.config make sure /etc/mailname contains a legal FQDN
+  before using it.
+
+
 This list is by no means meant to be complete.
 

Modified: branches/pkg-split/core/debian/contrib/postfix-to-mailman.py
===================================================================
--- branches/pkg-split/core/debian/contrib/postfix-to-mailman.py	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/contrib/postfix-to-mailman.py	2004-05-18 16:29:43 UTC (rev 130)
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 
-# $URL: svn+bsb://svn.winnegan.de/svn/adm/trunk/mailman/postfix-to-mailman.py $
-# $Id: postfix-to-mailman.py 38 2004-04-15 19:11:32Z bsb $
+# $URL: svn+ssh://svn.winnegan.de/svn/adm/trunk/mailman/postfix-to-mailman.py $
+# $Id: postfix-to-mailman.py 50 2004-05-17 13:41:21Z bsb $
 #
 # Interface mailman to a postfix with a mailman transport. Does not require
 # the creation of _any_ aliases to connect lists to your mail system.
@@ -39,7 +39,7 @@
 
 # INSTALLATION:
 #
-# Install this file as /var/lib/mailman/bin/postfix-to-mailman.py
+# Install this file as /usr/lib/mailman/bin/postfix-to-mailman.py
 #
 # To configure a virtual domain to connect to mailman, edit Postfix thusly:
 #
@@ -51,7 +51,7 @@
 # /etc/postfix/master.cf
 #    mailman unix  -       n       n       -       -       pipe
 #      flags=FR user=list 
-#      argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
+#      argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
 #
 # /etc/postfix/transport:
 #   lists.example.com   mailman:
@@ -72,6 +72,8 @@
 # behavior sending a helpful bounce message is still configurable
 # by defining DEB_HELP_TEXT in mm_cfg.
 
+SENDMAIL = '/usr/sbin/sendmail'
+
 # Exit codes accepted by postfix
 #  from postfix-2.0.16/src/global/sys_exits.h
 EX_USAGE    = 64    # command line usage error 
@@ -106,10 +108,9 @@
                              'in main.cf?')
         sys.exit(EX_USAGE)
 
-    # Redirect required addresses to 
+    # Redirect required addresses to MailmanOwner
     if local in ('postmaster', 'abuse', 'mailer-daemon'):
-        os.execv("/usr/sbin/sendmail",
-                 ("/usr/sbin/sendmail", MailmanOwner))
+        os.execv(SENDMAIL, (SENDMAIL, MailmanOwner))
         sys.exit(0)
 
     # Assume normal posting to a mailing list

Modified: branches/pkg-split/core/debian/mailman-i18n.config
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.config	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-i18n.config	2004-05-18 16:29:43 UTC (rev 130)
@@ -4,7 +4,7 @@
 
 . /usr/share/debconf/confmodule
 
-crontab=/etc/cron.d/mailman
+echo ">>> $0 $*" >&2
 
 get_used_languages ()
 {
@@ -44,18 +44,16 @@
 db_fget mailman/used_languages scanned || true
 scanned="${RET}"
 
-if [ ! -z "$2" ] && dpkg --compare-versions $2 lt 2.1 ; then
-  # list_lists will fail when upgrading from pre 2.1; but with those
-  # versions not supporting i18n, english was the only used language.
-  db_set  mailman/site_languages "en"
-  db_set  mailman/used_languages "en"
-  db_fset mailman/used_languages scanned false
-elif  [ ! -x "/usr/sbin/list_lists" ] ; then
-  # For 1st time installers there is no used language.
-  db_set  mailman/site_languages "en"
-  db_set  mailman/used_languages ""
-  db_fset mailman/used_languages scanned false
-else
+if [ -z "$2" ] ; then
+    # Installing mailman-i18n
+    if db_get mailman/site_languages ; then
+        db_fset mailman/site_languages seen false
+    else
+        db_set  used_languages en
+        db_fset used_languages scanned false
+        db_fset used_languages seen true
+    fi
+elif [ -x /usr/sbin/list_lists ] ; then
   if [ "${scanned}" != "true" ] ; then
     echo -n "Looking for enabled languages (this may take some time) ..."
     unset used_languages

Modified: branches/pkg-split/core/debian/mailman-i18n.postinst
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.postinst	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-i18n.postinst	2004-05-18 16:29:43 UTC (rev 130)
@@ -29,14 +29,15 @@
 #  Exception class and convenience constants
 from debconf import DebconfError, LOW, MEDIUM, HIGH, CRITICAL
 
+print >>sys.stderr, '>>>', sys.argv
 
 PACKAGE='mailman-i18n'
-MM_HOME = '/var/lib/mailman'
+MM_INST = '/usr/lib/mailman'
 
-sys.path.insert(0, MM_HOME)
+# mailman (and thus the Mailman py package) may not be installed yet
+sys.path.insert(0, os.path.join(MM_INST, 'Mailman'))
+from Debian import DebuggingLogger, cfdb, mm_languages
 
-from Mailman.Debian import DebuggingLogger, cfdb, mm_languages
-
 from errno import EEXIST, ENOTEMPTY
 #from errno import *
 
@@ -53,7 +54,7 @@
     # forcing used languages to be always available.
     site_languages = db.get('mailman/site_languages').split(', ')
     site_languages = [ s.strip() for s in site_languages if s.strip() ]
-    need_languages = site_languages
+    need_languages = site_languages[:]
     used_languages = db.get('mailman/used_languages').split()
     db.fset('mailman/used_languages', 'seen', 'true')
     db.fset('mailman/used_languages', 'scanned', 'false')
@@ -64,31 +65,33 @@
     for lang in used_languages:
         if lang not in site_languages:
             need_languages.append(lang)
+
+    log('SETUP: need_languages=%(need_languages)r' % locals(), lvl=2)
+
+    site_languages.sort()
+    need_languages.sort()
     if need_languages != site_languages:
         db.set('mailman/site_languages', ', '.join(need_languages))
         site_languages = need_languages
+        log('SETUP: site_languages=%(site_languages)r' % locals(), lvl=2)
 
-    log('SETUP: need_languages=%(need_languages)r' % locals(), lvl=2)
-
     remove_templates(need_languages)
     install_templates(need_languages)
 
-    start_mailman()
 
-
-def remove_templates(site_languages):
+def remove_templates(languages):
     """
     """#
     old_languages = os.listdir(mm_tmpl)
 
     for lang in old_languages:
-        if lang not in site_languages:
+        if lang not in languages:
             langdir = os.path.join(mm_tmpl, lang)
             log('Removing unmodified files from %(langdir)s ' % locals(),
                 nl='')
             def cb(*args):
                 log('.', nl='')
-            cfdb.remove_unmod(lang, dst=mm_tmpl, callback=cb)
+            cfdb.remove_unmod(lang+'/', dst=mm_tmpl, callback=cb)
             cfdb.sync()
             log(' done.')
             try:
@@ -99,10 +102,10 @@
                 else: raise
 
 
-def install_templates(site_languages):
+def install_templates(languages):
     """
     """#
-    for lang in site_languages:
+    for lang in languages:
         log('Installing site language %(lang)s ' % locals(), nl='')
         try:
             os.mkdir(os.path.join(mm_tmpl, lang))
@@ -119,12 +122,14 @@
         log(' done.')
 
 
-def start_mailman():
+def start_mm_qrunner():
+    log('>> entering start_mm_qrunner', lvl=3)
+    if not cfdb.has_key('mailman/setup'):
+        log('Must reconfigure mailman to restart daemons.')
+        return
     from popen2 import Popen4
     runner = Popen4('/bin/sh -e')
     runner.tochild.write("""\
-chmod +x /var/lib/mailman/bin/mailmanctl
-
 if [ -x "/etc/init.d/mailman" ]; then
   if [ -x /usr/sbin/invoke-rc.d ] ; then
     invoke-rc.d mailman start || true
@@ -149,10 +154,11 @@
         op = sys.argv[1]
         if op == 'configure':
             setup()
-        elif op in ('abort-upgrade','abort-remove','abort-deconfigure'):
-            pass
+        if op in ('configure','abort-upgrade','abort-remove','abort-deconfigure'):
+            cfdb['mailman/templates'] = PACKAGE
+            start_mm_qrunner()
         else:
-            log("postinst called with unknown argument \`%s'" % op)
+            log("postinst called with unknown argument %r." % op)
             raise SystemExit(1)
     finally:
         # When things break, this information might be useful

Added: branches/pkg-split/core/debian/mailman-i18n.postrm
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.postrm	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-i18n.postrm	2004-05-18 16:29:43 UTC (rev 130)
@@ -0,0 +1,9 @@
+#! /bin/sh -e
+# $URL$
+# $Id$
+
+echo ">>> $0 $*" >&2
+
+#DEBHELPER#
+
+exit 0


Property changes on: branches/pkg-split/core/debian/mailman-i18n.postrm
___________________________________________________________________
Name: svn:keywords
   + Id URL

Modified: branches/pkg-split/core/debian/mailman-i18n.prerm
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.prerm	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-i18n.prerm	2004-05-18 16:29:43 UTC (rev 130)
@@ -2,13 +2,61 @@
 # $URL$
 # $Id$
 
-if [ "$1" = "upgrade" ] ; then
-  if [ -x "/etc/init.d/mailman" ]; then
-    if [ -x /usr/sbin/invoke-rc.d ] ; then
-      invoke-rc.d mailman stop || true
-    else
-      /etc/init.d/mailman stop || true
+. /usr/share/debconf/confmodule
+
+echo ">>>" $0 $* >&2
+
+package=mailman-i18n
+
+unset_mm_templates () {
+python <<EOF
+import sys; sys.path.insert(0, '/usr/lib/mailman/Mailman')
+try:
+    from Debian import cfdb
+    del cfdb['mailman/templates']
+except:
+    pass
+EOF
+}
+
+mm_shutdown () {
+    if [ -x "/etc/init.d/mailman" ]; then
+        if [ -x /usr/sbin/invoke-rc.d ] ; then
+            invoke-rc.d mailman stop || true
+        else
+            /etc/init.d/mailman stop || true
+        fi
     fi
-  fi
-  chmod -x /var/lib/mailman/bin/mailmanctl
-fi
+}
+
+
+case $1 in
+    remove)
+        mm_shutdown
+        unset_mm_templates
+        if [ "$2 $3" = "in-favour mailman-en" ] ; then
+            db_get mailman/site_languages || true
+            if [ "$RET" = "en" ] ; then
+                unset_mm_templates
+            else
+                db_fset mailman/other_languages seen false || true
+                db_subst mailman/other_languages infavor $3 || true
+                db_subst mailman/other_languages package ${package} || true
+                db_input critical mailman/other_languages || true
+                db_go || true
+                exit 1
+            fi
+        fi
+        ;;
+    upgrade)
+        mm_shutdown
+        unset_mm_templates
+        ;;
+    failed-upgrade|deconfigure)
+        ;;
+    *)
+        echo "${package}.prerm called with unknown arguments $*" >&2
+        exit 1
+        ;;
+esac
+

Modified: branches/pkg-split/core/debian/mailman-i18n.templates
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.templates	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-i18n.templates	2004-05-18 16:29:43 UTC (rev 130)
@@ -21,3 +21,14 @@
 Type: string
 Description: Internal holding result of scan
 
+Template: mailman/other_languages
+Type: note
+_Description: Unsupported languages used 
+ The mailman-en package supports only english mailing lists while this
+ installation has support for multiple languages enabled.
+ .
+ Before retrying to install the ${infavor} package, please make sure
+ all mailing lists use only english, then dpkg-reconfigue ${package}
+ disabling all languages but english.
+
+ 
\ No newline at end of file

Modified: branches/pkg-split/core/debian/mailman-trans.install
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.install	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-trans.install	2004-05-18 16:29:43 UTC (rev 130)
@@ -1 +1 @@
-debian/Debian usr/share/mailman/Mailman
+debian/Debian usr/lib/mailman/Mailman

Modified: branches/pkg-split/core/debian/mailman-trans.postinst
===================================================================
--- branches/pkg-split/core/debian/mailman-trans.postinst	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman-trans.postinst	2004-05-18 16:29:43 UTC (rev 130)
@@ -31,12 +31,12 @@
 ## from debconf import DebconfError, LOW, MEDIUM, HIGH, CRITICAL
 
 
+MM_INST = '/usr/lib/mailman'
 MM_HOME = '/var/lib/mailman'
-MM_BIN  = os.path.join(MM_HOME, 'bin')
-MM_INST = '/usr/share/mailman'
+MM_BIN  = os.path.join(MM_INST, 'bin')
 
 # mailman (and thus the Mailman py package) may not be installed yet.
-sys.path.insert(0, os.path.join(MM_HOME, 'Mailman'))
+sys.path.insert(0, os.path.join(MM_INST, 'Mailman'))
 from Debian import DebuggingLogger, mm_languages, cfdb
 
 

Modified: branches/pkg-split/core/debian/mailman.config
===================================================================
--- branches/pkg-split/core/debian/mailman.config	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.config	2004-05-18 16:29:43 UTC (rev 130)
@@ -25,7 +25,9 @@
 #  Exception class and convenience constants
 from debconf import DebconfError, LOW, MEDIUM, HIGH, CRITICAL
 
+print >>sys.stderr, '>>>', sys.argv
 
+mm_inst  = '/usr/lib/mailman'
 mm_home  = '/var/lib/mailman'
 mm_lists = os.path.join(mm_home, 'lists')
 crontab  = '/etc/cron.d/mailman'
@@ -131,7 +133,7 @@
         pass
 
     try:
-        sys.path.insert(0, mm_home)
+        sys.path.insert(0, mm_inst)
         from Mailman.Debian import DebuggingLogger
         log = DebuggingLogger('MM_MAINT')
         try:

Modified: branches/pkg-split/core/debian/mailman.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman.dirs	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.dirs	2004-05-18 16:29:43 UTC (rev 130)
@@ -1,19 +1,14 @@
-etc/logrotate.d
 usr/lib/cgi-bin/mailman
-usr/sbin
+usr/lib/mailman/bin
+usr/lib/mailman/mail
+usr/lib/mailman/pythonlib
+usr/lib/mailman/scripts
+usr/lib/mailman/templates
 usr/share/images/mailman
-usr/share/mailman/bin
-usr/share/mailman/mail
-usr/share/mailman/scripts
-usr/share/mailman/templates
-var/lib/images/mailman
 var/lib/mailman/archives/private
 var/lib/mailman/archives/public
-var/lib/mailman/bin
 var/lib/mailman/data
 var/lib/mailman/lists
-var/lib/mailman/mail
-var/lib/mailman/pythonlib
 var/lib/mailman/qfiles
 var/lib/mailman/qfiles/archive
 var/lib/mailman/qfiles/bad
@@ -26,7 +21,6 @@
 var/lib/mailman/qfiles/retry
 var/lib/mailman/qfiles/shunt
 var/lib/mailman/qfiles/virgin
-var/lib/mailman/scripts
 var/lib/mailman/spam
 var/lock/mailman
 var/log/mailman

Modified: branches/pkg-split/core/debian/mailman.init
===================================================================
--- branches/pkg-split/core/debian/mailman.init	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.init	2004-05-18 16:29:43 UTC (rev 130)
@@ -13,72 +13,75 @@
 #
 
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/var/lib/mailman/bin/mailmanctl
-PIDFILE=/var/lib/mailman/data/master-qrunner.pid
+DAEMON=/usr/lib/mailman/bin/mailmanctl
+PIDFILE=/var/run/mailman/mailman.pid
 NAME=mailman
 DESC="mailman queue runner"
+starterr=/var/log/mailman/startup.err
 
 test -x $DAEMON || exit 0
 
 set -e
 
 case "$1" in
-  start)
-        if [ "$(/var/lib/mailman/bin/list_lists -b | grep ^mailman$ )" = "" ]; then
-            echo "Site list for mailman (usually named mailman) missing"
-            echo "Please create it; until then, mailman will refuse to start"
-            exit 0
+    start)
+        echo -n "Starting $DESC"
+        if $DAEMON -s -q start 2>${starterr}; then
+            echo "."
+        else
+            echo -n " failed because "
+            sed -e "s/Site list is missing: \(.*\)$/of missing site list '\1'./" \
+                <${starterr}
         fi
-        $DAEMON -s start
-	echo "."
-	;;
-  stop)
-        $DAEMON stop
-	echo "."
-	;;
-  reload)
-	#
-	#	If the daemon can reload its config files on the fly
-	#	for example by sending it SIGHUP, do it here.
-	#
-	#	If the daemon responds to changes in its config file
-	#	directly anyway, make this a do-nothing entry.
-	#
-	echo -n "Reloading $DESC configuration..."
-	$DAEMON restart
-	 echo "done."
-  ;;
-  restart|force-reload)
-	#
-	#	If the "reload" option is implemented, move the "force-reload"
-	#	option to the "reload" entry above. If not, "force-reload" is
-	#	just the same as "restart".
-	#
-	PID=`cat $PIDFILE 2>/dev/null`
-	echo -n "Restarting $DESC: $NAME"
-        $DAEMON stop
-	if test -n "$PID" && kill -0 $PID 2>/dev/null ; then
-		echo -n "Waiting "
-                for cnt in `seq 1 5`; do
-			sleep 1
-			kill -0 $PID 2>/dev/null || break
-			echo -n "."
-		done;
-		if kill -0 $PID 2>/dev/null ; then
-			echo " Failed"
-		else
-			echo " Done"
-		fi
-	fi
-        $DAEMON start
-	echo "."
-	;;
-  *)
-	N=/etc/init.d/$NAME
-	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
-	echo "Usage: $N {start|stop|restart|force-reload}" >&2
-	exit 1
-	;;
+        rm -f ${starterr}
+        ;;
+    stop)
+        echo -n "Stopping $DESC"
+        $DAEMON -q stop
+        echo "."
+        ;;
+    reload)
+    	#
+    	#	If the daemon can reload its config files on the fly
+    	#	for example by sending it SIGHUP, do it here.
+    	#
+    	#	If the daemon responds to changes in its config file
+    	#	directly anyway, make this a do-nothing entry.
+    	#
+        echo -n "Reloading $DESC configuration..."
+        $DAEMON -q restart
+        echo "done."
+        ;;
+    restart|force-reload)
+    	#
+    	#	If the "reload" option is implemented, move the "force-reload"
+    	#	option to the "reload" entry above. If not, "force-reload" is
+    	#	just the same as "restart".
+    	#
+        PID=`cat $PIDFILE 2>/dev/null`
+        echo -n "Restarting $DESC: $NAME"
+        $DAEMON -q stop
+        if test -n "$PID" && kill -0 $PID 2>/dev/null ; then
+            echo -n "Waiting "
+            for cnt in `seq 1 5`; do
+                sleep 1
+                kill -0 $PID 2>/dev/null || break
+            done;
+            if kill -0 $PID 2>/dev/null ; then
+                echo " Failed"
+            else
+                echo " Done"
+            fi
+        fi
+        $DAEMON -q start
+        echo "."
+        ;;
+    *)
+        N=/etc/init.d/$NAME
+	    # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+        echo "Usage: $N {start|stop|restart|force-reload}" >&2
+        exit 1
+        ;;
 esac
 
 exit 0

Modified: branches/pkg-split/core/debian/mailman.install
===================================================================
--- branches/pkg-split/core/debian/mailman.install	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.install	2004-05-18 16:29:43 UTC (rev 130)
@@ -1,9 +1,10 @@
-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/scripts      usr/share/mailman
-debian/tmp/usr/lib/mailman/icons/*      usr/share/images/mailman
+debian/tmp/usr/lib/mailman/Mailman      usr/lib/mailman
+debian/tmp/usr/lib/mailman/bin          usr/lib/mailman
+debian/tmp/usr/lib/mailman/cron         usr/lib/mailman
+debian/tmp/usr/lib/mailman/scripts      usr/lib/mailman
+debian/tmp/usr/share/images/mailman     usr/share/images
+debian/tmp/var/lib/mailman/data         var/lib/mailman
+debian/Debian/templates.py              usr/lib/mailman/Mailman/Debian
 debian/manpages/*                       usr/share/man/man8
-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 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.links	2004-05-18 16:29:43 UTC (rev 130)
@@ -1,218 +1,17 @@
-etc/mailman/mm_cfg.py                   var/lib/mailman/Mailman/mm_cfg.py
-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
-var/lib/mailman/bin/mmsitepass          usr/sbin/mmsitepass
-var/lib/mailman/bin/newlist             usr/sbin/newlist
-var/lib/mailman/bin/rmlist              usr/sbin/rmlist
-var/lib/mailman/bin/add_members         usr/sbin/add_members
-var/lib/mailman/bin/list_members        usr/sbin/list_members
-var/lib/mailman/bin/remove_members      usr/sbin/remove_members
-var/lib/mailman/bin/arch                usr/sbin/mmarch
-var/lib/mailman/bin/clone_member        usr/sbin/clone_member
-var/lib/mailman/bin/sync_members        usr/sbin/sync_members
-var/lib/mailman/bin/check_db            usr/sbin/check_db
-var/lib/mailman/bin/check_perms         usr/sbin/check_perms
-var/lib/mailman/bin/list_admins         usr/sbin/list_admins
-var/lib/mailman/bin/withlist            usr/sbin/withlist
-var/lib/mailman/.INST/bin/mmsitepass  var/lib/mailman/bin/mmsitepass
-var/lib/mailman/.INST/bin/newlist  var/lib/mailman/bin/newlist
-var/lib/mailman/.INST/bin/rmlist  var/lib/mailman/bin/rmlist
-var/lib/mailman/.INST/bin/add_members  var/lib/mailman/bin/add_members
-var/lib/mailman/.INST/bin/list_members  var/lib/mailman/bin/list_members
-var/lib/mailman/.INST/bin/remove_members  var/lib/mailman/bin/remove_members
-var/lib/mailman/.INST/bin/clone_member  var/lib/mailman/bin/clone_member
-var/lib/mailman/.INST/bin/update  var/lib/mailman/bin/update
-var/lib/mailman/.INST/bin/arch  var/lib/mailman/bin/arch
-var/lib/mailman/.INST/bin/sync_members  var/lib/mailman/bin/sync_members
-var/lib/mailman/.INST/bin/check_db  var/lib/mailman/bin/check_db
-var/lib/mailman/.INST/bin/withlist  var/lib/mailman/bin/withlist
-var/lib/mailman/.INST/bin/check_perms  var/lib/mailman/bin/check_perms
-var/lib/mailman/.INST/bin/find_member  var/lib/mailman/bin/find_member
-var/lib/mailman/.INST/bin/version  var/lib/mailman/bin/version
-var/lib/mailman/.INST/bin/config_list  var/lib/mailman/bin/config_list
-var/lib/mailman/.INST/bin/list_lists  var/lib/mailman/bin/list_lists
-var/lib/mailman/.INST/bin/dumpdb  var/lib/mailman/bin/dumpdb
-var/lib/mailman/.INST/bin/cleanarch  var/lib/mailman/bin/cleanarch
-var/lib/mailman/.INST/bin/list_admins  var/lib/mailman/bin/list_admins
-var/lib/mailman/.INST/bin/genaliases  var/lib/mailman/bin/genaliases
-var/lib/mailman/.INST/bin/change_pw  var/lib/mailman/bin/change_pw
-var/lib/mailman/.INST/bin/mailmanctl  var/lib/mailman/bin/mailmanctl
-var/lib/mailman/.INST/bin/qrunner  var/lib/mailman/bin/qrunner
-var/lib/mailman/.INST/bin/inject  var/lib/mailman/bin/inject
-var/lib/mailman/.INST/bin/unshunt  var/lib/mailman/bin/unshunt
-var/lib/mailman/.INST/bin/fix_url.py  var/lib/mailman/bin/fix_url.py
-var/lib/mailman/.INST/bin/convert.py  var/lib/mailman/bin/convert.py
-var/lib/mailman/.INST/bin/transcheck  var/lib/mailman/bin/transcheck
-var/lib/mailman/.INST/bin/b4b5-archfix  var/lib/mailman/bin/b4b5-archfix
-var/lib/mailman/.INST/bin/list_owners  var/lib/mailman/bin/list_owners
-var/lib/mailman/.INST/bin/msgfmt.py  var/lib/mailman/bin/msgfmt.py
-var/lib/mailman/.INST/bin/show_qfiles  var/lib/mailman/bin/show_qfiles
-var/lib/mailman/.INST/bin/discard  var/lib/mailman/bin/discard
-var/lib/mailman/.INST/bin/rb-archfix  var/lib/mailman/bin/rb-archfix
-var/lib/mailman/.INST/bin/paths.py  var/lib/mailman/bin/paths.py
-var/lib/mailman/.INST/scripts/bounces  var/lib/mailman/scripts/bounces
-var/lib/mailman/.INST/scripts/confirm  var/lib/mailman/scripts/confirm
-var/lib/mailman/.INST/scripts/driver  var/lib/mailman/scripts/driver
-var/lib/mailman/.INST/scripts/join  var/lib/mailman/scripts/join
-var/lib/mailman/.INST/scripts/leave  var/lib/mailman/scripts/leave
-var/lib/mailman/.INST/scripts/owner  var/lib/mailman/scripts/owner
-var/lib/mailman/.INST/scripts/post  var/lib/mailman/scripts/post
-var/lib/mailman/.INST/scripts/request  var/lib/mailman/scripts/request
-var/lib/mailman/.INST/scripts/admin  var/lib/mailman/scripts/admin
-var/lib/mailman/.INST/scripts/subscribe  var/lib/mailman/scripts/subscribe
-var/lib/mailman/.INST/scripts/unsubscribe  var/lib/mailman/scripts/unsubscribe
-var/lib/mailman/.INST/scripts/paths.py  var/lib/mailman/scripts/paths.py
-var/lib/mailman/.INST/Mailman/Cgi/Auth.py  var/lib/mailman/Mailman/Cgi/Auth.py
-var/lib/mailman/.INST/Mailman/Cgi/__init__.py  var/lib/mailman/Mailman/Cgi/__init__.py
-var/lib/mailman/.INST/Mailman/Cgi/admin.py  var/lib/mailman/Mailman/Cgi/admin.py
-var/lib/mailman/.INST/Mailman/Cgi/admindb.py  var/lib/mailman/Mailman/Cgi/admindb.py
-var/lib/mailman/.INST/Mailman/Cgi/confirm.py  var/lib/mailman/Mailman/Cgi/confirm.py
-var/lib/mailman/.INST/Mailman/Cgi/create.py  var/lib/mailman/Mailman/Cgi/create.py
-var/lib/mailman/.INST/Mailman/Cgi/edithtml.py  var/lib/mailman/Mailman/Cgi/edithtml.py
-var/lib/mailman/.INST/Mailman/Cgi/listinfo.py  var/lib/mailman/Mailman/Cgi/listinfo.py
-var/lib/mailman/.INST/Mailman/Cgi/options.py  var/lib/mailman/Mailman/Cgi/options.py
-var/lib/mailman/.INST/Mailman/Cgi/private.py  var/lib/mailman/Mailman/Cgi/private.py
-var/lib/mailman/.INST/Mailman/Cgi/rmlist.py  var/lib/mailman/Mailman/Cgi/rmlist.py
-var/lib/mailman/.INST/Mailman/Cgi/roster.py  var/lib/mailman/Mailman/Cgi/roster.py
-var/lib/mailman/.INST/Mailman/Cgi/subscribe.py  var/lib/mailman/Mailman/Cgi/subscribe.py
-var/lib/mailman/.INST/Mailman/Logging/Logger.py  var/lib/mailman/Mailman/Logging/Logger.py
-var/lib/mailman/.INST/Mailman/Logging/MultiLogger.py  var/lib/mailman/Mailman/Logging/MultiLogger.py
-var/lib/mailman/.INST/Mailman/Logging/StampedLogger.py  var/lib/mailman/Mailman/Logging/StampedLogger.py
-var/lib/mailman/.INST/Mailman/Logging/Syslog.py  var/lib/mailman/Mailman/Logging/Syslog.py
-var/lib/mailman/.INST/Mailman/Logging/Utils.py  var/lib/mailman/Mailman/Logging/Utils.py
-var/lib/mailman/.INST/Mailman/Logging/__init__.py  var/lib/mailman/Mailman/Logging/__init__.py
-var/lib/mailman/.INST/Mailman/Archiver/__init__.py  var/lib/mailman/Mailman/Archiver/__init__.py
-var/lib/mailman/.INST/Mailman/Archiver/Archiver.py  var/lib/mailman/Mailman/Archiver/Archiver.py
-var/lib/mailman/.INST/Mailman/Archiver/HyperArch.py  var/lib/mailman/Mailman/Archiver/HyperArch.py
-var/lib/mailman/.INST/Mailman/Archiver/HyperDatabase.py  var/lib/mailman/Mailman/Archiver/HyperDatabase.py
-var/lib/mailman/.INST/Mailman/Archiver/pipermail.py  var/lib/mailman/Mailman/Archiver/pipermail.py
-var/lib/mailman/.INST/Mailman/Handlers/Acknowledge.py  var/lib/mailman/Mailman/Handlers/Acknowledge.py
-var/lib/mailman/.INST/Mailman/Handlers/AfterDelivery.py  var/lib/mailman/Mailman/Handlers/AfterDelivery.py
-var/lib/mailman/.INST/Mailman/Handlers/Approve.py  var/lib/mailman/Mailman/Handlers/Approve.py
-var/lib/mailman/.INST/Mailman/Handlers/AvoidDuplicates.py  var/lib/mailman/Mailman/Handlers/AvoidDuplicates.py
-var/lib/mailman/.INST/Mailman/Handlers/CalcRecips.py  var/lib/mailman/Mailman/Handlers/CalcRecips.py
-var/lib/mailman/.INST/Mailman/Handlers/Cleanse.py  var/lib/mailman/Mailman/Handlers/Cleanse.py
-var/lib/mailman/.INST/Mailman/Handlers/CookHeaders.py  var/lib/mailman/Mailman/Handlers/CookHeaders.py
-var/lib/mailman/.INST/Mailman/Handlers/Decorate.py  var/lib/mailman/Mailman/Handlers/Decorate.py
-var/lib/mailman/.INST/Mailman/Handlers/Emergency.py  var/lib/mailman/Mailman/Handlers/Emergency.py
-var/lib/mailman/.INST/Mailman/Handlers/FileRecips.py  var/lib/mailman/Mailman/Handlers/FileRecips.py
-var/lib/mailman/.INST/Mailman/Handlers/Hold.py  var/lib/mailman/Mailman/Handlers/Hold.py
-var/lib/mailman/.INST/Mailman/Handlers/MimeDel.py  var/lib/mailman/Mailman/Handlers/MimeDel.py
-var/lib/mailman/.INST/Mailman/Handlers/Moderate.py  var/lib/mailman/Mailman/Handlers/Moderate.py
-var/lib/mailman/.INST/Mailman/Handlers/OwnerRecips.py  var/lib/mailman/Mailman/Handlers/OwnerRecips.py
-var/lib/mailman/.INST/Mailman/Handlers/Replybot.py  var/lib/mailman/Mailman/Handlers/Replybot.py
-var/lib/mailman/.INST/Mailman/Handlers/SMTPDirect.py  var/lib/mailman/Mailman/Handlers/SMTPDirect.py
-var/lib/mailman/.INST/Mailman/Handlers/Scrubber.py  var/lib/mailman/Mailman/Handlers/Scrubber.py
-var/lib/mailman/.INST/Mailman/Handlers/Sendmail.py  var/lib/mailman/Mailman/Handlers/Sendmail.py
-var/lib/mailman/.INST/Mailman/Handlers/SpamDetect.py  var/lib/mailman/Mailman/Handlers/SpamDetect.py
-var/lib/mailman/.INST/Mailman/Handlers/Tagger.py  var/lib/mailman/Mailman/Handlers/Tagger.py
-var/lib/mailman/.INST/Mailman/Handlers/ToArchive.py  var/lib/mailman/Mailman/Handlers/ToArchive.py
-var/lib/mailman/.INST/Mailman/Handlers/ToDigest.py  var/lib/mailman/Mailman/Handlers/ToDigest.py
-var/lib/mailman/.INST/Mailman/Handlers/ToOutgoing.py  var/lib/mailman/Mailman/Handlers/ToOutgoing.py
-var/lib/mailman/.INST/Mailman/Handlers/ToUsenet.py  var/lib/mailman/Mailman/Handlers/ToUsenet.py
-var/lib/mailman/.INST/Mailman/Handlers/__init__.py  var/lib/mailman/Mailman/Handlers/__init__.py
-var/lib/mailman/.INST/Mailman/Queue/ArchRunner.py  var/lib/mailman/Mailman/Queue/ArchRunner.py
-var/lib/mailman/.INST/Mailman/Queue/BounceRunner.py  var/lib/mailman/Mailman/Queue/BounceRunner.py
-var/lib/mailman/.INST/Mailman/Queue/CommandRunner.py  var/lib/mailman/Mailman/Queue/CommandRunner.py
-var/lib/mailman/.INST/Mailman/Queue/IncomingRunner.py  var/lib/mailman/Mailman/Queue/IncomingRunner.py
-var/lib/mailman/.INST/Mailman/Queue/MaildirRunner.py  var/lib/mailman/Mailman/Queue/MaildirRunner.py
-var/lib/mailman/.INST/Mailman/Queue/NewsRunner.py  var/lib/mailman/Mailman/Queue/NewsRunner.py
-var/lib/mailman/.INST/Mailman/Queue/OutgoingRunner.py  var/lib/mailman/Mailman/Queue/OutgoingRunner.py
-var/lib/mailman/.INST/Mailman/Queue/RetryRunner.py  var/lib/mailman/Mailman/Queue/RetryRunner.py
-var/lib/mailman/.INST/Mailman/Queue/Runner.py  var/lib/mailman/Mailman/Queue/Runner.py
-var/lib/mailman/.INST/Mailman/Queue/Switchboard.py  var/lib/mailman/Mailman/Queue/Switchboard.py
-var/lib/mailman/.INST/Mailman/Queue/VirginRunner.py  var/lib/mailman/Mailman/Queue/VirginRunner.py
-var/lib/mailman/.INST/Mailman/Queue/__init__.py  var/lib/mailman/Mailman/Queue/__init__.py
-var/lib/mailman/.INST/Mailman/Queue/sbcache.py  var/lib/mailman/Mailman/Queue/sbcache.py
-var/lib/mailman/.INST/Mailman/Bouncers/BouncerAPI.py  var/lib/mailman/Mailman/Bouncers/BouncerAPI.py
-var/lib/mailman/.INST/Mailman/Bouncers/Caiwireless.py  var/lib/mailman/Mailman/Bouncers/Caiwireless.py
-var/lib/mailman/.INST/Mailman/Bouncers/Compuserve.py  var/lib/mailman/Mailman/Bouncers/Compuserve.py
-var/lib/mailman/.INST/Mailman/Bouncers/DSN.py  var/lib/mailman/Mailman/Bouncers/DSN.py
-var/lib/mailman/.INST/Mailman/Bouncers/Exchange.py  var/lib/mailman/Mailman/Bouncers/Exchange.py
-var/lib/mailman/.INST/Mailman/Bouncers/Exim.py  var/lib/mailman/Mailman/Bouncers/Exim.py
-var/lib/mailman/.INST/Mailman/Bouncers/GroupWise.py  var/lib/mailman/Mailman/Bouncers/GroupWise.py
-var/lib/mailman/.INST/Mailman/Bouncers/LLNL.py  var/lib/mailman/Mailman/Bouncers/LLNL.py
-var/lib/mailman/.INST/Mailman/Bouncers/Microsoft.py  var/lib/mailman/Mailman/Bouncers/Microsoft.py
-var/lib/mailman/.INST/Mailman/Bouncers/Netscape.py  var/lib/mailman/Mailman/Bouncers/Netscape.py
-var/lib/mailman/.INST/Mailman/Bouncers/Postfix.py  var/lib/mailman/Mailman/Bouncers/Postfix.py
-var/lib/mailman/.INST/Mailman/Bouncers/Qmail.py  var/lib/mailman/Mailman/Bouncers/Qmail.py
-var/lib/mailman/.INST/Mailman/Bouncers/SMTP32.py  var/lib/mailman/Mailman/Bouncers/SMTP32.py
-var/lib/mailman/.INST/Mailman/Bouncers/SimpleMatch.py  var/lib/mailman/Mailman/Bouncers/SimpleMatch.py
-var/lib/mailman/.INST/Mailman/Bouncers/SimpleWarning.py  var/lib/mailman/Mailman/Bouncers/SimpleWarning.py
-var/lib/mailman/.INST/Mailman/Bouncers/Sina.py  var/lib/mailman/Mailman/Bouncers/Sina.py
-var/lib/mailman/.INST/Mailman/Bouncers/Yahoo.py  var/lib/mailman/Mailman/Bouncers/Yahoo.py
-var/lib/mailman/.INST/Mailman/Bouncers/Yale.py  var/lib/mailman/Mailman/Bouncers/Yale.py
-var/lib/mailman/.INST/Mailman/Bouncers/__init__.py  var/lib/mailman/Mailman/Bouncers/__init__.py
-var/lib/mailman/.INST/Mailman/MTA/Manual.py  var/lib/mailman/Mailman/MTA/Manual.py
-var/lib/mailman/.INST/Mailman/MTA/Postfix.py  var/lib/mailman/Mailman/MTA/Postfix.py
-var/lib/mailman/.INST/Mailman/MTA/Utils.py  var/lib/mailman/Mailman/MTA/Utils.py
-var/lib/mailman/.INST/Mailman/MTA/__init__.py  var/lib/mailman/Mailman/MTA/__init__.py
-var/lib/mailman/.INST/Mailman/Gui/Archive.py  var/lib/mailman/Mailman/Gui/Archive.py
-var/lib/mailman/.INST/Mailman/Gui/Autoresponse.py  var/lib/mailman/Mailman/Gui/Autoresponse.py
-var/lib/mailman/.INST/Mailman/Gui/Bounce.py  var/lib/mailman/Mailman/Gui/Bounce.py
-var/lib/mailman/.INST/Mailman/Gui/ContentFilter.py  var/lib/mailman/Mailman/Gui/ContentFilter.py
-var/lib/mailman/.INST/Mailman/Gui/Digest.py  var/lib/mailman/Mailman/Gui/Digest.py
-var/lib/mailman/.INST/Mailman/Gui/GUIBase.py  var/lib/mailman/Mailman/Gui/GUIBase.py
-var/lib/mailman/.INST/Mailman/Gui/General.py  var/lib/mailman/Mailman/Gui/General.py
-var/lib/mailman/.INST/Mailman/Gui/Language.py  var/lib/mailman/Mailman/Gui/Language.py
-var/lib/mailman/.INST/Mailman/Gui/Membership.py  var/lib/mailman/Mailman/Gui/Membership.py
-var/lib/mailman/.INST/Mailman/Gui/NonDigest.py  var/lib/mailman/Mailman/Gui/NonDigest.py
-var/lib/mailman/.INST/Mailman/Gui/Passwords.py  var/lib/mailman/Mailman/Gui/Passwords.py
-var/lib/mailman/.INST/Mailman/Gui/Privacy.py  var/lib/mailman/Mailman/Gui/Privacy.py
-var/lib/mailman/.INST/Mailman/Gui/Topics.py  var/lib/mailman/Mailman/Gui/Topics.py
-var/lib/mailman/.INST/Mailman/Gui/Usenet.py  var/lib/mailman/Mailman/Gui/Usenet.py
-var/lib/mailman/.INST/Mailman/Gui/__init__.py  var/lib/mailman/Mailman/Gui/__init__.py
-var/lib/mailman/.INST/Mailman/Commands/__init__.py  var/lib/mailman/Mailman/Commands/__init__.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_confirm.py  var/lib/mailman/Mailman/Commands/cmd_confirm.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_echo.py  var/lib/mailman/Mailman/Commands/cmd_echo.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_end.py  var/lib/mailman/Mailman/Commands/cmd_end.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_help.py  var/lib/mailman/Mailman/Commands/cmd_help.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_info.py  var/lib/mailman/Mailman/Commands/cmd_info.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_join.py  var/lib/mailman/Mailman/Commands/cmd_join.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_leave.py  var/lib/mailman/Mailman/Commands/cmd_leave.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_lists.py  var/lib/mailman/Mailman/Commands/cmd_lists.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_password.py  var/lib/mailman/Mailman/Commands/cmd_password.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_remove.py  var/lib/mailman/Mailman/Commands/cmd_remove.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_set.py  var/lib/mailman/Mailman/Commands/cmd_set.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_stop.py  var/lib/mailman/Mailman/Commands/cmd_stop.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_subscribe.py  var/lib/mailman/Mailman/Commands/cmd_subscribe.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_unsubscribe.py  var/lib/mailman/Mailman/Commands/cmd_unsubscribe.py
-var/lib/mailman/.INST/Mailman/Commands/cmd_who.py  var/lib/mailman/Mailman/Commands/cmd_who.py
-var/lib/mailman/.INST/Mailman/Autoresponder.py  var/lib/mailman/Mailman/Autoresponder.py
-var/lib/mailman/.INST/Mailman/Bouncer.py  var/lib/mailman/Mailman/Bouncer.py
-var/lib/mailman/.INST/Mailman/Defaults.py  var/lib/mailman/Mailman/Defaults.py
-var/lib/mailman/.INST/Mailman/Deliverer.py  var/lib/mailman/Mailman/Deliverer.py
-var/lib/mailman/.INST/Mailman/Digester.py  var/lib/mailman/Mailman/Digester.py
-var/lib/mailman/.INST/Mailman/Errors.py  var/lib/mailman/Mailman/Errors.py
-var/lib/mailman/.INST/Mailman/GatewayManager.py  var/lib/mailman/Mailman/GatewayManager.py
-var/lib/mailman/.INST/Mailman/HTMLFormatter.py  var/lib/mailman/Mailman/HTMLFormatter.py
-var/lib/mailman/.INST/Mailman/ListAdmin.py  var/lib/mailman/Mailman/ListAdmin.py
-var/lib/mailman/.INST/Mailman/LockFile.py  var/lib/mailman/Mailman/LockFile.py
-var/lib/mailman/.INST/Mailman/MailList.py  var/lib/mailman/Mailman/MailList.py
-var/lib/mailman/.INST/Mailman/Mailbox.py  var/lib/mailman/Mailman/Mailbox.py
-var/lib/mailman/.INST/Mailman/MemberAdaptor.py  var/lib/mailman/Mailman/MemberAdaptor.py
-var/lib/mailman/.INST/Mailman/Message.py  var/lib/mailman/Mailman/Message.py
-var/lib/mailman/.INST/Mailman/OldStyleMemberships.py  var/lib/mailman/Mailman/OldStyleMemberships.py
-var/lib/mailman/.INST/Mailman/Pending.py  var/lib/mailman/Mailman/Pending.py
-var/lib/mailman/.INST/Mailman/Post.py  var/lib/mailman/Mailman/Post.py
-var/lib/mailman/.INST/Mailman/SafeDict.py  var/lib/mailman/Mailman/SafeDict.py
-var/lib/mailman/.INST/Mailman/SecurityManager.py  var/lib/mailman/Mailman/SecurityManager.py
-var/lib/mailman/.INST/Mailman/Site.py  var/lib/mailman/Mailman/Site.py
-var/lib/mailman/.INST/Mailman/TopicMgr.py  var/lib/mailman/Mailman/TopicMgr.py
-var/lib/mailman/.INST/Mailman/UserDesc.py  var/lib/mailman/Mailman/UserDesc.py
-var/lib/mailman/.INST/Mailman/Utils.py  var/lib/mailman/Mailman/Utils.py
-var/lib/mailman/.INST/Mailman/Version.py  var/lib/mailman/Mailman/Version.py
-var/lib/mailman/.INST/Mailman/__init__.py  var/lib/mailman/Mailman/__init__.py
-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/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
-var/lib/mailman/.INST/cron/senddigests  var/lib/mailman/cron/senddigests
-var/lib/mailman/.INST/cron/gate_news  var/lib/mailman/cron/gate_news
-var/lib/mailman/.INST/cron/nightly_gzip  var/lib/mailman/cron/nightly_gzip
-var/lib/mailman/.INST/cron/bumpdigests  var/lib/mailman/cron/bumpdigests
-var/lib/mailman/.INST/cron/disabled  var/lib/mailman/cron/disabled
-var/lib/mailman/.INST/cron/paths.py  var/lib/mailman/cron/paths.py
+etc/mailman/mm_cfg.py                   usr/lib/mailman/Mailman/mm_cfg.py
+usr/lib/mailman/bin/list_lists          usr/sbin/list_lists
+usr/lib/mailman/bin/find_member         usr/sbin/find_member
+usr/lib/mailman/bin/config_list         usr/sbin/config_list
+usr/lib/mailman/bin/mmsitepass          usr/sbin/mmsitepass
+usr/lib/mailman/bin/newlist             usr/sbin/newlist
+usr/lib/mailman/bin/rmlist              usr/sbin/rmlist
+usr/lib/mailman/bin/add_members         usr/sbin/add_members
+usr/lib/mailman/bin/list_members        usr/sbin/list_members
+usr/lib/mailman/bin/remove_members      usr/sbin/remove_members
+usr/lib/mailman/bin/arch                usr/sbin/mmarch
+usr/lib/mailman/bin/clone_member        usr/sbin/clone_member
+usr/lib/mailman/bin/sync_members        usr/sbin/sync_members
+usr/lib/mailman/bin/check_db            usr/sbin/check_db
+usr/lib/mailman/bin/check_perms         usr/sbin/check_perms
+usr/lib/mailman/bin/list_admins         usr/sbin/list_admins
+usr/lib/mailman/bin/withlist            usr/sbin/withlist

Modified: branches/pkg-split/core/debian/mailman.postinst
===================================================================
--- branches/pkg-split/core/debian/mailman.postinst	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.postinst	2004-05-18 16:29:43 UTC (rev 130)
@@ -8,8 +8,8 @@
 . /usr/share/debconf/confmodule
 """
 
-
 import sys, os
+virgin_gbls = globals().copy()
 
 
 # Argl, if the debconf Python interface were well designed, sth like
@@ -28,62 +28,16 @@
 from debconf import DebconfError, LOW, MEDIUM, HIGH, CRITICAL
 
 
+MM_INST = '/usr/lib/mailman'
 MM_HOME = '/var/lib/mailman'
-MM_BIN  = os.path.join(MM_HOME, 'bin')
-MM_INST = '/usr/share/mailman'
+MM_BIN  = os.path.join(MM_INST, 'bin')
 
-sys.path.insert(0, MM_HOME)
+sys.path.insert(0, MM_INST)
 
 from Mailman.Debian import DebuggingLogger, CommandRunner, cfdb
 from errno import ENOENT
 
 
-
-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.
-    """#
-    from Mailman.Debian import mm_languages
-
-    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 compile_modules(directory):
     """Compiles all python modules in the specified directory.
 
@@ -105,14 +59,58 @@
     log(' done.')
 
 
+def default_mm_cfg():
+    """Get default configuration.
+    """#
+    gbls = virgin_gbls.copy()
+    exec 'from Mailman.Defaults import *' in gbls
+    return gbls
+
 def create_mm_cfg():
     """Create an initial /etc/mailman/mm_cfg.py
 
     This works only for a first time install.
     """#
     try:
-        gbls = globals().copy()
+        from Mailman.Debian import mm_cfg_defaults, mm_cfg_fillin
+        mm_cfg_fl = open('/etc/mailman/mm_cfg.py', 'w')
+        # Writing a constant prefix (including the import from Defaults)
+        # beforehand makes sure there is a formally working mm_cfg.
+        mm_cfg_fl.write(mm_cfg_defaults)
+        mm_cfg_fl.flush()
 
+        gbls = default_mm_cfg()
+
+        email_host = db.get('mailman/email_host')
+        gbls['DEFAULT_EMAIL_HOST'] = email_host
+        log('DEBCONF email_host=%(DEFAULT_EMAIL_HOST)r' % gbls, lvl=2)
+        url_host = db.get('mailman/url_host') or 'www.'+email_host
+        gbls['DEFAULT_URL_HOST']   = url_host
+        log('DEBCONF url_host=%(DEFAULT_URL_HOST)r' % gbls, lvl=2)
+        server_language = db.get('mailman/default_server_language') or 'en'
+        gbls['DEFAULT_SERVER_LANGUAGE'] = server_language
+        exec 'from urlparse import urlsplit' in gbls
+        exec 'default_url_path = urlsplit(DEFAULT_URL_PATTERN)[2]' in gbls
+        mm_cfg_fl.write(mm_cfg_fillin % gbls)
+        mm_cfg_fl.close()
+    except DebconfError, exc:
+        log.exception()
+
+
+def update_mm_cfg():
+    """Update an existing /etc/mailman/mm_cfg.py.
+
+    Given upgrade paths from 2.0 MM installations and somewhat
+    broken mm_cfg files from 2.1 installations try to translate
+    obsolete variables to their 2.1 counterparts.
+    """#
+    etc_mm_cfg = '/etc/mailman/mm_cfg.py'
+    def_gbls = default_mm_cfg()
+    usr_gbls = virgin_gbls.copy()
+    sys.modules['Defaults'] = sys.modules['Mailman.Defaults']
+    execfile(etc_mm_cfg, usr_gbls)
+    os.rename(etc_mm_cfg, etc_mm_cfg+'.dpkg-old')
+    try:
         from Mailman.Debian import mm_cfg_defaults, mm_cfg_fillin
         mm_cfg_fl = open('/etc/mailman/mm_cfg.py', 'w')
         # Writing a constant prefix (including the import from Defaults)
@@ -128,6 +126,10 @@
         url_host = db.get('mailman/url_host') or 'www.'+email_host
         gbls['DEFAULT_URL_HOST']   = url_host
         log('DEBCONF url_host=%(DEFAULT_URL_HOST)r' % gbls, lvl=2)
+        server_language = db.get('mailman/default_server_language') or 'en'
+        gbls['DEFAULT_SERVER_LANGUAGE'] = server_language
+        exec 'from urlparse import urlsplit' in gbls
+        exec 'default_url_path = urlsplit(DEFAULT_URL_PATTERN)[2]' in gbls
         mm_cfg_fl.write(mm_cfg_fillin % gbls)
         mm_cfg_fl.close()
     except DebconfError, exc:
@@ -149,11 +151,6 @@
 
     try:
         old_crontab = open(cron_tab).read()
-        cur_crontab = fix_pathes(old_crontab)
-        if cur_crontab != old_crontab:
-            open(cron_tab, 'w').write(cur_crontab)
-            log('Fixed pathes in %(cron_tab)r.' % locals())
-            old_crontab = cur_crontab
         cur_crontab = apply_gate_news(old_crontab, gate_news)
         if cur_crontab != old_crontab:
             open(cron_tab, 'w').write(cur_crontab)
@@ -163,9 +160,9 @@
     new_crontab = apply_gate_news(mm_crontab, gate_news)
 
     # Make sure cfdb comparision use identical gate_news settings
-    if cfdb.has_key(cron_tab):
+    try:
         cfdb[cron_tab] = apply_gate_news(cfdb[cron_tab], gate_news)
-    else:
+    except KeyError:
         cfdb.register(cron_tab, new_crontab)
 
     msg = cfdb.update(cron_tab, data=new_crontab)
@@ -173,24 +170,12 @@
 
 
 
-def fix_pathes(crontab):
-    """Fix obsolete /usr/lib/mailman/cron pathes"""
-    lines = crontab.split('\n')
-    cron_lines = []
-    for line in lines:
-        pos = line.find('/usr/lib/mailman')
-        if pos >= 0:
-            line = line[:pos] + '/var' + line[pos+4:]
-        cron_lines.append(line)
-    return '\n'.join(cron_lines)
-
-
 def apply_gate_news(crontab, gate_news):
     """Apply gate_news setting to crontab string"""
     lines = crontab.split('\n')
     cron_lines = []
     for line in lines:
-        if line.find('/var/lib/mailman/cron/gate_news') > 0:
+        if line.find('/usr/lib/mailman/cron/gate_news') > 0:
             prefix = (gate_news and [''] or ['# '])[0]
             line = prefix + uncomment(line)
         cron_lines.append(line)
@@ -230,19 +215,20 @@
     return rc
 
 
-def run_debhelper_additions():
-    from Mailman import mm_cfg
-    help = os.path.join(mm_cfg.TEMPLATE_DIR,
-                        mm_cfg.DEFAULT_SERVER_LANGUAGE,
-                        'help.txt')
-    log(os.path.isfile(help) and 'Will start daemon.'
-        or 'Will not start daemon.', lvl=2)
-    enabled = os.path.isfile(help) and '+x' or '-x'
+def start_mm_qrunner():
+    log('>> entering start_mm_qrunner', lvl=3)
+
+    try:
+        if cfdb['mailman/templates'] in ('mailman-en', 'mailman-i18n'):
+            log('Will start qrunners.', lvl=2)
+    except KeyError:
+        log('Will not start qrunners.', lvl=2)
+        return
+
     from popen2 import Popen4
     runner = Popen4('/bin/sh -e')
     runner.tochild.write("""\
-chmod %s /var/lib/mailman/bin/mailmanctl
-#DEBHELPER#""" % enabled)
+#DEBHELPER#""")
     runner.tochild.close()
     while True:
         rc = runner.poll()
@@ -250,26 +236,32 @@
         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)
 
 
 def setup():
-    compile_modules(MM_HOME)
-    ucf_to_cfdb()
+    compile_modules(MM_INST)
+##     ucf_to_cfdb()
     create_mm_cfg()
     update_cron()
     update_lists()
     fix_perms()
-    run_debhelper_additions()
 
 
 if __name__ == '__main__':
     log = DebuggingLogger('MM_MAINT')
     try:
-        function    = sys.argv[1]
-        inst_version = sys.argv[2]
-        if function in ('configure',):
+        op = sys.argv[1]
+        if op == 'configure':
             setup()
+        if op in ('configure','abort-upgrade','abort-remove','abort-deconfigure'):
+            cfdb['mailman/setup'] = 'ok'
+            start_mm_qrunner()
+        else:
+            log("postinst called with unknown argument %r." % op)
+            raise SystemExit(1)
+        sys.exit(0)
     finally:
         # When things break, this information might be useful
         log.sys_info()

Modified: branches/pkg-split/core/debian/mailman.postrm
===================================================================
--- branches/pkg-split/core/debian/mailman.postrm	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.postrm	2004-05-18 16:29:43 UTC (rev 130)
@@ -2,12 +2,15 @@
 # $URL$
 # $Id$
 
+echo ">>> $0 $*" >&2
+
 #DEBHELPER#
 
 if [ "$1" = purge ]; then
   rm -f /etc/cron.d/mailman 
   rm -rf /etc/mailman
   rm -rf /var/log/mailman
-  rm -f /var/lib/mailman/data/debcf.db
 #  rm -rf /var/lib/mailman
 fi
+
+exit 0
\ No newline at end of file

Modified: branches/pkg-split/core/debian/mailman.preinst
===================================================================
--- branches/pkg-split/core/debian/mailman.preinst	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.preinst	2004-05-18 16:29:43 UTC (rev 130)
@@ -1,7 +1,11 @@
 #!/bin/sh -e
 # $URL$
 # $Id$
+echo ">>> $0 $*" >&2
 
+mm_inst=/usr/lib/mailman
+mm_home=/var/lib/mailman
+
 if [ "$1" = "install" ]; then
 	if ! id -g list > /dev/null 2>&1 ; then
 		addgroup --system list
@@ -13,21 +17,24 @@
 fi
 
 if [ "$1" = "install" ] || [ "$1" = "upgrade" ]; then
-	if [ -d /var/lib/mailman/logs ] && [ ! -L /var/lib/mailman/logs ] ; then
+	if [ -d ${mm_home}/logs ] && [ ! -L ${mm_home}/logs ] ; then
 		echo "New logs will be generated in /var/log/mailman"
 	fi
 fi
 
-if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt 2.1; then
+if [ "$1" = "upgrade" ] ; then
     # upgrading, make sure the qfiles directory is empty.
-    if ls /var/lib/mailman/qfiles 2>/dev/null | grep -q '.*' ; then
+    old_qdir=${mm_home}/qfiles
+    if dpkg --compare-versions "$2" ge 2.1 ; then
+        old_qdir=${old_qdir}/in
+    fi
+    if ls ${old_qdir} 2>/dev/null | grep -q '.*' ; then
         # uh-oh.
-        echo "Queue not cleared, please flush mailman queue and retry upgrade"
+        echo "Queue ${old_qdir} not cleared, please flush mailman queue and retry upgrade."
         exit 1
     fi
 fi
 
-mm_home=/var/lib/mailman
 pythonlib=${mm_home}/pythonlib
 
 if [ -d ${pythonlib} ] && [ "$(ls -A ${pythonlib})" != "" ] ; then
@@ -49,10 +56,10 @@
     esac
 fi
 
-# Before unpacking make sure no symlink cruft is left in ${mm_home}
+# Before unpacking make sure no symlink cruft is left in ${mm_inst}
 for d in Mailman bin cron mail pythonlib scripts ; do
-    if [ -L ${mm_home}/${d} ]; then
-        rm -f ${mm_home}/${d}
+    if [ -L ${mm_inst}/${d} ]; then
+        rm -f ${mm_inst}/${d}
     fi
 done
 

Modified: branches/pkg-split/core/debian/mailman.prerm
===================================================================
--- branches/pkg-split/core/debian/mailman.prerm	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.prerm	2004-05-18 16:29:43 UTC (rev 130)
@@ -5,39 +5,42 @@
 #
 # $URL$
 # $Id$
+echo ">>> $0 $*" >&2
 
-# Hack to allow upgrade from broken 2.1.1 installs where stopping
-# mailman will fail.  This hack can be removed after sarge+1 is released.
+PACKAGE=mailman
 
-if [ "$1" = "failed-upgrade" -a \( "$2" = "2.1.1-1" -o \
-     "$2" = "2.1.1-2" -o "$2" = "2.1.1-3" \) ]; then
-  if [ -x "/etc/init.d/mailman" ]; then
-    if [ -x /usr/sbin/invoke-rc.d ] ; then
-   	  invoke-rc.d mailman stop || true
-    else
-      /etc/init.d/mailman stop || true
-    fi
-  fi
-  chmod -x /usr/lib/mailman/bin/mailmanctl
-fi
+unset_mm_setup () {
+python <<EOF
+import sys; sys.path.insert(0, '/usr/lib/mailman')
+try:
+    from Mailman.Debian import cfdb
+    del cfdb['mailman/setup']
+except:
+    pass
+EOF
+}
 
-if [ "$1" = "failed-upgrade" ] && dpkg --compare-versions "$2" gt "2.1.4-2" ; then
-  if [ -x "/etc/init.d/mailman" ]; then
-    if [ -x /usr/sbin/invoke-rc.d ] ; then
-      invoke-rc.d mailman stop || true
-    else
-      /etc/init.d/mailman stop || true
-    fi
-  fi
-  chmod -x /usr/lib/mailman/bin/mailmanctl
-fi
-
+mm_shutdown () {
 #DEBHELPER#
+}
 
-PACKAGE=mailman
 
+case "$1" in
+    upgrade|remove)
+        unset_mm_setup
+        mm_shutdown
+        ;;
+    failed-upgrade)
+        if [ "$2" = "2.1.1-1" -o "$2" = "2.1.1-2" -o "$2" = "2.1.1-3" ] ; then
+            mm_shutdown
+        elif dpkg --compare-versions "$2" gt "2.1.4-2" ; then
+            mm_shutdown
+        fi
+esac
+
+
 # dh_python doesn't do TRT[tm], do it manually
-# We have created symlinks and compiled .py files in the postinst, undo now.
+# 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

Modified: branches/pkg-split/core/debian/mailman.templates
===================================================================
--- branches/pkg-split/core/debian/mailman.templates	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/mailman.templates	2004-05-18 16:29:43 UTC (rev 130)
@@ -1,26 +1,5 @@
 # $URL$
 # $Id$
-Template: mailman/site_languages
-Type: multiselect
-__Choices: big5, ca, cs, da, de, en, es, et, eu, fi, fr, gb, hr, hu, it, ja, ko, lt, nl, no, pl, pt, pt_BR, ro, ru, sl, sr, sv, uk
-Default: en
-_Description: Which languages to support?  
- For each supported language Debian Mailman stores default language
- specific texts in /etc/mailman/LANG/ giving them conffile like
- treatment with the help of ucf.  This means approximately 150kB for
- each supported language on the root FS.
- .
- If you need a different set of languages at a later time, just run
- dpkg-reconfigure mailman.
- .
- NOTE: Languages enabled on existing mailing lists are forcibly
- reenabled when deselected and mailman needs at least one language for
- displaying it's messages.
-
-Template: mailman/used_languages
-Type: string
-Description: Internal holding result of scan
-
 Template: mailman/gate_news
 Type: boolean
 Default: false
@@ -67,3 +46,36 @@
  .
  In any case if this isn't the FQDN of this host, you must configure
  it as a virtual host in your web server.
+
+Template: mailman/site_languages
+Type: multiselect
+__Choices: big5, ca, cs, da, de, en, es, et, eu, fi, fr, gb, hr, hu, it, ja, ko, lt, nl, no, pl, pt, pt_BR, ro, ru, sl, sr, sv, uk
+Default: en
+_Description: Which languages to support?  
+ For each supported language Debian Mailman stores default language
+ specific texts in /etc/mailman/LANG/ giving them conffile like
+ treatment with the help of ucf.  This means approximately 150kB for
+ each supported language on the root FS.
+ .
+ If you need a different set of languages at a later time, just run
+ dpkg-reconfigure mailman.
+ .
+ NOTE: Languages enabled on existing mailing lists are forcibly
+ reenabled when deselected and mailman needs at least one language for
+ displaying it's messages.
+
+Template: mailman/used_languages
+Type: string
+Description: Internal holding result of scan
+
+Template: mailman/other_languages
+Type: note
+_Description: Unsupported languages used 
+ The mailman-en package supports only english mailing lists while this
+ installation has support for multiple languages enabled.
+ .
+ Before retrying to install the ${infavor} package, please make sure
+ all mailing lists use only english, then dpkg-reconfigue ${package}
+ disabling all languages but english.
+
+ 
\ No newline at end of file

Modified: branches/pkg-split/core/debian/patches/00list
===================================================================
--- branches/pkg-split/core/debian/patches/00list	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/patches/00list	2004-05-18 16:29:43 UTC (rev 130)
@@ -21,5 +21,7 @@
 55_options_traceback
 56_fix_de_broken_links
 57_fix_missing_da_template
+58_fix_translations
+59_build_arch_indep
 60_type_error_temp_fix
 99_js_templates

Modified: branches/pkg-split/core/debian/patches/40_FHS_dirs.dpatch
===================================================================
--- branches/pkg-split/core/debian/patches/40_FHS_dirs.dpatch	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/patches/40_FHS_dirs.dpatch	2004-05-18 16:29:43 UTC (rev 130)
@@ -25,8 +25,8 @@
 
 @DPATCH@
 diff -urNad /debuild/mine/mailman/build-area/mailman-2.1.4/Mailman/Defaults.py.in mailman-2.1.4/Mailman/Defaults.py.in
---- /debuild/mine/mailman/build-area/mailman-2.1.4/Mailman/Defaults.py.in	2004-05-06 21:24:46.000000000 +0200
-+++ mailman-2.1.4/Mailman/Defaults.py.in	2004-05-06 21:26:55.000000000 +0200
+--- /debuild/mine/mailman/build-area/mailman-2.1.4/Mailman/Defaults.py.in	2004-05-16 15:22:46.000000000 +0200
++++ mailman-2.1.4/Mailman/Defaults.py.in	2004-05-16 15:23:40.000000000 +0200
 @@ -1220,15 +1220,15 @@
  
  # Useful directories
@@ -38,12 +38,10 @@
  DATA_DIR        = os.path.join(VAR_PREFIX, 'data')
  SPAM_DIR        = os.path.join(VAR_PREFIX, 'spam')
  WRAPPER_DIR     = os.path.join(EXEC_PREFIX, 'mail')
--BIN_DIR         = os.path.join(PREFIX, 'bin')
--SCRIPTS_DIR     = os.path.join(PREFIX, 'scripts')
+ BIN_DIR         = os.path.join(PREFIX, 'bin')
+ SCRIPTS_DIR     = os.path.join(PREFIX, 'scripts')
 -TEMPLATE_DIR    = os.path.join(PREFIX, 'templates')
 -MESSAGES_DIR    = os.path.join(PREFIX, 'messages')
-+BIN_DIR         = os.path.join(VAR_PREFIX, 'bin')
-+SCRIPTS_DIR     = os.path.join(VAR_PREFIX, 'scripts')
 +TEMPLATE_DIR    = '/etc/mailman/templates'
 +MESSAGES_DIR    = '/usr/share/locale'
  PUBLIC_ARCHIVE_FILE_DIR  = os.path.join(VAR_PREFIX, 'archives', 'public')

Added: branches/pkg-split/core/debian/patches/58_fix_translations.dpatch
===================================================================
--- branches/pkg-split/core/debian/patches/58_fix_translations.dpatch	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/patches/58_fix_translations.dpatch	2004-05-18 16:29:43 UTC (rev 130)
@@ -0,0 +1,39 @@
+#! /bin/sh -e
+## 58_fix_translations.dpatch by  Siggy Brentrup <bsb at debian.org>
+##
+## $URL$
+## $Id$
+##
+## DP: Fix translation errors
+
+if [ $# -lt 1 ]; then
+    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
+
+case "$1" in
+    -patch) patch -p1 ${patch_opts} < $0;;
+    -unpatch) patch -R -p1 ${patch_opts} < $0;;
+    *)
+        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+        exit 1;;
+esac
+
+exit 0
+
+ at DPATCH@
+diff -urNad /debuild/mine/mailman/build-area/mailman-2.1.4/messages/es/LC_MESSAGES/mailman.po mailman-2.1.4/messages/es/LC_MESSAGES/mailman.po
+--- /debuild/mine/mailman/build-area/mailman-2.1.4/messages/es/LC_MESSAGES/mailman.po	2003-12-13 20:54:53.000000000 +0100
++++ mailman-2.1.4/messages/es/LC_MESSAGES/mailman.po	2004-05-09 13:49:31.000000000 +0200
+@@ -1945,7 +1945,7 @@
+ 
+ #: Mailman/Cgi/create.py:200 bin/newlist:164
+ msgid "Illegal list name: %(s)s"
+-msgstr "Nombre de lista ilegal: %(opt)s"
++msgstr "Nombre de lista ilegal: %(s)s"
+ 
+ #: Mailman/Cgi/create.py:205
+ msgid ""


Property changes on: branches/pkg-split/core/debian/patches/58_fix_translations.dpatch
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id URL

Added: branches/pkg-split/core/debian/patches/59_build_arch_indep.dpatch
===================================================================
--- branches/pkg-split/core/debian/patches/59_build_arch_indep.dpatch	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/patches/59_build_arch_indep.dpatch	2004-05-18 16:29:43 UTC (rev 130)
@@ -0,0 +1,124 @@
+#! /bin/sh -e
+## 59_build_arch_indep.dpatch by  Siggy Brentrup <bsb at debian.org>
+##
+## $URL$
+## $Id$
+##
+## DP: Separate targets do-arch-install and do-indep-install.
+
+if [ $# -lt 1 ]; then
+    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
+
+case "$1" in
+    -patch) patch -p1 ${patch_opts} < $0;;
+    -unpatch) patch -R -p1 ${patch_opts} < $0;;
+    *)
+        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+        exit 1;;
+esac
+
+exit 0
+
+ at DPATCH@
+diff -urNad /debuild/mine/mailman/build-area/mailman-2.1.4/Makefile.in mailman-2.1.4/Makefile.in
+--- /debuild/mine/mailman/build-area/mailman-2.1.4/Makefile.in	2004-05-10 11:09:41.000000000 +0200
++++ mailman-2.1.4/Makefile.in	2004-05-10 11:22:31.000000000 +0200
+@@ -55,7 +55,9 @@
+ ARCH_DEP_DIRS=	cgi-bin mail
+ 
+ # Directories make should decend into
+-SUBDIRS=	bin cron misc Mailman scripts src templates messages tests
++ARCH_SUBDIRS  = src
++INDEP_SUBDIRS = bin cron misc Mailman scripts templates messages tests
++SUBDIRS       = $(ARCH_SUBDIRS) $(INDEP_SUBDIRS)	
+ 
+ 
+ # Modes for directories and executables created by the install
+@@ -73,21 +75,27 @@
+ 
+ # Rules
+ 
+-all: subdirs
++all: arch-subdirs indep-subdirs
+ 
+-subdirs: $(SUBDIRS)
+-	for d in $(SUBDIRS); \
++arch-subdirs: $(ARCH_SUBDIRS)
++	for d in $(ARCH_SUBDIRS); \
+ 	do \
+ 	    (cd $$d; $(MAKE)); \
+ 	done
+ 
+-install: doinstall update
++indep-subdirs: $(INDEP_SUBDIRS)
++	for d in $(INDEP_SUBDIRS); \
++	do \
++	    (cd $$d; $(MAKE)); \
++	done
+ 
+-doinstall: $(SUBDIRS)
+-	@echo "Creating architecture independent directories..."
+-	@for d in $(VAR_DIRS); \
++install: do-arch-install do-indep-install update
++
++do-arch-install: $(ARCH_SUBDIRS)
++	@echo "Creating architecture dependent directories..."
++	@for d in $(ARCH_DEP_DIRS); \
+ 	do \
+-	    dir=$(DESTDIR)$(var_prefix)/$$d; \
++	    dir=$(DESTDIR)$(exec_prefix)/$$d; \
+ 	    if test ! -d $$dir; then \
+ 		echo "Creating directory hierarchy $$dir"; \
+ 		$(srcdir)/mkinstalldirs $$dir; \
+@@ -96,31 +104,37 @@
+ 	    else true; \
+ 	    fi; \
+ 	done
+-	chmod o-r $(DESTDIR)$(var_prefix)/archives/private
+-	@for d in $(ARCH_INDEP_DIRS); \
++	@for d in $(ARCH_SUBDIRS); \
+ 	do \
+-	    dir=$(DESTDIR)$(prefix)/$$d; \
++	    (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
++	done
++
++do-indep-install: $(INDEP_SUBDIRS)
++	@echo "Creating architecture independent directories..."
++	@for d in $(VAR_DIRS); \
++	do \
++	    dir=$(DESTDIR)$(var_prefix)/$$d; \
+ 	    if test ! -d $$dir; then \
+-		echo "Creating directory hierarchy $$dir"; \
++		echo "Creating directory hierarchy $$dir"; \
+ 		$(srcdir)/mkinstalldirs $$dir; \
+ 		chmod $(DIRMODE) $$dir; \
+ 		$(DIRSETGID) $$dir; \
+ 	    else true; \
+ 	    fi; \
+ 	done
+-	@echo "Creating architecture dependent directories..."
+-	@for d in $(ARCH_DEP_DIRS); \
++	chmod o-r $(DESTDIR)$(var_prefix)/archives/private
++	@for d in $(ARCH_INDEP_DIRS); \
+ 	do \
+-	    dir=$(DESTDIR)$(exec_prefix)/$$d; \
++	    dir=$(DESTDIR)$(prefix)/$$d; \
+ 	    if test ! -d $$dir; then \
+-		echo "Creating directory hierarchy $$dir"; \
++		echo "Creating directory hierarchy $$dir"; \
+ 		$(srcdir)/mkinstalldirs $$dir; \
+ 		chmod $(DIRMODE) $$dir; \
+ 		$(DIRSETGID) $$dir; \
+ 	    else true; \
+ 	    fi; \
+ 	done
+-	@for d in $(SUBDIRS); \
++	@for d in $(INDEP_SUBDIRS); \
+ 	do \
+ 	    (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
+ 	done


Property changes on: branches/pkg-split/core/debian/patches/59_build_arch_indep.dpatch
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id URL

Modified: branches/pkg-split/core/debian/rules
===================================================================
--- branches/pkg-split/core/debian/rules	2004-05-14 07:01:11 UTC (rev 129)
+++ branches/pkg-split/core/debian/rules	2004-05-18 16:29:43 UTC (rev 130)
@@ -22,23 +22,28 @@
 INSTALL_PROGRAM += -s
 endif
 
-build: patch-stamp Makefile debian/po/templates.pot
-	$(MAKE) 
-	mkdir -p debian/tmp/usr/share/images/mailman
-	$(MAKE) doinstall DESTDIR=$$(pwd)/debian/tmp \
-		prefix=/usr/lib/$(package) \
-		icondir=/usr/share/images/mailman \
-		ICONDIR=/usr/share/images/mailman
-	touch build
+ifeq (,$(findstring archonly,$(DEB_BUILD_OPTIONS)))
+build: build-arch build-indep
+else
+build: build-arch
+endif
 
+
+build-arch: patch-stamp Makefile
+	$(MAKE) arch-subdirs 
+	touch build-arch
+
+build-indep: patch-stamp Makefile debian/po/templates.pot
+	$(MAKE) indep-subdirs 
+	touch build-indep
+
 debian/po/templates.pot: debian/po/POTFILES.in debian/mailman.templates \
 		debian/mailman-en.templates debian/mailman-i18n.templates
 	@debconf-updatepo
 
 Makefile:
 	autoconf
-	./configure --prefix=/var/lib/$(package) \
-		--exec-prefix=/usr/lib/$(package) \
+	./configure --prefix=/usr/lib/$(package) \
 		--with-var-prefix=/var/lib/$(package) \
 		--with-username=list --with-groupname=list \
 		--with-mail-gid=daemon --with-cgi-gid=www-data \
@@ -48,15 +53,18 @@
 clean: unpatch
 	$(checkdir)
 	-$(MAKE) distclean
-	rm -rf build Makefile
+	rm -rf build-indep build-arch Makefile
 	dh_clean
 	rm -rf $$(find . -name "*~")
-	rm -rf debian/tmp debian/mailman debian/mailman-{bin,i18n,doc}
-	find .. -name $(package)*dsc.asc -size 0 -maxdepth 1 -exec rm {} ";"
+	rm -rf debian/tmp debian/mailman debian/mailman-{bin,i18n,doc,trans}
 
 
-binary-arch:	checkroot build
+
+binary-arch:	checkroot build-arch
 	$(checkdir)
+
+	$(MAKE) do-arch-install DESTDIR=$$(pwd)/debian/tmp
+
 	dh_installdirs --same-arch
 	dh_installdocs --same-arch
 	dh_installchangelogs --same-arch
@@ -75,8 +83,12 @@
 	dh_md5sums --same-arch
 	dh_builddeb --same-arch
 
-binary-indep:	checkroot build
+binary-indep:	checkroot build-indep
 	$(checkdir)
+
+	mkdir -p debian/tmp/usr/share/images/mailman
+	$(MAKE) do-indep-install DESTDIR=$$(pwd)/debian/tmp
+
 	dh_installdirs --indep
 	dh_installdocs --indep
 	dh_installchangelogs --indep
@@ -86,15 +98,15 @@
 	dh_installinit --indep
 	dh_fixperms --indep
 
-	# remove that wrapper, it's in mailman-bin
-	rm debian/mailman/usr/share/mailman/mail/mailman
 	# remove .po files
 	rm -f $$(find debian/mailman-i18n/usr/share/locale -name mailman.po)
+	# remove templates.py which belongs into mailman
+	rm -f debian/mailman-trans/usr/lib/mailman/Mailman/Debian/templates.py
 	# move language README.lang to doc directory
 	mv $$(find debian/mailman-i18n/usr/share/locale -name README.\*) \
 		debian/mailman-i18n/usr/share/doc/mailman-i18n
 	# Mailman/Post.py may be run as a script
-	chmod a+x debian/mailman/usr/share/mailman/Mailman/Post.py
+	chmod a+x debian/mailman/usr/lib/mailman/Mailman/Post.py
 	# Remove irrelevant READMEs
 	rm -f debian/mailman/usr/share/doc/mailman/README.{BSD,MACOSX}
 




More information about the Pkg-mailman-hackers mailing list