[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