aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ACKNOWLEDGMENTS6
-rw-r--r--Mailman/Handlers/Scrubber.py7
-rw-r--r--Mailman/Utils.py2
-rw-r--r--Mailman/htmlformat.py50
-rw-r--r--NEWS17
-rwxr-xr-xbin/newlist4
6 files changed, 50 insertions, 36 deletions
diff --git a/ACKNOWLEDGMENTS b/ACKNOWLEDGMENTS
index 60c9c3fd..77b0e9f8 100644
--- a/ACKNOWLEDGMENTS
+++ b/ACKNOWLEDGMENTS
@@ -1,5 +1,5 @@
Mailman - The GNU Mailing List Management System
-Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
+Copyright (C) 1998-2005 by the Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
The following folks are or have been core developers of Mailman (in reverse
@@ -71,6 +71,7 @@ in answering questions on mailman-users.
David Champion
Hye-Shik Chang
Eric D. Christensen
+ Tom G. Christensen
Paul Cox
Stefaniu Criste
Robert Daeley
@@ -102,6 +103,7 @@ in answering questions on mailman-users.
Paul Hebble
Tollef Fog Heen
Peer Heinlein
+ James Henstridge
Walter Hop
Bert Hubert
Henny Huisman
@@ -160,6 +162,7 @@ in answering questions on mailman-users.
Eva Österlind
Toni Panadès
Jon Parise
+ Chris Pepper
Tim Peters
Joe Peterson
Piarres Beobide Egaña
@@ -185,6 +188,7 @@ in answering questions on mailman-users.
Chris Ryan
Cabel Sasser
Bartosz Sawicki
+ Kai Schaetzl
Karoly Segesdi
SHIGENO Kazutaka
Gleydson Mazioli da Silva
diff --git a/Mailman/Handlers/Scrubber.py b/Mailman/Handlers/Scrubber.py
index 67ec6bf4..31b37985 100644
--- a/Mailman/Handlers/Scrubber.py
+++ b/Mailman/Handlers/Scrubber.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2003 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2005 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
@@ -14,8 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-"""Cleanse a message for archiving.
-"""
+"""Cleanse a message for archiving."""
from __future__ import nested_scopes
@@ -340,7 +339,7 @@ Url : %(url)s
except binascii.Error:
t = part.get_payload()
# TK: get_content_charset() returns 'iso-2022-jp' for internally
- # crafted (scrubbed) 'euc-jp' text part. So, first try
+ # crafted (scrubbed) 'euc-jp' text part. So, first try
# get_charset(), then get_content_charset() for the parts
# which are already embeded in the incoming message.
partcharset = part.get_charset()
diff --git a/Mailman/Utils.py b/Mailman/Utils.py
index 18b1c468..0562d57f 100644
--- a/Mailman/Utils.py
+++ b/Mailman/Utils.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2005 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
diff --git a/Mailman/htmlformat.py b/Mailman/htmlformat.py
index d80d081a..2b6f0e06 100644
--- a/Mailman/htmlformat.py
+++ b/Mailman/htmlformat.py
@@ -1,17 +1,17 @@
-# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2005 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
+# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@@ -84,7 +84,7 @@ class Table:
# Add a new blank cell at the end
def NewCell(self):
self.cells[-1].append('')
-
+
def AddRow(self, row):
self.cells.append(row)
@@ -99,7 +99,7 @@ class Table:
DictMerge(self.cell_info[row], kws)
else:
self.cell_info[row][col] = kws
-
+
def AddRowInfo(self, row, **kws):
kws = CaseInsensitiveKeyedDict(kws)
if not self.row_info.has_key(row):
@@ -110,7 +110,7 @@ class Table:
# What's the index for the row we just put in?
def GetCurrentRowIndex(self):
return len(self.cells)-1
-
+
# What's the index for the col we just put in?
def GetCurrentCellIndex(self):
return len(self.cells[-1])-1
@@ -154,7 +154,7 @@ class Table:
if key == 'border' and val == None:
output = output + ' BORDER'
continue
- else:
+ else:
output = output + ' %s="%s"' % (key.upper(), val)
return output
@@ -202,14 +202,14 @@ class Table:
output = output + '\n' + ' '*indent + '</table>\n'
return output
-
+
class Link:
def __init__(self, href, text, target=None):
self.href = href
self.text = text
self.target = target
-
+
def Format(self, indent=0):
texpr = ""
if self.target != None:
@@ -223,7 +223,7 @@ class FontSize:
def __init__(self, size, *items):
self.items = list(items)
self.size = size
-
+
def Format(self, indent=0):
output = '<font size="%s">' % self.size
for item in self.items:
@@ -236,7 +236,7 @@ class FontAttr:
def __init__(self, *items, **kw):
self.items = list(items)
self.attrs = kw
-
+
def Format(self, indent=0):
seq = []
for k, v in self.attrs.items():
@@ -345,7 +345,7 @@ class Document(Container):
class HeadlessDocument(Document):
"""Document without head section, for templates that provide their own."""
suppress_head = 1
-
+
class StdContainer(Container):
def Format(self, indent=0):
@@ -353,7 +353,7 @@ class StdContainer(Container):
output = '<%s>' % self.tag
output = output + Container.Format(self, indent)
output = '%s</%s>' % (output, self.tag)
- return output
+ return output
class QuotedContainer(Container):
@@ -375,9 +375,9 @@ class Address(StdContainer):
class Underline(StdContainer):
tag = 'u'
-
+
class Bold(StdContainer):
- tag = 'strong'
+ tag = 'strong'
class Italic(StdContainer):
tag = 'em'
@@ -494,7 +494,7 @@ class VerticalSpacer:
self.size = size
def Format(self, indent=0):
output = '<spacer type="vertical" height="%d">' % self.size
- return output
+ return output
class WidgetArray:
Widget = None
@@ -578,7 +578,7 @@ class OrderedList(Container):
(spaces, HTMLFormatObject(item, indent + 2))
output = output + '%s</ol>\n' % spaces
return output
-
+
class DefinitionList(Container):
def Format(self, indent=0):
spaces = ' ' * indent
@@ -632,14 +632,14 @@ def MailmanLogo():
class SelectOptions:
- def __init__(self, varname, values, legend,
+ def __init__(self, varname, values, legend,
selected=0, size=1, multiple=None):
self.varname = varname
self.values = values
self.legend = legend
self.size = size
self.multiple = multiple
- # we convert any type to tuple, commas are needed
+ # we convert any type to tuple, commas are needed
if not multiple:
if type(selected) == types.IntType:
self.selected = (selected,)
@@ -649,7 +649,7 @@ class SelectOptions:
self.selected = (selected[0],)
else:
self.selected = (0,)
-
+
def Format(self, indent=0):
spaces = " " * indent
items = min( len(self.values), len(self.legend) )
@@ -657,22 +657,22 @@ class SelectOptions:
# jcrey: If there is no argument, we return nothing to avoid errors
if items == 0:
return ""
-
+
text = "\n" + spaces + "<Select name=\"%s\"" % self.varname
if self.size > 1:
text = text + " size=%d" % self.size
if self.multiple:
text = text + " multiple"
text = text + ">\n"
-
+
for i in range(items):
if i in self.selected:
checked = " Selected"
else:
checked = ""
-
+
opt = " <option value=\"%s\"%s> %s </option>" % (
self.values[i], checked, self.legend[i])
text = text + spaces + opt + "\n"
-
+
return text + spaces + '</Select>'
diff --git a/NEWS b/NEWS
index e2c1a647..34c00ba2 100644
--- a/NEWS
+++ b/NEWS
@@ -1,15 +1,26 @@
Mailman - The GNU Mailing List Management System
-Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
+Copyright (C) 1998-2005 by the Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Here is a history of user visible changes to Mailman.
2.1.6 (XX-XXX-200X)
+ - Most of the installation instructions have been moved to a latex
+ document. See admin/www/mailman-install/index.html for details.
+
+ - VERP_PROBES is disabled by default.
+
- bin/withlist can be run without a list name, but only if -i is given.
Also, withlist puts the directory it's found in at the end of sys.path,
making it easier to run withlist scripts that live in $prefix/bin.
+ - bin/newlist grew two new options: -u/--urlhost and -e/--emailhost which
+ lets the user provide the web and email hostnames for the new mailing
+ list. This is a better way to specify the domain for the list, rather
+ than the old 'mylist@hostname' syntax (which is still supported for
+ backward compatibility, but deprecated).
+
- Added the ability for Mailman generated passwords (both member and list
admin) to be more cryptographically secure. See new configuration
variables USER_FRIENDLY_PASSWORDS, MEMBER_PASSWORD_LENGTH, and
@@ -25,8 +36,8 @@ Here is a history of user visible changes to Mailman.
STEALTH_MODE on by default.
- Chinese languages moved from 'big5' and 'gb' to 'zh_TW' and 'zh_CN'
- respectively for compliance to the IANA spec. Note that the both
- languages are not supported yet.
+ respectively for compliance to the IANA spec. Note that neither language
+ is supported yet.
- Python 2.4 compatibility issue: time.strftime() became strict about the
'day of year' range. (1078482)
diff --git a/bin/newlist b/bin/newlist
index 3f42c9d1..9fecebd4 100755
--- a/bin/newlist
+++ b/bin/newlist
@@ -1,6 +1,6 @@
#! @PYTHON@
#
-# Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2005 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
@@ -60,7 +60,7 @@ like so:
where `www.mydom.ain' should be the base hostname for the URL to this virtual
hosts's lists. E.g. with this setting people will view the general list
overviews at http://www.mydom.ain/mailman/listinfo. Also, www.mydom.ain
-should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py if
+should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py if
the email hostname to be automatically determined.
If you want the email hostname to be different from the one looked up by the