Remove debian/patches
authorMichael Spang <mspang@uwaterloo.ca>
Thu, 13 Sep 2007 00:48:33 +0000 (20:48 -0400)
committerMichael Spang <mspang@uwaterloo.ca>
Thu, 13 Sep 2007 00:48:33 +0000 (20:48 -0400)
36 files changed:
debian/patches/00_stolen_from_HEAD.patch [deleted file]
debian/patches/01_defaults.debian.patch [deleted file]
debian/patches/02_HyperDatabase_mapkeys.patch [deleted file]
debian/patches/07_snooze.patch [deleted file]
debian/patches/10_wrapper_uid.patch [deleted file]
debian/patches/11_handle_propfind.patch [deleted file]
debian/patches/15_mailmanctl_daemonize.patch [deleted file]
debian/patches/16_update_debian.patch [deleted file]
debian/patches/20_qmail_to_mailman.debian.patch [deleted file]
debian/patches/21_newlist_help.patch [deleted file]
debian/patches/30_pipermail_threads.patch [deleted file]
debian/patches/32_MIME_fixup.patch [deleted file]
debian/patches/51_nocompile.pyc.patch [deleted file]
debian/patches/52_check_perms_lstat.patch [deleted file]
debian/patches/53_disable_addons.patch [deleted file]
debian/patches/56_fix_de_broken_links.patch [deleted file]
debian/patches/58_fix_es_translation.patch [deleted file]
debian/patches/59_fix_missing_language_crash.patch [deleted file]
debian/patches/61_fix_ru_siteowner.patch [deleted file]
debian/patches/62_new_list_bad_pending_requests.patch [deleted file]
debian/patches/63_update_default_server_language.patch [deleted file]
debian/patches/64_correct_html_nesting.patch [deleted file]
debian/patches/65_handle_templates_directories.patch [deleted file]
debian/patches/66_donot_let_cache_html_pages.patch [deleted file]
debian/patches/67_update_handle_old_versions.patch [deleted file]
debian/patches/70_invalid_utf8_dos.patch [deleted file]
debian/patches/71_date_overflows.patch [deleted file]
debian/patches/72_fblast_add_shebang.patch [deleted file]
debian/patches/74_admin_non-ascii_emails.patch [deleted file]
debian/patches/77_header_folding_in_attachments.patch [deleted file]
debian/patches/78_DeprecationWarning.patch [deleted file]
debian/patches/79_archiver_slash.patch [deleted file]
debian/patches/80_fix_string_search.patch [deleted file]
debian/patches/81_backport_export.dpatch [deleted file]
debian/patches/99_js_templates.patch [deleted file]
debian/patches/series [deleted file]

diff --git a/debian/patches/00_stolen_from_HEAD.patch b/debian/patches/00_stolen_from_HEAD.patch
deleted file mode 100644 (file)
index 7e741f2..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: 00_stolen_from_HEAD.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Handle empty queue files.
-Index: Mailman/Handlers/Scrubber.py
-===================================================================
---- Mailman/Handlers/Scrubber.py.orig  2006-08-15 15:12:19.000000000 +0800
-+++ Mailman/Handlers/Scrubber.py       2006-08-15 15:14:15.000000000 +0800
-@@ -370,6 +370,8 @@
-                     t = u.encode('ascii', 'replace')
-                 try:
-                     # Should use HTML-Escape, or try generalizing to UTF-8
-+                    if len(charset) == 0:
-+                        charset = 'us-ascii'
-                     t = t.encode(charset, 'replace')
-                 except (UnicodeError, LookupError, ValueError):
-                     t = t.encode(lcset, 'replace')
diff --git a/debian/patches/01_defaults.debian.patch b/debian/patches/01_defaults.debian.patch
deleted file mode 100644 (file)
index 5c60c1e..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-Patch: 01_defaults.debian.dpatch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Set sane defaults in Defaults.py.in
-Index: Mailman/Defaults.py.in
-===================================================================
---- Mailman/Defaults.py.in.orig        2006-08-15 15:12:19.000000000 +0800
-+++ Mailman/Defaults.py.in     2006-08-15 15:14:18.000000000 +0800
-@@ -54,7 +54,7 @@
- # disable Mailman's logo footer altogther, hack
- # Mailman/htmlformat.py:MailmanLogo(), which also contains the hardcoded links
- # and image names.
--IMAGE_LOGOS = '/icons/'
-+IMAGE_LOGOS = '/doc/mailman/images/'
- # The name of the Mailman favicon
- SHORTCUT_ICON = 'mm-icon.png'
-@@ -85,7 +85,7 @@
- # because otherwise the default mappings won't be correct.
- DEFAULT_EMAIL_HOST = '@MAILHOST@'
- DEFAULT_URL_HOST = '@URLHOST@'
--DEFAULT_URL_PATTERN = 'http://%s/mailman/'
-+DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/'
- # DEFAULT_HOST_NAME has been replaced with DEFAULT_EMAIL_HOST, however some
- # sites may have the former in their mm_cfg.py files.  If so, we'll believe
-@@ -1300,7 +1300,7 @@
- MAILDIR_DIR     = os.path.join(QUEUE_DIR, 'maildir')
- # Other useful files
--PIDFILE = os.path.join(DATA_DIR, 'master-qrunner.pid')
-+PIDFILE = "/var/run/mailman/mailman.pid"
- SITE_PW_FILE = os.path.join(DATA_DIR, 'adm.pw')
- LISTCREATOR_PW_FILE = os.path.join(DATA_DIR, 'creator.pw')
diff --git a/debian/patches/02_HyperDatabase_mapkeys.patch b/debian/patches/02_HyperDatabase_mapkeys.patch
deleted file mode 100644 (file)
index 83639a3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- Mailman/Archiver/HyperDatabase.py  2005-08-27 03:40:17.000000000 +0200
-+++ Mailman/Archiver/HyperDatabase.py  2007-02-27 20:33:41.103527160 +0100
-@@ -324,15 +343,22 @@
-     def clearIndex(self, archive, index):
-         self.__openIndices(archive)
-         if hasattr(self.threadIndex, 'clear'):
-             self.threadIndex.clear()
-             return
-         finished=0
-         try:
-             key, msgid=self.threadIndex.first()
-         except KeyError: finished=1
-         while not finished:
-             del self.threadIndex[key]
-             try:
-                 key, msgid=self.threadIndex.next()
-             except KeyError: finished=1
-+
-+    def mapKeys(self, f, archive, index):
-+        self.__openIndices(archive)
-+        index = getattr(self, index + 'Index')
-+        d = index.dict
-+        index.dict = dict(zip(map(f, d.keys()), d.values()))
-+        index.__dirty = 1
diff --git a/debian/patches/07_snooze.patch b/debian/patches/07_snooze.patch
deleted file mode 100644 (file)
index c15f6e7..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Patch: 07_snooze.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Snooze a bit to avoid eating too much CPU if you get an SMTP error.
-Index: Mailman/Queue/OutgoingRunner.py
-===================================================================
---- Mailman/Queue/OutgoingRunner.py.orig       2006-08-15 15:12:19.000000000 +0800
-+++ Mailman/Queue/OutgoingRunner.py    2006-08-15 15:14:24.000000000 +0800
-@@ -88,6 +88,7 @@
-                 syslog('error', 'Cannot connect to SMTP server %s on port %s',
-                        mm_cfg.SMTPHOST, port)
-                 self.__logged = True
-+            self._snooze(0)
-             return True
-         except Errors.SomeRecipientsFailed, e:
-             # Handle local rejects of probe messages differently.
diff --git a/debian/patches/10_wrapper_uid.patch b/debian/patches/10_wrapper_uid.patch
deleted file mode 100644 (file)
index 96e4980..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Patch: 10_wrapper_uid.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Makes sure we're called with the right UID and GID
-Index: src/cgi-wrapper.c
-===================================================================
---- src/cgi-wrapper.c.orig     2006-08-15 15:12:18.000000000 +0800
-+++ src/cgi-wrapper.c  2006-08-15 15:14:25.000000000 +0800
-@@ -42,7 +42,7 @@
-         char* fake_argv[3];
-         running_as_cgi = 1;
--        check_caller(logident, parentgroup);
-+        if (getgid() >= 100 && getgid() != 65534) check_caller(LOG_IDENT, LEGAL_PARENT_GROUP);
-         /* For these CGI programs, we can ignore argc and argv since they
-          * don't contain anything useful.  `script' will always be the driver
-Index: src/mail-wrapper.c
-===================================================================
---- src/mail-wrapper.c.orig    2006-08-15 15:12:18.000000000 +0800
-+++ src/mail-wrapper.c 2006-08-15 15:14:25.000000000 +0800
-@@ -74,7 +74,7 @@
-                 fatal(logident, MAIL_ILLEGAL_COMMAND,
-                       "Illegal command: %s", argv[1]);
--        check_caller(logident, parentgroup);
-+       if (getgid() >= 100 && getgid() != 65534) check_caller(logident, LEGAL_PARENT_GROUP);
-         /* If we got here, everything must be OK */
-         status = run_script(argv[1], argc, argv, env);
diff --git a/debian/patches/11_handle_propfind.patch b/debian/patches/11_handle_propfind.patch
deleted file mode 100644 (file)
index cb5bd99..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Patch: 11_handle_propfind.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Submitted upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1578756&group_id=103&atid=300103
-Don't fall flat on our face if we get a request type which we
-don't understand.
-Index: scripts/driver
-===================================================================
---- scripts/driver.orig        2006-08-15 15:12:18.000000000 +0800
-+++ scripts/driver     2006-08-15 15:14:26.000000000 +0800
-@@ -95,6 +95,15 @@
-         module = getattr(pkg, scriptname)
-         main = getattr(module, 'main')
-         try:
-+            import os
-+            request_method = os.environ.get('REQUEST_METHOD')
-+            if not request_method in ['GET', 'POST', 'HEAD']:
-+                print "Status: 405 Method not allowed"
-+                print "Content-type: text/plain"
-+                print
-+                print "The method is not allowed"
-+                sys.exit()
-+                
-             try:
-                 sys.stderr = logger
-                 sys.stdout = tempstdout
diff --git a/debian/patches/15_mailmanctl_daemonize.patch b/debian/patches/15_mailmanctl_daemonize.patch
deleted file mode 100644 (file)
index e344339..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Patch: 15_mailmanctl_daemonize.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Daemonize mailmanctl properly
-Index: bin/mailmanctl
-===================================================================
---- bin/mailmanctl.orig        2006-08-15 15:12:18.000000000 +0800
-+++ bin/mailmanctl     2006-08-15 15:14:29.000000000 +0800
-@@ -417,6 +417,13 @@
-         # won't be opening any terminal devices, don't do the ultra-paranoid
-         # suggestion of doing a second fork after the setsid() call.
-         os.setsid()
-+
-+        # Be sure to close any open std{in,out,err}
-+        devnull = os.open('/dev/null', 0)
-+        os.dup2(devnull, 0)
-+        os.dup2(devnull, 1)
-+        os.dup2(devnull, 2)
-+
-         # Instead of cd'ing to root, cd to the Mailman installation home
-         os.chdir(mm_cfg.PREFIX)
-         # Set our file mode creation umask
diff --git a/debian/patches/16_update_debian.patch b/debian/patches/16_update_debian.patch
deleted file mode 100644 (file)
index bdd1ab1..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-Patch: 16_update_debian.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-update is called from the Debian maintainer scripts and
-prints non-appropriate output.  Change that.
-Index: bin/update
-===================================================================
---- bin/update.orig    2006-08-15 15:12:18.000000000 +0800
-+++ bin/update 2006-08-15 15:14:30.000000000 +0800
-@@ -300,8 +300,7 @@
-         else:
-             # directory
-             print _("""\
--    looks like you have a really recent CVS installation...
--    you're either one brave soul, or you already ran me""")
-+    Your installation seems up-to-date, great!""")
-     #
-@@ -323,8 +322,7 @@
-         %(newname)s""")
-         else: # directory
-             print _("""\
--    looks like you have a really recent CVS installation...
--    you're either one brave soul, or you already ran me""")
-+    Your installation seems up-to-date, great!""")
-     #
-     # move the html archives there
-@@ -338,31 +336,6 @@
-     # BAW: Is this still necessary?!
-     mlist.Save()
-     #
--    # check to see if pre-b4 list-specific templates are around
--    # and move them to the new place if there's not already
--    # a new one there
--    #
--    tmpl_dir = os.path.join(mm_cfg.PREFIX, "templates")
--    list_dir = os.path.join(mm_cfg.PREFIX, "lists")
--    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 _("""\
--- 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)
--            n_tmpl = os.path.join(new_tmpl_dir, f)
--            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')
--                else:
--                    print _("""\
--- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched""")
--            else:
--                print _("""\
--- %(o_tmpl)s doesn't exist, leaving untouched""")
--    #
-     # Move all the templates to the en language subdirectory as required for
-     # Mailman 2.1
-     #
-@@ -656,12 +629,12 @@
-                 'Mailman/HyperDatabase.py', 'Mailman/pipermail.py',
-                 'Mailman/smtplib.py', 'Mailman/Cookie.py',
-                 'bin/update_to_10b6', 'scripts/mailcmd',
--                'scripts/mailowner', 'mail/wrapper', 'Mailman/pythonlib',
-+                'scripts/mailowner', 'Mailman/pythonlib',
-                 'cgi-bin/archives', 'Mailman/MailCommandHandler'):
-         remove_old_sources(mod)
-     listnames = Utils.list_names()
-     if not listnames:
--        print _('no lists == nothing to do, exiting')
-+#        print _('no lists == nothing to do, exiting')
-         return
-     #
-     # for people with web archiving, make sure the directories
diff --git a/debian/patches/20_qmail_to_mailman.debian.patch b/debian/patches/20_qmail_to_mailman.debian.patch
deleted file mode 100644 (file)
index 9c6bf1f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-Patch: 20_qmail_to_mailman.debian.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Fix some paths in the qmail_to_mailman wrapper
-Index: contrib/qmail-to-mailman.py
-===================================================================
---- contrib/qmail-to-mailman.py.orig   2006-08-15 15:12:18.000000000 +0800
-+++ contrib/qmail-to-mailman.py        2006-08-15 15:14:31.000000000 +0800
-@@ -28,12 +28,12 @@
- #
- # INSTALLATION:
- #
--# Install this file as ~mailman/qmail-to-mailman.py
-+# Install this file as ~mailman/bin/qmail-to-mailman.py
- #
- # To configure a virtual domain to connect to mailman, create these files:
- #
- # ~mailman/.qmail-default
--# |preline @PYTHON@ @prefix@/mail-in.py
-+# |preline /usr/bin/python /usr/lib/mailman/bin/mail-in.py
- #
- # /var/qmail/control/virtualdomains:
- # DOMAIN.COM:mailman
-@@ -64,7 +64,7 @@
-         sys.exit(100)
-     local = string.lower(local)
--    local = re.sub("^mailman-","",local)
-+    local = re.sub("^" + MailmanUser + "-","",local)
-     names = ("root", "postmaster", "mailer-daemon", "mailman-owner", "owner",
-              "abuse")
diff --git a/debian/patches/21_newlist_help.patch b/debian/patches/21_newlist_help.patch
deleted file mode 100644 (file)
index 24d8eca..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## Patch: 21_newlist_help.patch
-## Author: Tollef Fog Heen <tfheen@debian.org>
-## DP: make newlist be a bit friendlier.
-@DPATCH@
-diff -urNad mailman-2.1.9~/bin/newlist mailman-2.1.9/bin/newlist
---- mailman-2.1.9~/bin/newlist 2007-01-20 03:44:12.000000000 +0100
-+++ mailman-2.1.9/bin/newlist  2007-01-26 11:53:19.853900943 +0100
-@@ -87,6 +87,9 @@
- defined in your Defaults.py file or overridden by settings in mm_cfg.py).
- Note that listnames are forced to lowercase.
-+
-+The list admin address need to be a fully-qualified address, like
-+owner@example.com, not just owner.
- """
- import sys
-@@ -94,6 +97,7 @@
- import getpass
- import getopt
- import sha
-+import grp
- import paths
- from Mailman import mm_cfg
-@@ -122,6 +126,9 @@
\f
- def main():
-+    gid = grp.getgrnam(mm_cfg.MAILMAN_GROUP)[2]
-+    if os.getgid() != gid and gid not in os.getgroups():
-+        os.setgid(gid)
-     try:
-         opts, args = getopt.getopt(sys.argv[1:], 'hql:u:e:',
-                                    ['help', 'quiet', 'language=',
-@@ -199,7 +206,7 @@
-         except Errors.BadListNameError, s:
-             usage(1, _('Illegal list name: %(s)s'))
-         except Errors.EmailAddressError, s:
--            usage(1, _('Bad owner email address: %(s)s'))
-+            usage(1, _('Bad owner email address: %(s)s.  Owner addresses need to be fully-qualified names, like "owner@example.com", not just "owner".'))
-         except Errors.MMListAlreadyExistsError:
-             usage(1, _('List already exists: %(listname)s'))
diff --git a/debian/patches/30_pipermail_threads.patch b/debian/patches/30_pipermail_threads.patch
deleted file mode 100644 (file)
index 90daf56..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-Patch: 30_pipermail_threads.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Pipermail non-appropriate output.  Change that.
-Index: Mailman/Archiver/pipermail.py
-===================================================================
---- Mailman/Archiver/pipermail.py.orig 2006-08-15 15:12:18.000000000 +0800
-+++ Mailman/Archiver/pipermail.py      2006-08-15 15:14:34.000000000 +0800
-@@ -122,9 +122,9 @@
-         parentID = article.parentID
-         if parentID is not None and self.articleIndex.has_key(parentID):
-             parent = self.getArticle(archive, parentID)
--            myThreadKey = parent.threadKey + article.date + '-'
-+            myThreadKey = parent.threadKey + article.date + '/' + article.msgid + '-'
-         else:
--            myThreadKey = article.date + '-'
-+            myThreadKey = article.date + '/' + article.msgid + '-'
-         article.threadKey = myThreadKey
-         key = myThreadKey, article.msgid
-         self.setThreadKey(archive, key, article.msgid)
-@@ -418,7 +418,7 @@
-                 else:
-                     parent = self.database.getArticle(self.archive,
-                                                     article.parentID)
--                    article.threadKey = parent.threadKey+article.date+'-'
-+                    article.threadKey = parent.threadKey + article.date + '/' + article.msgid + '-'
-                 self.database.setThreadKey(self.archive,
-                     (article.threadKey, article.msgid),
-                     msgid)
-@@ -632,9 +632,9 @@
-             article.parentID = parentID = self.get_parent_info(arch, article)
-             if parentID:
-                 parent = self.database.getArticle(arch, parentID)
--                article.threadKey = parent.threadKey + article.date + '-'
-+                article.threadKey = parent.threadKey + article.date + '/' + article.msgid + '-'
-             else:
--                article.threadKey = article.date + '-'
-+                article.threadKey = article.date + '/' + article.msgid + '-'
-             key = article.threadKey, article.msgid
-             self.database.setThreadKey(arch, key, article.msgid)
diff --git a/debian/patches/32_MIME_fixup.patch b/debian/patches/32_MIME_fixup.patch
deleted file mode 100644 (file)
index 249fea7..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Patch: 32_MIME_fixup.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Handle empty queue files.
-Index: Mailman/Handlers/Decorate.py
-===================================================================
---- Mailman/Handlers/Decorate.py.orig  2006-08-15 15:12:18.000000000 +0800
-+++ Mailman/Handlers/Decorate.py       2006-08-15 15:14:35.000000000 +0800
-@@ -182,6 +182,7 @@
-     del msg['content-transfer-encoding']
-     del msg['content-disposition']
-     msg['Content-Type'] = 'multipart/mixed'
-+    msg['Mime-version'] = '1.0'
\f
diff --git a/debian/patches/51_nocompile.pyc.patch b/debian/patches/51_nocompile.pyc.patch
deleted file mode 100644 (file)
index f6bebf3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: 51_nocompile.pyc.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Don't do the compileall dance.  It'll just waste CPU cycles.
-Index: Makefile.in
-===================================================================
---- Makefile.in.orig   2006-08-15 15:12:18.000000000 +0800
-+++ Makefile.in        2006-08-15 15:14:36.000000000 +0800
-@@ -124,7 +124,7 @@
-       do \
-           (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
-       done
--      $(PYTHON) -c 'from compileall import *; compile_dir("$(DESTDIR)$(prefix)/Mailman")'
-+      #$(PYTHON) -c 'from compileall import *; compile_dir("$(DESTDIR)$(prefix)/Mailman")'
- # Only run bin/update if we aren't installing in DESTDIR, as this
- # means there are probably no lists to deal with, and it wouldn't
diff --git a/debian/patches/52_check_perms_lstat.patch b/debian/patches/52_check_perms_lstat.patch
deleted file mode 100644 (file)
index b48e29d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: 52_check_perms_lstat.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Use lstat instead of stat in check_perms
-Index: bin/check_perms
-===================================================================
---- bin/check_perms.orig       2006-08-15 15:12:18.000000000 +0800
-+++ bin/check_perms    2006-08-15 15:14:38.000000000 +0800
-@@ -80,7 +80,7 @@
-     return os.stat(path)[ST_MODE]
- def statgidmode(path):
--    stat = os.stat(path)
-+    stat = os.lstat(path)
-     return stat[ST_MODE], stat[ST_GID]
- seen = {}
diff --git a/debian/patches/53_disable_addons.patch b/debian/patches/53_disable_addons.patch
deleted file mode 100644 (file)
index 4b32526..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Patch: 53_disable_addons.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Disable some modules which are pulled in from other Debian packages.
-Index: misc/Makefile.in
-===================================================================
---- misc/Makefile.in.orig      2006-08-15 15:12:18.000000000 +0800
-+++ misc/Makefile.in   2006-08-15 15:14:39.000000000 +0800
-@@ -57,7 +57,10 @@
- JACODECSPKG=  JapaneseCodecs-1.4.11
- KOCODECSPKG=  KoreanCodecs-2.0.5
--PACKAGES= $(EMAILPKG) $(JACODECSPKG) $(KOCODECSPKG)
-+#Debian note (LEM): we take the Japanese and Korean codecs from other
-+#Debian packages, but not email because the one in Python 2.4 doesn't work
-+#with Mailman; when Mailman upgrades to email 3.0.x, we can try again.
-+PACKAGES= $(EMAILPKG)
- # Modes for directories and executables created by the install
- # process.  Default to group-writable directories but
-Index: misc/paths.py.in
-===================================================================
---- misc/paths.py.in.orig      2006-08-15 15:12:18.000000000 +0800
-+++ misc/paths.py.in   2006-08-15 15:14:39.000000000 +0800
-@@ -53,12 +53,18 @@
- # In a normal interactive Python environment, the japanese.pth and korean.pth
- # files would be imported automatically.  But because we inhibit the importing
- # of the site module, we need to be explicit about importing these codecs.
--import japanese
-+try:
-+    import japanese
-+except ImportError:
-+    pass
- # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean
- # codecs installed, however leave the first import in there in case an upgrade
- # changes this.
--import korean
--import korean.aliases
-+try:
-+    import korean
-+    import korean.aliases
-+except ImportError:
-+    pass
- # Arabic and Hebrew (RFC-1556) encoding aliases. (temporary solution)
- import encodings.aliases
- encodings.aliases.aliases.update({
diff --git a/debian/patches/56_fix_de_broken_links.patch b/debian/patches/56_fix_de_broken_links.patch
deleted file mode 100644 (file)
index 03a9df9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Patch: 56_fix_de_broken_links.patch
-Author: based on work by Ralf Doeblitz <r.doeblitz@asco.de> (see bug #233048)
-Submitted upstream: via email to translation maintainer
-Index: messages/de/LC_MESSAGES/mailman.po
-===================================================================
---- messages/de/LC_MESSAGES/mailman.po.orig    2006-08-15 15:12:18.000000000 +0800
-+++ messages/de/LC_MESSAGES/mailman.po 2006-08-15 15:14:40.000000000 +0800
-@@ -7201,7 +7201,7 @@
- "\">topics_bodylines_limit</a>\n"
- "             configuration variable."
- msgstr ""
--"Der Themenfilter kategorisiert jede eingehende e-Mailnachricht gemäss href="
-+"Der Themenfilter kategorisiert jede eingehende e-Mailnachricht gemäss <a href="
- "\"http://www.python.org/doc/current/lib/module-re.html\">Filterregeln mit "
- "regulären Ausdrücken</a>, die Sie weiter unten festlegen können. Wenn die "
- "<code>Subject:</code> oder <code>Keywords:</code> Header der Nachricht mit "
-@@ -7214,7 +7214,7 @@
- "nicht mit Sammelnachrichten.\n"
- " <p>Optional kann auch der Nachrichtentext auf Vorkommen von <code>Subject:</"
- "code> und <code>Keyword:</code> Header durchsucht werden. Spezifizieren Sie "
--"hierzu die Optionhref=\"?VARHELP=topics/topics_bodylines_limit"
-+"hierzu die Option <a href=\"?VARHELP=topics/topics_bodylines_limit"
- "\">topics_bodylines_limit</a>."
- # Mailman/Gui/Topics.py:57
diff --git a/debian/patches/58_fix_es_translation.patch b/debian/patches/58_fix_es_translation.patch
deleted file mode 100644 (file)
index abecb4c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: 58_fix_translations.patch
-Author: Siggy Brentrup <bsb@debian.org>
-Fix translation errors
-Index: messages/es/LC_MESSAGES/mailman.po
-===================================================================
---- messages/es/LC_MESSAGES/mailman.po.orig    2006-09-19 16:12:12.000000000 +0200
-+++ messages/es/LC_MESSAGES/mailman.po 2006-09-19 16:13:34.000000000 +0200
-@@ -1989,7 +1989,7 @@
- #: Mailman/Cgi/create.py:214 bin/.svn/text-base/newlist.svn-base:200
- #: bin/newlist:200
- msgid "Illegal list name: %(s)s"
--msgstr "Nombre de lista ilegal: %(opt)s"
-+msgstr "Nombre de lista ilegal: %(s)s"
- #: Mailman/Cgi/create.py:219
- msgid ""
diff --git a/debian/patches/59_fix_missing_language_crash.patch b/debian/patches/59_fix_missing_language_crash.patch
deleted file mode 100644 (file)
index 31457fd..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: fix_missing_language_crash.patch
-Author: Paul Wise <pabs3@bonedaddy.net>
-Fix crash when a language is missing
-Index: Mailman/htmlformat.py
-===================================================================
---- Mailman/htmlformat.py.orig 2006-09-19 16:12:12.000000000 +0200
-+++ Mailman/htmlformat.py      2006-09-19 16:13:47.000000000 +0200
-@@ -298,7 +298,7 @@
-     def Format(self, indent=0, **kws):
-         charset = 'us-ascii'
--        if self.language:
-+        if self.language and Utils.IsLanguage(self.language):
-             charset = Utils.GetCharSet(self.language)
-         output = ['Content-Type: text/html; charset=%s\n' % charset]
-         if not self.suppress_head:
diff --git a/debian/patches/61_fix_ru_siteowner.patch b/debian/patches/61_fix_ru_siteowner.patch
deleted file mode 100644 (file)
index bc2d778..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Patch: 61_fix_ru_siteowner.patch
-Author: László 'GCS' Böszörményi <gcs@lsc.hu>
-Submitted upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1578766&group_id=103&atid=300103
-Correct siteowner variable in ru template for newer Mailman versions.
-Index: templates/ru/newlist.txt
-===================================================================
---- templates/ru/newlist.txt.orig      2006-08-15 15:12:17.000000000 +0800
-+++ templates/ru/newlist.txt   2006-08-15 15:14:44.000000000 +0800
-@@ -37,4 +37,4 @@
- ÐÏÌØÚÏ×ÁÔÅÌÑ.
- ÷ÓÅ ×ÏÐÒÏÓÙ Ï ÓÉÓÔÅÍÅ ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ, ÏÔÐÒÁ×É× ÐÉÓØÍÏ ÐÏ ÁÄÒÅÓÕ
--mailman-owner@%(hostname)s.
-+    %(siteowner)s.
diff --git a/debian/patches/62_new_list_bad_pending_requests.patch b/debian/patches/62_new_list_bad_pending_requests.patch
deleted file mode 100644 (file)
index c66d0c3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Patch: 62_new_list_bad_pending_requests.patch
-Author: Richard Mortimer <richm@oldelvet.org.uk>
-Only mail 'pending admin requests' if the database for the
-particular list exists, so we do not send out '-1' requests.
-Index: Mailman/ListAdmin.py
-===================================================================
---- Mailman/ListAdmin.py.orig  2006-08-15 15:12:17.000000000 +0800
-+++ Mailman/ListAdmin.py       2006-08-15 15:14:45.000000000 +0800
-@@ -130,8 +130,11 @@
-     def NumRequestsPending(self):
-         self.__opendb()
--        # Subtract one for the version pseudo-entry
--        return len(self.__db) - 1
-+        if self.__db.has_key('version'):
-+            # Subtract one for the version pseudo-entry
-+            return len(self.__db) - 1
-+        else:
-+            return len(self.__db)
-     def __getmsgids(self, rtype):
-         self.__opendb()
diff --git a/debian/patches/63_update_default_server_language.patch b/debian/patches/63_update_default_server_language.patch
deleted file mode 100644 (file)
index b7e545b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-Patch: 63_update_default_server_language.patch
-Author: László 'GCS' Böszörményi <gcs@lsc.hu>
-Get the default language from the config file, and do not use the
-hardcoded English.
-Index: bin/update
-===================================================================
---- bin/update.orig    2006-08-15 15:14:30.000000000 +0800
-+++ bin/update 2006-08-15 15:14:46.000000000 +0800
-@@ -121,7 +121,7 @@
-     #
-     # First, get rid of any lists/<list> template or lists/<list>/en template
-     # that is identical to the global templates/* default.
--    for gtemplate in os.listdir(os.path.join(mm_cfg.TEMPLATE_DIR, 'en')):
-+    for gtemplate in os.listdir(os.path.join(mm_cfg.TEMPLATE_DIR, mm_cfg.DEFAULT_SERVER_LANGUAGE)):
-         # BAW: get rid of old templates, e.g. admlogin.txt and
-         # handle_opts.html
-         try:
-@@ -155,14 +155,14 @@
-                 os.unlink(os.path.join(mlist.fullpath(), gtemplate + '.prev'))
-         # Match against the lists/<list>/en/* templates
-         try:
--            fp = open(os.path.join(mlist.fullpath(), 'en', gtemplate))
-+            fp = open(os.path.join(mlist.fullpath(), mm_cfg.DEFAULT_SERVER_LANGUAGE, gtemplate))
-         except IOError, e:
-             if e.errno <> errno.ENOENT: raise
-         else:
-             tcksum = md5.new(fp.read()).digest()
-             fp.close()
-             if gcksum == tcksum:
--                os.unlink(os.path.join(mlist.fullpath(), 'en', gtemplate))
-+                os.unlink(os.path.join(mlist.fullpath(), mm_cfg.DEFAULT_SERVER_LANGUAGE, gtemplate))
-         # Match against the templates/* template
-         try:
-             fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate))
diff --git a/debian/patches/64_correct_html_nesting.patch b/debian/patches/64_correct_html_nesting.patch
deleted file mode 100644 (file)
index 929960c..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-Patch: 64_correct_html_nesting.patch
-Author: Laszlo 'GCS' Boszormenyi <gcs@lsc.hu>
-listinfo.html does not use proper HTML tag nesting, and thus
-sensible browsers like iCal may choke on that -> fix that.
-Index: templates/ca/listinfo.html
-===================================================================
---- templates/ca/listinfo.html.orig    2003-11-01 16:51:48.000000000 +0100
-+++ templates/ca/listinfo.html 2006-09-19 15:44:40.000000000 +0200
-@@ -53,8 +53,9 @@
-       </TR>
-       
-   <tr> 
--    <td colspan="2">Per subscriure's ompli el seg&uuml;ent formulari. <MM-List-Subscription-Msg> 
--      <ul>
-+    <td colspan="2">Per subscriure's ompli el seg&uuml;ent formulari.
-+        <ul>
-+          <MM-List-Subscription-Msg>
-         <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-           <TR> 
-Index: templates/cs/listinfo.html
-===================================================================
---- templates/cs/listinfo.html.orig    2002-12-13 19:13:46.000000000 +0100
-+++ templates/cs/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-       <td colspan="2">
-         <P>
-              Pro pøihlá¹ení do konference <MM-List-Name> musíte vyplnit následující formuláø.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/da/listinfo.html
-===================================================================
---- templates/da/listinfo.html.orig    2004-11-12 01:09:48.000000000 +0100
-+++ templates/da/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -62,8 +62,8 @@
-       <td colspan="2">
-         <P>
-           Du kan tilmelde dig <MM-List-Name> ved at udfylde skemaet herunder.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/de/listinfo.html
-===================================================================
---- templates/de/listinfo.html.orig    2004-01-06 10:58:28.000000000 +0100
-+++ templates/de/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-         <P>
-           Abonnieren Sie <MM-List-Name>, indem Sie das folgende Formular
-  ausf&uuml;llen:
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/en/listinfo.html
-===================================================================
---- templates/en/listinfo.html.orig    2002-11-16 07:10:36.000000000 +0100
-+++ templates/en/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-         <P>
-           Subscribe to <MM-List-Name> by filling out the following
-             form.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/es/listinfo.html
-===================================================================
---- templates/es/listinfo.html.orig    2005-06-08 23:33:19.000000000 +0200
-+++ templates/es/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -64,8 +64,8 @@
-         <P>
-           Suscr&iacute;base a <MM-List-Name> rellenando los datos del
-           siguiente formulario
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/et/listinfo.html
-===================================================================
---- templates/et/listinfo.html.orig    2004-11-03 22:46:58.000000000 +0100
-+++ templates/et/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -58,8 +58,8 @@
-       <td colspan="2">
-         <P>
-          <MM-List-Name> tellimiseks täitke järgnev vorm
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/fi/listinfo.html
-===================================================================
---- templates/fi/listinfo.html.orig    2002-04-02 07:43:47.000000000 +0200
-+++ templates/fi/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-       <td colspan="2">
-         <P>
-           Liity listalle <MM-List-Name> täyttämällä oheinen lomake.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/fr/listinfo.html
-===================================================================
---- templates/fr/listinfo.html.orig    2003-09-26 05:36:56.000000000 +0200
-+++ templates/fr/listinfo.html 2006-09-19 15:44:05.000000000 +0200
-@@ -61,8 +61,8 @@
-       <p>         
-       Abonnez-vous &agrave; <MM-List-Name> en remplissant le formulaire 
-             suivant.    
--      <MM-List-Subscription-Msg>       
-       <ul>    
-+      <MM-List-Subscription-Msg>
-         <table border="0" cellspacing="2" cellpadding="2" width="70%"
-  height="112">
-             <tr>
-Index: templates/hu/listinfo.html
-===================================================================
---- templates/hu/listinfo.html.orig    2002-12-20 05:28:00.000000000 +0100
-+++ templates/hu/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -59,11 +59,10 @@
-       <td colspan="2">
-         <P>
-         Töltsd ki az alábbi ûrlapot a(z) <MM-List-Name> listára való feliratkozáshoz.     
--        <MM-List-Subscription-Msg>
-         <P>Feliratkozás elõtt kérlek olvasd el a listaszerver
-             <A HREF="/illik.html">illemtanát</A>!
--
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/it/listinfo.html
-===================================================================
---- templates/it/listinfo.html.orig    2002-11-25 21:29:47.000000000 +0100
-+++ templates/it/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-       <td colspan="2">
-         <P>
-           Iscriviti a <MM-List-Name> completando il seguente modulo.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/ja/listinfo.html
-===================================================================
---- templates/ja/listinfo.html.orig    2004-01-23 01:58:03.000000000 +0100
-+++ templates/ja/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -65,8 +65,8 @@
-         <P>
-           <MM-List-Name> ¤Ø¤ÎÆþ²ñ¤Ï, 
-             °Ê²¼¤Î¥Õ¥©¡¼¥à¤ËɬÍ×»ö¹à¤òµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤. 
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/ko/listinfo.html
-===================================================================
---- templates/ko/listinfo.html.orig    2002-03-28 19:32:11.000000000 +0100
-+++ templates/ko/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-       <td colspan="2">
-         <P>
-            ´ÙÀ½ Ç׸ñµéÀ» Ã¤¿ö Áּż­ <MM-List-Name> ¿¡ °¡ÀÔ ÇϽʽÿÀ.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/lt/listinfo.html
-===================================================================
---- templates/lt/listinfo.html.orig    2002-12-26 20:48:42.000000000 +0100
-+++ templates/lt/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -61,8 +61,8 @@
-       <td colspan="2">
-         <P>
-           Prisijunkite prie <MM-List-Name> uþpildydami ðiuos laukus:
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/no/listinfo.html
-===================================================================
---- templates/no/listinfo.html.orig    2002-11-19 10:20:43.000000000 +0100
-+++ templates/no/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -62,8 +62,8 @@
-       <td colspan="2">
-         <P>
-           Du kan melde deg p&aring; <MM-List-Name> ved &aring; fylle ut n&oslash;dvendig informasjon nedenfor.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/pl/listinfo.html
-===================================================================
---- templates/pl/listinfo.html.orig    2003-12-30 19:10:06.000000000 +0100
-+++ templates/pl/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -65,8 +65,8 @@
-           W celu zapisania siê na listê <MM-List-Name> nale¿y wype³niæ 
-           poni¿szy formularz.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/pt/listinfo.html
-===================================================================
---- templates/pt/listinfo.html.orig    2003-04-09 07:09:57.000000000 +0200
-+++ templates/pt/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-       <td colspan="2">
-         <P>
-           Inscreva-se em <MM-List-Name> preenchendo o seguinte formulário.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/pt_BR/listinfo.html
-===================================================================
---- templates/pt_BR/listinfo.html.orig 2004-11-03 21:33:27.000000000 +0100
-+++ templates/pt_BR/listinfo.html      2006-09-19 14:04:57.000000000 +0200
-@@ -64,8 +64,8 @@
-         <P>
-           Para se inscrever na lista <MM-List-Name>, preencha o seguinte
-             formulário.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/ro/listinfo.html
-===================================================================
---- templates/ro/listinfo.html.orig    2003-12-13 17:35:54.000000000 +0100
-+++ templates/ro/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -60,8 +60,8 @@
-         <P>
-           Vã puteþi abona la lista de discuþii <MM-List-Name> completând formularul
-           de mai jos.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/ru/listinfo.html
-===================================================================
---- templates/ru/listinfo.html.orig    2003-09-22 05:59:48.000000000 +0200
-+++ templates/ru/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -51,8 +51,8 @@
-         <td colspan="2">
-           <P>
-           äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ <MM-List-Name>, ÚÁÐÏÌÎÉÔÅ ÓÌÅÄÕÀÝÕÀ ÆÏÒÍÕ.
--          <MM-List-Subscription-Msg>
-           <ul>
-+          <MM-List-Subscription-Msg>
-               <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-                 WIDTH="70%" HEIGHT= "112">
-                 <TR>
-Index: templates/sl/listinfo.html
-===================================================================
---- templates/sl/listinfo.html.orig    2003-10-04 04:57:36.000000000 +0200
-+++ templates/sl/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-         <P>
-           Na seznam <MM-List-Name> se prijavite tako, da izpolnite
-             obrazec.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/tr/listinfo.html
-===================================================================
---- templates/tr/listinfo.html.orig    2004-04-26 18:50:11.000000000 +0200
-+++ templates/tr/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -63,8 +63,8 @@
-         <P>
-           <MM-List-Name> listesine aþaðýdaki formu doldurarak üye
-             olabilirsiniz.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/uk/listinfo.html
-===================================================================
---- templates/uk/listinfo.html.orig    2005-03-02 01:27:09.000000000 +0100
-+++ templates/uk/listinfo.html 2006-09-19 14:04:57.000000000 +0200
-@@ -62,8 +62,8 @@
-       <td colspan="2">
-         <P>
-           Щоб підписатись на список розсилки <MM-List-Name> заповніть наступну форму.
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/zh_CN/listinfo.html
-===================================================================
---- templates/zh_CN/listinfo.html.orig 2005-05-14 06:13:41.000000000 +0200
-+++ templates/zh_CN/listinfo.html      2006-09-19 14:04:57.000000000 +0200
-@@ -60,8 +60,8 @@
-       <td colspan="2">
-         <P>
-          要订阅 <MM-List-Name> 邮件列表,请填写如下资料:
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/zh_TW/listinfo.html
-===================================================================
---- templates/zh_TW/listinfo.html.orig 2005-03-23 03:04:15.000000000 +0100
-+++ templates/zh_TW/listinfo.html      2006-09-19 14:04:57.000000000 +0200
-@@ -60,8 +60,8 @@
-       <td colspan="2">
-         <P>
-           欲加入(訂閱) <MM-List-Name> 論壇請依序填妥下列資料。
--        <MM-List-Subscription-Msg>
-         <ul>
-+        <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/eu/listinfo.html
-===================================================================
---- templates/eu/listinfo.html.orig    2003-12-01 17:07:41.000000000 +0100
-+++ templates/eu/listinfo.html 2006-09-19 15:27:32.000000000 +0200
-@@ -62,8 +62,8 @@
-       <td colspan="2">
-         <P>
-           <MM-List-Name> posta zerrendan izena eman, ondoko eskaera-orria betez.
--        <MM-List-Subscription-Msg>
-         <ul>
-+            <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/hr/listinfo.html
-===================================================================
---- templates/hr/listinfo.html.orig    2004-02-17 23:27:49.000000000 +0100
-+++ templates/hr/listinfo.html 2006-09-19 15:28:12.000000000 +0200
-@@ -63,8 +63,8 @@
-         <P>
-           Pretplatite se na <MM-List-Name> ispunjavanjem sljedeæe 
-             forme.
--        <MM-List-Subscription-Msg>
-         <ul>
-+            <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-Index: templates/nl/listinfo.html
-===================================================================
---- templates/nl/listinfo.html.orig    2006-07-21 07:46:44.000000000 +0200
-+++ templates/nl/listinfo.html 2006-09-19 15:40:55.000000000 +0200
-@@ -59,8 +59,8 @@
-       <td colspan="2">
-         <P>
-           Om u aan te melden bij <MM-List-Name> vult u onderstaand formulier in.
--        <MM-List-Subscription-Msg>
-         <ul>
-+            <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
-@@ -132,4 +132,4 @@
-   </table>
- <MM-Mailman-Footer>
- </BODY>
--</HTML>
-\ No newline at end of file
-+</HTML>
-Index: templates/sr/listinfo.html
-===================================================================
---- templates/sr/listinfo.html.orig    2003-09-22 05:52:35.000000000 +0200
-+++ templates/sr/listinfo.html 2006-09-19 15:45:03.000000000 +0200
-@@ -52,8 +52,9 @@
-       </TR>
-       <tr>
-       <td colspan="2">
--        <P> Укључујете се попуњавајући следећи формулар:<MM-List-Subscription-Msg> 
-+        <P> Укључујете се попуњавајући следећи формулар:
-       <ul>
-+          <MM-List-Subscription-Msg>
-         <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-           <TR> 
-Index: templates/sv/listinfo.html
-===================================================================
---- templates/sv/listinfo.html.orig    2002-12-24 15:07:17.000000000 +0100
-+++ templates/sv/listinfo.html 2006-09-19 15:43:00.000000000 +0200
-@@ -56,8 +56,9 @@
-       </TR>
-       <tr>
-       <td colspan="2">
--        <P>Du kan anm&auml;la dig till <MM-List-Name> genom att fylla i n&ouml;dv&auml;ndig information nedan.          <MM-List-Subscription-Msg>
-+        <P>Du kan anm&auml;la dig till <MM-List-Name> genom att fylla i n&ouml;dv&auml;ndig information nedan.
-         <ul>
-+            <MM-List-Subscription-Msg>
-             <TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"
-               WIDTH="70%" HEIGHT= "112">
-               <TR>
diff --git a/debian/patches/65_handle_templates_directories.patch b/debian/patches/65_handle_templates_directories.patch
deleted file mode 100644 (file)
index deb096d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: 65_handle_templates_directories.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Skip directories when updating
-Index: bin/update
-===================================================================
---- bin/update.orig    2006-08-15 15:14:46.000000000 +0800
-+++ bin/update 2006-08-15 15:14:50.000000000 +0800
-@@ -127,7 +127,7 @@
-         try:
-             fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate))
-         except IOError, e:
--            if e.errno <> errno.ENOENT: raise
-+            if not (e.errno in [errno.ENOENT, errno.EISDIR, ]): raise
-             # No global template
-             continue
diff --git a/debian/patches/66_donot_let_cache_html_pages.patch b/debian/patches/66_donot_let_cache_html_pages.patch
deleted file mode 100644 (file)
index 32d147c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Patch to prevent browser from caching pages.
-Index: Mailman/htmlformat.py
-===================================================================
---- Mailman/htmlformat.py.orig 2006-09-19 13:43:51.000000000 +0200
-+++ Mailman/htmlformat.py      2006-09-19 15:47:16.000000000 +0200
-@@ -300,7 +300,8 @@
-         charset = 'us-ascii'
-         if self.language and Utils.IsLanguage(self.language):
-             charset = Utils.GetCharSet(self.language)
--        output = ['Content-Type: text/html; charset=%s\n' % charset]
-+        output = ['Content-Type: text/html; charset=%s' % charset]
-+        output.append('Cache-control: no-cache\n')
-         if not self.suppress_head:
-             kws.setdefault('bgcolor', self.bgcolor)
-             tab = ' ' * indent
diff --git a/debian/patches/67_update_handle_old_versions.patch b/debian/patches/67_update_handle_old_versions.patch
deleted file mode 100644 (file)
index dd0fc8f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Patch: 67_update_handle_old_versions.patch
-Author: Bastian Kleineidam <calvin@debian.org>
-Handle the case of upgrading from Mailman 2.0 where we have
-pending subscriptions.
-Index: bin/update
-===================================================================
---- bin/update.orig    2006-08-15 15:14:50.000000000 +0800
-+++ bin/update 2006-08-15 15:14:52.000000000 +0800
-@@ -514,9 +514,11 @@
-     file20 = os.path.join(mm_cfg.DATA_DIR, 'pending_subscriptions.db')
-     file214 = os.path.join(mm_cfg.DATA_DIR, 'pending.pck')
-     db = None
-+    ver = None
-     # Try to load the Mailman 2.0 file
-     try:
-         fp = open(file20)
-+        ver = "20"
-     except IOError, e:
-         if e.errno <> errno.ENOENT: raise
-     else:
-@@ -528,6 +530,7 @@
-         # Try to load the Mailman 2.1.x where x < 5, file
-         try:
-             fp = open(file214)
-+            ver = "214"
-         except IOError, e:
-             if e.errno <> errno.ENOENT: raise
-         else:
-@@ -561,8 +564,12 @@
-             # data[0] is the address being unsubscribed
-             addrops_by_address.setdefault(data[0], []).append((key, val))
-         elif op == Pending.SUBSCRIPTION:
--            # data[0] is a UserDesc object
--            addr = data[0].address
-+            if ver == "20":
-+                # data is tuple (emailaddr, password, digest)
-+                addr = data[0]
-+            else:
-+                # data[0] is a UserDesc object
-+                addr = data[0].address
-             subs_by_address.setdefault(addr, []).append((key, val))
-         elif op == Pending.RE_ENABLE:
-             # data[0] is the mailing list's internal name
diff --git a/debian/patches/70_invalid_utf8_dos.patch b/debian/patches/70_invalid_utf8_dos.patch
deleted file mode 100644 (file)
index c8065d7..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Patch: 70_invalid_utf8_dos.patch
-Author: Lionel Elie Mamane <lionel@mamane.lu>
-Avoid DOS if attachement filename is invalid Unicode string
-Index: Mailman/Handlers/Scrubber.py
-===================================================================
---- Mailman/Handlers/Scrubber.py.orig  2006-08-15 15:14:15.000000000 +0800
-+++ Mailman/Handlers/Scrubber.py       2006-08-15 15:14:54.000000000 +0800
-@@ -302,7 +302,10 @@
-             finally:
-                 os.umask(omask)
-             desc = part.get('content-description', _('not available'))
--            filename = part.get_filename(_('not available'))
-+            try:
-+                filename = part.get_filename(_('not available'))
-+            except UnicodeDecodeError:
-+                filename = _('not available')
-             filename = Utils.oneline(filename, lcset)
-             replace_payload_by_text(part, _("""\
- A non-text attachment was scrubbed...
-@@ -412,7 +415,10 @@
-     ctype = msg.get_content_type()
-     # i18n file name is encoded
-     lcset = Utils.GetCharSet(mlist.preferred_language)
--    filename = Utils.oneline(msg.get_filename(''), lcset)
-+    try:
-+        filename = Utils.oneline(msg.get_filename(''), lcset)
-+    except UnicodeDecodeError:
-+        filename = ''
-     fnext = os.path.splitext(filename)[1]
-     # For safety, we should confirm this is valid ext for content-type
-     # but we can use fnext if we introduce fnext filtering
-@@ -438,7 +444,10 @@
-     try:
-         # Now base the filename on what's in the attachment, uniquifying it if
-         # necessary.
--        filename = msg.get_filename()
-+        try:
-+            filename = msg.get_filename()
-+        except UnicodeDecodeError:
-+            filename = None
-         if not filename or mm_cfg.SCRUBBER_DONT_USE_ATTACHMENT_FILENAME:
-             filebase = 'attachment'
-         else:
diff --git a/debian/patches/71_date_overflows.patch b/debian/patches/71_date_overflows.patch
deleted file mode 100644 (file)
index 53ef405..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Patch: 71_date_overflows.patch
-Author: Lionel Elie Mamane <lionel@mamane.lu>
-React sensibly on integer overflow in date handling
-Index: Mailman/Handlers/Scrubber.py
-===================================================================
---- Mailman/Handlers/Scrubber.py.orig  2006-08-15 15:14:54.000000000 +0800
-+++ Mailman/Handlers/Scrubber.py       2006-08-15 15:14:55.000000000 +0800
-@@ -143,7 +143,7 @@
-                      }.get(parts[3], 0)
-             day = int(parts[4])
-             year = int(parts[6])
--        except (IndexError, ValueError):
-+        except (OverflowError, IndexError, ValueError):
-             # Best we can do I think
-             month = day = year = 0
-         datedir = '%04d%02d%02d' % (year, month, day)
diff --git a/debian/patches/72_fblast_add_shebang.patch b/debian/patches/72_fblast_add_shebang.patch
deleted file mode 100644 (file)
index 719f4ed..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Patch: 72_fblast_add_shebang.patch
-Author: Thijs Kinkhorst <thijs@debian.org>
-Submitted upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1578740&group_id=103&atid=300103
-This script may be called directly from the command line, is set as executable,
-thus needs a shebang line.
-Index: tests/fblast.py
-===================================================================
---- tests/fblast.py.orig       2006-10-17 10:08:34.000000000 +0200
-+++ tests/fblast.py    2006-10-17 10:09:07.000000000 +0200
-@@ -1,3 +1,4 @@
-+#! /usr/bin/env python
- """Throw email at Mailman as fast as you can.
- This is not a unit test, it's a functional test, so you can't run it within
diff --git a/debian/patches/74_admin_non-ascii_emails.patch b/debian/patches/74_admin_non-ascii_emails.patch
deleted file mode 100644 (file)
index 2378e11..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Patch: 74_admin_non-ascii_emails.patch
-Author: Lionel Elie Mamane <lionel@mamane.lu>
-Don't assume emails are ASCII
-Index: Mailman/Cgi/admin.py
-===================================================================
---- Mailman/Cgi/admin.py.orig  2006-08-15 15:12:11.000000000 +0800
-+++ Mailman/Cgi/admin.py       2006-08-15 15:14:56.000000000 +0800
-@@ -866,7 +866,12 @@
-     chunksz = mlist.admin_member_chunksize
-     # The email addresses had /better/ be ASCII, but might be encoded in the
-     # database as Unicodes.
--    all = [_m.encode() for _m in mlist.getMembers()]
-+    all = []
-+    for _m in mlist.getMembers():
-+        try:
-+            all.append( _m.encode() )
-+        except:
-+            all.append( _m )
-     all.sort(lambda x, y: cmp(x.lower(), y.lower()))
-     # See if the query has a regular expression
-     regexp = cgidata.getvalue('findmember', '').strip()
diff --git a/debian/patches/77_header_folding_in_attachments.patch b/debian/patches/77_header_folding_in_attachments.patch
deleted file mode 100644 (file)
index 0c0c2f5..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-Patch: 77_header_folding_in_attachments.patch
-Author: Lionel Elie Mamane <lionel@mamane.lu>
-Don't fold headers into message/rfc822 attachments.
-This avoids breaking signatures.
-Index: Mailman/Generator.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ Mailman/Generator.py       2006-08-15 15:14:57.000000000 +0800
-@@ -0,0 +1,55 @@
-+# Copyright (C) 1998-2003 by the Free Software Foundation, Inc.
-+#                    2005 Lionel Elie Mamane <lionel@mamane.lu>
-+#
-+# This program is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU General Public License
-+# as published by the Free Software Foundation; either version 2
-+# of the License, or (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+#
-+# Author: Bernhard Reiter <bernhard@gnu.org>
-+# Changed by Lionel Elie Mamane December 2005 from version on
-+# http://ftp.intevation.de/users/bernhard/mailman/mailman-2.1.4-avoid-headerfolding-python21.diff
-+# to use clone/children_maxheaderlen trick instead of _write_headers/mangle_from_
-+
-+"""Standard Mailman generator object.
-+
-+A subclass of email.Generator which only folds long headers
-+in the top object level. 
-+This is needed because Mailman should leave the reveiced message parts alone.
-+Otherwise is might change subparts over which a signature was calculated,
-+breaking it while doing so.
-+"""
-+
-+import email
-+import email.Generator
-+
-+try:
-+    True, False
-+except NameError:
-+    True = 1
-+    False = 0
-+
-+\f
-+class Generator(email.Generator.Generator):
-+    """Generates output from a Message object tree, keeping signatures.
-+
-+       Headers will by default _not_ be folded in attachments.
-+    """
-+    def __init__(self, outfp, mangle_from_=False,
-+                 maxheaderlen=78, children_maxheaderlen=0):
-+        email.Generator.Generator.__init__(self, outfp, mangle_from_=mangle_from_, maxheaderlen=maxheaderlen)
-+        self.__children_maxheaderlen = children_maxheaderlen
-+
-+    def clone(self, fp):
-+        """Clone this generator with maxheaderlen set for children"""
-+        return self.__class__(fp, self._mangle_from_, self.__children_maxheaderlen, self.__children_maxheaderlen)
-+
-Index: Mailman/Mailbox.py
-===================================================================
---- Mailman/Mailbox.py.orig    2006-08-15 15:12:10.000000000 +0800
-+++ Mailman/Mailbox.py 2006-08-15 15:14:57.000000000 +0800
-@@ -22,10 +22,10 @@
- import email
- from email.Parser import Parser
--from email.Generator import Generator
- from email.Errors import MessageParseError
- from Mailman import mm_cfg
-+from Mailman.Generator import Generator
- from Mailman.Message import Message
- try:
-@@ -65,7 +65,7 @@
-         # Seek to the last char of the mailbox
-         self.fp.seek(1, 2)
-         # Create a Generator instance to write the message to the file
--        g = Generator(self.fp)
-+        g = Generator(self.fp, mangle_from_=True)
-         g.flatten(msg, unixfrom=True)
-         # Add one more trailing newline for separation with the next message
-         # to be appended to the mbox.
-Index: Mailman/Message.py
-===================================================================
---- Mailman/Message.py.orig    2006-08-15 15:12:10.000000000 +0800
-+++ Mailman/Message.py 2006-08-15 15:14:57.000000000 +0800
-@@ -22,6 +22,8 @@
- """
- import re
-+from cStringIO import StringIO
-+
- import email
- import email.Message
- import email.Utils
-@@ -32,6 +34,7 @@
- from Mailman import mm_cfg
- from Mailman import Utils
-+from Mailman.Generator import Generator
- COMMASPACE = ', '
-@@ -199,6 +202,16 @@
-         except (UnicodeError, LookupError, ValueError):
-             return failobj
-+    def as_string(self, unixfrom=False):
-+        """Return entire formatted message as a string using Mailman.Generator.
-+
-+        Operates like email.Message.Message.as_string, only
-+      using Mailman's Generator class. Only the top headers will get folded.
-+        """
-+        fp = StringIO()
-+        g = Generator(fp)
-+        g.flatten(self, unixfrom=unixfrom)
-+        return fp.getvalue()
\f
- class UserNotification(Message):
diff --git a/debian/patches/78_DeprecationWarning.patch b/debian/patches/78_DeprecationWarning.patch
deleted file mode 100644 (file)
index d4a3aa1..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Patch: 78_DeprecationWarning.patch
-Author: Lionel Elie Mamane <lionel@mamane.lu>
-Shut up DeprecationWarning in Python 2.4
-Index: Mailman/Handlers/Scrubber.py
-===================================================================
---- Mailman/Handlers/Scrubber.py.orig  2006-08-15 15:14:55.000000000 +0800
-+++ Mailman/Handlers/Scrubber.py       2006-08-15 15:14:58.000000000 +0800
-@@ -26,6 +26,7 @@
- import errno
- import binascii
- import tempfile
-+import warnings
- from cStringIO import StringIO
- from types import IntType, StringType
-@@ -77,6 +78,10 @@
-             check(mimetypes.common_types)
-         return all
-+# FIXME: Remove for Mailman 2.2 (which will drop support for Python 2.1)
-+# and then actually replace part.get_type(part.get_default_type())
-+# with part.get_content_type()
-+warnings.filterwarnings("ignore","^get_type\(\) deprecated;",DeprecationWarning,"Mailman")
\f
- def guess_extension(ctype, ext):
diff --git a/debian/patches/79_archiver_slash.patch b/debian/patches/79_archiver_slash.patch
deleted file mode 100644 (file)
index b454513..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Patch: 79_archiver_slash.patch
-Author: Lionel Elie Mamane <lionel@mamane.lu>
-Fixes: #350388
-Some non-pipermail archivers require _no_ final slash.
-Index: Mailman/Archiver/Archiver.py
-===================================================================
---- Mailman/Archiver/Archiver.py.orig  2006-08-15 15:12:10.000000000 +0800
-+++ Mailman/Archiver/Archiver.py       2006-08-15 15:14:59.000000000 +0800
-@@ -146,8 +146,6 @@
-                 'listname': self.internal_name(),
-                 'hostname': hostname
-                 }
--            if not url.endswith('/'):
--                url += '/'
-             return url
-     def __archive_file(self, afn):
-Index: Mailman/Defaults.py.in
-===================================================================
---- Mailman/Defaults.py.in.orig        2006-08-15 15:14:18.000000000 +0800
-+++ Mailman/Defaults.py.in     2006-08-15 15:14:59.000000000 +0800
-@@ -205,7 +205,7 @@
- # interpolate the name of the list into this.  You can also include a
- # "%(hostname)s" in the string, into which Mailman will interpolate
- # the host name (usually DEFAULT_URL_HOST).
--PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s'
-+PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s/'
- # Are archives on or off by default?
- DEFAULT_ARCHIVE = On
diff --git a/debian/patches/80_fix_string_search.patch b/debian/patches/80_fix_string_search.patch
deleted file mode 100644 (file)
index 930e83f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Patch: fix_admin.py.patch
-Author: Riccardo Setti <giskard@debian.org>
-Submitted upstream: http://sourceforge.net/tracker/index.php?func=detail&aid=1532081&group_id=103&atid=300103
-Improve the search method in the admin page wich list members (Closes: #359721)
-Index: Mailman/Cgi/admin.py
-===================================================================
---- Mailman/Cgi/admin.py.orig  2006-08-15 15:14:56.000000000 +0800
-+++ Mailman/Cgi/admin.py       2006-08-15 15:14:59.000000000 +0800
-@@ -949,7 +949,7 @@
-         for letter in digits + lowercase:
-             if not buckets.get(letter):
-                 continue
--            url = adminurl + '/members?letter=%s' % letter
-+            url = adminurl + '/members?findmember=%s&letter=%s' %(urllib.quote(regexp) ,letter)
-             if letter == bucket:
-                 show = Bold('[%s]' % letter.upper()).Format()
-             else:
diff --git a/debian/patches/81_backport_export.dpatch b/debian/patches/81_backport_export.dpatch
deleted file mode 100644 (file)
index 53b056f..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 81_backport_export.dpatch by  <lmamane@debian.org>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Backport bin/export from upstream SVN so that we can
-## DP: have automatic upgrades to lenny.
-
-@DPATCH@
-diff -urNad mailman-2.1.9~/bin/Makefile.in mailman-2.1.9/bin/Makefile.in
---- mailman-2.1.9~/bin/Makefile.in     2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9/bin/Makefile.in      2007-01-20 04:56:07.585102043 +0100
-@@ -1,4 +1,4 @@
--# Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
-+# Copyright (C) 1998-2006 by the Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
-@@ -49,7 +49,7 @@
-               list_admins genaliases change_pw mailmanctl qrunner inject \
-               unshunt fix_url.py convert.py transcheck b4b5-archfix \
-               list_owners msgfmt.py show_qfiles discard rb-archfix \
--              reset_pw.py
-+              reset_pw.py export.py
- BUILDDIR=     ../build/bin
-diff -urNad mailman-2.1.9~/bin/export.py mailman-2.1.9/bin/export.py
---- mailman-2.1.9~/bin/export.py       1970-01-01 01:00:00.000000000 +0100
-+++ mailman-2.1.9/bin/export.py        2007-01-20 04:56:07.585102043 +0100
-@@ -0,0 +1,382 @@
-+#! @PYTHON@
-+#
-+# Copyright (C) 2006-2007 by the Free Software Foundation, Inc.
-+#
-+# This program is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU General Public License
-+# as published by the Free Software Foundation; either version 2
-+# of the License, or (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-+# USA.
-+
-+"""Export an XML representation of a mailing list."""
-+
-+import os
-+import sys
-+import sha
-+import base64
-+import codecs
-+import datetime
-+import optparse
-+
-+from xml.sax.saxutils import escape
-+
-+import paths
-+from Mailman import Defaults
-+from Mailman import Errors
-+from Mailman import MemberAdaptor
-+from Mailman import Utils
-+from Mailman import mm_cfg
-+from Mailman.MailList import MailList
-+from Mailman.i18n import _
-+
-+__i18n_templates__ = True
-+
-+SPACE           = ' '
-+DOLLAR_STRINGS  = ('msg_header', 'msg_footer',
-+                   'digest_header', 'digest_footer',
-+                   'autoresponse_postings_text',
-+                   'autoresponse_admin_text',
-+                   'autoresponse_request_text')
-+SALT_LENGTH     = 4 # bytes
-+
-+TYPES = {
-+    mm_cfg.Toggle         : 'bool',
-+    mm_cfg.Radio          : 'radio',
-+    mm_cfg.String         : 'string',
-+    mm_cfg.Text           : 'text',
-+    mm_cfg.Email          : 'email',
-+    mm_cfg.EmailList      : 'email_list',
-+    mm_cfg.Host           : 'host',
-+    mm_cfg.Number         : 'number',
-+    mm_cfg.FileUpload     : 'upload',
-+    mm_cfg.Select         : 'select',
-+    mm_cfg.Topics         : 'topics',
-+    mm_cfg.Checkbox       : 'checkbox',
-+    mm_cfg.EmailListEx    : 'email_list_ex',
-+    mm_cfg.HeaderFilter   : 'header_filter',
-+    }
-+
-+
-+
-+\f
-+class Indenter:
-+    def __init__(self, fp, indentwidth=4):
-+        self._fp     = fp
-+        self._indent = 0
-+        self._width  = indentwidth
-+
-+    def indent(self):
-+        self._indent += 1
-+
-+    def dedent(self):
-+        self._indent -= 1
-+        assert self._indent >= 0
-+
-+    def write(self, s):
-+        if s <> '\n':
-+            self._fp.write(self._indent * self._width * ' ')
-+        self._fp.write(s)
-+
-+
-+\f
-+class XMLDumper(object):
-+    def __init__(self, fp):
-+        self._fp        = Indenter(fp)
-+        self._tagbuffer = None
-+        self._stack     = []
-+
-+    def _makeattrs(self, tagattrs):
-+        # The attribute values might contain angle brackets.  They might also
-+        # be None.
-+        attrs = []
-+        for k, v in tagattrs.items():
-+            if v is None:
-+                v = ''
-+            else:
-+                v = escape(str(v))
-+            attrs.append('%s="%s"' % (k, v))
-+        return SPACE.join(attrs)
-+
-+    def _flush(self, more=True):
-+        if not self._tagbuffer:
-+            return
-+        name, attributes = self._tagbuffer
-+        self._tagbuffer = None
-+        if attributes:
-+            attrstr = ' ' + self._makeattrs(attributes)
-+        else:
-+            attrstr = ''
-+        if more:
-+            print >> self._fp, '<%s%s>' % (name, attrstr)
-+            self._fp.indent()
-+            self._stack.append(name)
-+        else:
-+            print >> self._fp, '<%s%s/>' % (name, attrstr)
-+
-+    # Use this method when you know you have sub-elements.
-+    def _push_element(self, _name, **_tagattrs):
-+        self._flush()
-+        self._tagbuffer = (_name, _tagattrs)
-+
-+    def _pop_element(self, _name):
-+        buffered = bool(self._tagbuffer)
-+        self._flush(more=False)
-+        if not buffered:
-+            name = self._stack.pop()
-+            assert name == _name, 'got: %s, expected: %s' % (_name, name)
-+            self._fp.dedent()
-+            print >> self._fp, '</%s>' % name
-+
-+    # Use this method when you do not have sub-elements
-+    def _element(self, _name, _value=None, **_attributes):
-+        self._flush()
-+        if _attributes:
-+            attrs = ' ' + self._makeattrs(_attributes)
-+        else:
-+            attrs = ''
-+        if _value is None:
-+            print >> self._fp, '<%s%s/>' % (_name, attrs)
-+        else:
-+            value = escape(unicode(_value))
-+            print >> self._fp, '<%s%s>%s</%s>' % (_name, attrs, value, _name)
-+
-+    def _do_list_categories(self, mlist, k, subcat=None):
-+        is_converted = bool(getattr(mlist, 'use_dollar_strings', False))
-+        info = mlist.GetConfigInfo(k, subcat)
-+        label, gui = mlist.GetConfigCategories()[k]
-+        if info is None:
-+            return
-+        for data in info[1:]:
-+            if not isinstance(data, tuple):
-+                continue
-+            varname = data[0]
-+            # Variable could be volatile
-+            if varname.startswith('_'):
-+                continue
-+            vtype = data[1]
-+            # Munge the value based on its type
-+            value = None
-+            if hasattr(gui, 'getValue'):
-+                value = gui.getValue(mlist, vtype, varname, data[2])
-+            if value is None:
-+                value = getattr(mlist, varname)
-+            # Do %-string to $-string conversions if the list hasn't already
-+            # been converted.
-+            if varname == 'use_dollar_strings':
-+                continue
-+            if not is_converted and varname in DOLLAR_STRINGS:
-+                value = Utils.to_dollar(value)
-+            widget_type = TYPES[vtype]
-+            if isinstance(value, list):
-+                self._push_element('option', name=varname, type=widget_type)
-+                for v in value:
-+                    self._element('value', v)
-+                self._pop_element('option')
-+            else:
-+                self._element('option', value, name=varname, type=widget_type)
-+
-+    def _dump_list(self, mlist, password_scheme):
-+        # Write list configuration values
-+        self._push_element('list', name=mlist._internal_name)
-+        self._push_element('configuration')
-+        self._element('option',
-+                      mlist.preferred_language,
-+                      name='preferred_language',
-+                      type='string')
-+        self._element('option',
-+                      mlist.password,
-+                      name='password',
-+                      type='string')
-+        for k in mm_cfg.ADMIN_CATEGORIES:
-+            subcats = mlist.GetConfigSubCategories(k)
-+            if subcats is None:
-+                self._do_list_categories(mlist, k)
-+            else:
-+                for subcat in [t[0] for t in subcats]:
-+                    self._do_list_categories(mlist, k, subcat)
-+        self._pop_element('configuration')
-+        # Write membership
-+        self._push_element('roster')
-+        digesters = set(mlist.getDigestMemberKeys())
-+        for member in sorted(mlist.getMembers()):
-+            attrs = dict(id=member)
-+            cased = mlist.getMemberCPAddress(member)
-+            if cased <> member:
-+                attrs['original'] = cased
-+            self._push_element('member', **attrs)
-+            self._element('realname', mlist.getMemberName(member))
-+            self._element('password',
-+                          password_scheme(mlist.getMemberPassword(member)))
-+            self._element('language', mlist.getMemberLanguage(member))
-+            # Delivery status, combined with the type of delivery
-+            attrs = {}
-+            status = mlist.getDeliveryStatus(member)
-+            if status == MemberAdaptor.ENABLED:
-+                attrs['status'] = 'enabled'
-+            else:
-+                attrs['status'] = 'disabled'
-+                attrs['reason'] = {MemberAdaptor.BYUSER    : 'byuser',
-+                                   MemberAdaptor.BYADMIN   : 'byadmin',
-+                                   MemberAdaptor.BYBOUNCE  : 'bybounce',
-+                                   }.get(mlist.getDeliveryStatus(member),
-+                                         'unknown')
-+            if member in digesters:
-+                if mlist.getMemberOption(member, mm_cfg.DisableMime):
-+                    attrs['delivery'] = 'plain'
-+                else:
-+                    attrs['delivery'] = 'mime'
-+            else:
-+                attrs['delivery'] = 'regular'
-+            changed = mlist.getDeliveryStatusChangeTime(member)
-+            if changed:
-+                when = datetime.datetime.fromtimestamp(changed)
-+                attrs['changed'] = when.isoformat()
-+            self._element('delivery', **attrs)
-+            for option, flag in Defaults.OPTINFO.items():
-+                # Digest/Regular delivery flag must be handled separately
-+                if option in ('digest', 'plain'):
-+                    continue
-+                value = mlist.getMemberOption(member, flag)
-+                self._element(option, value)
-+            topics = mlist.getMemberTopics(member)
-+            if not topics:
-+                self._element('topics')
-+            else:
-+                self._push_element('topics')
-+                for topic in topics:
-+                    self._element('topic', topic)
-+                self._pop_element('topics')
-+            self._pop_element('member')
-+        self._pop_element('roster')
-+        self._pop_element('list')
-+
-+    def dump(self, listnames, password_scheme):
-+        print >> self._fp, '<?xml version="1.0" encoding="UTF-8"?>'
-+        self._push_element('mailman', **{
-+            'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
-+            'xsi:noNamespaceSchemaLocation': 'ssi-1.0.xsd',
-+            })
-+        for listname in sorted(listnames):
-+            try:
-+                mlist = MailList(listname, lock=False)
-+            except Errors.MMUnknownListError:
-+                print >> sys.stderr, _('No such list: %(listname)s')
-+                continue
-+            self._dump_list(mlist, password_scheme)
-+        self._pop_element('mailman')
-+
-+    def close(self):
-+        while self._stack:
-+            self._pop_element()
-+
-+
-+\f
-+def no_password(password):
-+    return '{NONE}'
-+
-+
-+def plaintext_password(password):
-+    return '{PLAIN}' + password
-+
-+
-+def sha_password(password):
-+    h = sha.new(password)
-+    return '{SHA}' + base64.b64encode(h.digest())
-+
-+
-+def ssha_password(password):
-+    salt = os.urandom(SALT_LENGTH)
-+    h = sha.new(password)
-+    h.update(salt)
-+    return '{SSHA}' + base64.b64encode(h.digest() + salt)
-+
-+
-+SCHEMES = {
-+    'none'  : no_password,
-+    'plain' : plaintext_password,
-+    'sha'   : sha_password,
-+    }
-+
-+try:
-+    os.urandom(1)
-+except NotImplementedError:
-+    pass
-+else:
-+    SCHEMES['ssha'] = ssha_password
-+
-+
-+\f
-+def parseargs():
-+    parser = optparse.OptionParser(version=mm_cfg.VERSION,
-+                                   usage=_("""\
-+%%prog [options]
-+
-+Export the configuration and members of a mailing list in XML format."""))
-+    parser.add_option('-o', '--outputfile',
-+                      metavar='FILENAME', default=None, type='string',
-+                      help=_("""\
-+Output XML to FILENAME.  If not given, or if FILENAME is '-', standard out is
-+used."""))
-+    parser.add_option('-p', '--password-scheme',
-+                      default='none', type='string', help=_("""\
-+Specify the RFC 2307 style hashing scheme for passwords included in the
-+output.  Use -P to get a list of supported schemes, which are
-+case-insensitive."""))
-+    parser.add_option('-P', '--list-hash-schemes',
-+                      default=False, action='store_true', help=_("""\
-+List the supported password hashing schemes and exit.  The scheme labels are
-+case-insensitive."""))
-+    parser.add_option('-l', '--listname',
-+                      default=[], action='append', type='string',
-+                      metavar='LISTNAME', dest='listnames', help=_("""\
-+The list to include in the output.  If not given, then all mailing lists are
-+included in the XML output.  Multiple -l flags may be given."""))
-+    opts, args = parser.parse_args()
-+    if args:
-+        parser.print_help()
-+        parser.error(_('Unexpected arguments'))
-+    if opts.list_hash_schemes:
-+        for label in SCHEMES:
-+            print label.upper()
-+        sys.exit(0)
-+    if opts.password_scheme.lower() not in SCHEMES:
-+        parser.error(_('Invalid password scheme'))
-+    return parser, opts, args
-+
-+
-+\f
-+def main():
-+    parser, opts, args = parseargs()
-+
-+    if opts.outputfile in (None, '-'):
-+        # This will fail if there are characters in the output incompatible
-+        # with stdout.
-+        fp = sys.stdout
-+    else:
-+        fp = codecs.open(opts.outputfile, 'w', 'utf-8')
-+
-+    try:
-+        dumper = XMLDumper(fp)
-+        if opts.listnames:
-+            listnames = opts.listnames
-+        else:
-+            listnames = Utils.list_names()
-+        dumper.dump(listnames, SCHEMES[opts.password_scheme])
-+        dumper.close()
-+    finally:
-+        if fp is not sys.stdout:
-+            fp.close()
-+
-+
-+\f
-+if __name__ == '__main__':
-+    main()
-diff -urNad mailman-2.1.9~/configure.in mailman-2.1.9/configure.in
---- mailman-2.1.9~/configure.in        2005-08-27 03:40:17.000000000 +0200
-+++ mailman-2.1.9/configure.in 2007-01-20 04:56:07.585102043 +0100
-@@ -1,4 +1,4 @@
--# Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
-+# Copyright (C) 1998-2006 by the Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
-@@ -15,7 +15,7 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- dnl Process this file with autoconf to produce a configure script.
--AC_REVISION($Revision: 7462 $)
-+AC_REVISION($Revision: 8122 $)
- AC_PREREQ(2.0)
- AC_INIT(src/common.h)
-@@ -553,6 +553,7 @@
- bin/convert.py \
- bin/discard \
- bin/dumpdb \
-+bin/export.py \
- bin/find_member \
- bin/fix_url.py \
- bin/genaliases \
diff --git a/debian/patches/99_js_templates.patch b/debian/patches/99_js_templates.patch
deleted file mode 100644 (file)
index 1fc86ad..0000000
+++ /dev/null
@@ -1,828 +0,0 @@
-Patch: 99_js_templates.patch
-Author: Tollef Fog Heen <tfheen@debian.org>
-Do some javascript magic to automatically select the password
-field when appropriate.
-Index: templates/cs/admlogin.html
-===================================================================
---- templates/cs/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/cs/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s pøihlá¹ení</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/cs/private.html
-===================================================================
---- templates/cs/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/cs/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>Konference %(realname)s - pøihlá¹ení pro pøístup do privátního archivu </title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/da/admlogin.html
-===================================================================
---- templates/da/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/da/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Login</title>
-+  <script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/da/private.html
-===================================================================
---- templates/da/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/da/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s Login til Private Arkiver</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/de/admlogin.html
-===================================================================
---- templates/de/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/de/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>Anmeldung als %(listname)s-%(who)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/de/private.html
-===================================================================
---- templates/de/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/de/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>Authentifizierung für den Zugriff auf die Archive von %(realname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/en/admlogin.html
-===================================================================
---- templates/en/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/en/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/en/listinfo.html
-===================================================================
---- templates/en/listinfo.html.orig    2006-09-19 16:14:06.000000000 +0200
-+++ templates/en/listinfo.html 2006-09-19 16:15:38.000000000 +0200
-@@ -4,7 +4,7 @@
-     <TITLE><MM-List-Name> Info Page</TITLE>
-   
-   </HEAD>
--  <BODY BGCOLOR="#ffffff">
-+  <BODY>
-     <P>
-       <TABLE COLS="1" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/en/private.html
-===================================================================
---- templates/en/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/en/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s Private Archives Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/es/admlogin.html
-===================================================================
---- templates/es/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/es/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>Autentificación del %(who)s de %(listname)s </title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/es/private.html
-===================================================================
---- templates/es/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/es/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-   <title>Autentificaci&oacute;n para los archivos privados de %(realname)s </title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/et/admlogin.html
-===================================================================
---- templates/et/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/et/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s autoriseerimine</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/et/private.html
-===================================================================
---- templates/et/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/et/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s privaatarhiiv</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/eu/admlogin.html
-===================================================================
---- templates/eu/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/eu/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s Zerrendako %(who)s Identifikatzen</title>
-+  <script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/eu/private.html
-===================================================================
---- templates/eu/private.html.orig     2006-09-19 16:12:10.000000000 +0200
-+++ templates/eu/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-     <title>%(realname)s Artxibo Pribatuak Egiaztatzea</title>
-+      <script>function sf(){document.f.username.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(action)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(action)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/fi/admlogin.html
-===================================================================
---- templates/fi/admlogin.html.orig    2006-09-19 16:12:10.000000000 +0200
-+++ templates/fi/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -2,9 +2,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/fi/private.html
-===================================================================
---- templates/fi/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/fi/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -2,8 +2,9 @@
- <html>
- <head>
-     <title>%(realname)s Private Archives Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/fr/admlogin.html
-===================================================================
---- templates/fr/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/fr/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>Authentification %(who)s sur %(listname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/fr/private.html
-===================================================================
---- templates/fr/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/fr/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -2,8 +2,9 @@
- <head>
-     <title>Authentification pour l'acc&egrave;s aux archives priv&eacute;es de
- %(realname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/hu/admlogin.html
-===================================================================
---- templates/hu/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/hu/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-    <title>%(listname)s %(who)s Azonosítás</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/hu/private.html
-===================================================================
---- templates/hu/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/hu/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-  <title>%(realname)s Privát archívum azonosítás</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/it/admlogin.html
-===================================================================
---- templates/it/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/it/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
- <title>Autenticazione per %(who)s di %(listname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/it/private.html
-===================================================================
---- templates/it/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/it/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
- <title>Autenticazione per gli archivi privati di %(realname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/ja/admlogin.html
-===================================================================
---- templates/ja/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/ja/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Ç§¾Ú</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/ja/private.html
-===================================================================
---- templates/ja/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/ja/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s ¸ÂÄê¸ø³«Êݸ½ñ¸Ë Ç§¾Ú</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/ko/admlogin.html
-===================================================================
---- templates/ko/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/ko/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s °ü¸®ÀÚ ÀÎÁõ</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/ko/private.html
-===================================================================
---- templates/ko/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/ko/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s ºñ°ø°³ ÀúÀå¼Ò ÀÎÁõ</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/lt/admlogin.html
-===================================================================
---- templates/lt/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/lt/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s prisijungimas</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/lt/private.html
-===================================================================
---- templates/lt/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/lt/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s privataus archyvo prisijungimas</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/nl/admlogin.html
-===================================================================
---- templates/nl/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/nl/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s inloggen</title>
-+  <script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-@@ -32,4 +33,4 @@
-       de <em>Uitloggen</em> link te klikken in de hierna volgende schermen.
- </FORM>
- </body>
--</html>
-\ No newline at end of file
-+</html>
-Index: templates/nl/private.html
-===================================================================
---- templates/nl/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/nl/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-     <title>%(realname)s Privé-archief Login</title>
-+      <script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(action)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(action)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-@@ -34,4 +35,4 @@
-       als u de browser afsluit, of wanneer u zelf het cookie actief doet verlopen door de pagina 'lidmaatschapsinstellingen' te bezoeken en daar op de link <em>Uitloggen</em> te klikken.
- </FORM>
- </body>
--</html>
-\ No newline at end of file
-+</html>
-Index: templates/no/admlogin.html
-===================================================================
---- templates/no/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/no/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Innlogging</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/no/private.html
-===================================================================
---- templates/no/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/no/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s Innlogging til Private Arkiver</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/pl/admlogin.html
-===================================================================
---- templates/pl/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/pl/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -2,9 +2,10 @@
- <head>
-   <title>Uwierzytelnienie %(who)s %(listname)s</title>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2">
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/pl/private.html
-===================================================================
---- templates/pl/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/pl/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s Private Archives Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/pt/admlogin.html
-===================================================================
---- templates/pt/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/pt/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/pt/private.html
-===================================================================
---- templates/pt/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/pt/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s Autenticação de Arquivos Privados</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/pt_BR/admlogin.html
-===================================================================
---- templates/pt_BR/admlogin.html.orig 2006-09-19 16:12:11.000000000 +0200
-+++ templates/pt_BR/admlogin.html      2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>Autenticação de %(who)s na lista %(listname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/pt_BR/private.html
-===================================================================
---- templates/pt_BR/private.html.orig  2006-09-19 16:12:11.000000000 +0200
-+++ templates/pt_BR/private.html       2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>Autenticação para acesso aos arquivos privados da %(realname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/ru/admlogin.html
-===================================================================
---- templates/ru/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/ru/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-     <title>áÕÔÅÎÔÉÆÉËÁÃÉÑ %(who)s ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(listname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/ru/private.html
-===================================================================
---- templates/ru/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/ru/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>áÕÔÅÎÔÉÆÉËÁÃÉÑ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÚÁËÒÙÔÏÍÕ ÁÒÈÉ×Õ ÓÐÉÓËÁ ÒÁÓÓÙÌËÉ %(realname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/sr/admlogin.html
-===================================================================
---- templates/sr/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/sr/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,11 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Authentication</title>
--<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+  <script>function sf(){document.f.adminpw.focus();}</script>
-+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-+</head>
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/sr/private.html
-===================================================================
---- templates/sr/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/sr/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,11 @@
- <html>
- <head>
-     <title>Пријава за улаз у приватну архиву листе: %(realname)s </title>
--<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(action)s">
-+      <script>function sf(){document.f.adminpw.focus();}</script>
-+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-+</head>
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(action)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/sv/admlogin.html
-===================================================================
---- templates/sv/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/sv/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Inloggning</title>
-+  <script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/sv/private.html
-===================================================================
---- templates/sv/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/sv/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-     <title>%(realname)s Inloggning till Privata Arkiv</title>
-+      <script>function sf(){document.f.username.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(action)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(action)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/uk/admlogin.html
-===================================================================
---- templates/uk/admlogin.html.orig    2006-09-19 16:12:11.000000000 +0200
-+++ templates/uk/admlogin.html 2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>Автентифікація користувача %(who)s списку листування %(listname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onLoad="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/uk/private.html
-===================================================================
---- templates/uk/private.html.orig     2006-09-19 16:12:11.000000000 +0200
-+++ templates/uk/private.html  2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>Автентифікація доступу до закритого списку розсилки %(realname)s</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/zh_CN/admlogin.html
-===================================================================
---- templates/zh_CN/admlogin.html.orig 2006-09-19 16:12:11.000000000 +0200
-+++ templates/zh_CN/admlogin.html      2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s %(who)s Authentication</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onload="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
-Index: templates/zh_CN/private.html
-===================================================================
---- templates/zh_CN/private.html.orig  2006-09-19 16:12:11.000000000 +0200
-+++ templates/zh_CN/private.html       2006-09-19 16:15:38.000000000 +0200
-@@ -1,8 +1,9 @@
- <html>
- <head>
-     <title>%(realname)s 私有归档认证</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
-+<body bgcolor="#ffffff" onLoad="sf()">
- <FORM METHOD=POST ACTION="%(action)s">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-Index: templates/zh_TW/admlogin.html
-===================================================================
---- templates/zh_TW/admlogin.html.orig 2006-09-19 16:12:11.000000000 +0200
-+++ templates/zh_TW/admlogin.html      2006-09-19 16:15:38.000000000 +0200
-@@ -1,9 +1,10 @@
- <html>
- <head>
-   <title>%(listname)s 論壇 壇主驗證</title>
-+<script>function sf(){document.f.adminpw.focus();}</script>
- </head>
--<body bgcolor="#ffffff">
--<FORM METHOD=POST ACTION="%(path)s">
-+<body bgcolor="#ffffff" onload="sf()">
-+<FORM METHOD=POST ACTION="%(path)s" name="f">
- %(message)s
-   <TABLE WIDTH="100%%" BORDER="0" CELLSPACING="4" CELLPADDING="5">
-     <TR>
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644 (file)
index 7d23db8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-00_stolen_from_HEAD.patch -p0
-01_defaults.debian.patch -p0
-02_HyperDatabase_mapkeys.patch -p0
-07_snooze.patch -p0
-10_wrapper_uid.patch -p0
-11_handle_propfind.patch -p0
-15_mailmanctl_daemonize.patch -p0
-16_update_debian.patch -p0
-20_qmail_to_mailman.debian.patch -p0
-21_newlist_help.patch -p1
-30_pipermail_threads.patch -p0
-32_MIME_fixup.patch -p0
-51_nocompile.pyc.patch -p0
-52_check_perms_lstat.patch -p0
-53_disable_addons.patch -p0
-56_fix_de_broken_links.patch -p0
-58_fix_es_translation.patch -p0
-59_fix_missing_language_crash.patch -p0
-61_fix_ru_siteowner.patch -p0
-62_new_list_bad_pending_requests.patch -p0
-63_update_default_server_language.patch -p0
-64_correct_html_nesting.patch -p0
-65_handle_templates_directories.patch -p0
-66_donot_let_cache_html_pages.patch -p0
-67_update_handle_old_versions.patch -p0
-70_invalid_utf8_dos.patch -p0
-71_date_overflows.patch -p0
-72_fblast_add_shebang.patch -p0
-74_admin_non-ascii_emails.patch -p0
-77_header_folding_in_attachments.patch -p0
-78_DeprecationWarning.patch -p0
-79_archiver_slash.patch -p0
-80_fix_string_search.patch -p0
-81_backport_export.dpatch -p1
-99_js_templates.patch -p0