[mailman] - fix #688435 - set proper permissions for private archive - fix badly rebased LC_CTYPE patch which
Jan Kaluža
jkaluza at fedoraproject.org
Tue Apr 5 07:27:47 UTC 2011
commit 1ff0652a784cb58dcde38d09418f03c74d0754ee
Author: Jan Kaluza <hanzz.k at gmail.com>
Date: Tue Apr 5 09:27:45 2011 +0200
- fix #688435 - set proper permissions for private archive
- fix badly rebased LC_CTYPE patch which caused newlist to fail with traceback
mailman-2.1.9-LC_CTYPE.patch | 1088 +++++++++++++++++++++---------------------
mailman.spec | 17 +-
2 files changed, 557 insertions(+), 548 deletions(-)
---
diff --git a/mailman-2.1.9-LC_CTYPE.patch b/mailman-2.1.9-LC_CTYPE.patch
index 47099c8..074f7e0 100644
--- a/mailman-2.1.9-LC_CTYPE.patch
+++ b/mailman-2.1.9-LC_CTYPE.patch
@@ -1,8 +1,167 @@
-Nur in mailman-2.1.9-new: autom4te.cache.
-diff -ur mailman-2.1.9/bin/add_members mailman-2.1.9-new/bin/add_members
---- mailman-2.1.9/bin/add_members 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/add_members 2007-01-29 14:29:46.000000000 +0100
-@@ -81,6 +81,7 @@
+diff --git a/Mailman/MTA/Manual.py b/Mailman/MTA/Manual.py
+index 92e1c03..0abde2e 100644
+--- a/Mailman/MTA/Manual.py
++++ b/Mailman/MTA/Manual.py
+@@ -25,7 +25,7 @@ from Mailman import mm_cfg
+ from Mailman import Message
+ from Mailman import Utils
+ from Mailman.Queue.sbcache import get_switchboard
+-from Mailman.i18n import _
++from Mailman.i18n import _, C_
+ from Mailman.MTA.Utils import makealiases
+
+ try:
+@@ -74,12 +74,12 @@ Here are the entries for the /etc/aliases file:
+ outfp = sfp
+ else:
+ if not quiet:
+- print _("""\
++ print C_("""\
+ To finish creating your mailing list, you must edit your /etc/aliases (or
+ equivalent) file by adding the following lines, and possibly running the
+ `newaliases' program:
+ """)
+- print _("""\
++ print C_("""\
+ ## %(listname)s mailing list""")
+ outfp = sys.stdout
+ # Common path
+@@ -120,7 +120,7 @@ Here are the entries in the /etc/aliases file that should be removed:
+ """)
+ outfp = sfp
+ else:
+- print _("""
++ print C_("""
+ To finish removing your mailing list, you must edit your /etc/aliases (or
+ equivalent) file by removing the following lines, and possibly running the
+ `newaliases' program:
+diff --git a/Mailman/MTA/Postfix.py b/Mailman/MTA/Postfix.py
+index 376f8b6..0a8395b 100644
+--- a/Mailman/MTA/Postfix.py
++++ b/Mailman/MTA/Postfix.py
+@@ -27,7 +27,7 @@ from stat import *
+ from Mailman import mm_cfg
+ from Mailman import Utils
+ from Mailman import LockFile
+-from Mailman.i18n import _
++from Mailman.i18n import C_
+ from Mailman.MTA.Utils import makealiases
+ from Mailman.Logging.Syslog import syslog
+
+@@ -314,7 +314,7 @@ def checkperms(state):
+ targetmode = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
+ for file in ALIASFILE, VIRTFILE:
+ if state.VERBOSE:
+- print _('checking permissions on %(file)s')
++ print C_('checking permissions on %(file)s')
+ stat = None
+ try:
+ stat = os.stat(file)
+@@ -324,9 +324,9 @@ def checkperms(state):
+ if stat and (stat[ST_MODE] & targetmode) <> targetmode:
+ state.ERRORS += 1
+ octmode = oct(stat[ST_MODE])
+- print _('%(file)s permissions must be 066x (got %(octmode)s)'),
++ print C_('%(file)s permissions must be 066x (got %(octmode)s)'),
+ if state.FIX:
+- print _('(fixing)')
++ print C_('(fixing)')
+ os.chmod(file, stat[ST_MODE] | targetmode)
+ else:
+ print
+@@ -342,7 +342,7 @@ def checkperms(state):
+ raise
+ continue
+ if state.VERBOSE:
+- print _('checking ownership of %(dbfile)s')
++ print C_('checking ownership of %(dbfile)s')
+ user = mm_cfg.MAILMAN_USER
+ ownerok = stat[ST_UID] == pwd.getpwnam(user)[2]
+ if not ownerok:
+@@ -350,10 +350,10 @@ def checkperms(state):
+ owner = pwd.getpwuid(stat[ST_UID])[0]
+ except KeyError:
+ owner = 'uid %d' % stat[ST_UID]
+- print _('%(dbfile)s owned by %(owner)s (must be owned by %(user)s'),
++ print C_('%(dbfile)s owned by %(owner)s (must be owned by %(user)s'),
+ state.ERRORS += 1
+ if state.FIX:
+- print _('(fixing)')
++ print C_('(fixing)')
+ uid = pwd.getpwnam(user)[2]
+ gid = grp.getgrnam(mm_cfg.MAILMAN_GROUP)[2]
+ os.chown(dbfile, uid, gid)
+diff --git a/Mailman/i18n.py b/Mailman/i18n.py
+index 5f926b7..0cfdb99 100644
+--- a/Mailman/i18n.py
++++ b/Mailman/i18n.py
+@@ -15,6 +15,7 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ # USA.
+
++import locale
+ import sys
+ import time
+ import gettext
+@@ -25,6 +26,15 @@ from Mailman.SafeDict import SafeDict
+
+ _translation = None
+
++
++def _get_ctype_charset():
++ old = locale.setlocale(locale.LC_CTYPE, '')
++ charset = locale.nl_langinfo(locale.CODESET)
++ locale.setlocale(locale.LC_CTYPE, old)
++ return charset
++
++_ctype_charset = _get_ctype_charset()
++
+
+
+ def set_language(language=None):
+@@ -54,7 +64,7 @@ if _translation is None:
+
+
+
+-def _(s):
++def _(s, frame = 1):
+ if s == '':
+ return s
+ assert s
+@@ -70,7 +80,7 @@ def _(s):
+ # original string is 1) locals dictionary, 2) globals dictionary.
+ #
+ # First, get the frame of the caller
+- frame = sys._getframe(1)
++ frame = sys._getframe(frame)
+ # A `safe' dictionary is used so we won't get an exception if there's a
+ # missing key in the dictionary.
+ dict = SafeDict(frame.f_globals.copy())
+@@ -95,6 +105,19 @@ def _(s):
+
+
+
++def tolocale(s):
++ global _ctype_charset
++ if isinstance(s, UnicodeType):
++ return s
++ source = _translation.charset ()
++ if not source:
++ return s
++ return unicode(s, source, 'replace').encode(_ctype_charset, 'replace')
++
++def C_(s):
++ return tolocale(_(s, 2))
++
++
+ def ctime(date):
+ # Don't make these module globals since we have to do runtime translation
+ # of the strings anyway.
+diff --git a/bin/add_members b/bin/add_members
+index 03f0af3..562e15a 100755
+--- a/bin/add_members
++++ b/bin/add_members
+@@ -81,6 +81,7 @@ from Mailman import mm_cfg
from Mailman import i18n
_ = i18n._
@@ -10,7 +169,7 @@ diff -ur mailman-2.1.9/bin/add_members mailman-2.1.9-new/bin/add_members
-@@ -89,7 +90,7 @@
+@@ -89,7 +90,7 @@ def usage(status, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -19,7 +178,7 @@ diff -ur mailman-2.1.9/bin/add_members mailman-2.1.9-new/bin/add_members
if msg:
print >> fd, msg
sys.exit(status)
-@@ -116,7 +117,7 @@
+@@ -116,7 +117,7 @@ class Tee:
self.__outfp = outfp
def write(self, msg):
@@ -28,7 +187,7 @@ diff -ur mailman-2.1.9/bin/add_members mailman-2.1.9-new/bin/add_members
self.__outfp.write(msg)
-@@ -188,26 +189,26 @@
+@@ -191,26 +192,26 @@ def main():
elif arg.lower()[0] == 'n':
send_welcome_msg = 0
else:
@@ -60,7 +219,7 @@ diff -ur mailman-2.1.9/bin/add_members mailman-2.1.9-new/bin/add_members
# Set up defaults
if send_welcome_msg is None:
-@@ -227,7 +228,7 @@
+@@ -230,7 +231,7 @@ def main():
nmembers = readfile(nfile)
if not dmembers and not nmembers:
@@ -69,10 +228,11 @@ diff -ur mailman-2.1.9/bin/add_members mailman-2.1.9-new/bin/add_members
s = StringIO()
i18n.set_language(mlist.preferred_language)
-diff -ur mailman-2.1.9/bin/arch mailman-2.1.9-new/bin/arch
---- mailman-2.1.9/bin/arch 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/arch 2007-01-29 14:29:46.000000000 +0100
-@@ -70,7 +70,7 @@
+diff --git a/bin/arch b/bin/arch
+index a98ae2a..8fdca6a 100644
+--- a/bin/arch
++++ b/bin/arch
+@@ -70,7 +70,7 @@ from Mailman.Archiver.HyperArch import HyperArchive
from Mailman.LockFile import LockFile
from Mailman import i18n
@@ -81,7 +241,7 @@ diff -ur mailman-2.1.9/bin/arch mailman-2.1.9-new/bin/arch
PROGRAM = sys.argv[0]
i18n.set_language(mm_cfg.DEFAULT_SERVER_LANGUAGE)
-@@ -82,7 +82,7 @@
+@@ -82,7 +82,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -90,7 +250,7 @@ diff -ur mailman-2.1.9/bin/arch mailman-2.1.9-new/bin/arch
if msg:
print >> fd, msg
sys.exit(code)
-@@ -122,7 +122,7 @@
+@@ -122,7 +122,7 @@ def main():
# grok arguments
if len(args) < 1:
@@ -99,7 +259,7 @@ diff -ur mailman-2.1.9/bin/arch mailman-2.1.9-new/bin/arch
listname = args[0].lower().strip()
if len(args) < 2:
-@@ -140,7 +140,7 @@
+@@ -140,7 +140,7 @@ def main():
try:
mlist = MailList(listname)
except Errors.MMListError, e:
@@ -108,20 +268,20 @@ diff -ur mailman-2.1.9/bin/arch mailman-2.1.9-new/bin/arch
if mbox is None:
mbox = mlist.ArchiveFileName()
-@@ -180,7 +180,7 @@
+@@ -165,7 +165,7 @@ def main():
try:
fp = open(mbox)
except IOError, msg:
- usage(3, _('Cannot open mbox file %(mbox)s: %(msg)s'))
+ usage(3, C_('Cannot open mbox file %(mbox)s: %(msg)s'))
-
- archiver = HyperArchive(mlist)
- archiver.VERBOSE = verbose
-Nur in mailman-2.1.9-new/bin: arch.orig.
-diff -ur mailman-2.1.9/bin/b4b5-archfix mailman-2.1.9-new/bin/b4b5-archfix
---- mailman-2.1.9/bin/b4b5-archfix 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/b4b5-archfix 2007-01-29 14:29:46.000000000 +0100
-@@ -44,7 +44,7 @@
+ # Maybe wipe the old archives
+ if wipe:
+ if mlist.scrub_nondigest:
+diff --git a/bin/b4b5-archfix b/bin/b4b5-archfix
+index 1bdaeda..22d8839 100644
+--- a/bin/b4b5-archfix
++++ b/bin/b4b5-archfix
+@@ -44,7 +44,7 @@ import cPickle as pickle
# Required to get the right classes for unpickling
import paths
@@ -130,7 +290,7 @@ diff -ur mailman-2.1.9/bin/b4b5-archfix mailman-2.1.9-new/bin/b4b5-archfix
PROGRAM = sys.argv[0]
-@@ -55,7 +55,7 @@
+@@ -55,7 +55,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -139,10 +299,11 @@ diff -ur mailman-2.1.9/bin/b4b5-archfix mailman-2.1.9-new/bin/b4b5-archfix
if msg:
print >> fd, msg
sys.exit(code)
-diff -ur mailman-2.1.9/bin/change_pw mailman-2.1.9-new/bin/change_pw
---- mailman-2.1.9/bin/change_pw 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/change_pw 2007-01-29 14:32:07.000000000 +0100
-@@ -77,6 +77,7 @@
+diff --git a/bin/change_pw b/bin/change_pw
+index 6adabcd..b9a36de 100644
+--- a/bin/change_pw
++++ b/bin/change_pw
+@@ -77,6 +77,7 @@ from Mailman import Message
from Mailman import i18n
_ = i18n._
@@ -150,7 +311,7 @@ diff -ur mailman-2.1.9/bin/change_pw mailman-2.1.9-new/bin/change_pw
SPACE = ' '
-@@ -87,7 +88,7 @@
+@@ -87,7 +88,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -159,7 +320,7 @@ diff -ur mailman-2.1.9/bin/change_pw mailman-2.1.9-new/bin/change_pw
if msg:
print >> fd, msg
sys.exit(code)
-@@ -103,7 +104,7 @@
+@@ -103,7 +104,7 @@ def openlist(listname):
try:
mlist = MailList.MailList(listname, lock=0)
except Errors.MMListError, e:
@@ -168,21 +329,7 @@ diff -ur mailman-2.1.9/bin/change_pw mailman-2.1.9-new/bin/change_pw
_listcache[listname] = mlist
return mlist
-@@ -141,11 +142,11 @@
-
- if args:
- strargs = SPACE.join(args)
-- usage(1, _('Bad arguments: %(strargs)s'))
-+ usage(1, C_('Bad arguments: %(strargs)s'))
-
- if password is not None:
- if not password:
-- usage(1, _('Empty list passwords are not allowed'))
-+ usage(1, C_('Empty list passwords are not allowed'))
- shapassword = sha.new(password).hexdigest()
-
- if domains:
-@@ -155,7 +156,7 @@
+@@ -155,7 +156,7 @@ def main():
listnames[name] = 1
if not listnames:
@@ -191,7 +338,7 @@ diff -ur mailman-2.1.9/bin/change_pw mailman-2.1.9-new/bin/change_pw
sys.exit(0)
# Set the password on the lists
-@@ -177,7 +178,7 @@
+@@ -177,7 +178,7 @@ def main():
mlist.Unlock()
# Notification
@@ -200,13 +347,11 @@ diff -ur mailman-2.1.9/bin/change_pw mailman-2.1.9-new/bin/change_pw
if not quiet:
otrans = i18n.get_translation()
i18n.set_language(mlist.preferred_language)
-Nur in mailman-2.1.9-new/bin: change_pw~.
-Nur in mailman-2.1.9-new/bin: change_pw.orig.
-Nur in mailman-2.1.9-new/bin: change_pw.rej.
-diff -ur mailman-2.1.9/bin/check_db mailman-2.1.9-new/bin/check_db
---- mailman-2.1.9/bin/check_db 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/check_db 2007-01-29 14:29:46.000000000 +0100
-@@ -59,7 +59,7 @@
+diff --git a/bin/check_db b/bin/check_db
+index b1157bc..40fa0a2 100755
+--- a/bin/check_db
++++ b/bin/check_db
+@@ -59,7 +59,7 @@ import paths
from Mailman import mm_cfg
from Mailman import Utils
from Mailman.MailList import MailList
@@ -215,7 +360,7 @@ diff -ur mailman-2.1.9/bin/check_db mailman-2.1.9-new/bin/check_db
PROGRAM = sys.argv[0]
-@@ -70,7 +70,7 @@
+@@ -70,7 +70,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -224,7 +369,7 @@ diff -ur mailman-2.1.9/bin/check_db mailman-2.1.9-new/bin/check_db
if msg:
print >> fd, msg
sys.exit(code)
-@@ -111,12 +111,12 @@
+@@ -111,12 +111,12 @@ def main():
listnames = [n.lower().strip() for n in listnames]
if not listnames:
@@ -239,7 +384,7 @@ diff -ur mailman-2.1.9/bin/check_db mailman-2.1.9-new/bin/check_db
continue
mlist = MailList(listname, lock=0)
pfile = os.path.join(mlist.fullpath(), 'config.pck')
-@@ -125,7 +125,7 @@
+@@ -125,7 +125,7 @@ def main():
dlast = dfile + '.last'
if verbose:
@@ -248,7 +393,7 @@ diff -ur mailman-2.1.9/bin/check_db mailman-2.1.9-new/bin/check_db
for file in (pfile, plast, dfile, dlast):
status = 0
-@@ -145,7 +145,7 @@
+@@ -145,7 +145,7 @@ def main():
else:
print ' %s: %s' % (file, status)
elif verbose:
@@ -257,10 +402,11 @@ diff -ur mailman-2.1.9/bin/check_db mailman-2.1.9-new/bin/check_db
-diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
---- mailman-2.1.9/bin/check_perms 2007-01-29 14:37:43.000000000 +0100
-+++ mailman-2.1.9-new/bin/check_perms 2007-01-29 14:29:46.000000000 +0100
-@@ -44,7 +44,7 @@
+diff --git a/bin/check_perms b/bin/check_perms
+index eb80b2d..5ef3306 100755
+--- a/bin/check_perms
++++ b/bin/check_perms
+@@ -45,7 +45,7 @@ directory. You must run this from the installation directory instead.
raise
from Mailman import mm_cfg
from Mailman.mm_cfg import MAILMAN_USER, MAILMAN_GROUP
@@ -269,7 +415,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
# Let KeyErrors percolate
MAILMAN_GID = grp.getgrnam(MAILMAN_GROUP)[2]
-@@ -105,7 +105,7 @@
+@@ -107,7 +107,7 @@ def checkwalk(arg, dirname, names):
for name in names:
path = os.path.join(dirname, name)
if arg.VERBOSE:
@@ -278,7 +424,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
try:
mode, gid = statgidmode(path)
except OSError, e:
-@@ -117,10 +117,10 @@
+@@ -119,10 +119,10 @@ def checkwalk(arg, dirname, names):
except KeyError:
groupname = '<anon gid %d>' % gid
arg.ERRORS += 1
@@ -292,8 +438,8 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chown(path, -1, MAILMAN_GID)
else:
print
-@@ -140,19 +140,19 @@
- octperms = oct(targetperms)
+@@ -148,19 +148,19 @@ def checkwalk(arg, dirname, names):
+ octperms = oct(targetperms)
if S_ISDIR(mode) and (mode & targetperms) <> targetperms:
arg.ERRORS += 1
- print _('directory permissions must be %(octperms)s: %(path)s'),
@@ -316,7 +462,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(path, mode | PYFILEPERMS)
else:
print
-@@ -160,10 +160,10 @@
+@@ -168,10 +168,10 @@ def checkwalk(arg, dirname, names):
# Article files must be group writeable
octperms = oct(ARTICLEFILEPERMS)
if mode & ARTICLEFILEPERMS <> ARTICLEFILEPERMS:
@@ -329,7 +475,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(path, mode | ARTICLEFILEPERMS)
else:
print
-@@ -172,7 +172,7 @@
+@@ -180,7 +180,7 @@ def checkall():
# first check PREFIX
if STATE.VERBOSE:
prefix = mm_cfg.PREFIX
@@ -338,7 +484,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
dirs = {}
for d in (mm_cfg.PREFIX, mm_cfg.EXEC_PREFIX, mm_cfg.VAR_PREFIX,
mm_cfg.CONFIG_DIR, mm_cfg.DATA_DIR, mm_cfg.LOCK_DIR,
-@@ -183,13 +183,13 @@
+@@ -191,13 +191,13 @@ def checkall():
mode = statmode(d)
except OSError, e:
if e.errno <> errno.ENOENT: raise
@@ -355,7 +501,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(d, mode | DIRPERMS)
else:
print
-@@ -199,14 +199,14 @@
+@@ -207,14 +207,14 @@ def checkall():
def checkarchives():
private = mm_cfg.PRIVATE_ARCHIVE_FILE_DIR
if STATE.VERBOSE:
@@ -373,7 +519,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(private, mode & ~S_IROTH)
else:
print
-@@ -230,9 +230,9 @@
+@@ -238,9 +238,9 @@ def checkmboxfile(mboxdir):
mode = statmode(mboxfile)
if (mode & MBOXPERMS) <> MBOXPERMS:
STATE.ERRORS = STATE.ERRORS + 1
@@ -385,7 +531,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(mboxfile, mode | MBOXPERMS)
else:
print
-@@ -253,9 +253,9 @@
+@@ -261,9 +261,9 @@ def checkarchivedbs():
continue
if mode & S_IRWXO:
STATE.ERRORS += 1
@@ -397,7 +543,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(dbdir, mode & ~S_IRWXO)
else:
print
-@@ -263,18 +263,18 @@
+@@ -271,18 +271,18 @@ def checkarchivedbs():
def checkcgi():
cgidir = os.path.join(mm_cfg.EXEC_PREFIX, 'cgi-bin')
if STATE.VERBOSE:
@@ -420,7 +566,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(path, mode | S_ISGID)
else:
print
-@@ -282,13 +282,13 @@
+@@ -290,13 +290,13 @@ def checkcgi():
def checkmail():
wrapper = os.path.join(mm_cfg.WRAPPER_DIR, 'mailman')
if STATE.VERBOSE:
@@ -437,7 +583,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(wrapper, mode | S_ISGID)
def checkadminpw():
-@@ -296,7 +296,7 @@
+@@ -304,7 +304,7 @@ def checkadminpw():
os.path.join(mm_cfg.DATA_DIR, 'creator.pw')):
targetmode = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP
if STATE.VERBOSE:
@@ -446,7 +592,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
try:
mode = statmode(pwfile)
except OSError, e:
-@@ -305,10 +305,10 @@
+@@ -313,10 +313,10 @@ def checkadminpw():
if mode <> targetmode:
STATE.ERRORS += 1
octmode = oct(mode)
@@ -460,14 +606,16 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(pwfile, targetmode)
else:
print
-@@ -329,13 +329,13 @@
- 'next-digest', 'next-digest-topics',
+@@ -338,7 +338,7 @@ def checkdata():
+ 'digest.mbox', 'pending.pck',
'request.db', 'request.db.tmp')
if STATE.VERBOSE:
- print _('checking permissions on list data')
+ print C_('checking permissions on list data')
# BAW: This needs to be converted to the Site module abstraction
for dir in os.listdir(mm_cfg.LIST_DATA_DIR):
+ if not os.path.isdir(os.path.join(mm_cfg.LIST_DATA_DIR, dir)):
+@@ -346,7 +346,7 @@ def checkdata():
for file in checkfiles:
path = os.path.join(mm_cfg.LIST_DATA_DIR, dir, file)
if STATE.VERBOSE:
@@ -476,7 +624,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
try:
mode = statmode(path)
except OSError, e:
-@@ -343,9 +343,9 @@
+@@ -354,9 +354,9 @@ def checkdata():
continue
if (mode & targetmode) <> targetmode:
STATE.ERRORS += 1
@@ -488,7 +636,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
os.chmod(path, mode | targetmode)
else:
print
-@@ -357,7 +357,7 @@
+@@ -368,7 +368,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -497,7 +645,7 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
if msg:
print >> fd, msg
sys.exit(code)
-@@ -388,7 +388,7 @@
+@@ -399,7 +399,7 @@ if __name__ == '__main__':
checkmta()
if not STATE.ERRORS:
@@ -508,11 +656,11 @@ diff -ur mailman-2.1.9/bin/check_perms mailman-2.1.9-new/bin/check_perms
- print _('Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix')
+ print C_('Problems found:'), STATE.ERRORS
+ print C_('Re-run as %(MAILMAN_USER)s (or root) with -f flag to fix')
-Nur in mailman-2.1.9-new/bin: check_perms.orig.
-diff -ur mailman-2.1.9/bin/cleanarch mailman-2.1.9-new/bin/cleanarch
---- mailman-2.1.9/bin/cleanarch 2006-01-22 21:34:20.000000000 +0100
-+++ mailman-2.1.9-new/bin/cleanarch 2007-01-29 14:29:46.000000000 +0100
-@@ -53,7 +53,7 @@
+diff --git a/bin/cleanarch b/bin/cleanarch
+index a848533..0994bca 100644
+--- a/bin/cleanarch
++++ b/bin/cleanarch
+@@ -53,7 +53,7 @@ import getopt
import mailbox
import paths
@@ -521,7 +669,7 @@ diff -ur mailman-2.1.9/bin/cleanarch mailman-2.1.9-new/bin/cleanarch
cre = re.compile(mailbox.UnixMailbox._fromlinepattern)
-@@ -69,7 +69,7 @@
+@@ -69,7 +69,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -530,7 +678,7 @@ diff -ur mailman-2.1.9/bin/cleanarch mailman-2.1.9-new/bin/cleanarch
if msg:
print >> fd, msg
sys.exit(code)
-@@ -80,7 +80,7 @@
+@@ -80,7 +80,7 @@ def escape_line(line, lineno, quiet, output):
if output:
sys.stdout.write('>' + line)
if not quiet:
@@ -539,7 +687,7 @@ diff -ur mailman-2.1.9/bin/cleanarch mailman-2.1.9-new/bin/cleanarch
print >> sys.stderr, line[:-1]
-@@ -108,7 +108,7 @@
+@@ -108,7 +108,7 @@ def main():
try:
status = int(arg)
except ValueError:
@@ -548,7 +696,7 @@ diff -ur mailman-2.1.9/bin/cleanarch mailman-2.1.9-new/bin/cleanarch
if args:
usage(1)
-@@ -164,7 +164,7 @@
+@@ -164,7 +164,7 @@ def main():
print >> sys.stderr
statuscnt = 0
prevline = line
@@ -557,11 +705,11 @@ diff -ur mailman-2.1.9/bin/cleanarch mailman-2.1.9-new/bin/cleanarch
-Nur in mailman-2.1.9-new/bin: cleanarch.orig.
-diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
---- mailman-2.1.9/bin/clone_member 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/clone_member 2007-01-29 14:29:46.000000000 +0100
-@@ -72,7 +72,7 @@
+diff --git a/bin/clone_member b/bin/clone_member
+index 915c540..d9ff224 100755
+--- a/bin/clone_member
++++ b/bin/clone_member
+@@ -72,7 +72,7 @@ import paths
from Mailman import MailList
from Mailman import Utils
from Mailman import Errors
@@ -570,7 +718,7 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
-@@ -81,7 +81,7 @@
+@@ -81,7 +81,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -579,7 +727,7 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
if msg:
print >> fd, msg
sys.exit(code)
-@@ -91,14 +91,14 @@
+@@ -91,14 +91,14 @@ def usage(code, msg=''):
def dolist(mlist, options):
SPACE = ' '
if not options.quiet:
@@ -596,7 +744,7 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
newowners = {}
foundp = 0
for owner in mlist.owner:
-@@ -116,9 +116,9 @@
+@@ -116,9 +116,9 @@ def dolist(mlist, options):
if not options.quiet:
if newowners <> oldowners:
print
@@ -608,16 +756,16 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
# see if the fromaddr is a digest member or regular member
if options.lfromaddr in mlist.getDigestMemberKeys():
-@@ -127,7 +127,7 @@
+@@ -127,7 +127,7 @@ def dolist(mlist, options):
digest = 0
else:
if not options.quiet:
- print _(' address not found:'), options.fromaddr
+ print C_(' address not found:'), options.fromaddr
return
-
- # Now change the membership address
-@@ -136,13 +136,13 @@
+ # Check for banned to address.
+ pattern = mlist.GetBannedPattern(options.toaddr)
+@@ -142,13 +142,13 @@ def dolist(mlist, options):
mlist.changeMemberAddress(options.fromaddr, options.toaddr,
not options.remove)
if not options.quiet:
@@ -634,7 +782,7 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
-@@ -193,7 +193,7 @@
+@@ -199,7 +199,7 @@ def main():
try:
Utils.ValidateEmail(toaddr)
except Errors.EmailAddressError:
@@ -643,7 +791,7 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
lfromaddr = fromaddr.lower()
options.toaddr = toaddr
options.fromaddr = fromaddr
-@@ -206,7 +206,7 @@
+@@ -212,7 +212,7 @@ def main():
try:
mlist = MailList.MailList(listname)
except Errors.MMListError, e:
@@ -652,10 +800,11 @@ diff -ur mailman-2.1.9/bin/clone_member mailman-2.1.9-new/bin/clone_member
continue
try:
dolist(mlist, options)
-diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
---- mailman-2.1.9/bin/config_list 2005-12-30 19:50:08.000000000 +0100
-+++ mailman-2.1.9-new/bin/config_list 2007-01-29 14:36:37.000000000 +0100
-@@ -76,6 +76,7 @@
+diff --git a/bin/config_list b/bin/config_list
+index 25d4fb6..e23dac2 100644
+--- a/bin/config_list
++++ b/bin/config_list
+@@ -76,6 +76,7 @@ from Mailman import Errors
from Mailman import i18n
_ = i18n._
@@ -663,7 +812,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
NL = '\n'
nonasciipat = re.compile(r'[\x80-\xff]')
-@@ -87,7 +88,7 @@
+@@ -87,7 +88,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -672,7 +821,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
if msg:
print >> fd, msg
sys.exit(code)
-@@ -106,7 +107,7 @@
+@@ -106,7 +107,7 @@ def do_output(listname, outfile):
try:
mlist = MailList.MailList(listname, lock=0)
except Errors.MMListError:
@@ -681,7 +830,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
# Preamble for the config info. PEP263 charset and capture time.
language = mlist.preferred_language
charset = Utils.GetCharSet(language)
-@@ -114,7 +115,7 @@
+@@ -114,7 +115,7 @@ def do_output(listname, outfile):
if not charset:
charset = 'us-ascii'
when = time.ctime(time.time())
@@ -690,7 +839,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
# -*- python -*-
# -*- coding: %(charset)s -*-
## "%(listname)s" mailing list configuration settings
-@@ -140,7 +141,7 @@
+@@ -140,7 +141,7 @@ def do_list_categories(mlist, k, subcat, outfp):
if info is None:
return
charset = Utils.GetCharSet(mlist.preferred_language)
@@ -699,7 +848,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
print >> outfp, '#'
# First, massage the descripton text, which could have obnoxious
# leading whitespace on second and subsequent lines due to
-@@ -199,7 +200,7 @@
+@@ -199,7 +200,7 @@ def do_list_categories(mlist, k, subcat, outfp):
outfp.write('"""\n')
elif vtype in (mm_cfg.Radio, mm_cfg.Toggle):
print >> outfp, '#'
@@ -708,7 +857,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
# TBD: This is disgusting, but it's special cased
# everywhere else anyway...
if varname == 'subscribe_policy' and \
-@@ -253,7 +254,7 @@
+@@ -253,7 +254,7 @@ def do_input(listname, infile, checkonly, verbose):
try:
mlist = MailList.MailList(listname, lock=not checkonly)
except Errors.MMListError, e:
@@ -717,7 +866,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
savelist = 0
guibyprop = getPropertyMap(mlist)
try:
-@@ -266,16 +267,16 @@
+@@ -266,16 +267,16 @@ def do_input(listname, infile, checkonly, verbose):
if k in ('mlist', '__builtins__'):
continue
if not hasattr(mlist, k):
@@ -737,7 +886,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
setattr(mlist, k, v)
else:
# BAW: This uses non-public methods. This logic taken from
-@@ -283,9 +284,9 @@
+@@ -283,9 +284,9 @@ def do_input(listname, infile, checkonly, verbose):
try:
validval = gui._getValidValue(mlist, k, wtype, v)
except ValueError:
@@ -749,7 +898,7 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
'Bad email address for option %(k)s: %(v)s')
else:
# BAW: Horrible hack, but then this is special cased
-@@ -342,13 +343,13 @@
+@@ -342,13 +343,13 @@ def main():
# sanity check
if infile is not None and outfile is not None:
@@ -766,14 +915,11 @@ diff -ur mailman-2.1.9/bin/config_list mailman-2.1.9-new/bin/config_list
listname = args[0].lower().strip()
if outfile:
-Nur in mailman-2.1.9-new/bin: config_list~.
-Nur in mailman-2.1.9-new/bin: config_list.orig.
-Nur in mailman-2.1.9-new/bin: config_list.orig~.
-Nur in mailman-2.1.9-new/bin: config_list.rej.
-diff -ur mailman-2.1.9/bin/convert.py mailman-2.1.9-new/bin/convert.py
---- mailman-2.1.9/bin/convert.py 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/convert.py 2007-01-29 14:29:46.000000000 +0100
-@@ -25,7 +25,7 @@
+diff --git a/bin/convert.py b/bin/convert.py
+index b0d6a05..ad7228b 100644
+--- a/bin/convert.py
++++ b/bin/convert.py
+@@ -25,7 +25,7 @@ This script is intended to be run as a bin/withlist script, i.e.
import paths
from Mailman import Utils
@@ -782,7 +928,7 @@ diff -ur mailman-2.1.9/bin/convert.py mailman-2.1.9-new/bin/convert.py
def convert(mlist):
for attr in ('msg_header', 'msg_footer', 'digest_header', 'digest_footer',
-@@ -35,10 +35,10 @@
+@@ -35,10 +35,10 @@ def convert(mlist):
t = Utils.to_dollar(s)
setattr(mlist, attr, t)
mlist.use_dollar_strings = 1
@@ -795,10 +941,11 @@ diff -ur mailman-2.1.9/bin/convert.py mailman-2.1.9-new/bin/convert.py
if __name__ == '__main__':
- print _(__doc__.replace('%', '%%'))
+ print C_(__doc__.replace('%', '%%'))
-diff -ur mailman-2.1.9/bin/discard mailman-2.1.9-new/bin/discard
---- mailman-2.1.9/bin/discard 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/discard 2007-01-29 14:29:46.000000000 +0100
-@@ -41,7 +41,7 @@
+diff --git a/bin/discard b/bin/discard
+index c301984..34cb811 100644
+--- a/bin/discard
++++ b/bin/discard
+@@ -41,7 +41,7 @@ import getopt
import paths
from Mailman import mm_cfg
from Mailman.MailList import MailList
@@ -807,7 +954,7 @@ diff -ur mailman-2.1.9/bin/discard mailman-2.1.9-new/bin/discard
try:
True, False
-@@ -58,7 +58,7 @@
+@@ -58,7 +58,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -816,7 +963,7 @@ diff -ur mailman-2.1.9/bin/discard mailman-2.1.9-new/bin/discard
if msg:
print >> fd, msg
sys.exit(code)
-@@ -80,7 +80,7 @@
+@@ -80,7 +80,7 @@ def main():
files = args
if not files:
@@ -825,7 +972,7 @@ diff -ur mailman-2.1.9/bin/discard mailman-2.1.9-new/bin/discard
# Mapping from listnames to sequence of request ids
discards = {}
-@@ -91,13 +91,13 @@
+@@ -91,13 +91,13 @@ def main():
basename = os.path.basename(f)
mo = cre.match(basename)
if not mo:
@@ -841,7 +988,7 @@ diff -ur mailman-2.1.9/bin/discard mailman-2.1.9-new/bin/discard
continue
discards.setdefault(listname, []).append(id)
-@@ -109,7 +109,7 @@
+@@ -109,7 +109,7 @@ def main():
# No comment, no preserve, no forward, no forwarding address
mlist.HandleRequest(id, mm_cfg.DISCARD, '', False, False, '')
if not quiet:
@@ -850,19 +997,20 @@ diff -ur mailman-2.1.9/bin/discard mailman-2.1.9-new/bin/discard
mlist.Save()
finally:
mlist.Unlock()
-diff -ur mailman-2.1.9/bin/dumpdb mailman-2.1.9-new/bin/dumpdb
---- mailman-2.1.9/bin/dumpdb 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/dumpdb 2007-01-29 14:33:15.000000000 +0100
-@@ -55,7 +55,7 @@
+diff --git a/bin/dumpdb b/bin/dumpdb
+index c8e4246..0b58fae 100644
+--- a/bin/dumpdb
++++ b/bin/dumpdb
+@@ -54,7 +54,7 @@ from types import StringType
+
import paths
# Import this /after/ paths so that the sys.path is properly hacked
- from email.Generator import Generator
-from Mailman.i18n import _
+from Mailman.i18n import C_
PROGRAM = sys.argv[0]
COMMASPACE = ', '
-@@ -73,7 +73,7 @@
+@@ -72,7 +72,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -871,7 +1019,7 @@ diff -ur mailman-2.1.9/bin/dumpdb mailman-2.1.9-new/bin/dumpdb
if msg:
print >> fd, msg
sys.exit(code)
-@@ -103,10 +103,10 @@
+@@ -102,10 +102,10 @@ def main():
doprint = False
if len(args) < 1:
@@ -884,7 +1032,7 @@ diff -ur mailman-2.1.9/bin/dumpdb mailman-2.1.9-new/bin/dumpdb
else:
filename = args[0]
-@@ -116,7 +116,7 @@
+@@ -115,7 +115,7 @@ def main():
elif filename.endswith('.pck'):
filetype = 0
else:
@@ -893,33 +1041,31 @@ diff -ur mailman-2.1.9/bin/dumpdb mailman-2.1.9-new/bin/dumpdb
# Handle dbs
pp = pprint.PrettyPrinter(indent=4)
-@@ -133,16 +133,16 @@
- try:
- cnt = 1
- if doprint:
-- print _('[----- start pickle file -----]')
-+ print C_('[----- start pickle file -----]')
- while True:
- try:
- obj = load(fp)
- except EOFError:
- if doprint:
-- print _('[----- end pickle file -----]')
-+ print C_('[----- end pickle file -----]')
- break
+@@ -130,16 +130,16 @@ def main():
+ try:
+ cnt = 1
+ if doprint:
+- print _('[----- start %(typename)s file -----]')
++ print C_('[----- start %(typename)s file -----]')
+ while True:
+ try:
+ obj = load(fp)
+ except EOFError:
if doprint:
-- print _('<----- start object %(cnt)s ----->')
-+ print C_('<----- start object %(cnt)s ----->')
- if isinstance(obj, StringType):
- print obj
- else:
-Nur in mailman-2.1.9-new/bin: dumpdb~.
-Nur in mailman-2.1.9-new/bin: dumpdb.orig.
-Nur in mailman-2.1.9-new/bin: dumpdb.rej.
-diff -ur mailman-2.1.9/bin/find_member mailman-2.1.9-new/bin/find_member
---- mailman-2.1.9/bin/find_member 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/find_member 2007-01-29 14:29:46.000000000 +0100
-@@ -64,7 +64,7 @@
+- print _('[----- end %(typename)s file -----]')
++ print C_('[----- end %(typename)s file -----]')
+ break
+ if doprint:
+- print _('<----- start object %(cnt)s ----->')
++ print C_('<----- start object %(cnt)s ----->')
+ if isinstance(obj, StringType):
+ print obj
+ else:
+diff --git a/bin/find_member b/bin/find_member
+index a1701bf..99e4ee6 100755
+--- a/bin/find_member
++++ b/bin/find_member
+@@ -64,7 +64,7 @@ import paths
from Mailman import Utils
from Mailman import MailList
from Mailman import Errors
@@ -928,7 +1074,7 @@ diff -ur mailman-2.1.9/bin/find_member mailman-2.1.9-new/bin/find_member
AS_MEMBER = 0x01
AS_OWNER = 0x02
-@@ -76,7 +76,7 @@
+@@ -76,7 +76,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -937,7 +1083,7 @@ diff -ur mailman-2.1.9/bin/find_member mailman-2.1.9-new/bin/find_member
if msg:
print >> fd, msg
sys.exit(code)
-@@ -94,7 +94,7 @@
+@@ -94,7 +94,7 @@ def scanlists(options):
try:
mlist = MailList.MailList(listname, lock=0)
except Errors.MMListError:
@@ -946,7 +1092,7 @@ diff -ur mailman-2.1.9/bin/find_member mailman-2.1.9-new/bin/find_member
continue
if options.owners:
owners = mlist.owner
-@@ -156,12 +156,12 @@
+@@ -156,12 +156,12 @@ def main():
pass
if not args:
@@ -961,7 +1107,7 @@ diff -ur mailman-2.1.9/bin/find_member mailman-2.1.9-new/bin/find_member
return
matches = scanlists(options)
-@@ -170,13 +170,13 @@
+@@ -170,13 +170,13 @@ def main():
for k in addrs:
hits = matches[k]
lists = hits.keys()
@@ -977,10 +1123,11 @@ diff -ur mailman-2.1.9/bin/find_member mailman-2.1.9-new/bin/find_member
-diff -ur mailman-2.1.9/bin/fix_url.py mailman-2.1.9-new/bin/fix_url.py
---- mailman-2.1.9/bin/fix_url.py 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/fix_url.py 2007-01-29 14:29:46.000000000 +0100
-@@ -43,12 +43,12 @@
+diff --git a/bin/fix_url.py b/bin/fix_url.py
+index d2731c1..6523ce2 100644
+--- a/bin/fix_url.py
++++ b/bin/fix_url.py
+@@ -43,12 +43,12 @@ import getopt
import paths
from Mailman import mm_cfg
@@ -995,7 +1142,7 @@ diff -ur mailman-2.1.9/bin/fix_url.py mailman-2.1.9-new/bin/fix_url.py
if msg:
print msg
sys.exit(code)
-@@ -77,12 +77,12 @@
+@@ -82,12 +82,12 @@ def fix_url(mlist, *args):
mailhost = mm_cfg.DEFAULT_EMAIL_HOST
if verbose:
@@ -1011,10 +1158,11 @@ diff -ur mailman-2.1.9/bin/fix_url.py mailman-2.1.9-new/bin/fix_url.py
mlist.Save()
mlist.Unlock()
-diff -ur mailman-2.1.9/bin/genaliases mailman-2.1.9-new/bin/genaliases
---- mailman-2.1.9/bin/genaliases 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/genaliases 2007-01-29 14:29:46.000000000 +0100
-@@ -40,7 +40,7 @@
+diff --git a/bin/genaliases b/bin/genaliases
+index 0a1a3da..29e5b5a 100644
+--- a/bin/genaliases
++++ b/bin/genaliases
+@@ -40,7 +40,7 @@ import paths # path hacking
from Mailman import mm_cfg
from Mailman import Utils
from Mailman import MailList
@@ -1023,7 +1171,7 @@ diff -ur mailman-2.1.9/bin/genaliases mailman-2.1.9-new/bin/genaliases
try:
True, False
-@@ -55,7 +55,7 @@
+@@ -55,7 +55,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1032,10 +1180,11 @@ diff -ur mailman-2.1.9/bin/genaliases mailman-2.1.9-new/bin/genaliases
if msg:
print >> fd, msg
sys.exit(code)
-diff -ur mailman-2.1.9/bin/inject mailman-2.1.9-new/bin/inject
---- mailman-2.1.9/bin/inject 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/inject 2007-01-29 14:29:46.000000000 +0100
-@@ -47,7 +47,7 @@
+diff --git a/bin/inject b/bin/inject
+index 432c292..fa91f5e 100644
+--- a/bin/inject
++++ b/bin/inject
+@@ -48,7 +48,7 @@ import paths
from Mailman import mm_cfg
from Mailman import Utils
from Mailman import Post
@@ -1044,7 +1193,7 @@ diff -ur mailman-2.1.9/bin/inject mailman-2.1.9-new/bin/inject
-@@ -56,7 +56,7 @@
+@@ -57,7 +57,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1053,14 +1202,14 @@ diff -ur mailman-2.1.9/bin/inject mailman-2.1.9-new/bin/inject
if msg:
print >> fd, msg
sys.exit(code)
-@@ -80,14 +80,14 @@
+@@ -81,14 +81,14 @@ def main():
elif opt in ('-q', '--queue'):
qdir = os.path.join(mm_cfg.QUEUE_DIR, arg)
if not os.path.isdir(qdir):
- usage(1, _('Bad queue directory: %(qdir)s'))
+ usage(1, C_('Bad queue directory: %(qdir)s'))
elif opt in ('-l', '--listname'):
- listname = arg
+ listname = arg.lower()
if listname is None:
- usage(1, _('A list name is required'))
@@ -1068,13 +1217,14 @@ diff -ur mailman-2.1.9/bin/inject mailman-2.1.9-new/bin/inject
elif not Utils.list_exists(listname):
- usage(1, _('No such list: %(listname)s'))
+ usage(1, C_('No such list: %(listname)s'))
-
+
if len(args) == 0:
# Use standard input
-diff -ur mailman-2.1.9/bin/list_admins mailman-2.1.9-new/bin/list_admins
---- mailman-2.1.9/bin/list_admins 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/list_admins 2007-01-29 14:29:46.000000000 +0100
-@@ -44,7 +44,7 @@
+diff --git a/bin/list_admins b/bin/list_admins
+index b86a5eb..f9304c7 100644
+--- a/bin/list_admins
++++ b/bin/list_admins
+@@ -45,7 +45,7 @@ import getopt
import paths
from Mailman import MailList, Utils
from Mailman import Errors
@@ -1083,7 +1233,7 @@ diff -ur mailman-2.1.9/bin/list_admins mailman-2.1.9-new/bin/list_admins
COMMASPACE = ', '
-@@ -57,7 +57,7 @@
+@@ -58,7 +58,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1092,7 +1242,7 @@ diff -ur mailman-2.1.9/bin/list_admins mailman-2.1.9-new/bin/list_admins
if msg:
print >> fd, msg
sys.exit(code)
-@@ -86,14 +86,14 @@
+@@ -87,14 +87,14 @@ def main():
try:
mlist = MailList.MailList(listname, lock=0)
except Errors.MMListError, e:
@@ -1109,10 +1259,11 @@ diff -ur mailman-2.1.9/bin/list_admins mailman-2.1.9-new/bin/list_admins
-diff -ur mailman-2.1.9/bin/list_lists mailman-2.1.9-new/bin/list_lists
---- mailman-2.1.9/bin/list_lists 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/list_lists 2007-01-29 14:29:46.000000000 +0100
-@@ -47,7 +47,7 @@
+diff --git a/bin/list_lists b/bin/list_lists
+index 870759b..004db2a 100644
+--- a/bin/list_lists
++++ b/bin/list_lists
+@@ -47,7 +47,7 @@ from Mailman import mm_cfg
from Mailman import MailList
from Mailman import Utils
from Mailman import Errors
@@ -1121,7 +1272,7 @@ diff -ur mailman-2.1.9/bin/list_lists mailman-2.1.9-new/bin/list_lists
program = sys.argv[0]
-@@ -56,7 +56,7 @@
+@@ -56,7 +56,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1130,7 +1281,7 @@ diff -ur mailman-2.1.9/bin/list_lists mailman-2.1.9-new/bin/list_lists
if msg:
print >> fd, msg
sys.exit(code)
-@@ -102,18 +102,18 @@
+@@ -102,18 +102,18 @@ def main():
longest = max(len(mlist.real_name), longest)
if not mlists and not bare:
@@ -1152,10 +1303,11 @@ diff -ur mailman-2.1.9/bin/list_lists mailman-2.1.9-new/bin/list_lists
print ' ', format % (mlist.real_name, description)
-diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
---- mailman-2.1.9/bin/list_members 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/list_members 2007-01-29 14:29:46.000000000 +0100
-@@ -76,7 +76,7 @@
+diff --git a/bin/list_members b/bin/list_members
+index cb57408..7e51ddc 100755
+--- a/bin/list_members
++++ b/bin/list_members
+@@ -76,7 +76,7 @@ from Mailman import Utils
from Mailman import MailList
from Mailman import Errors
from Mailman import MemberAdaptor
@@ -1164,7 +1316,7 @@ diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
from email.Utils import formataddr
-@@ -104,7 +104,7 @@
+@@ -104,7 +104,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1173,7 +1325,7 @@ diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
if msg:
print >> fd, msg
sys.exit(code)
-@@ -188,7 +188,7 @@
+@@ -188,7 +188,7 @@ def main():
if i >= 0:
why = opt[i+1:]
if why not in WHYCHOICES.keys():
@@ -1182,7 +1334,7 @@ diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
elif opt == '-d':
digest = True
if args and args[0] in ('mime', 'plain'):
-@@ -199,7 +199,7 @@
+@@ -199,7 +199,7 @@ def main():
if i >= 0:
kind = opt[i+1:]
if kind not in ('mime', 'plain'):
@@ -1191,7 +1343,7 @@ diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
elif opt in ('-i', '--invalid'):
invalidonly = True
elif opt in ('-u', '--unicode'):
-@@ -221,7 +221,7 @@
+@@ -221,7 +221,7 @@ def main():
try:
fp = open(outfile, 'w')
except IOError:
@@ -1200,7 +1352,7 @@ diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
sys.exit(1)
else:
fp = sys.stdout
-@@ -229,7 +229,7 @@
+@@ -229,7 +229,7 @@ def main():
try:
mlist = MailList.MailList(listname, lock=False)
except Errors.MMListError, e:
@@ -1209,10 +1361,11 @@ diff -ur mailman-2.1.9/bin/list_members mailman-2.1.9-new/bin/list_members
sys.exit(1)
# Get the lowercased member addresses
-diff -ur mailman-2.1.9/bin/list_owners mailman-2.1.9-new/bin/list_owners
---- mailman-2.1.9/bin/list_owners 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/list_owners 2007-01-29 14:29:46.000000000 +0100
-@@ -44,7 +44,7 @@
+diff --git a/bin/list_owners b/bin/list_owners
+index 4c2d908..adcba10 100644
+--- a/bin/list_owners
++++ b/bin/list_owners
+@@ -45,7 +45,7 @@ import getopt
import paths
from Mailman import Utils
from Mailman.MailList import MailList
@@ -1221,7 +1374,7 @@ diff -ur mailman-2.1.9/bin/list_owners mailman-2.1.9-new/bin/list_owners
PROGRAM = sys.argv[0]
-@@ -61,7 +61,7 @@
+@@ -62,7 +62,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1230,10 +1383,11 @@ diff -ur mailman-2.1.9/bin/list_owners mailman-2.1.9-new/bin/list_owners
if msg:
print >> fd, msg
sys.exit(code)
-diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
---- mailman-2.1.9/bin/mailmanctl 2007-01-29 14:37:43.000000000 +0100
-+++ mailman-2.1.9-new/bin/mailmanctl 2007-01-29 14:29:46.000000000 +0100
-@@ -111,7 +111,7 @@
+diff --git a/bin/mailmanctl b/bin/mailmanctl
+index 3d59d57..2a5085d 100644
+--- a/bin/mailmanctl
++++ b/bin/mailmanctl
+@@ -111,7 +111,7 @@ from Mailman import Utils
from Mailman import LockFile
from Mailman import Errors
from Mailman.MailList import MailList
@@ -1242,7 +1396,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
from Mailman.Logging.Syslog import syslog
from Mailman.Logging.Utils import LogStdErr
-@@ -136,7 +136,7 @@
+@@ -136,7 +136,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1251,7 +1405,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
if msg:
print >> fd, msg
sys.exit(code)
-@@ -152,17 +152,17 @@
+@@ -152,17 +152,17 @@ def kill_watcher(sig):
except (IOError, ValueError), e:
# For i18n convenience
pidfile = mm_cfg.PIDFILE
@@ -1273,7 +1427,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
os.unlink(mm_cfg.PIDFILE)
-@@ -266,19 +266,19 @@
+@@ -266,19 +266,19 @@ def acquire_lock(force):
status = qrunner_state()
if status == 1:
# host matches and proc exists
@@ -1296,7 +1450,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
The master qrunner lock could not be acquired, because it appears as if some
process on some other host may have acquired it. We can't test for stale
locks across host boundaries, so you'll have to do this manually. Or, if you
-@@ -325,7 +325,7 @@
+@@ -325,7 +325,7 @@ def check_for_site_list():
try:
sitelist = MailList(sitelistname, lock=0)
except Errors.MMUnknownListError:
@@ -1305,7 +1459,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
syslog('error', 'Site list is missing: %s', mm_cfg.MAILMAN_SITE_LIST)
sys.exit(1)
-@@ -350,7 +350,7 @@
+@@ -350,7 +350,7 @@ def check_privs():
os.setuid(uid)
elif myuid <> uid:
name = mm_cfg.MAILMAN_USER
@@ -1314,7 +1468,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
'Run this program as root or as the %(name)s user, or use -u.'))
-@@ -381,10 +381,10 @@
+@@ -381,10 +381,10 @@ def main():
quiet = 1
if len(args) < 1:
@@ -1327,7 +1481,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
command = args[0].lower()
-@@ -392,7 +392,7 @@
+@@ -392,7 +392,7 @@ def main():
check_privs()
else:
if command != 'status':
@@ -1336,7 +1490,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
# Handle the commands
if command == 'stop':
-@@ -400,26 +400,26 @@
+@@ -400,26 +400,26 @@ def main():
# giving cron/qrunner a ctrl-c or KeyboardInterrupt. This will
# effectively shut everything down.
if not quiet:
@@ -1368,7 +1522,7 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
sys.exit(status)
elif command == 'start':
# First, complain loudly if there's no site list.
-@@ -455,7 +455,7 @@
+@@ -455,7 +455,7 @@ def main():
if pid:
# parent
if not quiet:
@@ -1377,12 +1531,11 @@ diff -ur mailman-2.1.9/bin/mailmanctl mailman-2.1.9-new/bin/mailmanctl
# Give up the lock "ownership". This just means the foreground
# process won't close/unlock the lock when it finalizes this lock
# instance. We'll let the mater watcher subproc own the lock.
-Nur in mailman-2.1.9-new/bin: mailmanctl.orig.
-Nur in mailman-2.1.9-new/bin: Makefile.
-diff -ur mailman-2.1.9/bin/mmsitepass mailman-2.1.9-new/bin/mmsitepass
---- mailman-2.1.9/bin/mmsitepass 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/mmsitepass 2007-01-29 14:29:46.000000000 +0100
-@@ -43,7 +43,7 @@
+diff --git a/bin/mmsitepass b/bin/mmsitepass
+index 0bb6e77..bb4cc71 100755
+--- a/bin/mmsitepass
++++ b/bin/mmsitepass
+@@ -43,7 +43,7 @@ import getopt
import paths
from Mailman import Utils
@@ -1391,7 +1544,7 @@ diff -ur mailman-2.1.9/bin/mmsitepass mailman-2.1.9-new/bin/mmsitepass
PROGRAM = sys.argv[0]
-@@ -54,7 +54,7 @@
+@@ -54,7 +54,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1400,7 +1553,7 @@ diff -ur mailman-2.1.9/bin/mmsitepass mailman-2.1.9-new/bin/mmsitepass
if msg:
print >> fd, msg
sys.exit(code)
-@@ -70,34 +70,34 @@
+@@ -70,34 +70,34 @@ def main():
# Defaults
siteadmin = 1
@@ -1443,10 +1596,11 @@ diff -ur mailman-2.1.9/bin/mmsitepass mailman-2.1.9-new/bin/mmsitepass
-diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
---- mailman-2.1.9/bin/newlist 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/newlist 2007-01-29 14:29:46.000000000 +0100
-@@ -104,6 +104,7 @@
+diff --git a/bin/newlist b/bin/newlist
+index f9ca866..e52f340 100755
+--- a/bin/newlist
++++ b/bin/newlist
+@@ -104,6 +104,7 @@ from Mailman import Message
from Mailman import i18n
_ = i18n._
@@ -1454,7 +1608,7 @@ diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
PROGRAM = sys.argv[0]
-@@ -114,7 +115,7 @@
+@@ -114,7 +115,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1463,7 +1617,7 @@ diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
if msg:
print >> fd, msg
sys.exit(code)
-@@ -147,12 +148,12 @@
+@@ -147,12 +148,12 @@ def main():
# Is the language known?
if lang not in mm_cfg.LC_DESCRIPTIONS.keys():
@@ -1478,7 +1632,7 @@ diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
listname = listname.lower()
if '@' in listname:
-@@ -167,22 +168,22 @@
+@@ -167,22 +168,22 @@ def main():
web_page_url = mm_cfg.DEFAULT_URL_PATTERN % urlhost
if Utils.list_exists(listname):
@@ -1505,7 +1659,7 @@ diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
mlist = MailList.MailList()
try:
-@@ -197,11 +198,11 @@
+@@ -202,11 +203,11 @@ def main():
finally:
os.umask(oldmask)
except Errors.BadListNameError, s:
@@ -1520,7 +1674,7 @@ diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
# Assign domain-specific attributes
mlist.host_name = host_name
-@@ -222,7 +223,7 @@
+@@ -227,7 +228,7 @@ def main():
# And send the notice to the list owner
if not quiet:
@@ -1529,11 +1683,11 @@ diff -ur mailman-2.1.9/bin/newlist mailman-2.1.9-new/bin/newlist
sys.stdin.readline()
siteowner = Utils.get_site_email(mlist.host_name, 'owner')
text = Utils.maketext(
-Nur in mailman-2.1.9-new/bin: newlist.orig.
-diff -ur mailman-2.1.9/bin/qrunner mailman-2.1.9-new/bin/qrunner
---- mailman-2.1.9/bin/qrunner 2006-01-19 02:07:40.000000000 +0100
-+++ mailman-2.1.9-new/bin/qrunner 2007-01-29 14:29:46.000000000 +0100
-@@ -78,7 +78,7 @@
+diff --git a/bin/qrunner b/bin/qrunner
+index 20fe830..29bba0f 100644
+--- a/bin/qrunner
++++ b/bin/qrunner
+@@ -78,7 +78,7 @@ import signal
import paths
from Mailman import mm_cfg
@@ -1542,7 +1696,7 @@ diff -ur mailman-2.1.9/bin/qrunner mailman-2.1.9-new/bin/qrunner
from Mailman.Logging.Syslog import syslog
from Mailman.Logging.Utils import LogStdErr
-@@ -95,7 +95,7 @@
+@@ -95,7 +95,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1551,7 +1705,7 @@ diff -ur mailman-2.1.9/bin/qrunner mailman-2.1.9-new/bin/qrunner
if msg:
print >> fd, msg
sys.exit(code)
-@@ -175,8 +175,8 @@
+@@ -175,8 +175,8 @@ def main():
name = runnername[:-len('Runner')]
else:
name = runnername
@@ -1562,7 +1716,7 @@ diff -ur mailman-2.1.9/bin/qrunner mailman-2.1.9-new/bin/qrunner
sys.exit(0)
elif opt in ('-o', '--once'):
once = 1
-@@ -212,7 +212,7 @@
+@@ -212,7 +212,7 @@ def main():
if len(args) <> 0:
usage(1)
if len(runners) == 0:
@@ -1571,11 +1725,11 @@ diff -ur mailman-2.1.9/bin/qrunner mailman-2.1.9-new/bin/qrunner
# Before we startup qrunners, we redirect the stderr to mailman syslog.
# We assume !AS_SUBPROC is running for debugging purpose and don't
-Nur in mailman-2.1.9-new/bin: qrunner.orig.
-diff -ur mailman-2.1.9/bin/rb-archfix mailman-2.1.9-new/bin/rb-archfix
---- mailman-2.1.9/bin/rb-archfix 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/rb-archfix 2007-01-29 14:29:46.000000000 +0100
-@@ -52,7 +52,7 @@
+diff --git a/bin/rb-archfix b/bin/rb-archfix
+index fceadc2..2b1bef6 100644
+--- a/bin/rb-archfix
++++ b/bin/rb-archfix
+@@ -52,7 +52,7 @@ import cPickle as pickle
# Required to get the right classes for unpickling
import paths
@@ -1584,7 +1738,7 @@ diff -ur mailman-2.1.9/bin/rb-archfix mailman-2.1.9-new/bin/rb-archfix
PROGRAM = sys.argv[0]
-@@ -63,7 +63,7 @@
+@@ -63,7 +63,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1593,10 +1747,11 @@ diff -ur mailman-2.1.9/bin/rb-archfix mailman-2.1.9-new/bin/rb-archfix
if msg:
print >> fd, msg
sys.exit(code)
-diff -ur mailman-2.1.9/bin/remove_members mailman-2.1.9-new/bin/remove_members
---- mailman-2.1.9/bin/remove_members 2005-12-30 19:50:08.000000000 +0100
-+++ mailman-2.1.9-new/bin/remove_members 2007-01-29 14:29:46.000000000 +0100
-@@ -66,7 +66,7 @@
+diff --git a/bin/remove_members b/bin/remove_members
+index a7b4ebb..33aa6a2 100755
+--- a/bin/remove_members
++++ b/bin/remove_members
+@@ -66,7 +66,7 @@ import paths
from Mailman import MailList
from Mailman import Utils
from Mailman import Errors
@@ -1605,7 +1760,7 @@ diff -ur mailman-2.1.9/bin/remove_members mailman-2.1.9-new/bin/remove_members
try:
True, False
-@@ -81,7 +81,7 @@
+@@ -81,7 +81,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1614,7 +1769,7 @@ diff -ur mailman-2.1.9/bin/remove_members mailman-2.1.9-new/bin/remove_members
if msg:
print >> fd, msg
sys.exit(code)
-@@ -153,14 +153,14 @@
+@@ -153,14 +153,14 @@ def main():
try:
addresses = addresses + ReadFile(filename)
except IOError:
@@ -1631,7 +1786,7 @@ diff -ur mailman-2.1.9/bin/remove_members mailman-2.1.9-new/bin/remove_members
continue
if all:
-@@ -170,12 +170,12 @@
+@@ -170,12 +170,12 @@ def main():
for addr in addresses:
if not mlist.isMember(addr):
if not alllists:
@@ -1646,10 +1801,11 @@ diff -ur mailman-2.1.9/bin/remove_members mailman-2.1.9-new/bin/remove_members
mlist.Save()
finally:
mlist.Unlock()
-diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
---- mailman-2.1.9/bin/rmlist 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/rmlist 2007-01-29 14:29:46.000000000 +0100
-@@ -45,7 +45,7 @@
+diff --git a/bin/rmlist b/bin/rmlist
+index fbaf306..8b58a3c 100755
+--- a/bin/rmlist
++++ b/bin/rmlist
+@@ -45,7 +45,7 @@ import paths
from Mailman import mm_cfg
from Mailman import Utils
from Mailman import MailList
@@ -1658,7 +1814,7 @@ diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
try:
True, False
-@@ -60,7 +60,7 @@
+@@ -60,7 +60,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1667,7 +1823,7 @@ diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
if msg:
print >> fd, msg
sys.exit(code)
-@@ -69,15 +69,15 @@
+@@ -69,15 +69,15 @@ def usage(code, msg=''):
def remove_it(listname, filename, msg):
if os.path.islink(filename):
@@ -1686,7 +1842,7 @@ diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
-@@ -101,13 +101,13 @@
+@@ -101,13 +101,13 @@ def main():
if not Utils.list_exists(listname):
if not removeArchives:
@@ -1703,7 +1859,7 @@ diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
REMOVABLES = []
-@@ -121,7 +121,7 @@
+@@ -121,7 +121,7 @@ def main():
sys.modules[modname].remove(mlist)
REMOVABLES = [
@@ -1712,7 +1868,7 @@ diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
]
# Remove any stale locks associated with the list
-@@ -129,18 +129,18 @@
+@@ -129,18 +129,18 @@ def main():
fn_listname = filename.split('.')[0]
if fn_listname == listname:
REMOVABLES.append((os.path.join(mm_cfg.LOCK_DIR, filename),
@@ -1736,10 +1892,11 @@ diff -ur mailman-2.1.9/bin/rmlist mailman-2.1.9-new/bin/rmlist
])
for dirtmpl, msg in REMOVABLES:
-diff -ur mailman-2.1.9/bin/show_qfiles mailman-2.1.9-new/bin/show_qfiles
---- mailman-2.1.9/bin/show_qfiles 2006-03-09 23:13:48.000000000 +0100
-+++ mailman-2.1.9-new/bin/show_qfiles 2007-01-29 14:29:46.000000000 +0100
-@@ -37,7 +37,7 @@
+diff --git a/bin/show_qfiles b/bin/show_qfiles
+index 0dbe9fe..686a652 100644
+--- a/bin/show_qfiles
++++ b/bin/show_qfiles
+@@ -37,7 +37,7 @@ import getopt
from cPickle import load
import paths
@@ -1748,7 +1905,7 @@ diff -ur mailman-2.1.9/bin/show_qfiles mailman-2.1.9-new/bin/show_qfiles
try:
True, False
-@@ -52,7 +52,7 @@
+@@ -52,7 +52,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1757,11 +1914,11 @@ diff -ur mailman-2.1.9/bin/show_qfiles mailman-2.1.9-new/bin/show_qfiles
if msg:
print >> fd, msg
sys.exit(code)
-Nur in mailman-2.1.9-new/bin: show_qfiles.orig.
-diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
---- mailman-2.1.9/bin/sync_members 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/sync_members 2007-01-29 14:29:46.000000000 +0100
-@@ -86,7 +86,7 @@
+diff --git a/bin/sync_members b/bin/sync_members
+index 13d0b2b..d302243 100755
+--- a/bin/sync_members
++++ b/bin/sync_members
+@@ -86,7 +86,7 @@ from Mailman import MailList
from Mailman import Errors
from Mailman import Utils
from Mailman.UserDesc import UserDesc
@@ -1770,7 +1927,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
-@@ -97,7 +97,7 @@
+@@ -97,7 +97,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1779,7 +1936,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
if msg:
print >> fd, msg
sys.exit(code)
-@@ -112,7 +112,7 @@
+@@ -112,7 +112,7 @@ def yesno(opt):
elif yesno in ('n', 'no'):
return 0
else:
@@ -1788,7 +1945,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
# no return
-@@ -135,7 +135,7 @@
+@@ -135,7 +135,7 @@ def main():
elif opt in ('-n', '--no-change'):
dryrun = 1
i += 1
@@ -1797,7 +1954,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
elif opt in ('-d', '--digest'):
digest = 1
i += 1
-@@ -156,11 +156,11 @@
+@@ -156,11 +156,11 @@ def main():
i += 1
elif opt in ('-f', '--file'):
if filename is not None:
@@ -1811,7 +1968,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
i += 2
elif opt in ('-a', '--notifyadmin'):
notifyadmin = 1
-@@ -169,17 +169,17 @@
+@@ -169,17 +169,17 @@ def main():
notifyadmin = yesno(opt)
i += 1
elif opt[0] == '-':
@@ -1832,7 +1989,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
# read the list of addresses to sync to from the file
if filename == '-':
-@@ -188,7 +188,7 @@
+@@ -188,7 +188,7 @@ def main():
try:
fp = open(filename)
except IOError, (code, msg):
@@ -1841,7 +1998,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
try:
filemembers = fp.readlines()
finally:
-@@ -200,7 +200,7 @@
+@@ -200,7 +200,7 @@ def main():
addr = filemembers[i].strip()
if addr == '' or addr[:1] == '#':
del filemembers[i]
@@ -1850,7 +2007,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
# first filter out any invalid addresses
filemembers = email.Utils.getaddresses(filemembers)
-@@ -209,17 +209,17 @@
+@@ -209,17 +209,17 @@ def main():
try:
Utils.ValidateEmail(addr)
except Errors.EmailAddressError:
@@ -1871,7 +2028,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
sys.exit(1)
try:
-@@ -241,7 +241,7 @@
+@@ -241,7 +241,7 @@ def main():
needsadding[laddr] = (name, addr)
if not needsadding and not addrs:
@@ -1880,7 +2037,7 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
sys.exit(0)
enc = sys.getdefaultencoding()
-@@ -257,7 +257,7 @@
+@@ -257,7 +257,7 @@ def main():
if not dryrun:
mlist.ApprovedAddMember(userdesc, welcome, notifyadmin)
s = email.Utils.formataddr((name, addr)).encode(enc, 'replace')
@@ -1888,8 +2045,8 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
+ print C_('Added : %(s)s')
except Errors.MMAlreadyAMember:
pass
-
-@@ -275,7 +275,7 @@
+ except Errors.MembershipIsBanned, pattern:
+@@ -277,7 +277,7 @@ def main():
# get rid of this member's entry
mlist.removeMember(addr)
s = email.Utils.formataddr((name, addr)).encode(enc, 'replace')
@@ -1898,10 +2055,11 @@ diff -ur mailman-2.1.9/bin/sync_members mailman-2.1.9-new/bin/sync_members
mlist.Save()
finally:
-diff -ur mailman-2.1.9/bin/transcheck mailman-2.1.9-new/bin/transcheck
---- mailman-2.1.9/bin/transcheck 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/transcheck 2007-01-29 14:29:46.000000000 +0100
-@@ -35,7 +35,7 @@
+diff --git a/bin/transcheck b/bin/transcheck
+index 1fb3301..e375316 100755
+--- a/bin/transcheck
++++ b/bin/transcheck
+@@ -36,7 +36,7 @@ import os
import getopt
import paths
@@ -1910,7 +2068,7 @@ diff -ur mailman-2.1.9/bin/transcheck mailman-2.1.9-new/bin/transcheck
program = sys.argv[0]
-@@ -46,7 +46,7 @@
+@@ -47,7 +47,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1919,10 +2077,11 @@ diff -ur mailman-2.1.9/bin/transcheck mailman-2.1.9-new/bin/transcheck
if msg:
print >> fd, msg
sys.exit(code)
-diff -ur mailman-2.1.9/bin/unshunt mailman-2.1.9-new/bin/unshunt
---- mailman-2.1.9/bin/unshunt 2006-07-22 03:53:41.000000000 +0200
-+++ mailman-2.1.9-new/bin/unshunt 2007-01-29 14:29:46.000000000 +0100
-@@ -36,7 +36,7 @@
+diff --git a/bin/unshunt b/bin/unshunt
+index 842cc0f..e17ecae 100644
+--- a/bin/unshunt
++++ b/bin/unshunt
+@@ -38,7 +38,7 @@ import getopt
import paths
from Mailman import mm_cfg
from Mailman.Queue.sbcache import get_switchboard
@@ -1931,7 +2090,7 @@ diff -ur mailman-2.1.9/bin/unshunt mailman-2.1.9-new/bin/unshunt
-@@ -45,7 +45,7 @@
+@@ -47,7 +47,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -1940,7 +2099,7 @@ diff -ur mailman-2.1.9/bin/unshunt mailman-2.1.9-new/bin/unshunt
if msg:
print >> fd, msg
sys.exit(code)
-@@ -80,7 +80,7 @@
+@@ -82,7 +82,7 @@ def main():
except Exception, e:
# If there are any unshunting errors, log them and continue trying
# other shunted messages.
@@ -1949,11 +2108,11 @@ diff -ur mailman-2.1.9/bin/unshunt mailman-2.1.9-new/bin/unshunt
'Cannot unshunt message %(filebase)s, skipping:\n%(e)s')
else:
# Unlink the .bak file left by dequeue()
-Nur in mailman-2.1.9-new/bin: unshunt.orig.
-diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
---- mailman-2.1.9/bin/update 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/update 2007-01-29 14:29:46.000000000 +0100
-@@ -52,7 +52,7 @@
+diff --git a/bin/update b/bin/update
+index 343ae7a..b584342 100755
+--- a/bin/update
++++ b/bin/update
+@@ -52,7 +52,7 @@ from Mailman import MailList
from Mailman import Message
from Mailman import Pending
from Mailman.LockFile import TimeOutError
@@ -1962,7 +2121,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
from Mailman.Queue.Switchboard import Switchboard
from Mailman.OldStyleMemberships import OldStyleMemberships
from Mailman.MemberAdaptor import BYBOUNCE, ENABLED
-@@ -104,7 +104,7 @@
+@@ -104,7 +104,7 @@ def make_varabs(relpath):
def move_language_templates(mlist):
listname = mlist.internal_name()
@@ -1971,7 +2130,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
# Mailman 2.1 has a new cascading search for its templates, defined and
# described in Utils.py:maketext(). Putting templates in the top level
# templates/ subdir or the lists/<listname> subdir is deprecated and no
-@@ -193,8 +193,8 @@
+@@ -193,8 +193,8 @@ def dolist(listname):
try:
mlist.Lock(0.5)
except TimeOutError:
@@ -1982,7 +2141,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
return 1
# Sanity check the invariant that every BYBOUNCE disabled member must have
-@@ -212,13 +212,13 @@
+@@ -212,13 +212,13 @@ def dolist(listname):
# re-disable them if necessary.
n = len(noinfo)
if n > 0:
@@ -1998,7 +2157,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
mlist._UpdateRecords()
mbox_dir = make_varabs('archives/private/%s.mbox' % (listname))
-@@ -240,7 +240,7 @@
+@@ -240,7 +240,7 @@ def dolist(listname):
else:
# this shouldn't happen, but hey, just in case
if not os.path.isdir(mbox_dir):
@@ -2007,7 +2166,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
For some reason, %(mbox_dir)s exists as a file. This won't work with
b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding.""")
os.rename(mbox_dir, "%s.tmp" % (mbox_dir))
-@@ -252,7 +252,7 @@
+@@ -252,7 +252,7 @@ b6, so I'm renaming it to %(mbox_dir)s.tmp and proceeding.""")
# private one existing
if os.path.isfile(o_pri_mbox_file) and os.path.isfile(o_pub_mbox_file):
if mlist.archive_private:
@@ -2016,7 +2175,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
%(listname)s has both public and private mbox archives. Since this list
currently uses private archiving, I'm installing the private mbox archive
-@@ -267,7 +267,7 @@
+@@ -267,7 +267,7 @@ script.
o_pub_mbox_file)
os.rename(o_pub_mbox_file, "%s.preb6" % (o_pub_mbox_file))
else:
@@ -2025,7 +2184,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
%s has both public and private mbox archives. Since this list
currently uses public archiving, I'm installing the public mbox file
archive file (%s) as the active one, and renaming
-@@ -284,7 +284,7 @@
+@@ -284,7 +284,7 @@ script.
# move private archive mbox there if it's around
# and take into account all sorts of absurdities
#
@@ -2034,7 +2193,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
if os.path.exists(o_pri_mbox_file):
if os.path.isfile(o_pri_mbox_file):
os.rename(o_pri_mbox_file, mbox_file)
-@@ -292,14 +292,14 @@
+@@ -292,21 +292,21 @@ script.
newname = "%s.mm_install-dunno_what_this_was_but_its_in_the_way" \
% o_pri_mbox_file
os.rename(o_pri_mbox_file, newname)
@@ -2046,12 +2205,11 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
%(newname)s""")
else:
# directory
-- print _("""\
-+ print C_("""\
- looks like you have a really recent CVS installation...
- you're either one brave soul, or you already ran me""")
+- print _('Nothing to do.')
++ print C_('Nothing to do.')
+
-@@ -308,7 +308,7 @@
+ #
# move public archive mbox there if it's around
# and take into account all sorts of absurdities.
#
@@ -2060,7 +2218,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
if os.path.exists(o_pub_mbox_file):
if os.path.isfile(o_pub_mbox_file):
os.rename(o_pub_mbox_file, mbox_file)
-@@ -316,13 +316,13 @@
+@@ -314,13 +314,13 @@ script.
newname = "%s.mm_install-dunno_what_this_was_but_its_in_the_way" \
% o_pub_mbox_file
os.rename(o_pub_mbox_file, newname)
@@ -2071,37 +2229,37 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
to
%(newname)s""")
else: # directory
+- print _('Nothing to do.')
++ print C_('Nothing to do.')
+
+ #
+ # move the html archives there
+@@ -350,7 +350,7 @@ script.
+ b4_tmpl_dir = os.path.join(tmpl_dir, mlist._internal_name)
+ new_tmpl_dir = os.path.join(list_dir, mlist._internal_name)
+ if os.path.exists(b4_tmpl_dir):
- print _("""\
+ print C_("""\
- looks like you have a really recent CVS installation...
- you're either one brave soul, or you already ran me""")
-
-@@ -347,7 +347,7 @@
- b4_tmpl_dir = os.path.join(tmpl_dir, mlist._internal_name)
- new_tmpl_dir = os.path.join(list_dir, mlist._internal_name)
- if os.path.exists(b4_tmpl_dir):
-- print _("""\
-+ print C_("""\
- This list looks like it might have <= b4 list templates around""")
- for f in os.listdir(b4_tmpl_dir):
- o_tmpl = os.path.join(b4_tmpl_dir, f)
-@@ -355,12 +355,12 @@
- if os.path.exists(o_tmpl):
- if not os.path.exists(n_tmpl):
- os.rename(o_tmpl, n_tmpl)
-- print _('- moved %(o_tmpl)s to %(n_tmpl)s')
-+ print C_('- moved %(o_tmpl)s to %(n_tmpl)s')
+ for f in os.listdir(b4_tmpl_dir):
+ o_tmpl = os.path.join(b4_tmpl_dir, f)
+@@ -358,12 +358,12 @@ script.
+ if os.path.exists(o_tmpl):
+ if not os.path.exists(n_tmpl):
+ os.rename(o_tmpl, n_tmpl)
+- print _('- moved %(o_tmpl)s to %(n_tmpl)s')
++ print C_('- moved %(o_tmpl)s to %(n_tmpl)s')
+ else:
+- print _("""\
++ print C_("""\
+ - both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched""")
else:
- print _("""\
+ print C_("""\
- - both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched""")
- else:
-- print _("""\
-+ print C_("""\
- %(o_tmpl)s doesn't exist, leaving untouched""")
#
# Move all the templates to the en language subdirectory as required for
-@@ -390,23 +390,23 @@
+@@ -393,23 +393,23 @@ def remove_old_sources(module):
src = '%s/%s' % (mm_cfg.PREFIX, module)
pyc = src + "c"
if os.path.isdir(src):
@@ -2130,7 +2288,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
prefix = `time.time()` + '+'
# Be sure the qfiles/in directory exists (we don't really need the
# switchboard object, but it's convenient for creating the directory).
-@@ -514,7 +514,7 @@
+@@ -527,7 +527,7 @@ def dequeue(filebase):
# This message was unparsable, most likely because its
# MIME encapsulation was broken. For now, there's not
# much we can do about it.
@@ -2139,7 +2297,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
msgfp.close()
msgfp = None
if mm_cfg.QRUNNER_SAVE_BAD_MESSAGES:
-@@ -547,7 +547,7 @@
+@@ -560,7 +560,7 @@ def update_pending():
except IOError, e:
if e.errno <> errno.ENOENT: raise
else:
@@ -2148,7 +2306,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
db = marshal.load(fp)
# Convert to the pre-Mailman 2.1.5 format
db = Pending._update(db)
-@@ -558,10 +558,10 @@
+@@ -571,10 +571,10 @@ def update_pending():
except IOError, e:
if e.errno <> errno.ENOENT: raise
else:
@@ -2161,7 +2319,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
return
# Now upgrade the database to the 2.1.5 format. Each list now has its own
# pending.pck file, but only the RE_ENABLE operation actually recorded the
-@@ -582,7 +582,7 @@
+@@ -595,7 +595,7 @@ def update_pending():
op = val[0]
data = val[1:]
except (IndexError, ValueError):
@@ -2170,7 +2328,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
continue
if op in (Pending.UNSUBSCRIPTION, Pending.CHANGE_OF_ADDRESS):
# data[0] is the address being unsubscribed
-@@ -598,7 +598,7 @@
+@@ -611,7 +611,7 @@ def update_pending():
# data[0] is the hold id. There better only be one entry per id
id = data[0]
if holds_by_id.has_key(id):
@@ -2179,7 +2337,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
else:
holds_by_id[id] = (key, val)
# Now we have to lock every list and re-pend all the appropriate
-@@ -651,7 +651,7 @@
+@@ -664,7 +664,7 @@ def update_pending():
def main():
errors = 0
# get rid of old stuff
@@ -2188,7 +2346,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
for mod in ('Mailman/Archiver.py', 'Mailman/HyperArch.py',
'Mailman/HyperDatabase.py', 'Mailman/pipermail.py',
'Mailman/smtplib.py', 'Mailman/Cookie.py',
-@@ -661,29 +661,29 @@
+@@ -674,29 +674,29 @@ def main():
remove_old_sources(mod)
listnames = Utils.list_names()
if not listnames:
@@ -2224,7 +2382,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
else:
d = marshal.load(fp)
fp.close()
-@@ -695,7 +695,7 @@
+@@ -708,7 +708,7 @@ If your archives are big, this could take a minute or two...""")
try:
mlist.Lock(0.5)
except TimeOutError:
@@ -2233,7 +2391,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
'WARNING: could not acquire lock for list: %(listname)s')
errors = errors + 1
else:
-@@ -706,7 +706,7 @@
+@@ -719,7 +719,7 @@ If your archives are big, this could take a minute or two...""")
mlist.Save()
mlist.Unlock()
os.unlink(wmfile)
@@ -2242,7 +2400,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
# In Mailman 2.1, the pending database format and file name changed, but
# in Mailman 2.1.5 it changed again. This should update all existing
# files to the 2.1.5 format.
-@@ -720,7 +720,7 @@
+@@ -733,7 +733,7 @@ If your archives are big, this could take a minute or two...""")
# There's no good way of figuring this out for releases prior to 2.0beta2
# :(
if lastversion == NOTFRESH:
@@ -2251,7 +2409,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
NOTE NOTE NOTE NOTE NOTE
-@@ -747,7 +747,7 @@
+@@ -760,7 +760,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -2260,7 +2418,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
if msg:
print >> sys.stderr, msg
sys.exit(code)
-@@ -777,15 +777,15 @@
+@@ -790,15 +790,15 @@ if __name__ == '__main__':
hextversion = hex(thisversion)
if lastversion == thisversion and not force:
# nothing to do
@@ -2279,7 +2437,7 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
errors = main()
if not errors:
# Record the version we just upgraded to
-@@ -794,7 +794,7 @@
+@@ -807,7 +807,7 @@ Exiting.""")
fp.close()
else:
lockdir = mm_cfg.LOCK_DIR
@@ -2288,10 +2446,10 @@ diff -ur mailman-2.1.9/bin/update mailman-2.1.9-new/bin/update
ERROR:
-Nur in mailman-2.1.9-new/bin: update.orig.
-diff -ur mailman-2.1.9/bin/version mailman-2.1.9-new/bin/version
---- mailman-2.1.9/bin/version 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/version 2007-01-29 14:29:46.000000000 +0100
+diff --git a/bin/version b/bin/version
+index 72c50b8..4efba6f 100644
+--- a/bin/version
++++ b/bin/version
@@ -21,6 +21,6 @@
import paths
@@ -2301,10 +2459,11 @@ diff -ur mailman-2.1.9/bin/version mailman-2.1.9-new/bin/version
-print _('Using Mailman version:'), Mailman.mm_cfg.VERSION
+print C_('Using Mailman version:'), Mailman.mm_cfg.VERSION
-diff -ur mailman-2.1.9/bin/withlist mailman-2.1.9-new/bin/withlist
---- mailman-2.1.9/bin/withlist 2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9-new/bin/withlist 2007-01-29 14:34:01.000000000 +0100
-@@ -153,7 +153,7 @@
+diff --git a/bin/withlist b/bin/withlist
+index 6cda8db..0e0340b 100644
+--- a/bin/withlist
++++ b/bin/withlist
+@@ -157,7 +157,7 @@ def usage(code, msg=''):
fd = sys.stderr
else:
fd = sys.stdout
@@ -2313,7 +2472,7 @@ diff -ur mailman-2.1.9/bin/withlist mailman-2.1.9-new/bin/withlist
if msg:
print >> fd, msg
sys.exit(code)
-@@ -171,11 +171,11 @@
+@@ -175,11 +175,11 @@ def atexit():
if m.Locked():
if VERBOSE:
listname = m.internal_name()
@@ -2327,7 +2486,7 @@ diff -ur mailman-2.1.9/bin/withlist mailman-2.1.9-new/bin/withlist
del m
-@@ -184,16 +184,16 @@
+@@ -188,16 +188,16 @@ def do_list(listname, args, func):
global m
# first try to open mailing list
if VERBOSE:
@@ -2348,7 +2507,7 @@ diff -ur mailman-2.1.9/bin/withlist mailman-2.1.9-new/bin/withlist
m = None
# try to import the module and run the callable
-@@ -233,7 +233,7 @@
+@@ -237,7 +237,7 @@ def main():
all = True
if len(args) < 1 and not all:
@@ -2357,7 +2516,7 @@ diff -ur mailman-2.1.9/bin/withlist mailman-2.1.9-new/bin/withlist
if interact:
# Let them keep going
print warning
-@@ -242,7 +242,7 @@
+@@ -246,7 +246,7 @@ def main():
usage(1, warning)
if all and not run:
@@ -2366,179 +2525,26 @@ diff -ur mailman-2.1.9/bin/withlist mailman-2.1.9-new/bin/withlist
# The default for interact is 1 unless -r was given
if interact is None:
-@@ -262,10 +262,10 @@
+@@ -266,11 +266,11 @@ def main():
module = run[:i]
callable = run[i+1:]
if VERBOSE:
- print >> sys.stderr, _('Importing %(module)s...')
+ print >> sys.stderr, C_('Importing %(module)s...')
- mod = __import__(module)
+ __import__(module)
+ mod = sys.modules[module]
if VERBOSE:
- print >> sys.stderr, _('Running %(module)s.%(callable)s()...')
+ print >> sys.stderr, C_('Running %(module)s.%(callable)s()...')
func = getattr(mod, callable)
if all:
-diff -ur mailman-2.1.9/Mailman/i18n.py mailman-2.1.9-new/Mailman/i18n.py
---- mailman-2.1.9/Mailman/i18n.py 2006-02-23 07:25:29.000000000 +0100
-+++ mailman-2.1.9-new/Mailman/i18n.py 2007-01-29 14:29:45.000000000 +0100
-@@ -15,6 +15,7 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- # USA.
-
-+import locale
- import sys
- import time
- import gettext
-@@ -25,6 +26,15 @@
-
- _translation = None
-
-+
-+def _get_ctype_charset():
-+ old = locale.setlocale(locale.LC_CTYPE, '')
-+ charset = locale.nl_langinfo(locale.CODESET)
-+ locale.setlocale(locale.LC_CTYPE, old)
-+ return charset
-+
-+_ctype_charset = _get_ctype_charset()
-+
-
-
- def set_language(language=None):
-@@ -54,7 +64,7 @@
-
-
-
--def _(s):
-+def _(s, frame = 1):
- if s == '':
- return s
- assert s
-@@ -70,7 +80,7 @@
- # original string is 1) locals dictionary, 2) globals dictionary.
- #
- # First, get the frame of the caller
-- frame = sys._getframe(1)
-+ frame = sys._getframe(frame)
- # A `safe' dictionary is used so we won't get an exception if there's a
- # missing key in the dictionary.
- dict = SafeDict(frame.f_globals.copy())
-@@ -91,6 +101,19 @@
-
-
-
-+def tolocale(s):
-+ global _ctype_charset
-+ if isinstance(s, UnicodeType):
-+ return s
-+ source = _translation.charset ()
-+ if not source:
-+ return s
-+ return unicode(s, source, 'replace').encode(_ctype_charset, 'replace')
-+
-+def C_(s):
-+ return tolocale(_(s, 2))
-+
-+
- def ctime(date):
- # Don't make these module globals since we have to do runtime translation
- # of the strings anyway.
-Nur in mailman-2.1.9-new/Mailman: i18n.py.orig.
-Nur in mailman-2.1.9-new/Mailman/Logging: Makefile.
-Nur in mailman-2.1.9-new/Mailman: Makefile.
-Nur in mailman-2.1.9-new/Mailman: mm_cfg.py.dist.
-Nur in mailman-2.1.9-new/Mailman/MTA: Makefile.
-diff -ur mailman-2.1.9/Mailman/MTA/Manual.py mailman-2.1.9-new/Mailman/MTA/Manual.py
---- mailman-2.1.9/Mailman/MTA/Manual.py 2005-12-30 19:50:08.000000000 +0100
-+++ mailman-2.1.9-new/Mailman/MTA/Manual.py 2007-01-29 14:29:45.000000000 +0100
-@@ -25,7 +25,7 @@
- from Mailman import Message
- from Mailman import Utils
- from Mailman.Queue.sbcache import get_switchboard
--from Mailman.i18n import _
-+from Mailman.i18n import _, C_
- from Mailman.MTA.Utils import makealiases
-
- try:
-@@ -74,12 +74,12 @@
- outfp = sfp
- else:
- if not quiet:
-- print _("""\
-+ print C_("""\
- To finish creating your mailing list, you must edit your /etc/aliases (or
- equivalent) file by adding the following lines, and possibly running the
- `newaliases' program:
- """)
-- print _("""\
-+ print C_("""\
- ## %(listname)s mailing list""")
- outfp = sys.stdout
- # Common path
-@@ -120,7 +120,7 @@
- """)
- outfp = sfp
- else:
-- print _("""
-+ print C_("""
- To finish removing your mailing list, you must edit your /etc/aliases (or
- equivalent) file by removing the following lines, and possibly running the
- `newaliases' program:
-Nur in mailman-2.1.9-new/Mailman/MTA: Manual.py.orig.
-diff -ur mailman-2.1.9/Mailman/MTA/Postfix.py mailman-2.1.9-new/Mailman/MTA/Postfix.py
---- mailman-2.1.9/Mailman/MTA/Postfix.py 2007-01-29 14:37:43.000000000 +0100
-+++ mailman-2.1.9-new/Mailman/MTA/Postfix.py 2007-01-29 14:35:09.000000000 +0100
-@@ -27,7 +27,7 @@
- from Mailman import mm_cfg
- from Mailman import Utils
- from Mailman import LockFile
--from Mailman.i18n import _
-+from Mailman.i18n import C_
- from Mailman.MTA.Utils import makealiases
- from Mailman.Logging.Syslog import syslog
-
-@@ -303,7 +303,7 @@
- targetmode = S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP
- for file in ALIASFILE, VIRTFILE:
- if state.VERBOSE:
-- print _('checking permissions on %(file)s')
-+ print C_('checking permissions on %(file)s')
- stat = None
- try:
- stat = os.stat(file)
-@@ -313,9 +313,9 @@
- if stat and (stat[ST_MODE] & targetmode) <> targetmode:
- state.ERRORS += 1
- octmode = oct(stat[ST_MODE])
-- print _('%(file)s permissions must be 066x (got %(octmode)s)'),
-+ print C_('%(file)s permissions must be 066x (got %(octmode)s)'),
- if state.FIX:
-- print _('(fixing)')
-+ print C_('(fixing)')
- os.chmod(file, stat[ST_MODE] | targetmode)
- else:
- print
-@@ -331,7 +331,7 @@
- raise
- continue
- if state.VERBOSE:
-- print _('checking ownership of %(dbfile)s')
-+ print C_('checking ownership of %(dbfile)s')
- user = mm_cfg.MAILMAN_USER
- ownerok = stat[ST_UID] == pwd.getpwnam(user)[2]
- if not ownerok:
-@@ -339,10 +339,10 @@
- owner = pwd.getpwuid(stat[ST_UID])[0]
- except KeyError:
- owner = 'uid %d' % stat[ST_UID]
-- print _('%(dbfile)s owned by %(owner)s (must be owned by %(user)s'),
-+ print C_('%(dbfile)s owned by %(owner)s (must be owned by %(user)s'),
- state.ERRORS += 1
- if state.FIX:
-- print _('(fixing)')
-+ print C_('(fixing)')
- uid = pwd.getpwnam(user)[2]
- gid = grp.getgrnam(mm_cfg.MAILMAN_GROUP)[2]
- os.chown(dbfile, uid, gid)
-
+@@ -291,7 +291,7 @@ def main():
+ namespace = globals().copy()
+ namespace.update(locals())
+ if dolist:
+- ban = _("The variable `m' is the %(listname)s MailList instance")
++ ban = C_("The variable `m' is the %(listname)s MailList instance")
+ else:
+ ban = None
+ code.InteractiveConsole(namespace).interact(ban)
diff --git a/mailman.spec b/mailman.spec
index ed006c1..0a5b0b2 100644
--- a/mailman.spec
+++ b/mailman.spec
@@ -1,7 +1,7 @@
Summary: Mailing list manager with built in Web access
Name: mailman
Version: 2.1.14
-Release: 5%{?dist}
+Release: 6%{?dist}
Epoch: 3
Group: Applications/Internet
Source0: ftp://ftp.gnu.org/pub/gnu/mailman/mailman-%{version}.tgz
@@ -22,7 +22,7 @@ Patch4: mailman-2.1.11-cron.patch
Patch5: mailman-2.1.13-FHS.patch
Patch6: mailman-python-compile.patch
Patch7: mailman-2.1.13-archive-reply.patch
-#Patch8: mailman-2.1.11-lctype.patch
+Patch8: mailman-2.1.9-LC_CTYPE.patch
Patch9: mailman-2.1.9-ctypo-new.patch
Patch10: mailman-2.1.10-ctypefix.patch
Patch11: mailman-2.1.9-header-folding.patch
@@ -109,7 +109,7 @@ additional installation steps, these are described in:
%prep
#not needed anymore
-#%%define _default_patch_fuzz 3
+#%define _default_patch_fuzz 3
%setup -q
%patch1 -p1 -b .multimail
@@ -119,14 +119,13 @@ additional installation steps, these are described in:
%patch5 -p1 -b .FHS
%patch6 -p1 -b .python-compile
%patch7 -p1 -b .archive-in-reply-to
-#%%patch8 -p1 -b .lctype
+%patch8 -p1 -b .lctype
%patch9 -p1 -b .ctypo
%patch10 -p1 -b .ctypefix
#!%%patch11 -p1 -b .header
%patch12 -p1 -b .selinux
%patch13 -p1 -b .unicode
%patch14 -p1 -b .fhsinit
-%patch15 -p1 -b .lctype
%patch16 -p1 -b .privurl
%patch17 -p1 -b .mmcfg
%patch18 -p1 -b .initcleanup
@@ -514,10 +513,14 @@ exit 0
%attr(0644,root,%{mmgroup}) %config(noreplace) %{mmdir}/cron/crontab.in
%attr(0755,root,root) %{_bindir}/mailman-update-cfg
# fix for security issue #459530
-%attr(2770,%{mmuser},%{cgigroup}) %{archivesdir}/private
+%attr(2770,%{cgiuser},%{mmgroup}) %{archivesdir}/private
%changelog
-* Wed Feb 23 2011 Jan Kaluza <jkaluza at redhat.com> - 3:2.1.14-4
+* Tue Apr 05 2011 Jan Kaluza <jkaluza at redhat.com> - 3:2.1.14-6
+- fix #688435 - set proper permissions for private archive
+- fix badly rebased LC_CTYPE patch which caused newlist to fail with traceback
+
+* Wed Feb 23 2011 Jan Kaluza <jkaluza at redhat.com> - 3:2.1.14-5
- fix #679644 - fixed CVE-2011-0707: three XSS flaws due improper
escaping of the full name of the member
More information about the scm-commits
mailing list