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

Bernd S. Brentrup bsb@haydn.debian.org
Mon, 24 May 2004 09:23:42 -0600


Author: bsb
Date: 2004-05-24 09:23:40 -0600 (Mon, 24 May 2004)
New Revision: 156

Added:
   branches/pkg-split/core/debian/contrib/used_languages.py
   branches/pkg-split/core/debian/patches/81_templates_default.dpatch
Removed:
   branches/pkg-split/core/debian/mailman-cfdb.dirs
   branches/pkg-split/core/debian/mailman-cfdb.install
   branches/pkg-split/core/debian/mailman-cfdb.postinst
   branches/pkg-split/core/debian/mailman-cfdb.postrm
   branches/pkg-split/core/debian/mailman-cfdb.prerm
   branches/pkg-split/core/debian/mailman-en.dirs
   branches/pkg-split/core/debian/mailman-en.install
   branches/pkg-split/core/debian/mailman-en.postinst
   branches/pkg-split/core/debian/mailman-en.preinst
   branches/pkg-split/core/debian/mailman-en.prerm
   branches/pkg-split/core/debian/mailman-i18n.config
   branches/pkg-split/core/debian/mailman-i18n.dirs
Modified:
   branches/pkg-split/core/debian/changelog
   branches/pkg-split/core/debian/control
   branches/pkg-split/core/debian/mailman-i18n.prerm
   branches/pkg-split/core/debian/mailman-i18n.templates
   branches/pkg-split/core/debian/mailman.dirs
   branches/pkg-split/core/debian/mailman.install
   branches/pkg-split/core/debian/mailman.links
   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/patches/80_disable_langs.dpatch
   branches/pkg-split/core/debian/rules
Log:
Refactoring due to learning how mailman handles i18n support.
More work left to be done in maintainer scripts until packages
are installable again.


Modified: branches/pkg-split/core/debian/changelog
===================================================================
--- branches/pkg-split/core/debian/changelog	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/changelog	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,20 +1,17 @@
-mailman (2.1.5-0split0) UNRELEASED; urgency=low
+mailman (2.1.5-0split1) UNRELEASED; urgency=low
 
   * NOT YET RELEASED.
   * New upstream release (fixing CAN-2004-0421) (closes: #249959).
-  * Splitting package into mailman, mailman-bin, mailman-doc,
-    mailman-i18n, mailman-en, mailman-cfdb (closes: #176439, #238377,
-    #233410, #237772).
-  * Outlining glue packages mailman-spamassassin, mailman-spamprobe,
-    mailman-savannah and mailman-clamav (bsb, cf debian/TODO). Tollef
-    says splitting off single file packages is silly.
+  * Splitting package into mailman, mailman-bin, mailman-doc, mailman-i18n
+    (closes: #176439, #238377, #233410, #237772).
   * mailman.preinst: Add code making sure /var/lib/mailman/pythonlib
     doesn't contain cruft from ancient installations (closes: #242740).
   * 60_type_error_temp_fix.dpatch: curing symptom where new_member_options
     is a list instead of an integer (closes: #246681).
-  * Move template directories to /etc/mailman/templates (closes: #199039).
+  * Move user modified templates to /var/lib/mailman/templates/site
+    (closes: #199039).
 
- -- Siggy Brentrup <bsb@debian.org>  Sun, 23 May 2004 18:04:45 +0200
+ -- Siggy Brentrup <bsb@debian.org>  Mon, 24 May 2004 11:21:12 +0200
 
 mailman (2.1.4-4) unstable; urgency=medium
 

Added: branches/pkg-split/core/debian/contrib/used_languages.py
===================================================================
--- branches/pkg-split/core/debian/contrib/used_languages.py	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/contrib/used_languages.py	2004-05-24 15:23:40 UTC (rev 156)
@@ -0,0 +1,54 @@
+# -*- python -*-
+# $URL$
+# $Id$
+
+"""Find languages used by mailing list at a site.
+
+This module is intended to be used in a withlist context.
+
+  withlist -q -a -r used_languages
+    show list of languages enabled in any mailing list.
+
+  withlist -q -a -r used_languages.show
+    For each mailing list print a line containing the
+    URL for its language page and enabled languages.
+
+  withlist -q -a -r used_languages.show_intl
+    Same as above omitting mailing lists that have only
+    english enabled.
+
+This module must be installed in a directory on withlist's
+python path, choose /usr/lib/mailman/pythonlib for now.
+"""#
+
+import sys, atexit, cStringIO
+
+all_languages = {}
+out = None
+
+def used_languages(mlist):
+    global out
+    for l in mlist.available_languages:
+        all_languages[l] = True
+    out = cStringIO.StringIO()
+    used = all_languages.keys()
+    used.sort()
+    print >>out, ' '.join(used)
+
+def show(mlist):
+    langs = mlist.available_languages
+    print '%s/language: %s' % (mlist.GetScriptURL('admin',1), ', '.join(langs))
+
+def show_intl(mlist):
+    langs = mlist.available_languages
+    if langs != ['en']:
+        print '%s/language: %s' % (mlist.GetScriptURL('admin',1), ', '.join(langs))
+
+def _result():
+    if out:
+        sys.stdout.write(out.getvalue())
+
+atexit.register(_result)
+
+
+


Property changes on: branches/pkg-split/core/debian/contrib/used_languages.py
___________________________________________________________________
Name: svn:keywords
   + Id URL

Modified: branches/pkg-split/core/debian/control
===================================================================
--- branches/pkg-split/core/debian/control	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/control	2004-05-24 15:23:40 UTC (rev 156)
@@ -8,10 +8,10 @@
 Package: mailman
 Architecture: all
 Pre-Depends: python (>= 2.3)
-Depends: mailman-cfdb (= ${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), pwgen
+Depends: mailman-bin (= ${Source-Version}), logrotate, cron (>= 3.0pl1-42), exim4 | mail-transport-agent, apache | httpd, debconf (>= 1.4.16), pwgen
 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
+Recommends: mailman-i18n (= ${Source-Version}), base-passwd (>= 1.3.0)
+Suggests: mailman-doc (= ${Source-Version})
 Description: powerful, web-based mailing list manager
  The GNU Mailing List Manager, which manages email discussion lists
  much like Majordomo and Smartmail. Unlike most similar products,
@@ -29,47 +29,25 @@
  .
  For more information see http://www.list.org/.
 
-Package: mailman-cfdb
-Architecture: all
-Pre-Depends: python (>= 2.3)
-Depends: ucf (>= 1.05)
-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}
 Conflicts: mailman (<= 2.1.4-4)
 Description: setgid wrappers required for running mailman
- The kernel allowing only native compiled code to be installed setgid,
+ The kernel honoring only native compiled code being installed setgid,
  theses wrappers invoke workers implemented in Python after validating
  arguments.
 
 Package: mailman-i18n
 Architecture: all
 Pre-Depends: python (>= 2.3)
-Depends: mailman-cfdb (= ${Source-Version}), debconf (>= 1.4.16)
-Conflicts: mailman (<= 2.1.4-4), mailman-en
-Replaces: mailman-en (= ${Source-Version})
+Depends: mailman (= ${Source-Version}), debconf (>= 1.4.16)
+Conflicts: mailman (<= 2.1.4-4)
 Suggests: python2.3-korean-codecs, python-japanese-codecs
-Description: language specific parts of mailman (international)
+Description: international language specific parts of mailman
  Message translations plus international templates for web pages and
  automatically generated emails.
 
-Package: mailman-en
-Architecture: all
-Pre-Depends: python (>= 2.3)
-Depends: mailman-cfdb (= ${Source-Version}), debconf (>= 1.4.16)
-Conflicts: 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.
- .
- This package is provided for the benefit of sites that don't need
- internationalization.
-
 Package: mailman-doc
 Architecture: all
 Conflicts: mailman (<= 2.1.4-4)

Deleted: branches/pkg-split/core/debian/mailman-cfdb.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-cfdb.dirs	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-cfdb.dirs	2004-05-24 15:23:40 UTC (rev 156)
@@ -1 +0,0 @@
-var/lib/mailman/data

Deleted: branches/pkg-split/core/debian/mailman-cfdb.install
===================================================================
--- branches/pkg-split/core/debian/mailman-cfdb.install	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-cfdb.install	2004-05-24 15:23:40 UTC (rev 156)
@@ -1 +0,0 @@
-debian/Debian usr/lib/mailman/Mailman

Deleted: branches/pkg-split/core/debian/mailman-cfdb.postinst
===================================================================
--- branches/pkg-split/core/debian/mailman-cfdb.postinst	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-cfdb.postinst	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,118 +0,0 @@
-#! /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_INST = '/usr/lib/mailman'
-MM_HOME = '/var/lib/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_INST, '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()
-

Deleted: branches/pkg-split/core/debian/mailman-cfdb.postrm
===================================================================
--- branches/pkg-split/core/debian/mailman-cfdb.postrm	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-cfdb.postrm	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,13 +0,0 @@
-#! /bin/sh -e
-# $URL$
-# $Id$
-
-echo ">>> $0 $*" >&2
-
-#DEBHELPER#
-
-if [ "$1" = purge ]; then
-    rm -f /var/lib/mailman/data/debcf.db
-fi
-
-exit 0

Deleted: branches/pkg-split/core/debian/mailman-cfdb.prerm
===================================================================
--- branches/pkg-split/core/debian/mailman-cfdb.prerm	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-cfdb.prerm	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,20 +0,0 @@
-#! /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

Deleted: branches/pkg-split/core/debian/mailman-en.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-en.dirs	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-en.dirs	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,2 +0,0 @@
-etc/mailman/templates
-

Deleted: branches/pkg-split/core/debian/mailman-en.install
===================================================================
--- branches/pkg-split/core/debian/mailman-en.install	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-en.install	2004-05-24 15:23:40 UTC (rev 156)
@@ -1 +0,0 @@
-debian/tmp/usr/lib/mailman/templates/en usr/share/mailman/templates

Deleted: branches/pkg-split/core/debian/mailman-en.postinst
===================================================================
--- branches/pkg-split/core/debian/mailman-en.postinst	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-en.postinst	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,164 +0,0 @@
-#!/usr/bin/python -O
-#
-# $URL$
-# $Id$
-#
-
-"""
-
-Fooling lintian that complains about not sourcing confmodule:
-. /usr/share/debconf/confmodule
-"""#
-
-
-import sys, os
-
-# 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
-
-print >>sys.stderr, '>>>', sys.argv
-
-PACKAGE='mailman-en'
-MM_INST = '/usr/lib/mailman'
-
-
-# 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 errno import EEXIST, ENOTEMPTY
-#from errno import *
-
-mm_etc='/etc/mailman'
-mm_tmpl=os.path.join(mm_etc, 'templates')
-mm_dist='/usr/share/mailman/templates'
-
-
-def setup():
-    """
-    """#
-
-    # Install only languages selected by the administrator
-    # 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
-    used_languages = db.get('mailman/used_languages').split()
-    db.fset('mailman/used_languages', 'seen', 'true')
-    db.fset('mailman/used_languages', 'scanned', 'false')
-
-    log('DEBCONF: used_languages=%(used_languages)r' % locals(), lvl=2)
-    log('DEBCONF: site_languages=%(site_languages)r' % locals(), lvl=2)
-
-    for lang in used_languages:
-        if lang not in site_languages:
-            need_languages.append(lang)
-    if need_languages != site_languages:
-        db.set('mailman/site_languages', ', '.join(need_languages))
-        site_languages = need_languages
-
-    log('SETUP: need_languages=%(need_languages)r' % locals(), lvl=2)
-
-    remove_templates(need_languages)
-    install_templates(need_languages)
-
-    db.fset('mailman/site_languages', 'seen', 'false')
-
-
-def remove_templates(site_languages):
-    """
-    """#
-    old_languages = os.listdir(mm_tmpl)
-
-    for lang in old_languages:
-        if lang not in site_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.sync()
-            log(' done.')
-            try:
-                os.rmdir(langdir)
-            except OSError,err:
-                if err.errno == ENOTEMPTY:
-                    log('Directory %(langdir)s not empty so not removed.' % locals())
-                else: raise
-
-
-def install_templates(site_languages):
-    """
-    """#
-    for lang in site_languages:
-        log('Installing site language %(lang)s ' % locals(), nl='')
-        try:
-            os.mkdir(os.path.join(mm_tmpl, lang))
-        except OSError, err:
-            if err.errno != EEXIST: raise
-
-        for fn in os.listdir(os.path.join(mm_dist, lang)):
-            log('.', nl='')
-            langfile='%(lang)s/%(fn)s' % locals()
-            msg = cfdb.update(langfile, src=mm_dist, dst=mm_tmpl)
-            log(msg, lvl=9, nl='\n ')
-            # TBD: remove templates no longer distributed
-        cfdb.sync()
-        log(' done.')
-
-
-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("""\
-if [ -x "/etc/init.d/mailman" ]; then
-  if [ -x /usr/sbin/invoke-rc.d ] ; then
-    invoke-rc.d mailman start || true
-  else
-    /etc/init.d/mailman start || true
-  fi
-fi
-""")
-    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)
-
-
-if __name__ == '__main__':
-    log = DebuggingLogger('MM_MAINT')
-    try:
-        op = sys.argv[1]
-        if op == 'configure':
-            setup()
-        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)
-            raise SystemExit(1)
-    finally:
-        # When things break, this information might be useful
-        log.sys_info()

Deleted: branches/pkg-split/core/debian/mailman-en.preinst
===================================================================
--- branches/pkg-split/core/debian/mailman-en.preinst	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-en.preinst	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,21 +0,0 @@
-#!/bin/sh -e
-# $URL$
-# $Id$
-
-mm_etc=/etc/mailman
-mm_tmpl=${mm_etc}/templates
-
-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"
-
-if [ "$1" = "install" ] ; then
-  for lang in $(cd ${mm_etc} ; find * -maxdepth 0 -type d); do
-    if echo " ${mm_languages} " | grep -q " ${lang} " ; then
-      [ -d ${mm_tmpl} ] || mkdir -p ${mm_tmpl}
-      mv -f ${mm_etc}/${lang} ${mm_tmpl}
-    fi
-  done
-fi
-
-#DEBHELPER#
-
-exit 0

Deleted: branches/pkg-split/core/debian/mailman-en.prerm
===================================================================
--- branches/pkg-split/core/debian/mailman-en.prerm	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-en.prerm	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,41 +0,0 @@
-#! /bin/sh -e
-# $URL$
-# $Id$
-
-echo ">>> $0 $*" >&2
-
-package=mailman-en
-
-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
-}
-
-case $1 in
-    remove|upgrade)
-        mm_shutdown
-        unset_mm_templates
-        ;;
-    failed-upgrade|deconfigure)
-        ;;
-    *)
-        echo "${package}.prerm called with unknown argument $1" >&2
-        exit 1
-        ;;
-esac

Deleted: branches/pkg-split/core/debian/mailman-i18n.config
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.config	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-i18n.config	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,84 +0,0 @@
-#! /bin/sh -e
-# $URL$
-# $Id$
-
-. /usr/share/debconf/confmodule
-
-echo ">>> $0 $*" >&2
-
-get_used_languages ()
-{
-  # Python being non-essential it may not be available at preconfigure
-  # time, but then no languages are used either.
-  if python </dev/null 2>/dev/null ; then
-    # list_lists may fail if mm_cfg is not yet installed
-    ( for ml in $(/usr/sbin/list_lists -b 2>/dev/null); do
-        ( /usr/sbin/config_list -o - ${ml} 2>/dev/null
-          cat <<EOF
-try: print '\n'.join(available_languages)
-except: pass
-EOF
-        ) | python -W ignore::DeprecationWarning
-      done 
-    ) | sort | uniq
-  fi
-}
-
-# This script will be invoked by apt-get 2 times in a row, once when
-# preconfiguring the package and a second time just before running the
-# postinst script.  OTOH when installing the package with dpkg or when
-# reconfiguring the package, it runs only once.
-#
-# It scans all mailing lists on a system for used languages which may
-# be quite time consuming on systems with many lists; hence we better
-# avoid to run that scan twice in a row.
-# 
-# The debconf template mailman/used_languages holds the result of the
-# scan but is never presented to the user, instead its scanned flag
-# indicates if it holds a fresh value and is reset by the postinst,
-# while its seen flag is mainly used for cosmetical reasons to mark
-# processed values in debconf-show output.
-
-db_get mailman/used_languages || true
-used_languages="${RET}"
-db_fget mailman/used_languages scanned || true
-scanned="${RET}"
-
-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
-    for l in $(get_used_languages); do
-      used_languages=${used_languages:+${used_languages} }$l
-    done
-    db_set  mailman/used_languages "${used_languages}"
-    db_fset mailman/used_languages scanned true
-    db_fset mailman/used_languages seen false
-    echo " done."
-  fi
-  # Install only languages selected by the administrator
-  # forcing used languages to be always available.
-  db_get mailman/site_languages
-  site_languages="$(echo $RET | sed -e 's/, */ /g')"
-  need_languages="${site_languages}"
-  for lang in ${used_languages} ; do
-    if echo " ${site_languages} " | grep -v -q " ${lang} " ; then
-      need_languages="${lang} ${need_languages}"
-    fi
-  done
-  if [ "${need_languages}" != "${site_languages}" ]; then
-    db_set mailman/site_languages "$(echo ${need_languages} | sed -e 's/  */, /g')"
-  fi
-fi
-
-db_input medium mailman/site_languages || true
-db_go || true

Deleted: branches/pkg-split/core/debian/mailman-i18n.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.dirs	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-i18n.dirs	2004-05-24 15:23:40 UTC (rev 156)
@@ -1 +0,0 @@
-etc/mailman/templates

Modified: branches/pkg-split/core/debian/mailman-i18n.prerm
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.prerm	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-i18n.prerm	2004-05-24 15:23:40 UTC (rev 156)
@@ -8,17 +8,6 @@
 
 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
@@ -33,24 +22,17 @@
 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
+        used_languages=$(withlist -q -a -r used_languages)
+        db_set mailman/used_languages "${used_languages}" || true
+        if [ "${used_languages}" != "en" ] ; then
+            db_fset mailman/other_languages seen false || true
+            db_input critical mailman/other_languages || true
+            db_go || true
+            exit 1
         fi
         ;;
     upgrade)
         mm_shutdown
-        unset_mm_templates
         ;;
     failed-upgrade|deconfigure)
         ;;

Modified: branches/pkg-split/core/debian/mailman-i18n.templates
===================================================================
--- branches/pkg-split/core/debian/mailman-i18n.templates	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman-i18n.templates	2004-05-24 15:23:40 UTC (rev 156)
@@ -1,33 +1,20 @@
 # $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, tr, 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.
+_Description: i18n support in use
+ You are attempting to remove the mailman-i18n package while some
+ mailing lists still have non-english language support 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.
+ Please make sure all your mailing lists have only english enabled
+ and DEFAULT_SERVER_LANGUAGE is 'en' in /etc/mailman/mm_cfg.py.
+ .
+ To see which mailing lists have international support enabled, issue
+ .
+   /usr/sbin/withlist -q -a -r used_languages.show_intl 
 
+ 
\ No newline at end of file

Modified: branches/pkg-split/core/debian/mailman.dirs
===================================================================
--- branches/pkg-split/core/debian/mailman.dirs	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman.dirs	2004-05-24 15:23:40 UTC (rev 156)
@@ -22,6 +22,7 @@
 var/lib/mailman/qfiles/shunt
 var/lib/mailman/qfiles/virgin
 var/lib/mailman/spam
+var/lib/mailman/templates/site
 var/lock/mailman
 var/log/mailman
 var/run/mailman

Modified: branches/pkg-split/core/debian/mailman.install
===================================================================
--- branches/pkg-split/core/debian/mailman.install	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman.install	2004-05-24 15:23:40 UTC (rev 156)
@@ -3,8 +3,10 @@
 debian/tmp/usr/lib/mailman/cron         usr/lib/mailman
 debian/tmp/usr/lib/mailman/scripts      usr/lib/mailman
 debian/tmp/usr/lib/mailman/icons/*      usr/share/images/mailman
+debian/tmp/usr/lib/mailman/templates/en usr/share/mailman/templates
 debian/tmp/var/lib/mailman/data         var/lib/mailman
-debian/Debian/templates.py              usr/lib/mailman/Mailman/Debian
+debian/Debian                           usr/lib/mailman/Mailman
 debian/manpages/*                       usr/share/man/man8
+debian/contrib/postfix-to-mailman.py    usr/lib/mailman/bin
+debian/contrib/used_languages.py        usr/lib/mailman/pythonlib
 
-

Modified: branches/pkg-split/core/debian/mailman.links
===================================================================
--- branches/pkg-split/core/debian/mailman.links	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman.links	2004-05-24 15:23:40 UTC (rev 156)
@@ -15,3 +15,4 @@
 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
+usr/share/mailman/templates             var/lib/mailman/templates/default
\ No newline at end of file

Modified: branches/pkg-split/core/debian/mailman.templates
===================================================================
--- branches/pkg-split/core/debian/mailman.templates	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/mailman.templates	2004-05-24 15:23:40 UTC (rev 156)
@@ -47,34 +47,19 @@
  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, tr, 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.
+_Description: I18n support in use
+ You are attempting to remove the mailman-i18n package while some
+ mailing lists still have non-english language support 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.
-
+ Please make sure all your mailing lists have only english enabled
+ and DEFAULT_SERVER_LANGUAGE is 'en' in /etc/mailman/mm_cfg.py.
+ .
+ To see which mailing lists have international support enabled, issue
+ .
+   /usr/sbin/withlist -q -a -r used_languages.show_intl 

Modified: branches/pkg-split/core/debian/patches/00list
===================================================================
--- branches/pkg-split/core/debian/patches/00list	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/patches/00list	2004-05-24 15:23:40 UTC (rev 156)
@@ -23,4 +23,5 @@
 59_build_arch_indep
 60_type_error_temp_fix
 80_disable_langs
-99_js_templates.dpatch
+81_templates_default
+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-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/patches/40_FHS_dirs.dpatch	2004-05-24 15:23:40 UTC (rev 156)
@@ -42,7 +42,7 @@
  SCRIPTS_DIR     = os.path.join(PREFIX, 'scripts')
 -TEMPLATE_DIR    = os.path.join(PREFIX, 'templates')
 -MESSAGES_DIR    = os.path.join(PREFIX, 'messages')
-+TEMPLATE_DIR    = '/etc/mailman/templates'
++TEMPLATE_DIR    = os.path.join(VAR_PREFIX, 'templates')
 +MESSAGES_DIR    = '/usr/share/locale'
  PUBLIC_ARCHIVE_FILE_DIR  = os.path.join(VAR_PREFIX, 'archives', 'public')
  PRIVATE_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'private')

Modified: branches/pkg-split/core/debian/patches/80_disable_langs.dpatch
===================================================================
--- branches/pkg-split/core/debian/patches/80_disable_langs.dpatch	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/patches/80_disable_langs.dpatch	2004-05-24 15:23:40 UTC (rev 156)
@@ -25,18 +25,16 @@
 
 @DPATCH@
 diff -urNad /debuild/mine/mailman/build-area/mailman-2.1.5/Mailman/Defaults.py.in mailman-2.1.5/Mailman/Defaults.py.in
---- /debuild/mine/mailman/build-area/mailman-2.1.5/Mailman/Defaults.py.in	2004-05-23 10:30:17.000000000 +0200
-+++ mailman-2.1.5/Mailman/Defaults.py.in	2004-05-23 10:37:16.000000000 +0200
-@@ -1244,7 +1244,12 @@
+--- /debuild/mine/mailman/build-area/mailman-2.1.5/Mailman/Defaults.py.in	2004-05-24 12:51:15.000000000 +0200
++++ mailman-2.1.5/Mailman/Defaults.py.in	2004-05-24 13:10:02.000000000 +0200
+@@ -1244,7 +1244,10 @@
  LC_DESCRIPTIONS = {}
  
  def add_language(code, description, charset):
 -    LC_DESCRIPTIONS[code] = (description, charset)
-+    # Install only languages enabled in mailman-i18n/site_languages
-+    if   code == 'zh_CN': lang = 'gb'
-+    elif code == 'zh_TW': lang = 'big5'
-+    else:                 lang = code
-+    if os.path.exists(os.path.join(TEMPLATE_DIR, lang, 'listinfo.html')):
++    # Add only languages installed by mailman-i18n
++    if os.path.exists(os.path.join('/usr/share/mailman/templates',
++                                   lang, 'listinfo.html')):
 +        LC_DESCRIPTIONS[code] = (description, charset)
  
  add_language('ca',    _('Catalan'),             'iso-8859-1')

Added: branches/pkg-split/core/debian/patches/81_templates_default.dpatch
===================================================================
--- branches/pkg-split/core/debian/patches/81_templates_default.dpatch	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/patches/81_templates_default.dpatch	2004-05-24 15:23:40 UTC (rev 156)
@@ -0,0 +1,57 @@
+#! /bin/sh -e
+## 81_templates_default.dpatch by Siggy Brentrup <bsb@debian.org>
+##
+## $URL$
+## $Id$
+##
+## DP: Adjust default templates directory in search path.
+
+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
+
+@DPATCH@
+diff -urNad /debuild/mine/mailman/build-area/mailman-2.1.5/Mailman/Utils.py mailman-2.1.5/Mailman/Utils.py
+--- /debuild/mine/mailman/build-area/mailman-2.1.5/Mailman/Utils.py	2004-05-24 12:46:00.000000000 +0200
++++ mailman-2.1.5/Mailman/Utils.py	2004-05-24 12:46:12.000000000 +0200
+@@ -411,7 +411,7 @@
+     #    templates/site/<language>
+     #
+     # 4. the global default language directory
+-    #    templates/<language>
++    #    templates/default/<language>
+     #
+     # The first match found stops the search.  In this way, you can specialize
+     # templates at the desired level, or, if you use only the default
+@@ -456,7 +456,7 @@
+         searchdirs.append(mlist.fullpath())
+         searchdirs.append(os.path.join(mm_cfg.TEMPLATE_DIR, mlist.host_name))
+     searchdirs.append(os.path.join(mm_cfg.TEMPLATE_DIR, 'site'))
+-    searchdirs.append(mm_cfg.TEMPLATE_DIR)
++    searchdirs.append(os.path.join(mm_cfg.TEMPLATE_DIR, 'default'))
+     # Start scanning
+     quickexit = 'quickexit'
+     fp = None
+@@ -477,7 +477,7 @@
+         # Try one last time with the distro English template, which, unless
+         # you've got a really broken installation, must be there.
+         try:
+-            filename = os.path.join(mm_cfg.TEMPLATE_DIR, 'en', templatefile)
++            filename = os.path.join('/usr/share/mailman/templates', 'en', templatefile)
+             fp = open(filename)
+         except IOError, e:
+             if e.errno <> errno.ENOENT: raise


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

Modified: branches/pkg-split/core/debian/rules
===================================================================
--- branches/pkg-split/core/debian/rules	2004-05-24 09:17:40 UTC (rev 155)
+++ branches/pkg-split/core/debian/rules	2004-05-24 15:23:40 UTC (rev 156)
@@ -56,7 +56,7 @@
 	rm -rf build-indep build-arch Makefile
 	dh_clean
 	rm -rf $$(find . -name "*~")
-	rm -rf debian/tmp debian/mailman debian/mailman-{bin,i18n,doc,cfdb}
+	rm -rf debian/tmp debian/mailman debian/mailman-{bin,i18n,doc}
 
 
 
@@ -100,11 +100,11 @@
 
 	# 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-cfdb/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
+	# remove english templates, they're in the main package
+	rm -rf debian/mailman-i18n/usr/share/mailman/templates/en
 	# Mailman/Post.py may be run as a script
 	chmod a+x debian/mailman/usr/lib/mailman/Mailman/Post.py
 	# Remove irrelevant READMEs