Index: NEWS =================================================================== RCS file: /cvsroot/mailman/mailman/NEWS,v retrieving revision 1.25.2.13 retrieving revision 1.25.2.14 diff -u -r1.25.2.13 -r1.25.2.14 --- NEWS 3 Apr 2002 22:50:10 -0000 1.25.2.13 +++ NEWS 9 Apr 2002 20:57:40 -0000 1.25.2.14 @@ -4,6 +4,14 @@ Here is a history of user visible changes to Mailman. +2.0.10 (09-Apr-2002) + + - Closed another small race condition. + + - Add the RFC-2822 recommended Message-ID: header on internally + generated outgoing messages. Not all MTAs add this field if + missing (read: Qmail). + 2.0.9 (02-Apr-2002) - Closed a race condition which could, under rare circumstances, Index: Mailman/Message.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Message.py,v retrieving revision 1.40.2.2 retrieving revision 1.40.2.3 diff -u -r1.40.2.2 -r1.40.2.3 --- Mailman/Message.py 3 Apr 2002 22:40:41 -0000 1.40.2.2 +++ Mailman/Message.py 4 Apr 2002 21:14:59 -0000 1.40.2.3 @@ -196,10 +196,14 @@ # make sure that the first line does NOT contain a colon! Message.__init__(self, StringIO(text)) # RFC 2822 requires a Date: header, and while most MTAs add one if - # it's missing, Qmail does not. + # it's missing, qmail does not. if not self.get('date'): self['Date'] = Utils.formatdate(localtime=1) - + # RFC 2822 recommends a Message-ID: header, and while most MTAs add + # one if it's missing, qmail does not. + if not self.get('message-id'): + self['Message-ID'] = Utils.make_msgid(idstring='Mailman') + class UserNotification(OutgoingMessage): Index: Mailman/Utils.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Utils.py,v retrieving revision 1.104.2.5 retrieving revision 1.104.2.6 diff -u -r1.104.2.5 -r1.104.2.6 --- Mailman/Utils.py 3 Apr 2002 22:47:12 -0000 1.104.2.5 +++ Mailman/Utils.py 4 Apr 2002 21:14:23 -0000 1.104.2.6 @@ -28,6 +28,8 @@ import string import re import time +import socket +import random from UserDict import UserDict from types import StringType import random @@ -737,3 +739,28 @@ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][now[1] - 1], now[0], now[3], now[4], now[5], zone) + + + +def make_msgid(idstring=None): + """Returns a string suitable for RFC 2822 compliant Message-ID:, e.g: + + <20020201195627.33539.96671@nightshade.la.mastaler.com> + + Optional idstring if given is a string used to strengthen the + uniqueness of the Message-ID, otherwise an empty string is used. + """ + timeval = time.time() + utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval)) + pid = os.getpid() + randint = random.randrange(100000) + if idstring is None: + idstring = '' + else: + idstring = '.' + idstring + try: + idhost = socket.getfqdn() + except AttributeError: + idhost = socket.gethostbyaddr(socket.gethostname())[0] + msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, idhost) + return msgid Index: Mailman/Version.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Version.py,v retrieving revision 1.20.2.9 retrieving revision 1.20.2.10 diff -u -r1.20.2.9 -r1.20.2.10 --- Mailman/Version.py 2 Apr 2002 23:36:35 -0000 1.20.2.9 +++ Mailman/Version.py 9 Apr 2002 21:06:16 -0000 1.20.2.10 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Mailman version -VERSION = "2.0.9" +VERSION = "2.0.10" # And as a hex number in the manner of PY_VERSION_HEX ALPHA = 0xa @@ -27,7 +27,7 @@ MAJOR_REV = 2 MINOR_REV = 0 -MICRO_REV = 9 +MICRO_REV = 10 REL_LEVEL = FINAL # at most 15 beta releases! REL_SERIAL = 0 Index: admin/www/MMGenerator.py =================================================================== RCS file: /cvsroot/mailman/mailman/admin/www/MMGenerator.py,v retrieving revision 1.2.2.2 retrieving revision 1.2.2.3 diff -u -r1.2.2.2 -r1.2.2.3 --- admin/www/MMGenerator.py 5 Jan 2001 16:23:07 -0000 1.2.2.2 +++ admin/www/MMGenerator.py 4 Apr 2002 17:51:53 -0000 1.2.2.3 @@ -5,7 +5,9 @@ http://www.wooz.org/users/barry/software/pyware.html """ +import time import os +import re from Skeleton import Skeleton from Sidebar import Sidebar, BLANKCELL @@ -13,6 +15,8 @@ from HTParser import HTParser from LinkFixer import LinkFixer +COMMA = ',' + sitelinks = [ @@ -49,18 +53,26 @@ self.__d = {'rootdir': rootdir} self.__linkfixer.massage(p.sidebar, self.__d) # tweak - p.sidebar.append((None, - ''' ''' - % self.__d)) + p.sidebar.append((None, """\ +
+ |
|
-+ + | - | + |
-
|
-||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||||||
+© 1998,1999,2000,2001,2002 Free Software Foundation, Inc. +Verbatim copying and distribution of this entire article is permitted in +any medium, provided this notice is preserved. +Please send comments on these pages to +<webmasters@gnu.org>, other questions to <gnu@gnu.org>. + + |
+ |
|
-+ + | - | + |
-
|
-||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||
+© 1998,1999,2000,2001,2002 Free Software Foundation, Inc. +Verbatim copying and distribution of this entire article is permitted in +any medium, provided this notice is preserved. +Please send comments on these pages to +<webmasters@gnu.org>, other questions to <gnu@gnu.org>. + + |
Mailman is being developed on SourceForge. Please use the SourceForge bug tracker to -report any bugs; I've retired the old Jitterbug database on -python.org. If you have patches you'd like to submit, the best place +report any bugs. If you have patches you'd like to submit, the best place to do that is on the SourceForge patch manager. -
+ |
|
-+ + | - | + |
-
|
-||||||||||||||||||||||||
+
| ||||||||||||||||||||||||||||||||||||||||||||||||
+© 1998,1999,2000,2001,2002 Free Software Foundation, Inc. +Verbatim copying and distribution of this entire article is permitted in +any medium, provided this notice is preserved. +Please send comments on these pages to +<webmasters@gnu.org>, other questions to <gnu@gnu.org>. + + |
Mailman currently runs only on Unix-y systems, such as Linux, +
Mailman currently runs only on Unix-y systems, such as GNU/Linux, Solaris, *BSD, etc. It should work on MacOSX but not earlier versions of MacOS. It probably does not work on Windows, although it's possible you could get it running on a Cygwin system (please @@ -26,7 +25,7 @@ Before you can run Mailman, you need to make sure that Python is installed. Mailman requires at least Python 1.5.2 and is known to work with Python 1.6 -and Python 2.0. Most Linux systems come with Python pre-installed, so +and Python 2.0. Most GNU/Linux systems come with Python pre-installed, so you just need to make sure you're running an up-to-date version. You can do this by executing the following at your shell's command line: @@ -40,17 +39,13 @@ -
You will also need an SMTP server (a.k.a. mail transport agent or -MTA) for mail delivery and reception. -Sendmail is the oldest and most -widely-used MTA, and comes pre-installed on most Unix systems, however it -is not the recommended MTA to use with Mailman. It works, but you may -get better results from one of the newer MTAs. Good results are -reported on the Mailman mailing lists from -people using Postfix, -Exim, and -Qmail. Most Mailman development -is done with Postfix. +
You will also need a mail server (a.k.a. SMTP server, mail +transport agent or MTA) for mail delivery and reception. +Mailman is MTA-agnostic, meaning it should work with just about any +mail server. Among the servers used by the Mailman community include +Postfix, +Exim, +Sendmail, and Qmail.
You will need a web server. Apache is certainly the most @@ -65,9 +60,9 @@
Version -(2.0.9, +(2.0.10, released on -Apr 3 2002) +Apr 17 2002) is the current GNU release. It is available from the following mirror sites:
+ |
|
-+ + | - | + |
-
|
-||||||||||||||||||||||||
+
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+© 1998,1999,2000,2001,2002 Free Software Foundation, Inc. +Verbatim copying and distribution of this entire article is permitted in +any medium, provided this notice is preserved. +Please send comments on these pages to +<webmasters@gnu.org>, other questions to <gnu@gnu.org>. + + |
Mailman currently runs only on Unix-y systems, such as Linux, +
Mailman currently runs only on Unix-y systems, such as GNU/Linux, Solaris, *BSD, etc. It should work on MacOSX but not earlier versions of MacOS. It probably does not work on Windows, although it's possible you could get it running on a Cygwin system (please @@ -208,7 +211,7 @@ Before you can run Mailman, you need to make sure that Python is installed. Mailman requires at least Python 1.5.2 and is known to work with Python 1.6 -and Python 2.0. Most Linux systems come with Python pre-installed, so +and Python 2.0. Most GNU/Linux systems come with Python pre-installed, so you just need to make sure you're running an up-to-date version. You can do this by executing the following at your shell's command line: @@ -222,17 +225,13 @@ -
You will also need an SMTP server (a.k.a. mail transport agent or -MTA) for mail delivery and reception. -Sendmail is the oldest and most -widely-used MTA, and comes pre-installed on most Unix systems, however it -is not the recommended MTA to use with Mailman. It works, but you may -get better results from one of the newer MTAs. Good results are -reported on the Mailman mailing lists from -people using Postfix, -Exim, and -Qmail. Most Mailman development -is done with Postfix. +
You will also need a mail server (a.k.a. SMTP server, mail +transport agent or MTA) for mail delivery and reception. +Mailman is MTA-agnostic, meaning it should work with just about any +mail server. Among the servers used by the Mailman community include +Postfix, +Exim, +Sendmail, and Qmail.
You will need a web server. Apache is certainly the most @@ -247,9 +246,9 @@
Version -(2.0.9, +(2.0.10, released on -Apr 3 2002) +Apr 17 2002) is the current GNU release. It is available from the following mirror sites: