------------------------------------------------------------ revno: 987 committer: Tokio Kikuchi <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Fri 2007-11-16 11:48:35 +0900 message: merge and commit added: .bzrignore modified: Mailman/Archiver/HyperArch.py Mailman/Cgi/options.py Mailman/Defaults.py.in Mailman/Handlers/CalcRecips.py Mailman/Handlers/CleanseDKIM.py Mailman/Handlers/Hold.py Mailman/Handlers/MimeDel.py Mailman/Handlers/Scrubber.py Mailman/MailList.py Mailman/Queue/CommandRunner.py Mailman/Queue/MaildirRunner.py* Mailman/versions.py configure configure.in misc/paths.py.in ------------------------------------------------------------ revno: 984.1.22 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Fri 2007-11-09 12:25:33 -0800 message: Fixed Mailman/Queue/CommandRunner.py to decode a quoted-printable or base64 encoded message part. modified: Mailman/Queue/CommandRunner.py ------------------------------------------------------------ revno: 984.1.21 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Tue 2007-11-06 17:41:17 -0800 message: - Scrubber.py Fixed an issue where an implicit text/plain part without any headers gets lost. Moved the cleansing of the filename extension to a place where it is guaranteed to be a string as opposed to an empty list. modified: Mailman/Handlers/Scrubber.py ------------------------------------------------------------ revno: 984.1.20 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Sun 2007-11-04 15:19:31 -0800 message: Added Date and Message-ID headers to the confirm reply message that Mailman adds to the admin notification. modified: Mailman/Handlers/Hold.py ------------------------------------------------------------ revno: 984.1.19 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Sun 2007-11-04 15:03:38 -0800 message: - Cgi/options.py - fixed to not present the "empty" topic to user. - Handlers/CalcRecips.py - Changed to not process topics if topics are disabled for the list. modified: Mailman/Cgi/options.py Mailman/Handlers/CalcRecips.py ------------------------------------------------------------ revno: 984.1.18 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Sun 2007-11-04 14:41:26 -0800 message: Added removal of Authentication-Results: header. modified: Mailman/Handlers/CleanseDKIM.py ------------------------------------------------------------ revno: 984.1.17 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Sun 2007-11-04 14:07:28 -0800 message: Changed the descriptions of the ARCHIVE_TO_MBOX settings to more accurately represent their current meaning. modified: Mailman/Defaults.py.in ------------------------------------------------------------ revno: 984.1.16 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-18 13:34:36 -0700 message: MailList.Create() - added an assertion that the listname is lower case. modified: Mailman/MailList.py ------------------------------------------------------------ revno: 984.1.15 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-18 13:29:49 -0700 message: Added a call to warnings.filterwarnings() to misc/paths.py.in to supress the Python 2.5 DeprecationWarning on string exceptions. modified: misc/paths.py.in ------------------------------------------------------------ revno: 984.1.14 committer: Barry Warsaw <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Mon 2007-10-08 22:06:49 -0400 message: Added a .bzrignore to ignore generated files. added: .bzrignore ------------------------------------------------------------ revno: 984.1.13 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-04 19:53:13 -0700 message: Fixed MaildirRunner.py to handle hyphenated list names. ------------------------------------------------------------ revno: 984.1.12 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-04 19:52:04 -0700 message: MimeDel.py neglected to lower case file extensions for comparison with lower cased *_filename_extensions. Fixed. modified: Mailman/Handlers/MimeDel.py ------------------------------------------------------------ revno: 984.1.11 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-04 19:50:56 -0700 message: In rare cases, versions.py can encounter a very old list with held posts in its requests dictionary. It then tries to create a Message.OutgoingMessage object from the message text, but that class no longer exists. Fixed by using email.message_from_string() instead. modified: Mailman/versions.py ------------------------------------------------------------ revno: 984.1.10 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-04 18:43:42 -0700 message: /cygdrive/c/MM_bzr/log.txt modified: Mailman/Handlers/MimeDel.py ------------------------------------------------------------ revno: 984.1.9 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-04 18:40:13 -0700 message: /cygdrive/c/MM_bzr/log.txt modified: Mailman/Queue/MaildirRunner.py* ------------------------------------------------------------ revno: 984.1.8 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Thu 2007-10-04 18:35:10 -0700 message: /cygdrive/c/MM_bzr/log.txt modified: Mailman/versions.py ------------------------------------------------------------ revno: 984.1.7 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Fri 2007-09-21 15:41:19 -0700 message: It is reported that some RedHat packages (for at least FC5 and FC6, but not FC7) contain a full working distutils in the 'python' package, but only contain the Python header files in the 'python-devel' package. This allows configure to succeed, but make install fails to setup the japanese and korean codecs. This change adds a specific test for Python.h to the distutils test. modified: configure ------------------------------------------------------------ revno: 984.1.6 committer: Mark Sapiro <[EMAIL PROTECTED]> branch nick: 2.1 timestamp: Fri 2007-09-21 15:22:15 -0700 message: It is reported that some RedHat packages (for at least FC5 and FC6, but not FC7) contain a full working distutils in the 'python' package, but only contain the Python header files in the 'python-devel' package. This allows configure to succeed, but make install fails to setup the japanese and korean codecs. This change adds a specific test for Python.h to the distutils test. modified: configure.in
=== added file '.bzrignore' --- a/.bzrignore 1970-01-01 00:00:00 +0000 +++ b/.bzrignore 2007-10-09 02:06:49 +0000 @@ -0,0 +1,23 @@ +Mailman/Defaults.py +Mailman/mm_cfg.py.dist +build +config.log +config.status +cron/crontab.in +misc/JapaneseCodecs-1.4.11 +misc/KoreanCodecs-2.0.5 +misc/email-2.5.8 +misc/mailman +misc/paths.py +src/admin +src/admindb +src/confirm +src/create +src/edithtml +src/listinfo +src/mailman +src/options +src/private +src/rmlist +src/roster +src/subscribe === modified file 'Mailman/Archiver/HyperArch.py' --- a/Mailman/Archiver/HyperArch.py 2006-03-20 18:31:35 +0000 +++ b/Mailman/Archiver/HyperArch.py 2007-11-16 02:48:35 +0000 @@ -460,8 +460,10 @@ d["email_html"] = self.quote(self.email) d["title"] = self.quote(self.subject) d["subject_html"] = self.quote(self.subject) - d["subject_url"] = url_quote(self.subject) - d["in_reply_to_url"] = url_quote(self.in_reply_to) + # TK: _url variables are used to compose a response from the + # archive web page. So, ... + d["subject_url"] = 'Re: ' + url_quote(self.subject) + d["in_reply_to_url"] = url_quote(self._message_id) if mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS: # Point the mailto url back to the list author = re.sub('@', _(' at '), self.author) === modified file 'Mailman/Cgi/options.py' --- a/Mailman/Cgi/options.py 2006-08-30 14:54:22 +0000 +++ b/Mailman/Cgi/options.py 2007-11-04 23:03:38 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2006 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -797,6 +797,8 @@ if mlist.topics: table = Table(border="0") for name, pattern, description, emptyflag in mlist.topics: + if emptyflag: + continue quotedname = urllib.quote_plus(name) details = Link(mlist.GetScriptURL('options') + '/%s/?VARHELP=%s' % (user, quotedname), === modified file 'Mailman/Defaults.py.in' --- a/Mailman/Defaults.py.in 2007-05-08 03:16:04 +0000 +++ b/Mailman/Defaults.py.in 2007-11-04 22:07:28 +0000 @@ -217,11 +217,13 @@ # ARCHIVE_TO_MBOX #-1 - do not do any archiving # 0 - do not archive to mbox, use builtin mailman html archiving only -# 1 - archive to mbox to use an external archiving mechanism only -# 2 - archive to both mbox and builtin mailman html archiving - -# use this to make both external archiving mechanism work and -# mailman's builtin html archiving. the flat mail file can be -# useful for searching, external archivers, etc. +# 1 - do not use builtin mailman html archiving, archive to mbox only +# 2 - archive to both mbox and builtin mailman html archiving. +# See the settings below for PUBLIC_EXTERNAL_ARCHIVER and +# PRIVATE_EXTERNAL_ARCHIVER which can be used to replace mailman's +# builtin html archiving with an external archiver. The flat mail +# mbox file can be useful for searching, and is another way to +# interface external archivers, etc. ARCHIVE_TO_MBOX = 2 # 0 - yearly === modified file 'Mailman/Handlers/CalcRecips.py' --- a/Mailman/Handlers/CalcRecips.py 2005-08-27 01:40:17 +0000 +++ b/Mailman/Handlers/CalcRecips.py 2007-11-04 23:03:38 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -12,7 +12,8 @@ # # 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. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. """Calculate the regular (i.e. non-digest) recipients of the message. @@ -91,6 +92,10 @@ def do_topic_filters(mlist, msg, msgdata, recips): + if not mlist.topics_enabled: + # MAS: if topics are currently disabled for the list, send to all + # regardless of ReceiveNonmatchingTopics + return hits = msgdata.get('topichits') zaprecips = [] if hits: === modified file 'Mailman/Handlers/CleanseDKIM.py' --- a/Mailman/Handlers/CleanseDKIM.py 2007-05-08 03:16:04 +0000 +++ b/Mailman/Handlers/CleanseDKIM.py 2007-11-04 22:41:26 +0000 @@ -29,8 +29,8 @@ def process(mlist, msg, msgdata): - if not mm_cfg.REMOVE_DKIM_HEADERS: - return - del msg['domainkey-signature'] - del msg['dkim-signature'] + if mm_cfg.REMOVE_DKIM_HEADERS: + del msg['domainkey-signature'] + del msg['dkim-signature'] + del msg['authentication-results'] === modified file 'Mailman/Handlers/Hold.py' --- a/Mailman/Handlers/Hold.py 2006-07-30 19:35:36 +0000 +++ b/Mailman/Handlers/Hold.py 2007-11-04 23:19:31 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2006 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -283,6 +283,8 @@ dmsg['Subject'] = 'confirm ' + cookie dmsg['Sender'] = requestaddr dmsg['From'] = requestaddr + dmsg['Date'] = email.Utils.formatdate(localtime=True) + dmsg['Message-ID'] = Utils.unique_message_id(mlist) nmsg.attach(text) nmsg.attach(MIMEMessage(msg)) nmsg.attach(MIMEMessage(dmsg)) === modified file 'Mailman/Handlers/MimeDel.py' --- a/Mailman/Handlers/MimeDel.py 2005-12-30 18:50:08 +0000 +++ b/Mailman/Handlers/MimeDel.py 2007-10-05 02:52:04 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2005 by the Free Software Foundation, Inc. +# Copyright (C) 2002-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 @@ -256,4 +256,4 @@ fext = fext[1:] else: fext = '' - return fext + return fext.lower() === modified file 'Mailman/Handlers/Scrubber.py' --- a/Mailman/Handlers/Scrubber.py 2007-06-22 17:49:27 +0000 +++ b/Mailman/Handlers/Scrubber.py 2007-11-07 01:41:17 +0000 @@ -45,7 +45,7 @@ # Path characters for common platforms pre = re.compile(r'[/\\:]') # All other characters to strip out of Content-Disposition: filenames -# (essentially anything that isn't an alphanum, dot, slash, or underscore. +# (essentially anything that isn't an alphanum, dot, dash, or underscore). sre = re.compile(r'[^-\w.]') # Regexp to strip out leading dots dre = re.compile(r'^\.*') @@ -298,7 +298,7 @@ # If the message isn't a multipart, then we'll strip it out as an # attachment that would have to be separately downloaded. Pipermail # will transform the url into a hyperlink. - elif part and not part.is_multipart(): + elif part._payload and not part.is_multipart(): payload = part.get_payload(decode=True) ctype = part.get_type() # XXX Under email 2.5, it is possible that payload will be None. @@ -349,7 +349,8 @@ text = [] for part in msg.walk(): # TK: bug-id 1099138 and multipart - if not part or part.is_multipart(): + # MAS test payload - if part may fail if there are no headers. + if not part._payload or part.is_multipart(): continue # All parts should be scrubbed to text/plain by now. partctype = part.get_content_type() @@ -447,8 +448,6 @@ ext = fnext or guess_extension(ctype, fnext) else: ext = guess_extension(ctype, fnext) - # Allow only alphanumerics, dash, underscore, and dot - ext = sre.sub('', ext) if not ext: # We don't know what it is, so assume it's just a shapeless # application/octet-stream, unless the Content-Type: is @@ -458,6 +457,8 @@ ext = '.txt' else: ext = '.bin' + # Allow only alphanumerics, dash, underscore, and dot + ext = sre.sub('', ext) path = None # We need a lock to calculate the next attachment number lockfile = os.path.join(fsdir, 'attachments.lock') === modified file 'Mailman/MailList.py' --- a/Mailman/MailList.py 2006-03-12 02:24:53 +0000 +++ b/Mailman/MailList.py 2007-10-18 20:34:36 +0000 @@ -470,6 +470,7 @@ # def Create(self, name, admin, crypted_password, langs=None, emailhost=None): + assert name == name.lower(), 'List name must be all lower case.' if Utils.list_exists(name): raise Errors.MMListAlreadyExistsError, name # Validate what will be the list's posting address. If that's === modified file 'Mailman/Queue/CommandRunner.py' --- a/Mailman/Queue/CommandRunner.py 2005-08-27 01:40:17 +0000 +++ b/Mailman/Queue/CommandRunner.py 2007-11-09 20:25:33 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2004 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -93,7 +93,7 @@ if part is None: # E.g the outer Content-Type: was text/html return - body = part.get_payload() + body = part.get_payload(decode=True) # text/plain parts better have string payloads assert isinstance(body, StringType) or isinstance(body, UnicodeType) lines = body.splitlines() === modified file 'Mailman/Queue/MaildirRunner.py' (properties changed) --- a/Mailman/Queue/MaildirRunner.py 2005-08-27 01:40:17 +0000 +++ b/Mailman/Queue/MaildirRunner.py 2007-10-05 01:40:13 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 2002 by the Free Software Foundation, Inc. +# Copyright (C) 2002-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 @@ -12,7 +12,8 @@ # # 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. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. """Maildir pre-queue runner. @@ -66,11 +67,22 @@ # listname-request@ lre = re.compile(r""" ^ # start of string - (?P<listname>[EMAIL PROTECTED]) # listname@ or listname-subq@ + (?P<listname>[EMAIL PROTECTED]) # listname@ or listname-subq@ (non-greedy) (?: # non-grouping - # dash separator - (?P<subq>[EMAIL PROTECTED]) # everything up to + or - or @ + (?P<subq> # any known suffix + admin| + bounces| + confirm| + join| + leave| + owner| + request| + subscribe| + unsubscribe + ) )? # if it exists + [EMAIL PROTECTED] # followed by + or @ """, re.VERBOSE | re.IGNORECASE) === modified file 'Mailman/versions.py' --- a/Mailman/versions.py 2005-12-30 18:50:08 +0000 +++ b/Mailman/versions.py 2007-10-05 02:50:56 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2005 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -483,10 +483,11 @@ # blow away the original timestamp and request id. This means the # request will live a little longer than it possibly should have, # but that's no big deal. + import email for p in v: author, text = p[2] reason = p[3] - msg = Message.OutgoingMessage(text) + msg = email.message_from_string(text, Message.Message) l.HoldMessage(msg, reason) del r[k] elif k == 'add_member': === modified file 'configure' --- a/configure 2006-12-29 21:56:04 +0000 +++ b/configure 2007-09-21 22:41:19 +0000 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 7462 . +# From configure.in Revision: 8122 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59. # @@ -1446,7 +1446,14 @@ except distutils.errors.DistutilsPlatformError: res = "no" else: - res = "yes" + # some RedHat packages put distutils in python, but the C headers + # are in python-devel so check for headers too. + import os.path + pdothpath = distutils.sysconfig.get_config_var('CONFINCLUDEPY') + if os.path.isfile(os.path.join(pdothpath, "Python.h")): + res = "yes" + else: + res = "no" fp = open("conftest.out", "w") fp.write("%s\n" % res) fp.close() @@ -1462,13 +1469,15 @@ ***** Distutils is not available or is incomplete for $PYTHON ***** If you installed Python from RPM (or other package manager) ***** be sure to install the -devel package, or install Python -***** from source. See README.LINUX for details" >&5 +***** from source. See sec. 15.1 of the Installation Manual for +***** details" >&5 echo "$as_me: error: ***** Distutils is not available or is incomplete for $PYTHON ***** If you installed Python from RPM (or other package manager) ***** be sure to install the -devel package, or install Python -***** from source. See README.LINUX for details" >&2;} +***** from source. See sec. 15.1 of the Installation Manual for +***** details" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $havedistutils" >&5 @@ -4369,9 +4378,10 @@ # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs === modified file 'configure.in' --- a/configure.in 2006-12-29 21:56:04 +0000 +++ b/configure.in 2007-09-21 22:22:15 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2006 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -101,7 +101,14 @@ except distutils.errors.DistutilsPlatformError: res = "no" else: - res = "yes" + # some RedHat packages put distutils in python, but the C headers + # are in python-devel so check for headers too. + import os.path + pdothpath = distutils.sysconfig.get_config_var('CONFINCLUDEPY') + if os.path.isfile(os.path.join(pdothpath, "Python.h")): + res = "yes" + else: + res = "no" fp = open("conftest.out", "w") fp.write("%s\n" % res) fp.close() @@ -117,7 +124,8 @@ ***** Distutils is not available or is incomplete for $PYTHON ***** If you installed Python from RPM (or other package manager) ***** be sure to install the -devel package, or install Python -***** from source. See README.LINUX for details]) +***** from source. See sec. 15.1 of the Installation Manual for +***** details]) fi AC_MSG_RESULT($havedistutils) === modified file 'misc/paths.py.in' --- a/misc/paths.py.in 2006-10-12 00:48:48 +0000 +++ b/misc/paths.py.in 2007-10-18 20:29:49 +0000 @@ -1,6 +1,6 @@ # -*- python -*- -# Copyright (C) 1998-2005 by the Free Software Foundation, Inc. +# Copyright (C) 1998-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 @@ -24,8 +24,9 @@ # attributes that other modules may use to get the absolute path to the # installed Mailman distribution. +import os import sys -import os +from warnings import filterwarnings # some scripts expect this attribute to be in this module prefix = '@prefix@' @@ -35,6 +36,9 @@ if exec_prefix == '${prefix}': exec_prefix = prefix +# Supress Python 2.5 warning about string exceptions. +filterwarnings('ignore', '.* string exception', DeprecationWarning) + # Check if ja/ko codecs are available before changing path. try: s = unicode('OK', 'iso-2022-jp') -- https://code.launchpad.net/~mailman-coders/mailman/2.1 You are receiving this branch notification because you are subscribed to it. To unsubscribe from this branch go to https://code.launchpad.net/~mailman-coders/mailman/2.1/+subscription/mailman-checkins. _______________________________________________ Mailman-checkins mailing list Mailman-checkins@python.org Unsubscribe: http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org