[Pkg-mailman-hackers] Pkg-mailman commit - rev 530 - in trunk/debian: . patches
Thijs Kinkhorst
thijs at alioth.debian.org
Fri Feb 8 23:02:53 UTC 2008
Author: thijs
Date: 2008-02-08 23:02:53 +0000 (Fri, 08 Feb 2008)
New Revision: 530
Removed:
trunk/debian/patches/56_fix_de_broken_links.patch
trunk/debian/patches/81_backport_export.dpatch
Modified:
trunk/debian/changelog
trunk/debian/patches/53_disable_addons.patch
trunk/debian/patches/70_invalid_utf8_dos.patch
trunk/debian/patches/series
trunk/debian/rules
Log:
* New upstream beta release.
+ Restricts XSS by list admins, CVE-2008-0564.
+ Obsoletes 56_fix_de_broken_links.patch.
+ Obsoletes 81_backport_export.dpatch.
+ Makes list handling case sensitivity consistent (closes: #446257).
+ Archives do not drop headerless mime parts (Closes: #450399).
+ check_perms checks more perms (Closes: #260224).
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/changelog 2008-02-08 23:02:53 UTC (rev 530)
@@ -1,3 +1,15 @@
+mailman (1:2.1.10~b3-1) unstable; urgency=low
+
+ * New upstream beta release.
+ + Restricts XSS by list admins, CVE-2008-0564.
+ + Obsoletes 56_fix_de_broken_links.patch.
+ + Obsoletes 81_backport_export.dpatch.
+ + Makes list handling case sensitivity consistent (closes: #446257).
+ + Archives do not drop headerless mime parts (Closes: #450399).
+ + check_perms checks more perms (Closes: #260224).
+
+ -- Thijs Kinkhorst <thijs at debian.org> Fri, 08 Feb 2008 23:55:06 +0100
+
mailman (1:2.1.9-10) unstable; urgency=low
* Be quiet when logrotation succeeds, prevents Cron spam (closes: #456954).
Modified: trunk/debian/patches/53_disable_addons.patch
===================================================================
--- trunk/debian/patches/53_disable_addons.patch 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/patches/53_disable_addons.patch 2008-02-08 23:02:53 UTC (rev 530)
@@ -1,10 +1,9 @@
Patch: 53_disable_addons.patch
Author: Tollef Fog Heen <tfheen at debian.org>
Disable some modules which are pulled in from other Debian packages.
-Index: misc/Makefile.in
-===================================================================
---- misc/Makefile.in.orig 2006-08-15 15:12:18.000000000 +0800
-+++ misc/Makefile.in 2006-08-15 15:14:39.000000000 +0800
+diff -Nur misc/Makefile.in mailman-2.1.10b3/misc/Makefile.in
+--- misc/Makefile.in 2008-02-02 23:29:26.000000000 +0100
++++ misc/Makefile.in 2008-02-08 23:19:31.000000000 +0100
@@ -57,7 +57,10 @@
JACODECSPKG= JapaneseCodecs-1.4.11
KOCODECSPKG= KoreanCodecs-2.0.5
@@ -17,29 +16,29 @@
# Modes for directories and executables created by the install
# process. Default to group-writable directories but
-Index: misc/paths.py.in
-===================================================================
---- misc/paths.py.in.orig 2006-08-15 15:12:18.000000000 +0800
-+++ misc/paths.py.in 2006-08-15 15:14:39.000000000 +0800
-@@ -53,12 +53,18 @@
- # In a normal interactive Python environment, the japanese.pth and korean.pth
+diff -Nur misc/paths.py.in mailman-2.1.10b3/misc/paths.py.in
+--- misc/paths.py.in 2008-02-02 23:29:26.000000000 +0100
++++ misc/paths.py.in 2008-02-08 23:21:01.000000000 +0100
+@@ -71,13 +71,19 @@
# files would be imported automatically. But because we inhibit the importing
# of the site module, we need to be explicit about importing these codecs.
--import japanese
-+try:
-+ import japanese
-+except ImportError:
-+ pass
+ if not jaok:
+- import japanese
++ try:
++ import japanese
++ except ImportError:
++ pass
# As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean
# codecs installed, however leave the first import in there in case an upgrade
# changes this.
--import korean
--import korean.aliases
-+try:
-+ import korean
-+ import korean.aliases
-+except ImportError:
-+ pass
+ if not kook:
+- import korean
+- import korean.aliases
++ try:
++ import korean
++ import korean.aliases
++ except ImportError:
++ pass
# Arabic and Hebrew (RFC-1556) encoding aliases. (temporary solution)
import encodings.aliases
encodings.aliases.aliases.update({
Deleted: trunk/debian/patches/56_fix_de_broken_links.patch
===================================================================
--- trunk/debian/patches/56_fix_de_broken_links.patch 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/patches/56_fix_de_broken_links.patch 2008-02-08 23:02:53 UTC (rev 530)
@@ -1,25 +0,0 @@
-Patch: 56_fix_de_broken_links.patch
-Author: based on work by Ralf Doeblitz <r.doeblitz at asco.de> (see bug #233048)
-Submitted upstream: via email to translation maintainer
-Index: messages/de/LC_MESSAGES/mailman.po
-===================================================================
---- messages/de/LC_MESSAGES/mailman.po.orig 2006-08-15 15:12:18.000000000 +0800
-+++ messages/de/LC_MESSAGES/mailman.po 2006-08-15 15:14:40.000000000 +0800
-@@ -7201,7 +7201,7 @@
- "\">topics_bodylines_limit</a>\n"
- " configuration variable."
- msgstr ""
--"Der Themenfilter kategorisiert jede eingehende e-Mailnachricht gemäss href="
-+"Der Themenfilter kategorisiert jede eingehende e-Mailnachricht gemäss <a href="
- "\"http://www.python.org/doc/current/lib/module-re.html\">Filterregeln mit "
- "regulären Ausdrücken</a>, die Sie weiter unten festlegen können. Wenn die "
- "<code>Subject:</code> oder <code>Keywords:</code> Header der Nachricht mit "
-@@ -7214,7 +7214,7 @@
- "nicht mit Sammelnachrichten.\n"
- " <p>Optional kann auch der Nachrichtentext auf Vorkommen von <code>Subject:</"
- "code> und <code>Keyword:</code> Header durchsucht werden. Spezifizieren Sie "
--"hierzu die Optionhref=\"?VARHELP=topics/topics_bodylines_limit"
-+"hierzu die Option <a href=\"?VARHELP=topics/topics_bodylines_limit"
- "\">topics_bodylines_limit</a>."
-
- # Mailman/Gui/Topics.py:57
Modified: trunk/debian/patches/70_invalid_utf8_dos.patch
===================================================================
--- trunk/debian/patches/70_invalid_utf8_dos.patch 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/patches/70_invalid_utf8_dos.patch 2008-02-08 23:02:53 UTC (rev 530)
@@ -1,14 +1,13 @@
Patch: 70_invalid_utf8_dos.patch
Author: Lionel Elie Mamane <lionel at mamane.lu>
Avoid DOS if attachement filename is invalid Unicode string
-Index: Mailman/Handlers/Scrubber.py
-===================================================================
---- Mailman/Handlers/Scrubber.py.orig 2006-08-15 15:14:15.000000000 +0800
-+++ Mailman/Handlers/Scrubber.py 2006-08-15 15:14:54.000000000 +0800
-@@ -302,7 +302,10 @@
- finally:
+diff -Nur Mailman/Handlers/Scrubber.py mailman-2.1.10b3/Mailman/Handlers/Scrubber.py
+--- Mailman/Handlers/Scrubber.py 2008-02-02 23:29:26.000000000 +0100
++++ Mailman/Handlers/Scrubber.py 2008-02-08 23:33:16.000000000 +0100
+@@ -317,7 +317,10 @@
os.umask(omask)
desc = part.get('content-description', _('not available'))
+ desc = Utils.oneline(desc, lcset)
- filename = part.get_filename(_('not available'))
+ try:
+ filename = part.get_filename(_('not available'))
@@ -17,7 +16,7 @@
filename = Utils.oneline(filename, lcset)
replace_payload_by_text(part, _("""\
A non-text attachment was scrubbed...
-@@ -412,7 +415,10 @@
+@@ -439,7 +442,10 @@
ctype = msg.get_content_type()
# i18n file name is encoded
lcset = Utils.GetCharSet(mlist.preferred_language)
@@ -26,18 +25,6 @@
+ filename = Utils.oneline(msg.get_filename(''), lcset)
+ except UnicodeDecodeError:
+ filename = ''
- fnext = os.path.splitext(filename)[1]
+ filename, fnext = os.path.splitext(filename)
# For safety, we should confirm this is valid ext for content-type
# but we can use fnext if we introduce fnext filtering
-@@ -438,7 +444,10 @@
- try:
- # Now base the filename on what's in the attachment, uniquifying it if
- # necessary.
-- filename = msg.get_filename()
-+ try:
-+ filename = msg.get_filename()
-+ except UnicodeDecodeError:
-+ filename = None
- if not filename or mm_cfg.SCRUBBER_DONT_USE_ATTACHMENT_FILENAME:
- filebase = 'attachment'
- else:
Deleted: trunk/debian/patches/81_backport_export.dpatch
===================================================================
--- trunk/debian/patches/81_backport_export.dpatch 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/patches/81_backport_export.dpatch 2008-02-08 23:02:53 UTC (rev 530)
@@ -1,438 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 81_backport_export.dpatch by <lmamane at debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Backport bin/export from upstream SVN so that we can
-## DP: have automatic upgrades to lenny.
-
- at DPATCH@
-diff -urNad mailman-2.1.9~/bin/Makefile.in mailman-2.1.9/bin/Makefile.in
---- mailman-2.1.9~/bin/Makefile.in 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9/bin/Makefile.in 2007-01-20 04:56:07.585102043 +0100
-@@ -1,4 +1,4 @@
--# Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
-+# Copyright (C) 1998-2006 by the Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
-@@ -49,7 +49,7 @@
- list_admins genaliases change_pw mailmanctl qrunner inject \
- unshunt fix_url.py convert.py transcheck b4b5-archfix \
- list_owners msgfmt.py show_qfiles discard rb-archfix \
-- reset_pw.py
-+ reset_pw.py export.py
-
- BUILDDIR= ../build/bin
-
-diff -urNad mailman-2.1.9~/bin/export.py mailman-2.1.9/bin/export.py
---- mailman-2.1.9~/bin/export.py 1970-01-01 01:00:00.000000000 +0100
-+++ mailman-2.1.9/bin/export.py 2007-01-20 04:56:07.585102043 +0100
-@@ -0,0 +1,382 @@
-+#! @PYTHON@
-+#
-+# Copyright (C) 2006-2007 by the Free Software Foundation, Inc.
-+#
-+# This program is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU General Public License
-+# as published by the Free Software Foundation; either version 2
-+# of the License, or (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-+# USA.
-+
-+"""Export an XML representation of a mailing list."""
-+
-+import os
-+import sys
-+import sha
-+import base64
-+import codecs
-+import datetime
-+import optparse
-+
-+from xml.sax.saxutils import escape
-+
-+import paths
-+from Mailman import Defaults
-+from Mailman import Errors
-+from Mailman import MemberAdaptor
-+from Mailman import Utils
-+from Mailman import mm_cfg
-+from Mailman.MailList import MailList
-+from Mailman.i18n import _
-+
-+__i18n_templates__ = True
-+
-+SPACE = ' '
-+DOLLAR_STRINGS = ('msg_header', 'msg_footer',
-+ 'digest_header', 'digest_footer',
-+ 'autoresponse_postings_text',
-+ 'autoresponse_admin_text',
-+ 'autoresponse_request_text')
-+SALT_LENGTH = 4 # bytes
-+
-+TYPES = {
-+ mm_cfg.Toggle : 'bool',
-+ mm_cfg.Radio : 'radio',
-+ mm_cfg.String : 'string',
-+ mm_cfg.Text : 'text',
-+ mm_cfg.Email : 'email',
-+ mm_cfg.EmailList : 'email_list',
-+ mm_cfg.Host : 'host',
-+ mm_cfg.Number : 'number',
-+ mm_cfg.FileUpload : 'upload',
-+ mm_cfg.Select : 'select',
-+ mm_cfg.Topics : 'topics',
-+ mm_cfg.Checkbox : 'checkbox',
-+ mm_cfg.EmailListEx : 'email_list_ex',
-+ mm_cfg.HeaderFilter : 'header_filter',
-+ }
-+
-+
-+
-+
-+class Indenter:
-+ def __init__(self, fp, indentwidth=4):
-+ self._fp = fp
-+ self._indent = 0
-+ self._width = indentwidth
-+
-+ def indent(self):
-+ self._indent += 1
-+
-+ def dedent(self):
-+ self._indent -= 1
-+ assert self._indent >= 0
-+
-+ def write(self, s):
-+ if s <> '\n':
-+ self._fp.write(self._indent * self._width * ' ')
-+ self._fp.write(s)
-+
-+
-+
-+class XMLDumper(object):
-+ def __init__(self, fp):
-+ self._fp = Indenter(fp)
-+ self._tagbuffer = None
-+ self._stack = []
-+
-+ def _makeattrs(self, tagattrs):
-+ # The attribute values might contain angle brackets. They might also
-+ # be None.
-+ attrs = []
-+ for k, v in tagattrs.items():
-+ if v is None:
-+ v = ''
-+ else:
-+ v = escape(str(v))
-+ attrs.append('%s="%s"' % (k, v))
-+ return SPACE.join(attrs)
-+
-+ def _flush(self, more=True):
-+ if not self._tagbuffer:
-+ return
-+ name, attributes = self._tagbuffer
-+ self._tagbuffer = None
-+ if attributes:
-+ attrstr = ' ' + self._makeattrs(attributes)
-+ else:
-+ attrstr = ''
-+ if more:
-+ print >> self._fp, '<%s%s>' % (name, attrstr)
-+ self._fp.indent()
-+ self._stack.append(name)
-+ else:
-+ print >> self._fp, '<%s%s/>' % (name, attrstr)
-+
-+ # Use this method when you know you have sub-elements.
-+ def _push_element(self, _name, **_tagattrs):
-+ self._flush()
-+ self._tagbuffer = (_name, _tagattrs)
-+
-+ def _pop_element(self, _name):
-+ buffered = bool(self._tagbuffer)
-+ self._flush(more=False)
-+ if not buffered:
-+ name = self._stack.pop()
-+ assert name == _name, 'got: %s, expected: %s' % (_name, name)
-+ self._fp.dedent()
-+ print >> self._fp, '</%s>' % name
-+
-+ # Use this method when you do not have sub-elements
-+ def _element(self, _name, _value=None, **_attributes):
-+ self._flush()
-+ if _attributes:
-+ attrs = ' ' + self._makeattrs(_attributes)
-+ else:
-+ attrs = ''
-+ if _value is None:
-+ print >> self._fp, '<%s%s/>' % (_name, attrs)
-+ else:
-+ value = escape(unicode(_value))
-+ print >> self._fp, '<%s%s>%s</%s>' % (_name, attrs, value, _name)
-+
-+ def _do_list_categories(self, mlist, k, subcat=None):
-+ is_converted = bool(getattr(mlist, 'use_dollar_strings', False))
-+ info = mlist.GetConfigInfo(k, subcat)
-+ label, gui = mlist.GetConfigCategories()[k]
-+ if info is None:
-+ return
-+ for data in info[1:]:
-+ if not isinstance(data, tuple):
-+ continue
-+ varname = data[0]
-+ # Variable could be volatile
-+ if varname.startswith('_'):
-+ continue
-+ vtype = data[1]
-+ # Munge the value based on its type
-+ value = None
-+ if hasattr(gui, 'getValue'):
-+ value = gui.getValue(mlist, vtype, varname, data[2])
-+ if value is None:
-+ value = getattr(mlist, varname)
-+ # Do %-string to $-string conversions if the list hasn't already
-+ # been converted.
-+ if varname == 'use_dollar_strings':
-+ continue
-+ if not is_converted and varname in DOLLAR_STRINGS:
-+ value = Utils.to_dollar(value)
-+ widget_type = TYPES[vtype]
-+ if isinstance(value, list):
-+ self._push_element('option', name=varname, type=widget_type)
-+ for v in value:
-+ self._element('value', v)
-+ self._pop_element('option')
-+ else:
-+ self._element('option', value, name=varname, type=widget_type)
-+
-+ def _dump_list(self, mlist, password_scheme):
-+ # Write list configuration values
-+ self._push_element('list', name=mlist._internal_name)
-+ self._push_element('configuration')
-+ self._element('option',
-+ mlist.preferred_language,
-+ name='preferred_language',
-+ type='string')
-+ self._element('option',
-+ mlist.password,
-+ name='password',
-+ type='string')
-+ for k in mm_cfg.ADMIN_CATEGORIES:
-+ subcats = mlist.GetConfigSubCategories(k)
-+ if subcats is None:
-+ self._do_list_categories(mlist, k)
-+ else:
-+ for subcat in [t[0] for t in subcats]:
-+ self._do_list_categories(mlist, k, subcat)
-+ self._pop_element('configuration')
-+ # Write membership
-+ self._push_element('roster')
-+ digesters = set(mlist.getDigestMemberKeys())
-+ for member in sorted(mlist.getMembers()):
-+ attrs = dict(id=member)
-+ cased = mlist.getMemberCPAddress(member)
-+ if cased <> member:
-+ attrs['original'] = cased
-+ self._push_element('member', **attrs)
-+ self._element('realname', mlist.getMemberName(member))
-+ self._element('password',
-+ password_scheme(mlist.getMemberPassword(member)))
-+ self._element('language', mlist.getMemberLanguage(member))
-+ # Delivery status, combined with the type of delivery
-+ attrs = {}
-+ status = mlist.getDeliveryStatus(member)
-+ if status == MemberAdaptor.ENABLED:
-+ attrs['status'] = 'enabled'
-+ else:
-+ attrs['status'] = 'disabled'
-+ attrs['reason'] = {MemberAdaptor.BYUSER : 'byuser',
-+ MemberAdaptor.BYADMIN : 'byadmin',
-+ MemberAdaptor.BYBOUNCE : 'bybounce',
-+ }.get(mlist.getDeliveryStatus(member),
-+ 'unknown')
-+ if member in digesters:
-+ if mlist.getMemberOption(member, mm_cfg.DisableMime):
-+ attrs['delivery'] = 'plain'
-+ else:
-+ attrs['delivery'] = 'mime'
-+ else:
-+ attrs['delivery'] = 'regular'
-+ changed = mlist.getDeliveryStatusChangeTime(member)
-+ if changed:
-+ when = datetime.datetime.fromtimestamp(changed)
-+ attrs['changed'] = when.isoformat()
-+ self._element('delivery', **attrs)
-+ for option, flag in Defaults.OPTINFO.items():
-+ # Digest/Regular delivery flag must be handled separately
-+ if option in ('digest', 'plain'):
-+ continue
-+ value = mlist.getMemberOption(member, flag)
-+ self._element(option, value)
-+ topics = mlist.getMemberTopics(member)
-+ if not topics:
-+ self._element('topics')
-+ else:
-+ self._push_element('topics')
-+ for topic in topics:
-+ self._element('topic', topic)
-+ self._pop_element('topics')
-+ self._pop_element('member')
-+ self._pop_element('roster')
-+ self._pop_element('list')
-+
-+ def dump(self, listnames, password_scheme):
-+ print >> self._fp, '<?xml version="1.0" encoding="UTF-8"?>'
-+ self._push_element('mailman', **{
-+ 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
-+ 'xsi:noNamespaceSchemaLocation': 'ssi-1.0.xsd',
-+ })
-+ for listname in sorted(listnames):
-+ try:
-+ mlist = MailList(listname, lock=False)
-+ except Errors.MMUnknownListError:
-+ print >> sys.stderr, _('No such list: %(listname)s')
-+ continue
-+ self._dump_list(mlist, password_scheme)
-+ self._pop_element('mailman')
-+
-+ def close(self):
-+ while self._stack:
-+ self._pop_element()
-+
-+
-+
-+def no_password(password):
-+ return '{NONE}'
-+
-+
-+def plaintext_password(password):
-+ return '{PLAIN}' + password
-+
-+
-+def sha_password(password):
-+ h = sha.new(password)
-+ return '{SHA}' + base64.b64encode(h.digest())
-+
-+
-+def ssha_password(password):
-+ salt = os.urandom(SALT_LENGTH)
-+ h = sha.new(password)
-+ h.update(salt)
-+ return '{SSHA}' + base64.b64encode(h.digest() + salt)
-+
-+
-+SCHEMES = {
-+ 'none' : no_password,
-+ 'plain' : plaintext_password,
-+ 'sha' : sha_password,
-+ }
-+
-+try:
-+ os.urandom(1)
-+except NotImplementedError:
-+ pass
-+else:
-+ SCHEMES['ssha'] = ssha_password
-+
-+
-+
-+def parseargs():
-+ parser = optparse.OptionParser(version=mm_cfg.VERSION,
-+ usage=_("""\
-+%%prog [options]
-+
-+Export the configuration and members of a mailing list in XML format."""))
-+ parser.add_option('-o', '--outputfile',
-+ metavar='FILENAME', default=None, type='string',
-+ help=_("""\
-+Output XML to FILENAME. If not given, or if FILENAME is '-', standard out is
-+used."""))
-+ parser.add_option('-p', '--password-scheme',
-+ default='none', type='string', help=_("""\
-+Specify the RFC 2307 style hashing scheme for passwords included in the
-+output. Use -P to get a list of supported schemes, which are
-+case-insensitive."""))
-+ parser.add_option('-P', '--list-hash-schemes',
-+ default=False, action='store_true', help=_("""\
-+List the supported password hashing schemes and exit. The scheme labels are
-+case-insensitive."""))
-+ parser.add_option('-l', '--listname',
-+ default=[], action='append', type='string',
-+ metavar='LISTNAME', dest='listnames', help=_("""\
-+The list to include in the output. If not given, then all mailing lists are
-+included in the XML output. Multiple -l flags may be given."""))
-+ opts, args = parser.parse_args()
-+ if args:
-+ parser.print_help()
-+ parser.error(_('Unexpected arguments'))
-+ if opts.list_hash_schemes:
-+ for label in SCHEMES:
-+ print label.upper()
-+ sys.exit(0)
-+ if opts.password_scheme.lower() not in SCHEMES:
-+ parser.error(_('Invalid password scheme'))
-+ return parser, opts, args
-+
-+
-+
-+def main():
-+ parser, opts, args = parseargs()
-+
-+ if opts.outputfile in (None, '-'):
-+ # This will fail if there are characters in the output incompatible
-+ # with stdout.
-+ fp = sys.stdout
-+ else:
-+ fp = codecs.open(opts.outputfile, 'w', 'utf-8')
-+
-+ try:
-+ dumper = XMLDumper(fp)
-+ if opts.listnames:
-+ listnames = opts.listnames
-+ else:
-+ listnames = Utils.list_names()
-+ dumper.dump(listnames, SCHEMES[opts.password_scheme])
-+ dumper.close()
-+ finally:
-+ if fp is not sys.stdout:
-+ fp.close()
-+
-+
-+
-+if __name__ == '__main__':
-+ main()
-diff -urNad mailman-2.1.9~/configure.in mailman-2.1.9/configure.in
---- mailman-2.1.9~/configure.in 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9/configure.in 2007-01-20 04:56:07.585102043 +0100
-@@ -1,4 +1,4 @@
--# Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
-+# Copyright (C) 1998-2006 by the Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
-@@ -15,7 +15,7 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- dnl Process this file with autoconf to produce a configure script.
--AC_REVISION($Revision: 7462 $)
-+AC_REVISION($Revision: 8122 $)
- AC_PREREQ(2.0)
- AC_INIT(src/common.h)
-
-@@ -553,6 +553,7 @@
- bin/convert.py \
- bin/discard \
- bin/dumpdb \
-+bin/export.py \
- bin/find_member \
- bin/fix_url.py \
- bin/genaliases \
Modified: trunk/debian/patches/series
===================================================================
--- trunk/debian/patches/series 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/patches/series 2008-02-08 23:02:53 UTC (rev 530)
@@ -13,7 +13,6 @@
51_nocompile.pyc.patch -p0
52_check_perms_lstat.patch -p0
53_disable_addons.patch -p0
-56_fix_de_broken_links.patch -p0
58_fix_es_translation.patch -p0
59_fix_missing_language_crash.patch -p0
61_fix_ru_siteowner.patch -p0
@@ -31,5 +30,4 @@
78_DeprecationWarning.patch -p0
79_archiver_slash.patch -p0
80_fix_string_search.patch -p0
-81_backport_export.dpatch -p1
99_js_templates.patch -p0
Modified: trunk/debian/rules
===================================================================
--- trunk/debian/rules 2008-01-14 11:37:36 UTC (rev 529)
+++ trunk/debian/rules 2008-02-08 23:02:53 UTC (rev 530)
@@ -113,7 +113,6 @@
rm debian/$(package)/usr/lib/$(package)/Mailman/mm_cfg.py
dh_link etc/$(package)/mm_cfg.py \
usr/lib/$(package)/Mailman/mm_cfg.py
- cp -a admin/www debian/mailman/usr/share/doc/$(package)/html
for bin in $(binaries); \
do dh_link usr/lib/$(package)/bin/$$bin usr/sbin/$$bin; done
mv debian/mailman/usr/sbin/arch debian/mailman/usr/sbin/mmarch
More information about the Pkg-mailman-hackers
mailing list