[Pkg-mailman-hackers] Pkg-mailman commit - rev 709 - in trunk: . Mailman Mailman/Archiver Mailman/Bouncers Mailman/Cgi Mailman/Commands Mailman/Gui Mailman/Handlers Mailman/Logging Mailman/MTA Mailman/Queue bin contrib cron doc doc/mailman-admin doc/mailman-install doc/mailman-member doc/mailman-member-es messages messages/ar/LC_MESSAGES messages/ast/LC_MESSAGES messages/ca/LC_MESSAGES messages/cs/LC_MESSAGES messages/da/LC_MESSAGES messages/de messages/de/LC_MESSAGES messages/es messages/es/LC_MESSAGES messages/et/LC_MESSAGES messages/eu messages/eu/LC_MESSAGES messages/fi messages/fi/LC_MESSAGES messages/fr messages/fr/LC_MESSAGES messages/gl/LC_MESSAGES messages/he/LC_MESSAGES messages/hr/LC_MESSAGES messages/hu messages/hu/LC_MESSAGES messages/ia/LC_MESSAGES messages/it messages/it/LC_MESSAGES messages/ja messages/ja/LC_MESSAGES messages/ja/doc messages/ko messages/ko/LC_MESSAGES messages/lt/LC_MESSAGES messages/nl/LC_MESSAGES messages/no/LC_MESSAGES messages/pl messages/pl/LC_MESSAGES messages/pt/LC_MESSAGES messages/pt_BR/LC_MESSAGES messages/ro/LC_MESSAGES messages/ru messages/ru/LC_MESSAGES messages/sk messages/sk/LC_MESSAGES messages/sl/LC_MESSAGES messages/sr messages/sr/LC_MESSAGES messages/sv messages/sv/LC_MESSAGES messages/tr/LC_MESSAGES messages/uk/LC_MESSAGES messages/vi/LC_MESSAGES messages/zh_CN/LC_MESSAGES messages/zh_TW/LC_MESSAGES misc scripts src templates templates/ar templates/ast templates/ca templates/cs templates/da templates/de templates/en templates/es templates/et templates/eu templates/fi templates/fr templates/gl templates/he templates/hr templates/hu templates/ia templates/it templates/ja templates/ko templates/lt templates/nl templates/no templates/pl templates/pt templates/pt_BR templates/ro templates/ru templates/sk templates/sl templates/sr templates/sv templates/tr templates/uk templates/vi templates/zh_CN templates/zh_TW tests tests/bounces tests/msgs

Thorsten Glaser tg at alioth.debian.org
Tue Mar 27 13:08:37 UTC 2012


Author: tg
Date: 2012-03-27 13:08:24 +0000 (Tue, 27 Mar 2012)
New Revision: 709

Added:
   trunk/ACKNOWLEDGMENTS
   trunk/BUGS
   trunk/FAQ
   trunk/INSTALL
   trunk/Mailman/
   trunk/Makefile.in
   trunk/NEWS
   trunk/README
   trunk/README-I18N.en
   trunk/README.CONTRIB
   trunk/README.NETSCAPE
   trunk/README.USERAGENT
   trunk/STYLEGUIDE.txt
   trunk/TODO
   trunk/UPGRADING
   trunk/bin/
   trunk/configure
   trunk/configure.in
   trunk/contrib/
   trunk/cron/
   trunk/doc/
   trunk/gnu-COPYING-GPL
   trunk/install-sh
   trunk/messages/
   trunk/misc/
   trunk/mkinstalldirs
   trunk/scripts/
   trunk/src/
   trunk/templates/
   trunk/tests/
Modified:
   trunk/
   trunk/Mailman/Archiver/Archiver.py
   trunk/Mailman/Archiver/HyperArch.py
   trunk/Mailman/Archiver/HyperDatabase.py
   trunk/Mailman/Archiver/Makefile.in
   trunk/Mailman/Archiver/__init__.py
   trunk/Mailman/Archiver/pipermail.py
   trunk/Mailman/Autoresponder.py
   trunk/Mailman/Bouncer.py
   trunk/Mailman/Bouncers/AOL.py
   trunk/Mailman/Bouncers/BouncerAPI.py
   trunk/Mailman/Bouncers/Caiwireless.py
   trunk/Mailman/Bouncers/Compuserve.py
   trunk/Mailman/Bouncers/DSN.py
   trunk/Mailman/Bouncers/Exchange.py
   trunk/Mailman/Bouncers/Exim.py
   trunk/Mailman/Bouncers/GroupWise.py
   trunk/Mailman/Bouncers/LLNL.py
   trunk/Mailman/Bouncers/Makefile.in
   trunk/Mailman/Bouncers/Microsoft.py
   trunk/Mailman/Bouncers/Netscape.py
   trunk/Mailman/Bouncers/Postfix.py
   trunk/Mailman/Bouncers/Qmail.py
   trunk/Mailman/Bouncers/SMTP32.py
   trunk/Mailman/Bouncers/SimpleMatch.py
   trunk/Mailman/Bouncers/SimpleWarning.py
   trunk/Mailman/Bouncers/Sina.py
   trunk/Mailman/Bouncers/Yahoo.py
   trunk/Mailman/Bouncers/Yale.py
   trunk/Mailman/Bouncers/__init__.py
   trunk/Mailman/Cgi/Auth.py
   trunk/Mailman/Cgi/Makefile.in
   trunk/Mailman/Cgi/__init__.py
   trunk/Mailman/Cgi/admin.py
   trunk/Mailman/Cgi/admindb.py
   trunk/Mailman/Cgi/confirm.py
   trunk/Mailman/Cgi/create.py
   trunk/Mailman/Cgi/edithtml.py
   trunk/Mailman/Cgi/listinfo.py
   trunk/Mailman/Cgi/options.py
   trunk/Mailman/Cgi/private.py
   trunk/Mailman/Cgi/rmlist.py
   trunk/Mailman/Cgi/roster.py
   trunk/Mailman/Cgi/subscribe.py
   trunk/Mailman/Commands/Makefile.in
   trunk/Mailman/Commands/__init__.py
   trunk/Mailman/Commands/cmd_confirm.py
   trunk/Mailman/Commands/cmd_echo.py
   trunk/Mailman/Commands/cmd_end.py
   trunk/Mailman/Commands/cmd_help.py
   trunk/Mailman/Commands/cmd_info.py
   trunk/Mailman/Commands/cmd_join.py
   trunk/Mailman/Commands/cmd_leave.py
   trunk/Mailman/Commands/cmd_lists.py
   trunk/Mailman/Commands/cmd_password.py
   trunk/Mailman/Commands/cmd_remove.py
   trunk/Mailman/Commands/cmd_set.py
   trunk/Mailman/Commands/cmd_stop.py
   trunk/Mailman/Commands/cmd_subscribe.py
   trunk/Mailman/Commands/cmd_unsubscribe.py
   trunk/Mailman/Commands/cmd_who.py
   trunk/Mailman/Defaults.py.in
   trunk/Mailman/Deliverer.py
   trunk/Mailman/Digester.py
   trunk/Mailman/Errors.py
   trunk/Mailman/GatewayManager.py
   trunk/Mailman/Gui/Archive.py
   trunk/Mailman/Gui/Autoresponse.py
   trunk/Mailman/Gui/Bounce.py
   trunk/Mailman/Gui/ContentFilter.py
   trunk/Mailman/Gui/Digest.py
   trunk/Mailman/Gui/GUIBase.py
   trunk/Mailman/Gui/General.py
   trunk/Mailman/Gui/Language.py
   trunk/Mailman/Gui/Makefile.in
   trunk/Mailman/Gui/Membership.py
   trunk/Mailman/Gui/NonDigest.py
   trunk/Mailman/Gui/Passwords.py
   trunk/Mailman/Gui/Privacy.py
   trunk/Mailman/Gui/Topics.py
   trunk/Mailman/Gui/Usenet.py
   trunk/Mailman/Gui/__init__.py
   trunk/Mailman/HTMLFormatter.py
   trunk/Mailman/Handlers/Acknowledge.py
   trunk/Mailman/Handlers/AfterDelivery.py
   trunk/Mailman/Handlers/Approve.py
   trunk/Mailman/Handlers/AvoidDuplicates.py
   trunk/Mailman/Handlers/CalcRecips.py
   trunk/Mailman/Handlers/Cleanse.py
   trunk/Mailman/Handlers/CleanseDKIM.py
   trunk/Mailman/Handlers/CookHeaders.py
   trunk/Mailman/Handlers/Decorate.py
   trunk/Mailman/Handlers/Emergency.py
   trunk/Mailman/Handlers/FileRecips.py
   trunk/Mailman/Handlers/Hold.py
   trunk/Mailman/Handlers/Makefile.in
   trunk/Mailman/Handlers/MimeDel.py
   trunk/Mailman/Handlers/Moderate.py
   trunk/Mailman/Handlers/OwnerRecips.py
   trunk/Mailman/Handlers/Replybot.py
   trunk/Mailman/Handlers/SMTPDirect.py
   trunk/Mailman/Handlers/Scrubber.py
   trunk/Mailman/Handlers/Sendmail.py
   trunk/Mailman/Handlers/SpamDetect.py
   trunk/Mailman/Handlers/Tagger.py
   trunk/Mailman/Handlers/ToArchive.py
   trunk/Mailman/Handlers/ToDigest.py
   trunk/Mailman/Handlers/ToOutgoing.py
   trunk/Mailman/Handlers/ToUsenet.py
   trunk/Mailman/Handlers/__init__.py
   trunk/Mailman/ListAdmin.py
   trunk/Mailman/LockFile.py
   trunk/Mailman/Logging/Logger.py
   trunk/Mailman/Logging/Makefile.in
   trunk/Mailman/Logging/MultiLogger.py
   trunk/Mailman/Logging/StampedLogger.py
   trunk/Mailman/Logging/Syslog.py
   trunk/Mailman/Logging/Utils.py
   trunk/Mailman/Logging/__init__.py
   trunk/Mailman/MTA/Makefile.in
   trunk/Mailman/MTA/Manual.py
   trunk/Mailman/MTA/Postfix.py
   trunk/Mailman/MTA/Utils.py
   trunk/Mailman/MTA/__init__.py
   trunk/Mailman/MailList.py
   trunk/Mailman/Mailbox.py
   trunk/Mailman/Makefile.in
   trunk/Mailman/MemberAdaptor.py
   trunk/Mailman/Message.py
   trunk/Mailman/OldStyleMemberships.py
   trunk/Mailman/Pending.py
   trunk/Mailman/Post.py
   trunk/Mailman/Queue/ArchRunner.py
   trunk/Mailman/Queue/BounceRunner.py
   trunk/Mailman/Queue/CommandRunner.py
   trunk/Mailman/Queue/IncomingRunner.py
   trunk/Mailman/Queue/MaildirRunner.py
   trunk/Mailman/Queue/Makefile.in
   trunk/Mailman/Queue/NewsRunner.py
   trunk/Mailman/Queue/OutgoingRunner.py
   trunk/Mailman/Queue/RetryRunner.py
   trunk/Mailman/Queue/Runner.py
   trunk/Mailman/Queue/Switchboard.py
   trunk/Mailman/Queue/VirginRunner.py
   trunk/Mailman/Queue/__init__.py
   trunk/Mailman/Queue/sbcache.py
   trunk/Mailman/SafeDict.py
   trunk/Mailman/SecurityManager.py
   trunk/Mailman/Site.py
   trunk/Mailman/TopicMgr.py
   trunk/Mailman/UserDesc.py
   trunk/Mailman/Utils.py
   trunk/Mailman/Version.py
   trunk/Mailman/__init__.py
   trunk/Mailman/htmlformat.py
   trunk/Mailman/i18n.py
   trunk/Mailman/mm_cfg.py.dist.in
   trunk/Mailman/versions.py
   trunk/bin/Makefile.in
   trunk/bin/add_members
   trunk/bin/arch
   trunk/bin/b4b5-archfix
   trunk/bin/change_pw
   trunk/bin/check_db
   trunk/bin/check_perms
   trunk/bin/cleanarch
   trunk/bin/clone_member
   trunk/bin/config_list
   trunk/bin/convert.py
   trunk/bin/discard
   trunk/bin/dumpdb
   trunk/bin/export.py
   trunk/bin/find_member
   trunk/bin/fix_url.py
   trunk/bin/genaliases
   trunk/bin/inject
   trunk/bin/list_admins
   trunk/bin/list_lists
   trunk/bin/list_members
   trunk/bin/list_owners
   trunk/bin/mailmanctl
   trunk/bin/mmsitepass
   trunk/bin/msgfmt.py
   trunk/bin/newlist
   trunk/bin/pygettext.py
   trunk/bin/qrunner
   trunk/bin/rb-archfix
   trunk/bin/remove_members
   trunk/bin/reset_pw.py
   trunk/bin/rmlist
   trunk/bin/show_qfiles
   trunk/bin/sync_members
   trunk/bin/transcheck
   trunk/bin/unshunt
   trunk/bin/update
   trunk/bin/version
   trunk/bin/withlist
   trunk/contrib/README
   trunk/contrib/README.check_perms_grsecurity
   trunk/contrib/README.courier_to_mailman
   trunk/contrib/README.mm-handler
   trunk/contrib/README.mm-handler-2.1.10
   trunk/contrib/README.mmdsr
   trunk/contrib/README.redhat_fhs.patch
   trunk/contrib/auto
   trunk/contrib/check_perms_grsecurity.py
   trunk/contrib/courier-to-mailman.py
   trunk/contrib/mailman.mc
   trunk/contrib/majordomo2mailman.pl
   trunk/contrib/mm-handler
   trunk/contrib/mm-handler-2.1.10
   trunk/contrib/mmdsr
   trunk/contrib/qmail-to-mailman.py
   trunk/contrib/redhat_fhs.patch
   trunk/contrib/rotatelogs.py
   trunk/contrib/virtusertable
   trunk/cron/Makefile.in
   trunk/cron/bumpdigests
   trunk/cron/checkdbs
   trunk/cron/crontab.in.in
   trunk/cron/cull_bad_shunt
   trunk/cron/disabled
   trunk/cron/gate_news
   trunk/cron/mailpasswds
   trunk/cron/nightly_gzip
   trunk/cron/senddigests
   trunk/doc/mailman-admin.dvi
   trunk/doc/mailman-admin.pdf
   trunk/doc/mailman-admin.ps
   trunk/doc/mailman-admin.txt
   trunk/doc/mailman-admin/WARNINGS
   trunk/doc/mailman-admin/about.html
   trunk/doc/mailman-admin/blank.png
   trunk/doc/mailman-admin/contents.html
   trunk/doc/mailman-admin/contents.png
   trunk/doc/mailman-admin/front.html
   trunk/doc/mailman-admin/index.dat
   trunk/doc/mailman-admin/index.html
   trunk/doc/mailman-admin/index.png
   trunk/doc/mailman-admin/internals.pl
   trunk/doc/mailman-admin/intlabels.pl
   trunk/doc/mailman-admin/labels.pl
   trunk/doc/mailman-admin/mailman-admin.css
   trunk/doc/mailman-admin/mailman-admin.html
   trunk/doc/mailman-admin/modules.png
   trunk/doc/mailman-admin/next.png
   trunk/doc/mailman-admin/node10.html
   trunk/doc/mailman-admin/node11.html
   trunk/doc/mailman-admin/node12.html
   trunk/doc/mailman-admin/node13.html
   trunk/doc/mailman-admin/node14.html
   trunk/doc/mailman-admin/node15.html
   trunk/doc/mailman-admin/node16.html
   trunk/doc/mailman-admin/node17.html
   trunk/doc/mailman-admin/node18.html
   trunk/doc/mailman-admin/node19.html
   trunk/doc/mailman-admin/node20.html
   trunk/doc/mailman-admin/node21.html
   trunk/doc/mailman-admin/node22.html
   trunk/doc/mailman-admin/node23.html
   trunk/doc/mailman-admin/node24.html
   trunk/doc/mailman-admin/node25.html
   trunk/doc/mailman-admin/node26.html
   trunk/doc/mailman-admin/node27.html
   trunk/doc/mailman-admin/node28.html
   trunk/doc/mailman-admin/node29.html
   trunk/doc/mailman-admin/node3.html
   trunk/doc/mailman-admin/node30.html
   trunk/doc/mailman-admin/node31.html
   trunk/doc/mailman-admin/node32.html
   trunk/doc/mailman-admin/node33.html
   trunk/doc/mailman-admin/node34.html
   trunk/doc/mailman-admin/node35.html
   trunk/doc/mailman-admin/node4.html
   trunk/doc/mailman-admin/node5.html
   trunk/doc/mailman-admin/node6.html
   trunk/doc/mailman-admin/node7.html
   trunk/doc/mailman-admin/node8.html
   trunk/doc/mailman-admin/node9.html
   trunk/doc/mailman-admin/previous.png
   trunk/doc/mailman-admin/pyfav.png
   trunk/doc/mailman-admin/up.png
   trunk/doc/mailman-install.dvi
   trunk/doc/mailman-install.pdf
   trunk/doc/mailman-install.ps
   trunk/doc/mailman-install.txt
   trunk/doc/mailman-install/about.html
   trunk/doc/mailman-install/blank.png
   trunk/doc/mailman-install/bsd-issues.html
   trunk/doc/mailman-install/contents.png
   trunk/doc/mailman-install/create-install-dir.html
   trunk/doc/mailman-install/customizing.html
   trunk/doc/mailman-install/exim3-transport.html
   trunk/doc/mailman-install/front.html
   trunk/doc/mailman-install/index.dat
   trunk/doc/mailman-install/index.html
   trunk/doc/mailman-install/index.png
   trunk/doc/mailman-install/internals.pl
   trunk/doc/mailman-install/intlabels.pl
   trunk/doc/mailman-install/labels.pl
   trunk/doc/mailman-install/mail-server.html
   trunk/doc/mailman-install/mailman-install.css
   trunk/doc/mailman-install/mailman-install.html
   trunk/doc/mailman-install/modules.png
   trunk/doc/mailman-install/next.png
   trunk/doc/mailman-install/node10.html
   trunk/doc/mailman-install/node12.html
   trunk/doc/mailman-install/node15.html
   trunk/doc/mailman-install/node16.html
   trunk/doc/mailman-install/node17.html
   trunk/doc/mailman-install/node18.html
   trunk/doc/mailman-install/node2.html
   trunk/doc/mailman-install/node20.html
   trunk/doc/mailman-install/node21.html
   trunk/doc/mailman-install/node22.html
   trunk/doc/mailman-install/node23.html
   trunk/doc/mailman-install/node24.html
   trunk/doc/mailman-install/node25.html
   trunk/doc/mailman-install/node26.html
   trunk/doc/mailman-install/node27.html
   trunk/doc/mailman-install/node28.html
   trunk/doc/mailman-install/node29.html
   trunk/doc/mailman-install/node3.html
   trunk/doc/mailman-install/node30.html
   trunk/doc/mailman-install/node31.html
   trunk/doc/mailman-install/node32.html
   trunk/doc/mailman-install/node33.html
   trunk/doc/mailman-install/node34.html
   trunk/doc/mailman-install/node36.html
   trunk/doc/mailman-install/node37.html
   trunk/doc/mailman-install/node38.html
   trunk/doc/mailman-install/node4.html
   trunk/doc/mailman-install/node41.html
   trunk/doc/mailman-install/node42.html
   trunk/doc/mailman-install/node43.html
   trunk/doc/mailman-install/node44.html
   trunk/doc/mailman-install/node45.html
   trunk/doc/mailman-install/node47.html
   trunk/doc/mailman-install/node48.html
   trunk/doc/mailman-install/node50.html
   trunk/doc/mailman-install/node6.html
   trunk/doc/mailman-install/node7.html
   trunk/doc/mailman-install/node8.html
   trunk/doc/mailman-install/node9.html
   trunk/doc/mailman-install/postfix-integration.html
   trunk/doc/mailman-install/postfix-virtual.html
   trunk/doc/mailman-install/previous.png
   trunk/doc/mailman-install/pyfav.png
   trunk/doc/mailman-install/qmail-issues.html
   trunk/doc/mailman-install/site-list.html
   trunk/doc/mailman-install/troubleshooting.html
   trunk/doc/mailman-install/up.png
   trunk/doc/mailman-member-es.dvi
   trunk/doc/mailman-member-es.pdf
   trunk/doc/mailman-member-es.ps
   trunk/doc/mailman-member-es.txt
   trunk/doc/mailman-member-es/WARNINGS
   trunk/doc/mailman-member-es/about.html
   trunk/doc/mailman-member-es/blank.png
   trunk/doc/mailman-member-es/contents.html
   trunk/doc/mailman-member-es/contents.png
   trunk/doc/mailman-member-es/front.html
   trunk/doc/mailman-member-es/images.pl
   trunk/doc/mailman-member-es/img1.png
   trunk/doc/mailman-member-es/img2.png
   trunk/doc/mailman-member-es/img3.png
   trunk/doc/mailman-member-es/img4.png
   trunk/doc/mailman-member-es/index.dat
   trunk/doc/mailman-member-es/index.html
   trunk/doc/mailman-member-es/index.png
   trunk/doc/mailman-member-es/internals.pl
   trunk/doc/mailman-member-es/intlabels.pl
   trunk/doc/mailman-member-es/labels.pl
   trunk/doc/mailman-member-es/mailman-member-es.css
   trunk/doc/mailman-member-es/mailman-member-es.html
   trunk/doc/mailman-member-es/modules.png
   trunk/doc/mailman-member-es/next.png
   trunk/doc/mailman-member-es/node10.html
   trunk/doc/mailman-member-es/node11.html
   trunk/doc/mailman-member-es/node12.html
   trunk/doc/mailman-member-es/node13.html
   trunk/doc/mailman-member-es/node14.html
   trunk/doc/mailman-member-es/node15.html
   trunk/doc/mailman-member-es/node16.html
   trunk/doc/mailman-member-es/node17.html
   trunk/doc/mailman-member-es/node18.html
   trunk/doc/mailman-member-es/node19.html
   trunk/doc/mailman-member-es/node20.html
   trunk/doc/mailman-member-es/node21.html
   trunk/doc/mailman-member-es/node22.html
   trunk/doc/mailman-member-es/node23.html
   trunk/doc/mailman-member-es/node24.html
   trunk/doc/mailman-member-es/node25.html
   trunk/doc/mailman-member-es/node26.html
   trunk/doc/mailman-member-es/node27.html
   trunk/doc/mailman-member-es/node28.html
   trunk/doc/mailman-member-es/node29.html
   trunk/doc/mailman-member-es/node3.html
   trunk/doc/mailman-member-es/node30.html
   trunk/doc/mailman-member-es/node31.html
   trunk/doc/mailman-member-es/node32.html
   trunk/doc/mailman-member-es/node33.html
   trunk/doc/mailman-member-es/node34.html
   trunk/doc/mailman-member-es/node35.html
   trunk/doc/mailman-member-es/node36.html
   trunk/doc/mailman-member-es/node37.html
   trunk/doc/mailman-member-es/node38.html
   trunk/doc/mailman-member-es/node39.html
   trunk/doc/mailman-member-es/node4.html
   trunk/doc/mailman-member-es/node40.html
   trunk/doc/mailman-member-es/node41.html
   trunk/doc/mailman-member-es/node42.html
   trunk/doc/mailman-member-es/node5.html
   trunk/doc/mailman-member-es/node6.html
   trunk/doc/mailman-member-es/node7.html
   trunk/doc/mailman-member-es/node8.html
   trunk/doc/mailman-member-es/node9.html
   trunk/doc/mailman-member-es/previous.png
   trunk/doc/mailman-member-es/pyfav.png
   trunk/doc/mailman-member-es/up.png
   trunk/doc/mailman-member.dvi
   trunk/doc/mailman-member.pdf
   trunk/doc/mailman-member.ps
   trunk/doc/mailman-member.txt
   trunk/doc/mailman-member/about.html
   trunk/doc/mailman-member/blank.png
   trunk/doc/mailman-member/contents.html
   trunk/doc/mailman-member/contents.png
   trunk/doc/mailman-member/front.html
   trunk/doc/mailman-member/images.pl
   trunk/doc/mailman-member/img1.png
   trunk/doc/mailman-member/img2.png
   trunk/doc/mailman-member/index.dat
   trunk/doc/mailman-member/index.html
   trunk/doc/mailman-member/index.png
   trunk/doc/mailman-member/internals.pl
   trunk/doc/mailman-member/intlabels.pl
   trunk/doc/mailman-member/labels.pl
   trunk/doc/mailman-member/mailman-member.css
   trunk/doc/mailman-member/mailman-member.html
   trunk/doc/mailman-member/modules.png
   trunk/doc/mailman-member/next.png
   trunk/doc/mailman-member/node10.html
   trunk/doc/mailman-member/node11.html
   trunk/doc/mailman-member/node12.html
   trunk/doc/mailman-member/node13.html
   trunk/doc/mailman-member/node14.html
   trunk/doc/mailman-member/node15.html
   trunk/doc/mailman-member/node16.html
   trunk/doc/mailman-member/node17.html
   trunk/doc/mailman-member/node18.html
   trunk/doc/mailman-member/node19.html
   trunk/doc/mailman-member/node20.html
   trunk/doc/mailman-member/node21.html
   trunk/doc/mailman-member/node22.html
   trunk/doc/mailman-member/node23.html
   trunk/doc/mailman-member/node24.html
   trunk/doc/mailman-member/node25.html
   trunk/doc/mailman-member/node26.html
   trunk/doc/mailman-member/node27.html
   trunk/doc/mailman-member/node28.html
   trunk/doc/mailman-member/node29.html
   trunk/doc/mailman-member/node3.html
   trunk/doc/mailman-member/node30.html
   trunk/doc/mailman-member/node31.html
   trunk/doc/mailman-member/node32.html
   trunk/doc/mailman-member/node33.html
   trunk/doc/mailman-member/node34.html
   trunk/doc/mailman-member/node35.html
   trunk/doc/mailman-member/node36.html
   trunk/doc/mailman-member/node37.html
   trunk/doc/mailman-member/node38.html
   trunk/doc/mailman-member/node39.html
   trunk/doc/mailman-member/node4.html
   trunk/doc/mailman-member/node40.html
   trunk/doc/mailman-member/node41.html
   trunk/doc/mailman-member/node42.html
   trunk/doc/mailman-member/node5.html
   trunk/doc/mailman-member/node6.html
   trunk/doc/mailman-member/node7.html
   trunk/doc/mailman-member/node8.html
   trunk/doc/mailman-member/node9.html
   trunk/doc/mailman-member/previous.png
   trunk/doc/mailman-member/pyfav.png
   trunk/doc/mailman-member/up.png
   trunk/messages/Makefile.in
   trunk/messages/ar/LC_MESSAGES/mailman.po
   trunk/messages/ast/LC_MESSAGES/mailman.po
   trunk/messages/ca/LC_MESSAGES/mailman.po
   trunk/messages/cs/LC_MESSAGES/mailman.po
   trunk/messages/da/LC_MESSAGES/mailman.po
   trunk/messages/de/LC_MESSAGES/mailman.po
   trunk/messages/de/README.de
   trunk/messages/docstring.files
   trunk/messages/es/LC_MESSAGES/mailman.po
   trunk/messages/es/README.es
   trunk/messages/et/LC_MESSAGES/mailman.po
   trunk/messages/eu/LC_MESSAGES/mailman.po
   trunk/messages/eu/README.eu
   trunk/messages/fi/LC_MESSAGES/mailman.po
   trunk/messages/fi/README.fi
   trunk/messages/fr/LC_MESSAGES/mailman.po
   trunk/messages/fr/README.fr
   trunk/messages/gl/LC_MESSAGES/README.gl
   trunk/messages/gl/LC_MESSAGES/mailman.po
   trunk/messages/he/LC_MESSAGES/mailman.po
   trunk/messages/hr/LC_MESSAGES/mailman.po
   trunk/messages/hu/FAQ.hu
   trunk/messages/hu/INSTALL.hu
   trunk/messages/hu/LC_MESSAGES/mailman.po
   trunk/messages/hu/README.BSD.hu
   trunk/messages/hu/README.CONTRIB.hu
   trunk/messages/hu/README.EXIM.hu
   trunk/messages/hu/README.LINUX.hu
   trunk/messages/hu/README.MACOSX.hu
   trunk/messages/hu/README.NETSCAPE.hu
   trunk/messages/hu/README.POSTFIX.hu
   trunk/messages/hu/README.QMAIL.hu
   trunk/messages/hu/README.SENDMAIL.hu
   trunk/messages/hu/README.USERAGENT.hu
   trunk/messages/hu/README.hu
   trunk/messages/hu/UPGRADING.hu
   trunk/messages/ia/LC_MESSAGES/mailman.po
   trunk/messages/it/LC_MESSAGES/mailman.po
   trunk/messages/it/README.it
   trunk/messages/ja/INSTALL
   trunk/messages/ja/LC_MESSAGES/mailman.po
   trunk/messages/ja/README
   trunk/messages/ja/README.ja
   trunk/messages/ja/UPGRADING
   trunk/messages/ja/doc/Defaults.py.in
   trunk/messages/ja/doc/mailman-install.tex
   trunk/messages/ja/doc/mailman-member.tex
   trunk/messages/ko/LC_MESSAGES/mailman.po
   trunk/messages/ko/README.ko
   trunk/messages/lt/LC_MESSAGES/mailman.po
   trunk/messages/mailman.pot
   trunk/messages/marked.files
   trunk/messages/nl/LC_MESSAGES/mailman.po
   trunk/messages/no/LC_MESSAGES/mailman.po
   trunk/messages/pl/LC_MESSAGES/mailman.po
   trunk/messages/pl/README.pl
   trunk/messages/pt/LC_MESSAGES/mailman.po
   trunk/messages/pt_BR/LC_MESSAGES/mailman.po
   trunk/messages/ro/LC_MESSAGES/mailman.po
   trunk/messages/ru/LC_MESSAGES/mailman.po
   trunk/messages/ru/README.ru
   trunk/messages/sk/LC_MESSAGES/mailman.po
   trunk/messages/sk/README.sk
   trunk/messages/sl/LC_MESSAGES/mailman.po
   trunk/messages/sr/LC_MESSAGES/mailman.po
   trunk/messages/sr/readme.sr
   trunk/messages/sv/LC_MESSAGES/mailman.po
   trunk/messages/sv/README.sv
   trunk/messages/tr/LC_MESSAGES/mailman.po
   trunk/messages/uk/LC_MESSAGES/mailman.po
   trunk/messages/vi/LC_MESSAGES/mailman.po
   trunk/messages/zh_CN/LC_MESSAGES/mailman.po
   trunk/messages/zh_TW/LC_MESSAGES/mailman.po
   trunk/misc/JapaneseCodecs-1.4.11.tar.gz
   trunk/misc/KoreanCodecs-2.0.5.tar.gz
   trunk/misc/Makefile.in
   trunk/misc/PythonPowered.png
   trunk/misc/email-2.5.8.tar.gz
   trunk/misc/gnu-head-tiny.jpg
   trunk/misc/mailman-large.jpg
   trunk/misc/mailman.in
   trunk/misc/mailman.jpg
   trunk/misc/mm-icon.png
   trunk/misc/paths.py.in
   trunk/misc/sitelist.cfg
   trunk/scripts/Makefile.in
   trunk/scripts/bounces
   trunk/scripts/confirm
   trunk/scripts/driver
   trunk/scripts/join
   trunk/scripts/leave
   trunk/scripts/owner
   trunk/scripts/post
   trunk/scripts/request
   trunk/src/Makefile.in
   trunk/src/cgi-wrapper.c
   trunk/src/common.c
   trunk/src/common.h
   trunk/src/mail-wrapper.c
   trunk/src/vsnprintf.c
   trunk/templates/Makefile.in
   trunk/templates/ar/admindbdetails.html
   trunk/templates/ar/admindbpreamble.html
   trunk/templates/ar/admindbsummary.html
   trunk/templates/ar/adminsubscribeack.txt
   trunk/templates/ar/adminunsubscribeack.txt
   trunk/templates/ar/admlogin.html
   trunk/templates/ar/approve.txt
   trunk/templates/ar/archidxentry.html
   trunk/templates/ar/archidxfoot.html
   trunk/templates/ar/archidxhead.html
   trunk/templates/ar/archlistend.html
   trunk/templates/ar/archliststart.html
   trunk/templates/ar/archtoc.html
   trunk/templates/ar/archtocentry.html
   trunk/templates/ar/archtocnombox.html
   trunk/templates/ar/article.html
   trunk/templates/ar/bounce.txt
   trunk/templates/ar/checkdbs.txt
   trunk/templates/ar/convert.txt
   trunk/templates/ar/cronpass.txt
   trunk/templates/ar/disabled.txt
   trunk/templates/ar/emptyarchive.html
   trunk/templates/ar/headfoot.html
   trunk/templates/ar/help.txt
   trunk/templates/ar/invite.txt
   trunk/templates/ar/listinfo.html
   trunk/templates/ar/masthead.txt
   trunk/templates/ar/newlist.txt
   trunk/templates/ar/nomoretoday.txt
   trunk/templates/ar/options.html
   trunk/templates/ar/postack.txt
   trunk/templates/ar/postauth.txt
   trunk/templates/ar/postheld.txt
   trunk/templates/ar/private.html
   trunk/templates/ar/probe.txt
   trunk/templates/ar/refuse.txt
   trunk/templates/ar/roster.html
   trunk/templates/ar/subauth.txt
   trunk/templates/ar/subscribe.html
   trunk/templates/ar/subscribeack.txt
   trunk/templates/ar/unsub.txt
   trunk/templates/ar/unsubauth.txt
   trunk/templates/ar/userpass.txt
   trunk/templates/ar/verify.txt
   trunk/templates/ast/admindbdetails.html
   trunk/templates/ast/admindbpreamble.html
   trunk/templates/ast/admindbsummary.html
   trunk/templates/ast/adminsubscribeack.txt
   trunk/templates/ast/adminunsubscribeack.txt
   trunk/templates/ast/admlogin.html
   trunk/templates/ast/approve.txt
   trunk/templates/ast/archidxentry.html
   trunk/templates/ast/archidxfoot.html
   trunk/templates/ast/archidxhead.html
   trunk/templates/ast/archlistend.html
   trunk/templates/ast/archliststart.html
   trunk/templates/ast/archtoc.html
   trunk/templates/ast/archtocentry.html
   trunk/templates/ast/archtocnombox.html
   trunk/templates/ast/article.html
   trunk/templates/ast/bounce.txt
   trunk/templates/ast/checkdbs.txt
   trunk/templates/ast/convert.txt
   trunk/templates/ast/cronpass.txt
   trunk/templates/ast/disabled.txt
   trunk/templates/ast/emptyarchive.html
   trunk/templates/ast/headfoot.html
   trunk/templates/ast/help.txt
   trunk/templates/ast/invite.txt
   trunk/templates/ast/listinfo.html
   trunk/templates/ast/masthead.txt
   trunk/templates/ast/newlist.txt
   trunk/templates/ast/nomoretoday.txt
   trunk/templates/ast/options.html
   trunk/templates/ast/postack.txt
   trunk/templates/ast/postauth.txt
   trunk/templates/ast/postheld.txt
   trunk/templates/ast/private.html
   trunk/templates/ast/probe.txt
   trunk/templates/ast/refuse.txt
   trunk/templates/ast/roster.html
   trunk/templates/ast/subauth.txt
   trunk/templates/ast/subscribe.html
   trunk/templates/ast/subscribeack.txt
   trunk/templates/ast/unsub.txt
   trunk/templates/ast/unsubauth.txt
   trunk/templates/ast/userpass.txt
   trunk/templates/ast/verify.txt
   trunk/templates/ca/admindbdetails.html
   trunk/templates/ca/admindbpreamble.html
   trunk/templates/ca/admindbsummary.html
   trunk/templates/ca/adminsubscribeack.txt
   trunk/templates/ca/adminunsubscribeack.txt
   trunk/templates/ca/admlogin.html
   trunk/templates/ca/approve.txt
   trunk/templates/ca/archidxentry.html
   trunk/templates/ca/archidxfoot.html
   trunk/templates/ca/archidxhead.html
   trunk/templates/ca/archlistend.html
   trunk/templates/ca/archliststart.html
   trunk/templates/ca/archtoc.html
   trunk/templates/ca/archtocentry.html
   trunk/templates/ca/archtocnombox.html
   trunk/templates/ca/article.html
   trunk/templates/ca/bounce.txt
   trunk/templates/ca/checkdbs.txt
   trunk/templates/ca/convert.txt
   trunk/templates/ca/cronpass.txt
   trunk/templates/ca/disabled.txt
   trunk/templates/ca/emptyarchive.html
   trunk/templates/ca/headfoot.html
   trunk/templates/ca/help.txt
   trunk/templates/ca/invite.txt
   trunk/templates/ca/listinfo.html
   trunk/templates/ca/masthead.txt
   trunk/templates/ca/newlist.txt
   trunk/templates/ca/nomoretoday.txt
   trunk/templates/ca/options.html
   trunk/templates/ca/postack.txt
   trunk/templates/ca/postauth.txt
   trunk/templates/ca/postheld.txt
   trunk/templates/ca/private.html
   trunk/templates/ca/probe.txt
   trunk/templates/ca/refuse.txt
   trunk/templates/ca/roster.html
   trunk/templates/ca/subauth.txt
   trunk/templates/ca/subscribe.html
   trunk/templates/ca/subscribeack.txt
   trunk/templates/ca/unsub.txt
   trunk/templates/ca/unsubauth.txt
   trunk/templates/ca/userpass.txt
   trunk/templates/ca/verify.txt
   trunk/templates/cs/admindbdetails.html
   trunk/templates/cs/admindbpreamble.html
   trunk/templates/cs/admindbsummary.html
   trunk/templates/cs/adminsubscribeack.txt
   trunk/templates/cs/adminunsubscribeack.txt
   trunk/templates/cs/admlogin.html
   trunk/templates/cs/approve.txt
   trunk/templates/cs/archidxentry.html
   trunk/templates/cs/archidxfoot.html
   trunk/templates/cs/archidxhead.html
   trunk/templates/cs/archlistend.html
   trunk/templates/cs/archliststart.html
   trunk/templates/cs/archtoc.html
   trunk/templates/cs/archtocentry.html
   trunk/templates/cs/archtocnombox.html
   trunk/templates/cs/article.html
   trunk/templates/cs/bounce.txt
   trunk/templates/cs/checkdbs.txt
   trunk/templates/cs/convert.txt
   trunk/templates/cs/cronpass.txt
   trunk/templates/cs/disabled.txt
   trunk/templates/cs/emptyarchive.html
   trunk/templates/cs/headfoot.html
   trunk/templates/cs/help.txt
   trunk/templates/cs/invite.txt
   trunk/templates/cs/listinfo.html
   trunk/templates/cs/masthead.txt
   trunk/templates/cs/newlist.txt
   trunk/templates/cs/nomoretoday.txt
   trunk/templates/cs/options.html
   trunk/templates/cs/postack.txt
   trunk/templates/cs/postauth.txt
   trunk/templates/cs/postheld.txt
   trunk/templates/cs/private.html
   trunk/templates/cs/probe.txt
   trunk/templates/cs/refuse.txt
   trunk/templates/cs/roster.html
   trunk/templates/cs/subauth.txt
   trunk/templates/cs/subscribe.html
   trunk/templates/cs/subscribeack.txt
   trunk/templates/cs/unsub.txt
   trunk/templates/cs/unsubauth.txt
   trunk/templates/cs/userpass.txt
   trunk/templates/cs/verify.txt
   trunk/templates/da/admindbdetails.html
   trunk/templates/da/admindbpreamble.html
   trunk/templates/da/admindbsummary.html
   trunk/templates/da/adminsubscribeack.txt
   trunk/templates/da/adminunsubscribeack.txt
   trunk/templates/da/admlogin.html
   trunk/templates/da/approve.txt
   trunk/templates/da/archidxfoot.html
   trunk/templates/da/archidxhead.html
   trunk/templates/da/archliststart.html
   trunk/templates/da/archtoc.html
   trunk/templates/da/archtocentry.html
   trunk/templates/da/archtocnombox.html
   trunk/templates/da/article.html
   trunk/templates/da/bounce.txt
   trunk/templates/da/checkdbs.txt
   trunk/templates/da/convert.txt
   trunk/templates/da/cronpass.txt
   trunk/templates/da/disabled.txt
   trunk/templates/da/emptyarchive.html
   trunk/templates/da/headfoot.html
   trunk/templates/da/help.txt
   trunk/templates/da/invite.txt
   trunk/templates/da/listinfo.html
   trunk/templates/da/masthead.txt
   trunk/templates/da/newlist.txt
   trunk/templates/da/nomoretoday.txt
   trunk/templates/da/options.html
   trunk/templates/da/postack.txt
   trunk/templates/da/postauth.txt
   trunk/templates/da/postheld.txt
   trunk/templates/da/private.html
   trunk/templates/da/probe.txt
   trunk/templates/da/refuse.txt
   trunk/templates/da/roster.html
   trunk/templates/da/subauth.txt
   trunk/templates/da/subscribe.html
   trunk/templates/da/subscribeack.txt
   trunk/templates/da/unsub.txt
   trunk/templates/da/unsubauth.txt
   trunk/templates/da/userpass.txt
   trunk/templates/da/verify.txt
   trunk/templates/de/admindbdetails.html
   trunk/templates/de/admindbpreamble.html
   trunk/templates/de/admindbsummary.html
   trunk/templates/de/adminsubscribeack.txt
   trunk/templates/de/adminunsubscribeack.txt
   trunk/templates/de/admlogin.html
   trunk/templates/de/approve.txt
   trunk/templates/de/article.html
   trunk/templates/de/bounce.txt
   trunk/templates/de/checkdbs.txt
   trunk/templates/de/convert.txt
   trunk/templates/de/cronpass.txt
   trunk/templates/de/disabled.txt
   trunk/templates/de/headfoot.html
   trunk/templates/de/help.txt
   trunk/templates/de/invite.txt
   trunk/templates/de/listinfo.html
   trunk/templates/de/masthead.txt
   trunk/templates/de/newlist.txt
   trunk/templates/de/options.html
   trunk/templates/de/postack.txt
   trunk/templates/de/postauth.txt
   trunk/templates/de/postheld.txt
   trunk/templates/de/private.html
   trunk/templates/de/refuse.txt
   trunk/templates/de/roster.html
   trunk/templates/de/subauth.txt
   trunk/templates/de/subscribe.html
   trunk/templates/de/subscribeack.txt
   trunk/templates/de/unsub.txt
   trunk/templates/de/userpass.txt
   trunk/templates/de/verify.txt
   trunk/templates/en/admindbdetails.html
   trunk/templates/en/admindbpreamble.html
   trunk/templates/en/admindbsummary.html
   trunk/templates/en/adminsubscribeack.txt
   trunk/templates/en/adminunsubscribeack.txt
   trunk/templates/en/admlogin.html
   trunk/templates/en/approve.txt
   trunk/templates/en/archidxentry.html
   trunk/templates/en/archidxfoot.html
   trunk/templates/en/archidxhead.html
   trunk/templates/en/archlistend.html
   trunk/templates/en/archliststart.html
   trunk/templates/en/archtoc.html
   trunk/templates/en/archtocentry.html
   trunk/templates/en/archtocnombox.html
   trunk/templates/en/article.html
   trunk/templates/en/bounce.txt
   trunk/templates/en/checkdbs.txt
   trunk/templates/en/convert.txt
   trunk/templates/en/cronpass.txt
   trunk/templates/en/disabled.txt
   trunk/templates/en/emptyarchive.html
   trunk/templates/en/headfoot.html
   trunk/templates/en/help.txt
   trunk/templates/en/invite.txt
   trunk/templates/en/listinfo.html
   trunk/templates/en/masthead.txt
   trunk/templates/en/newlist.txt
   trunk/templates/en/nomoretoday.txt
   trunk/templates/en/options.html
   trunk/templates/en/postack.txt
   trunk/templates/en/postauth.txt
   trunk/templates/en/postheld.txt
   trunk/templates/en/private.html
   trunk/templates/en/probe.txt
   trunk/templates/en/refuse.txt
   trunk/templates/en/roster.html
   trunk/templates/en/subauth.txt
   trunk/templates/en/subscribe.html
   trunk/templates/en/subscribeack.txt
   trunk/templates/en/unsub.txt
   trunk/templates/en/unsubauth.txt
   trunk/templates/en/userpass.txt
   trunk/templates/en/verify.txt
   trunk/templates/es/admindbdetails.html
   trunk/templates/es/admindbpreamble.html
   trunk/templates/es/admindbsummary.html
   trunk/templates/es/adminsubscribeack.txt
   trunk/templates/es/adminunsubscribeack.txt
   trunk/templates/es/admlogin.html
   trunk/templates/es/approve.txt
   trunk/templates/es/archidxentry.html
   trunk/templates/es/archidxfoot.html
   trunk/templates/es/archidxhead.html
   trunk/templates/es/archlistend.html
   trunk/templates/es/archliststart.html
   trunk/templates/es/archtoc.html
   trunk/templates/es/archtocentry.html
   trunk/templates/es/archtocnombox.html
   trunk/templates/es/article.html
   trunk/templates/es/bounce.txt
   trunk/templates/es/checkdbs.txt
   trunk/templates/es/convert.txt
   trunk/templates/es/cronpass.txt
   trunk/templates/es/disabled.txt
   trunk/templates/es/emptyarchive.html
   trunk/templates/es/handle_opts.html
   trunk/templates/es/headfoot.html
   trunk/templates/es/help.txt
   trunk/templates/es/invite.txt
   trunk/templates/es/listinfo.html
   trunk/templates/es/masthead.txt
   trunk/templates/es/newlist.txt
   trunk/templates/es/nomoretoday.txt
   trunk/templates/es/options.html
   trunk/templates/es/postack.txt
   trunk/templates/es/postauth.txt
   trunk/templates/es/postheld.txt
   trunk/templates/es/private.html
   trunk/templates/es/probe.txt
   trunk/templates/es/refuse.txt
   trunk/templates/es/roster.html
   trunk/templates/es/subauth.txt
   trunk/templates/es/subscribe.html
   trunk/templates/es/subscribeack.txt
   trunk/templates/es/unsub.txt
   trunk/templates/es/unsubauth.txt
   trunk/templates/es/userpass.txt
   trunk/templates/es/verify.txt
   trunk/templates/et/admindbdetails.html
   trunk/templates/et/admindbpreamble.html
   trunk/templates/et/admindbsummary.html
   trunk/templates/et/adminsubscribeack.txt
   trunk/templates/et/adminunsubscribeack.txt
   trunk/templates/et/admlogin.html
   trunk/templates/et/approve.txt
   trunk/templates/et/article.html
   trunk/templates/et/bounce.txt
   trunk/templates/et/checkdbs.txt
   trunk/templates/et/convert.txt
   trunk/templates/et/cronpass.txt
   trunk/templates/et/disabled.txt
   trunk/templates/et/emptyarchive.html
   trunk/templates/et/headfoot.html
   trunk/templates/et/help.txt
   trunk/templates/et/invite.txt
   trunk/templates/et/listinfo.html
   trunk/templates/et/masthead.txt
   trunk/templates/et/newlist.txt
   trunk/templates/et/options.html
   trunk/templates/et/postack.txt
   trunk/templates/et/postauth.txt
   trunk/templates/et/postheld.txt
   trunk/templates/et/private.html
   trunk/templates/et/refuse.txt
   trunk/templates/et/roster.html
   trunk/templates/et/subauth.txt
   trunk/templates/et/subscribe.html
   trunk/templates/et/subscribeack.txt
   trunk/templates/et/unsub.txt
   trunk/templates/et/unsubauth.txt
   trunk/templates/et/userpass.txt
   trunk/templates/et/verify.txt
   trunk/templates/eu/admindbdetails.html
   trunk/templates/eu/admindbpreamble.html
   trunk/templates/eu/admindbsummary.html
   trunk/templates/eu/adminsubscribeack.txt
   trunk/templates/eu/adminunsubscribeack.txt
   trunk/templates/eu/admlogin.html
   trunk/templates/eu/approve.txt
   trunk/templates/eu/archidxentry.html
   trunk/templates/eu/archidxfoot.html
   trunk/templates/eu/archidxhead.html
   trunk/templates/eu/archlistend.html
   trunk/templates/eu/archliststart.html
   trunk/templates/eu/archtoc.html
   trunk/templates/eu/archtocentry.html
   trunk/templates/eu/article.html
   trunk/templates/eu/bounce.txt
   trunk/templates/eu/checkdbs.txt
   trunk/templates/eu/convert.txt
   trunk/templates/eu/cronpass.txt
   trunk/templates/eu/disabled.txt
   trunk/templates/eu/emptyarchive.html
   trunk/templates/eu/headfoot.html
   trunk/templates/eu/help.txt
   trunk/templates/eu/invite.txt
   trunk/templates/eu/listinfo.html
   trunk/templates/eu/masthead.txt
   trunk/templates/eu/newlist.txt
   trunk/templates/eu/nomoretoday.txt
   trunk/templates/eu/options.html
   trunk/templates/eu/postack.txt
   trunk/templates/eu/postauth.txt
   trunk/templates/eu/postheld.txt
   trunk/templates/eu/private.html
   trunk/templates/eu/refuse.txt
   trunk/templates/eu/roster.html
   trunk/templates/eu/subauth.txt
   trunk/templates/eu/subscribe.html
   trunk/templates/eu/subscribeack.txt
   trunk/templates/eu/unsub.txt
   trunk/templates/eu/unsubauth.txt
   trunk/templates/eu/userpass.txt
   trunk/templates/eu/verify.txt
   trunk/templates/fi/admindbdetails.html
   trunk/templates/fi/admindbpreamble.html
   trunk/templates/fi/admindbsummary.html
   trunk/templates/fi/adminsubscribeack.txt
   trunk/templates/fi/adminunsubscribeack.txt
   trunk/templates/fi/admlogin.html
   trunk/templates/fi/approve.txt
   trunk/templates/fi/article.html
   trunk/templates/fi/bounce.txt
   trunk/templates/fi/checkdbs.txt
   trunk/templates/fi/convert.txt
   trunk/templates/fi/cronpass.txt
   trunk/templates/fi/disabled.txt
   trunk/templates/fi/headfoot.html
   trunk/templates/fi/help.txt
   trunk/templates/fi/listinfo.html
   trunk/templates/fi/masthead.txt
   trunk/templates/fi/newlist.txt
   trunk/templates/fi/options.html
   trunk/templates/fi/postack.txt
   trunk/templates/fi/postauth.txt
   trunk/templates/fi/postheld.txt
   trunk/templates/fi/private.html
   trunk/templates/fi/refuse.txt
   trunk/templates/fi/roster.html
   trunk/templates/fi/subauth.txt
   trunk/templates/fi/subscribe.html
   trunk/templates/fi/subscribeack.txt
   trunk/templates/fi/unsub.txt
   trunk/templates/fi/unsubauth.txt
   trunk/templates/fi/userpass.txt
   trunk/templates/fi/verify.txt
   trunk/templates/fr/admindbdetails.html
   trunk/templates/fr/admindbpreamble.html
   trunk/templates/fr/admindbsummary.html
   trunk/templates/fr/adminsubscribeack.txt
   trunk/templates/fr/adminunsubscribeack.txt
   trunk/templates/fr/admlogin.html
   trunk/templates/fr/approve.txt
   trunk/templates/fr/archidxentry.html
   trunk/templates/fr/archidxfoot.html
   trunk/templates/fr/archidxhead.html
   trunk/templates/fr/archlistend.html
   trunk/templates/fr/archliststart.html
   trunk/templates/fr/archtoc.html
   trunk/templates/fr/archtocentry.html
   trunk/templates/fr/archtocnombox.html
   trunk/templates/fr/article.html
   trunk/templates/fr/bounce.txt
   trunk/templates/fr/checkdbs.txt
   trunk/templates/fr/convert.txt
   trunk/templates/fr/cronpass.txt
   trunk/templates/fr/disabled.txt
   trunk/templates/fr/emptyarchive.html
   trunk/templates/fr/handle_opts.html
   trunk/templates/fr/headfoot.html
   trunk/templates/fr/help.txt
   trunk/templates/fr/invite.txt
   trunk/templates/fr/listinfo.html
   trunk/templates/fr/masthead.txt
   trunk/templates/fr/newlist.txt
   trunk/templates/fr/nomoretoday.txt
   trunk/templates/fr/options.html
   trunk/templates/fr/postack.txt
   trunk/templates/fr/postauth.txt
   trunk/templates/fr/postheld.txt
   trunk/templates/fr/private.html
   trunk/templates/fr/probe.txt
   trunk/templates/fr/refuse.txt
   trunk/templates/fr/roster.html
   trunk/templates/fr/subauth.txt
   trunk/templates/fr/subscribe.html
   trunk/templates/fr/subscribeack.txt
   trunk/templates/fr/unsub.txt
   trunk/templates/fr/unsubauth.txt
   trunk/templates/fr/userpass.txt
   trunk/templates/fr/verify.txt
   trunk/templates/gl/admindbdetails.html
   trunk/templates/gl/admindbpreamble.html
   trunk/templates/gl/admindbsummary.html
   trunk/templates/gl/adminsubscribeack.txt
   trunk/templates/gl/adminunsubscribeack.txt
   trunk/templates/gl/admlogin.html
   trunk/templates/gl/approve.txt
   trunk/templates/gl/archidxentry.html
   trunk/templates/gl/archidxfoot.html
   trunk/templates/gl/archidxhead.html
   trunk/templates/gl/archlistend.html
   trunk/templates/gl/archliststart.html
   trunk/templates/gl/archtoc.html
   trunk/templates/gl/archtocentry.html
   trunk/templates/gl/article.html
   trunk/templates/gl/bounce.txt
   trunk/templates/gl/checkdbs.txt
   trunk/templates/gl/convert.txt
   trunk/templates/gl/cronpass.txt
   trunk/templates/gl/disabled.txt
   trunk/templates/gl/emptyarchive.html
   trunk/templates/gl/handle_opts.html
   trunk/templates/gl/headfoot.html
   trunk/templates/gl/help.txt
   trunk/templates/gl/invite.txt
   trunk/templates/gl/listinfo.html
   trunk/templates/gl/masthead.txt
   trunk/templates/gl/newlist.txt
   trunk/templates/gl/nomoretoday.txt
   trunk/templates/gl/options.html
   trunk/templates/gl/postack.txt
   trunk/templates/gl/postauth.txt
   trunk/templates/gl/postheld.txt
   trunk/templates/gl/private.html
   trunk/templates/gl/refuse.txt
   trunk/templates/gl/roster.html
   trunk/templates/gl/subauth.txt
   trunk/templates/gl/subscribe.html
   trunk/templates/gl/subscribeack.txt
   trunk/templates/gl/unsub.txt
   trunk/templates/gl/unsubauth.txt
   trunk/templates/gl/userpass.txt
   trunk/templates/gl/verify.txt
   trunk/templates/he/admindbdetails.html
   trunk/templates/he/admindbpreamble.html
   trunk/templates/he/admindbsummary.html
   trunk/templates/he/adminsubscribeack.txt
   trunk/templates/he/adminunsubscribeack.txt
   trunk/templates/he/admlogin.html
   trunk/templates/he/approve.txt
   trunk/templates/he/archidxentry.html
   trunk/templates/he/archidxfoot.html
   trunk/templates/he/archidxhead.html
   trunk/templates/he/archlistend.html
   trunk/templates/he/archliststart.html
   trunk/templates/he/archtoc.html
   trunk/templates/he/archtocentry.html
   trunk/templates/he/archtocnombox.html
   trunk/templates/he/article.html
   trunk/templates/he/bounce.txt
   trunk/templates/he/checkdbs.txt
   trunk/templates/he/convert.txt
   trunk/templates/he/cronpass.txt
   trunk/templates/he/disabled.txt
   trunk/templates/he/emptyarchive.html
   trunk/templates/he/headfoot.html
   trunk/templates/he/help.txt
   trunk/templates/he/invite.txt
   trunk/templates/he/listinfo.html
   trunk/templates/he/masthead.txt
   trunk/templates/he/newlist.txt
   trunk/templates/he/nomoretoday.txt
   trunk/templates/he/options.html
   trunk/templates/he/postack.txt
   trunk/templates/he/postauth.txt
   trunk/templates/he/postheld.txt
   trunk/templates/he/private.html
   trunk/templates/he/probe.txt
   trunk/templates/he/refuse.txt
   trunk/templates/he/roster.html
   trunk/templates/he/subauth.txt
   trunk/templates/he/subscribe.html
   trunk/templates/he/subscribeack.txt
   trunk/templates/he/unsub.txt
   trunk/templates/he/unsubauth.txt
   trunk/templates/he/userpass.txt
   trunk/templates/he/verify.txt
   trunk/templates/hr/admindbdetails.html
   trunk/templates/hr/admindbpreamble.html
   trunk/templates/hr/admindbsummary.html
   trunk/templates/hr/adminsubscribeack.txt
   trunk/templates/hr/adminunsubscribeack.txt
   trunk/templates/hr/admlogin.html
   trunk/templates/hr/approve.txt
   trunk/templates/hr/archidxentry.html
   trunk/templates/hr/archidxfoot.html
   trunk/templates/hr/archidxhead.html
   trunk/templates/hr/archlistend.html
   trunk/templates/hr/archliststart.html
   trunk/templates/hr/archtoc.html
   trunk/templates/hr/archtocentry.html
   trunk/templates/hr/article.html
   trunk/templates/hr/bounce.txt
   trunk/templates/hr/checkdbs.txt
   trunk/templates/hr/convert.txt
   trunk/templates/hr/cronpass.txt
   trunk/templates/hr/disabled.txt
   trunk/templates/hr/emptyarchive.html
   trunk/templates/hr/headfoot.html
   trunk/templates/hr/help.txt
   trunk/templates/hr/invite.txt
   trunk/templates/hr/listinfo.html
   trunk/templates/hr/masthead.txt
   trunk/templates/hr/newlist.txt
   trunk/templates/hr/nomoretoday.txt
   trunk/templates/hr/options.html
   trunk/templates/hr/postack.txt
   trunk/templates/hr/postauth.txt
   trunk/templates/hr/postheld.txt
   trunk/templates/hr/private.html
   trunk/templates/hr/refuse.txt
   trunk/templates/hr/roster.html
   trunk/templates/hr/subauth.txt
   trunk/templates/hr/subscribe.html
   trunk/templates/hr/subscribeack.txt
   trunk/templates/hr/unsub.txt
   trunk/templates/hr/unsubauth.txt
   trunk/templates/hr/userpass.txt
   trunk/templates/hr/verify.txt
   trunk/templates/hu/admindbdetails.html
   trunk/templates/hu/admindbpreamble.html
   trunk/templates/hu/admindbsummary.html
   trunk/templates/hu/adminsubscribeack.txt
   trunk/templates/hu/adminunsubscribeack.txt
   trunk/templates/hu/admlogin.html
   trunk/templates/hu/approve.txt
   trunk/templates/hu/archidxentry.html
   trunk/templates/hu/archidxfoot.html
   trunk/templates/hu/archidxhead.html
   trunk/templates/hu/archlistend.html
   trunk/templates/hu/archliststart.html
   trunk/templates/hu/archtoc.html
   trunk/templates/hu/archtocentry.html
   trunk/templates/hu/article.html
   trunk/templates/hu/bounce.txt
   trunk/templates/hu/checkdbs.txt
   trunk/templates/hu/convert.txt
   trunk/templates/hu/cronpass.txt
   trunk/templates/hu/disabled.txt
   trunk/templates/hu/emptyarchive.html
   trunk/templates/hu/headfoot.html
   trunk/templates/hu/help.txt
   trunk/templates/hu/illik.html
   trunk/templates/hu/invite.txt
   trunk/templates/hu/listinfo.html
   trunk/templates/hu/masthead.txt
   trunk/templates/hu/newlist.txt
   trunk/templates/hu/nomoretoday.txt
   trunk/templates/hu/options.html
   trunk/templates/hu/postack.txt
   trunk/templates/hu/postauth.txt
   trunk/templates/hu/postheld.txt
   trunk/templates/hu/private.html
   trunk/templates/hu/probe.txt
   trunk/templates/hu/refuse.txt
   trunk/templates/hu/roster.html
   trunk/templates/hu/subauth.txt
   trunk/templates/hu/subscribe.html
   trunk/templates/hu/subscribeack.txt
   trunk/templates/hu/unsub.txt
   trunk/templates/hu/unsubauth.txt
   trunk/templates/hu/userpass.txt
   trunk/templates/hu/verify.txt
   trunk/templates/ia/admindbdetails.html
   trunk/templates/ia/admindbpreamble.html
   trunk/templates/ia/admindbsummary.html
   trunk/templates/ia/adminsubscribeack.txt
   trunk/templates/ia/adminunsubscribeack.txt
   trunk/templates/ia/admlogin.html
   trunk/templates/ia/approve.txt
   trunk/templates/ia/archidxentry.html
   trunk/templates/ia/archidxfoot.html
   trunk/templates/ia/archidxhead.html
   trunk/templates/ia/archlistend.html
   trunk/templates/ia/archliststart.html
   trunk/templates/ia/archtoc.html
   trunk/templates/ia/archtocentry.html
   trunk/templates/ia/archtocnombox.html
   trunk/templates/ia/article.html
   trunk/templates/ia/bounce.txt
   trunk/templates/ia/checkdbs.txt
   trunk/templates/ia/convert.txt
   trunk/templates/ia/cronpass.txt
   trunk/templates/ia/disabled.txt
   trunk/templates/ia/emptyarchive.html
   trunk/templates/ia/headfoot.html
   trunk/templates/ia/help.txt
   trunk/templates/ia/invite.txt
   trunk/templates/ia/listinfo.html
   trunk/templates/ia/masthead.txt
   trunk/templates/ia/newlist.txt
   trunk/templates/ia/nomoretoday.txt
   trunk/templates/ia/options.html
   trunk/templates/ia/postack.txt
   trunk/templates/ia/postauth.txt
   trunk/templates/ia/postheld.txt
   trunk/templates/ia/private.html
   trunk/templates/ia/probe.txt
   trunk/templates/ia/refuse.txt
   trunk/templates/ia/roster.html
   trunk/templates/ia/subauth.txt
   trunk/templates/ia/subscribe.html
   trunk/templates/ia/subscribeack.txt
   trunk/templates/ia/unsub.txt
   trunk/templates/ia/unsubauth.txt
   trunk/templates/ia/userpass.txt
   trunk/templates/ia/verify.txt
   trunk/templates/it/admindbdetails.html
   trunk/templates/it/admindbpreamble.html
   trunk/templates/it/admindbsummary.html
   trunk/templates/it/adminsubscribeack.txt
   trunk/templates/it/adminunsubscribeack.txt
   trunk/templates/it/admlogin.html
   trunk/templates/it/approve.txt
   trunk/templates/it/archidxentry.html
   trunk/templates/it/archidxfoot.html
   trunk/templates/it/archidxhead.html
   trunk/templates/it/archlistend.html
   trunk/templates/it/archliststart.html
   trunk/templates/it/archtoc.html
   trunk/templates/it/archtocentry.html
   trunk/templates/it/archtocnombox.html
   trunk/templates/it/article.html
   trunk/templates/it/bounce.txt
   trunk/templates/it/checkdbs.txt
   trunk/templates/it/convert.txt
   trunk/templates/it/cronpass.txt
   trunk/templates/it/disabled.txt
   trunk/templates/it/emptyarchive.html
   trunk/templates/it/headfoot.html
   trunk/templates/it/help.txt
   trunk/templates/it/invite.txt
   trunk/templates/it/listinfo.html
   trunk/templates/it/masthead.txt
   trunk/templates/it/newlist.txt
   trunk/templates/it/nomoretoday.txt
   trunk/templates/it/options.html
   trunk/templates/it/postack.txt
   trunk/templates/it/postauth.txt
   trunk/templates/it/postheld.txt
   trunk/templates/it/private.html
   trunk/templates/it/probe.txt
   trunk/templates/it/refuse.txt
   trunk/templates/it/roster.html
   trunk/templates/it/subauth.txt
   trunk/templates/it/subscribe.html
   trunk/templates/it/subscribeack.txt
   trunk/templates/it/unsub.txt
   trunk/templates/it/unsubauth.txt
   trunk/templates/it/userpass.txt
   trunk/templates/it/verify.txt
   trunk/templates/ja/admindbdetails.html
   trunk/templates/ja/admindbpreamble.html
   trunk/templates/ja/admindbsummary.html
   trunk/templates/ja/adminsubscribeack.txt
   trunk/templates/ja/adminunsubscribeack.txt
   trunk/templates/ja/admlogin.html
   trunk/templates/ja/approve.txt
   trunk/templates/ja/archidxentry.html
   trunk/templates/ja/archidxfoot.html
   trunk/templates/ja/archidxhead.html
   trunk/templates/ja/archlistend.html
   trunk/templates/ja/archliststart.html
   trunk/templates/ja/archtoc.html
   trunk/templates/ja/archtocentry.html
   trunk/templates/ja/archtocnombox.html
   trunk/templates/ja/article.html
   trunk/templates/ja/bounce.txt
   trunk/templates/ja/checkdbs.txt
   trunk/templates/ja/convert.txt
   trunk/templates/ja/cronpass.txt
   trunk/templates/ja/disabled.txt
   trunk/templates/ja/emptyarchive.html
   trunk/templates/ja/headfoot.html
   trunk/templates/ja/help.txt
   trunk/templates/ja/invite.txt
   trunk/templates/ja/listinfo.html
   trunk/templates/ja/masthead.txt
   trunk/templates/ja/newlist.txt
   trunk/templates/ja/nomoretoday.txt
   trunk/templates/ja/options.html
   trunk/templates/ja/postack.txt
   trunk/templates/ja/postauth.txt
   trunk/templates/ja/postheld.txt
   trunk/templates/ja/private.html
   trunk/templates/ja/probe.txt
   trunk/templates/ja/refuse.txt
   trunk/templates/ja/roster.html
   trunk/templates/ja/subauth.txt
   trunk/templates/ja/subscribe.html
   trunk/templates/ja/subscribeack.txt
   trunk/templates/ja/unsub.txt
   trunk/templates/ja/unsubauth.txt
   trunk/templates/ja/userpass.txt
   trunk/templates/ja/verify.txt
   trunk/templates/ko/admindbdetails.html
   trunk/templates/ko/admindbpreamble.html
   trunk/templates/ko/admindbsummary.html
   trunk/templates/ko/adminsubscribeack.txt
   trunk/templates/ko/adminunsubscribeack.txt
   trunk/templates/ko/admlogin.html
   trunk/templates/ko/approve.txt
   trunk/templates/ko/article.html
   trunk/templates/ko/bounce.txt
   trunk/templates/ko/checkdbs.txt
   trunk/templates/ko/convert.txt
   trunk/templates/ko/cronpass.txt
   trunk/templates/ko/disabled.txt
   trunk/templates/ko/emptyarchive.html
   trunk/templates/ko/headfoot.html
   trunk/templates/ko/help.txt
   trunk/templates/ko/invite.txt
   trunk/templates/ko/listinfo.html
   trunk/templates/ko/masthead.txt
   trunk/templates/ko/newlist.txt
   trunk/templates/ko/options.html
   trunk/templates/ko/postack.txt
   trunk/templates/ko/postauth.txt
   trunk/templates/ko/postheld.txt
   trunk/templates/ko/private.html
   trunk/templates/ko/refuse.txt
   trunk/templates/ko/roster.html
   trunk/templates/ko/subauth.txt
   trunk/templates/ko/subscribe.html
   trunk/templates/ko/subscribeack.txt
   trunk/templates/ko/unsub.txt
   trunk/templates/ko/unsubauth.txt
   trunk/templates/ko/userpass.txt
   trunk/templates/ko/verify.txt
   trunk/templates/lt/admindbdetails.html
   trunk/templates/lt/admindbpreamble.html
   trunk/templates/lt/admindbsummary.html
   trunk/templates/lt/adminsubscribeack.txt
   trunk/templates/lt/adminunsubscribeack.txt
   trunk/templates/lt/admlogin.html
   trunk/templates/lt/approve.txt
   trunk/templates/lt/archidxentry.html
   trunk/templates/lt/archidxfoot.html
   trunk/templates/lt/archidxhead.html
   trunk/templates/lt/archlistend.html
   trunk/templates/lt/archliststart.html
   trunk/templates/lt/archtoc.html
   trunk/templates/lt/archtocentry.html
   trunk/templates/lt/article.html
   trunk/templates/lt/bounce.txt
   trunk/templates/lt/checkdbs.txt
   trunk/templates/lt/convert.txt
   trunk/templates/lt/cronpass.txt
   trunk/templates/lt/disabled.txt
   trunk/templates/lt/emptyarchive.html
   trunk/templates/lt/headfoot.html
   trunk/templates/lt/help.txt
   trunk/templates/lt/invite.txt
   trunk/templates/lt/listinfo.html
   trunk/templates/lt/masthead.txt
   trunk/templates/lt/newlist.txt
   trunk/templates/lt/nomoretoday.txt
   trunk/templates/lt/options.html
   trunk/templates/lt/postack.txt
   trunk/templates/lt/postauth.txt
   trunk/templates/lt/postheld.txt
   trunk/templates/lt/private.html
   trunk/templates/lt/refuse.txt
   trunk/templates/lt/roster.html
   trunk/templates/lt/subauth.txt
   trunk/templates/lt/subscribe.html
   trunk/templates/lt/subscribeack.txt
   trunk/templates/lt/unsub.txt
   trunk/templates/lt/unsubauth.txt
   trunk/templates/lt/userpass.txt
   trunk/templates/lt/verify.txt
   trunk/templates/nl/admindbdetails.html
   trunk/templates/nl/admindbpreamble.html
   trunk/templates/nl/admindbsummary.html
   trunk/templates/nl/adminsubscribeack.txt
   trunk/templates/nl/adminunsubscribeack.txt
   trunk/templates/nl/admlogin.html
   trunk/templates/nl/approve.txt
   trunk/templates/nl/archidxentry.html
   trunk/templates/nl/archidxfoot.html
   trunk/templates/nl/archidxhead.html
   trunk/templates/nl/archlistend.html
   trunk/templates/nl/archliststart.html
   trunk/templates/nl/archtoc.html
   trunk/templates/nl/archtocentry.html
   trunk/templates/nl/archtocnombox.html
   trunk/templates/nl/article.html
   trunk/templates/nl/bounce.txt
   trunk/templates/nl/checkdbs.txt
   trunk/templates/nl/convert.txt
   trunk/templates/nl/cronpass.txt
   trunk/templates/nl/disabled.txt
   trunk/templates/nl/emptyarchive.html
   trunk/templates/nl/headfoot.html
   trunk/templates/nl/help.txt
   trunk/templates/nl/invite.txt
   trunk/templates/nl/listinfo.html
   trunk/templates/nl/masthead.txt
   trunk/templates/nl/newlist.txt
   trunk/templates/nl/nomoretoday.txt
   trunk/templates/nl/options.html
   trunk/templates/nl/postack.txt
   trunk/templates/nl/postauth.txt
   trunk/templates/nl/postheld.txt
   trunk/templates/nl/private.html
   trunk/templates/nl/probe.txt
   trunk/templates/nl/refuse.txt
   trunk/templates/nl/roster.html
   trunk/templates/nl/subauth.txt
   trunk/templates/nl/subscribe.html
   trunk/templates/nl/subscribeack.txt
   trunk/templates/nl/unsub.txt
   trunk/templates/nl/unsubauth.txt
   trunk/templates/nl/userpass.txt
   trunk/templates/nl/verify.txt
   trunk/templates/no/admindbdetails.html
   trunk/templates/no/admindbpreamble.html
   trunk/templates/no/admindbsummary.html
   trunk/templates/no/adminsubscribeack.txt
   trunk/templates/no/adminunsubscribeack.txt
   trunk/templates/no/admlogin.html
   trunk/templates/no/approve.txt
   trunk/templates/no/archidxfoot.html
   trunk/templates/no/archidxhead.html
   trunk/templates/no/archliststart.html
   trunk/templates/no/archtoc.html
   trunk/templates/no/archtocentry.html
   trunk/templates/no/archtocnombox.html
   trunk/templates/no/article.html
   trunk/templates/no/bounce.txt
   trunk/templates/no/checkdbs.txt
   trunk/templates/no/convert.txt
   trunk/templates/no/cronpass.txt
   trunk/templates/no/disabled.txt
   trunk/templates/no/emptyarchive.html
   trunk/templates/no/headfoot.html
   trunk/templates/no/help.txt
   trunk/templates/no/invite.txt
   trunk/templates/no/listinfo.html
   trunk/templates/no/masthead.txt
   trunk/templates/no/newlist.txt
   trunk/templates/no/nomoretoday.txt
   trunk/templates/no/options.html
   trunk/templates/no/postack.txt
   trunk/templates/no/postauth.txt
   trunk/templates/no/postheld.txt
   trunk/templates/no/private.html
   trunk/templates/no/refuse.txt
   trunk/templates/no/roster.html
   trunk/templates/no/subauth.txt
   trunk/templates/no/subscribe.html
   trunk/templates/no/subscribeack.txt
   trunk/templates/no/unsub.txt
   trunk/templates/no/unsubauth.txt
   trunk/templates/no/userpass.txt
   trunk/templates/no/verify.txt
   trunk/templates/pl/admindbdetails.html
   trunk/templates/pl/admindbpreamble.html
   trunk/templates/pl/admindbsummary.html
   trunk/templates/pl/adminsubscribeack.txt
   trunk/templates/pl/adminunsubscribeack.txt
   trunk/templates/pl/admlogin.html
   trunk/templates/pl/approve.txt
   trunk/templates/pl/archidxentry.html
   trunk/templates/pl/archidxfoot.html
   trunk/templates/pl/archidxhead.html
   trunk/templates/pl/archlistend.html
   trunk/templates/pl/archliststart.html
   trunk/templates/pl/archtoc.html
   trunk/templates/pl/archtocentry.html
   trunk/templates/pl/archtocnombox.html
   trunk/templates/pl/article.html
   trunk/templates/pl/bounce.txt
   trunk/templates/pl/checkdbs.txt
   trunk/templates/pl/convert.txt
   trunk/templates/pl/cronpass.txt
   trunk/templates/pl/disabled.txt
   trunk/templates/pl/emptyarchive.html
   trunk/templates/pl/headfoot.html
   trunk/templates/pl/help.txt
   trunk/templates/pl/invite.txt
   trunk/templates/pl/listinfo.html
   trunk/templates/pl/masthead.txt
   trunk/templates/pl/newlist.txt
   trunk/templates/pl/nomoretoday.txt
   trunk/templates/pl/options.html
   trunk/templates/pl/postack.txt
   trunk/templates/pl/postauth.txt
   trunk/templates/pl/postheld.txt
   trunk/templates/pl/private.html
   trunk/templates/pl/refuse.txt
   trunk/templates/pl/roster.html
   trunk/templates/pl/subauth.txt
   trunk/templates/pl/subscribe.html
   trunk/templates/pl/subscribeack.txt
   trunk/templates/pl/unsub.txt
   trunk/templates/pl/unsubauth.txt
   trunk/templates/pl/userpass.txt
   trunk/templates/pl/verify.txt
   trunk/templates/pt/admindbdetails.html
   trunk/templates/pt/admindbpreamble.html
   trunk/templates/pt/admindbsummary.html
   trunk/templates/pt/adminsubscribeack.txt
   trunk/templates/pt/adminunsubscribeack.txt
   trunk/templates/pt/admlogin.html
   trunk/templates/pt/approve.txt
   trunk/templates/pt/archidxentry.html
   trunk/templates/pt/archidxfoot.html
   trunk/templates/pt/archidxhead.html
   trunk/templates/pt/archlistend.html
   trunk/templates/pt/archliststart.html
   trunk/templates/pt/archtoc.html
   trunk/templates/pt/archtocentry.html
   trunk/templates/pt/article.html
   trunk/templates/pt/bounce.txt
   trunk/templates/pt/checkdbs.txt
   trunk/templates/pt/convert.txt
   trunk/templates/pt/cronpass.txt
   trunk/templates/pt/disabled.txt
   trunk/templates/pt/emptyarchive.html
   trunk/templates/pt/headfoot.html
   trunk/templates/pt/help.txt
   trunk/templates/pt/invite.txt
   trunk/templates/pt/listinfo.html
   trunk/templates/pt/masthead.txt
   trunk/templates/pt/newlist.txt
   trunk/templates/pt/nomoretoday.txt
   trunk/templates/pt/options.html
   trunk/templates/pt/postack.txt
   trunk/templates/pt/postauth.txt
   trunk/templates/pt/postheld.txt
   trunk/templates/pt/private.html
   trunk/templates/pt/refuse.txt
   trunk/templates/pt/roster.html
   trunk/templates/pt/subauth.txt
   trunk/templates/pt/subscribe.html
   trunk/templates/pt/subscribeack.txt
   trunk/templates/pt/unsub.txt
   trunk/templates/pt/unsubauth.txt
   trunk/templates/pt/userpass.txt
   trunk/templates/pt/verify.txt
   trunk/templates/pt_BR/admindbdetails.html
   trunk/templates/pt_BR/admindbpreamble.html
   trunk/templates/pt_BR/admindbsummary.html
   trunk/templates/pt_BR/adminsubscribeack.txt
   trunk/templates/pt_BR/adminunsubscribeack.txt
   trunk/templates/pt_BR/admlogin.html
   trunk/templates/pt_BR/approve.txt
   trunk/templates/pt_BR/archidxentry.html
   trunk/templates/pt_BR/archidxfoot.html
   trunk/templates/pt_BR/archidxhead.html
   trunk/templates/pt_BR/archlistend.html
   trunk/templates/pt_BR/archliststart.html
   trunk/templates/pt_BR/archtoc.html
   trunk/templates/pt_BR/archtocentry.html
   trunk/templates/pt_BR/article.html
   trunk/templates/pt_BR/bounce.txt
   trunk/templates/pt_BR/checkdbs.txt
   trunk/templates/pt_BR/convert.txt
   trunk/templates/pt_BR/cronpass.txt
   trunk/templates/pt_BR/disabled.txt
   trunk/templates/pt_BR/emptyarchive.html
   trunk/templates/pt_BR/headfoot.html
   trunk/templates/pt_BR/help.txt
   trunk/templates/pt_BR/invite.txt
   trunk/templates/pt_BR/listinfo.html
   trunk/templates/pt_BR/masthead.txt
   trunk/templates/pt_BR/newlist.txt
   trunk/templates/pt_BR/nomoretoday.txt
   trunk/templates/pt_BR/options.html
   trunk/templates/pt_BR/postack.txt
   trunk/templates/pt_BR/postauth.txt
   trunk/templates/pt_BR/postheld.txt
   trunk/templates/pt_BR/private.html
   trunk/templates/pt_BR/refuse.txt
   trunk/templates/pt_BR/roster.html
   trunk/templates/pt_BR/subauth.txt
   trunk/templates/pt_BR/subscribe.html
   trunk/templates/pt_BR/subscribeack.txt
   trunk/templates/pt_BR/unsub.txt
   trunk/templates/pt_BR/unsubauth.txt
   trunk/templates/pt_BR/userpass.txt
   trunk/templates/pt_BR/verify.txt
   trunk/templates/ro/admindbdetails.html
   trunk/templates/ro/admindbpreamble.html
   trunk/templates/ro/admindbsummary.html
   trunk/templates/ro/adminsubscribeack.txt
   trunk/templates/ro/adminunsubscribeack.txt
   trunk/templates/ro/admlogin.html
   trunk/templates/ro/approve.txt
   trunk/templates/ro/archidxentry.html
   trunk/templates/ro/archidxfoot.html
   trunk/templates/ro/archidxhead.html
   trunk/templates/ro/archlistend.html
   trunk/templates/ro/archliststart.html
   trunk/templates/ro/archtoc.html
   trunk/templates/ro/archtocentry.html
   trunk/templates/ro/article.html
   trunk/templates/ro/bounce.txt
   trunk/templates/ro/checkdbs.txt
   trunk/templates/ro/convert.txt
   trunk/templates/ro/cronpass.txt
   trunk/templates/ro/disabled.txt
   trunk/templates/ro/emptyarchive.html
   trunk/templates/ro/headfoot.html
   trunk/templates/ro/help.txt
   trunk/templates/ro/invite.txt
   trunk/templates/ro/listinfo.html
   trunk/templates/ro/masthead.txt
   trunk/templates/ro/newlist.txt
   trunk/templates/ro/nomoretoday.txt
   trunk/templates/ro/options.html
   trunk/templates/ro/postack.txt
   trunk/templates/ro/postauth.txt
   trunk/templates/ro/postheld.txt
   trunk/templates/ro/private.html
   trunk/templates/ro/refuse.txt
   trunk/templates/ro/roster.html
   trunk/templates/ro/subauth.txt
   trunk/templates/ro/subscribe.html
   trunk/templates/ro/subscribeack.txt
   trunk/templates/ro/unsub.txt
   trunk/templates/ro/unsubauth.txt
   trunk/templates/ro/userpass.txt
   trunk/templates/ro/verify.txt
   trunk/templates/ru/Makefile
   trunk/templates/ru/admindbdetails.html
   trunk/templates/ru/admindbpreamble.html
   trunk/templates/ru/admindbsummary.html
   trunk/templates/ru/adminsubscribeack.txt
   trunk/templates/ru/adminunsubscribeack.txt
   trunk/templates/ru/admlogin.html
   trunk/templates/ru/approve.txt
   trunk/templates/ru/archidxentry.html
   trunk/templates/ru/archidxfoot.html
   trunk/templates/ru/archidxhead.html
   trunk/templates/ru/archlistend.html
   trunk/templates/ru/archliststart.html
   trunk/templates/ru/archtoc.html
   trunk/templates/ru/archtocentry.html
   trunk/templates/ru/archtocnombox.html
   trunk/templates/ru/article.html
   trunk/templates/ru/bounce.txt
   trunk/templates/ru/checkdbs.txt
   trunk/templates/ru/convert.txt
   trunk/templates/ru/cronpass.txt
   trunk/templates/ru/disabled.txt
   trunk/templates/ru/emptyarchive.html
   trunk/templates/ru/headfoot.html
   trunk/templates/ru/help.txt
   trunk/templates/ru/invite.txt
   trunk/templates/ru/listinfo.html
   trunk/templates/ru/masthead.txt
   trunk/templates/ru/newlist.txt
   trunk/templates/ru/nomoretoday.txt
   trunk/templates/ru/options.html
   trunk/templates/ru/postack.txt
   trunk/templates/ru/postauth.txt
   trunk/templates/ru/postheld.txt
   trunk/templates/ru/private.html
   trunk/templates/ru/probe.txt
   trunk/templates/ru/refuse.txt
   trunk/templates/ru/roster.html
   trunk/templates/ru/s2s.py
   trunk/templates/ru/status
   trunk/templates/ru/subauth.txt
   trunk/templates/ru/subscribe.html
   trunk/templates/ru/subscribeack.txt
   trunk/templates/ru/unsub.txt
   trunk/templates/ru/unsubauth.txt
   trunk/templates/ru/userpass.txt
   trunk/templates/ru/verify.txt
   trunk/templates/sk/admindbdetails.html
   trunk/templates/sk/admindbpreamble.html
   trunk/templates/sk/admindbsummary.html
   trunk/templates/sk/adminsubscribeack.txt
   trunk/templates/sk/adminunsubscribeack.txt
   trunk/templates/sk/admlogin.html
   trunk/templates/sk/approve.txt
   trunk/templates/sk/archidxentry.html
   trunk/templates/sk/archidxfoot.html
   trunk/templates/sk/archidxhead.html
   trunk/templates/sk/archlistend.html
   trunk/templates/sk/archliststart.html
   trunk/templates/sk/archtoc.html
   trunk/templates/sk/archtocentry.html
   trunk/templates/sk/archtocnombox.html
   trunk/templates/sk/article.html
   trunk/templates/sk/bounce.txt
   trunk/templates/sk/checkdbs.txt
   trunk/templates/sk/convert.txt
   trunk/templates/sk/cronpass.txt
   trunk/templates/sk/disabled.txt
   trunk/templates/sk/emptyarchive.html
   trunk/templates/sk/headfoot.html
   trunk/templates/sk/help.txt
   trunk/templates/sk/invite.txt
   trunk/templates/sk/listinfo.html
   trunk/templates/sk/masthead.txt
   trunk/templates/sk/newlist.txt
   trunk/templates/sk/nomoretoday.txt
   trunk/templates/sk/options.html
   trunk/templates/sk/postack.txt
   trunk/templates/sk/postauth.txt
   trunk/templates/sk/postheld.txt
   trunk/templates/sk/private.html
   trunk/templates/sk/probe.txt
   trunk/templates/sk/refuse.txt
   trunk/templates/sk/roster.html
   trunk/templates/sk/subauth.txt
   trunk/templates/sk/subscribe.html
   trunk/templates/sk/subscribeack.txt
   trunk/templates/sk/unsub.txt
   trunk/templates/sk/unsubauth.txt
   trunk/templates/sk/userpass.txt
   trunk/templates/sk/verify.txt
   trunk/templates/sl/admindbdetails.html
   trunk/templates/sl/admindbpreamble.html
   trunk/templates/sl/admindbsummary.html
   trunk/templates/sl/adminsubscribeack.txt
   trunk/templates/sl/adminunsubscribeack.txt
   trunk/templates/sl/admlogin.html
   trunk/templates/sl/approve.txt
   trunk/templates/sl/archidxentry.html
   trunk/templates/sl/archidxfoot.html
   trunk/templates/sl/archidxhead.html
   trunk/templates/sl/archlistend.html
   trunk/templates/sl/archliststart.html
   trunk/templates/sl/archtoc.html
   trunk/templates/sl/archtocentry.html
   trunk/templates/sl/article.html
   trunk/templates/sl/bounce.txt
   trunk/templates/sl/checkdbs.txt
   trunk/templates/sl/convert.txt
   trunk/templates/sl/cronpass.txt
   trunk/templates/sl/disabled.txt
   trunk/templates/sl/emptyarchive.html
   trunk/templates/sl/headfoot.html
   trunk/templates/sl/help.txt
   trunk/templates/sl/invite.txt
   trunk/templates/sl/listinfo.html
   trunk/templates/sl/masthead.txt
   trunk/templates/sl/newlist.txt
   trunk/templates/sl/nomoretoday.txt
   trunk/templates/sl/options.html
   trunk/templates/sl/postack.txt
   trunk/templates/sl/postauth.txt
   trunk/templates/sl/postheld.txt
   trunk/templates/sl/private.html
   trunk/templates/sl/refuse.txt
   trunk/templates/sl/roster.html
   trunk/templates/sl/subauth.txt
   trunk/templates/sl/subscribe.html
   trunk/templates/sl/subscribeack.txt
   trunk/templates/sl/unsub.txt
   trunk/templates/sl/unsubauth.txt
   trunk/templates/sl/userpass.txt
   trunk/templates/sl/verify.txt
   trunk/templates/sr/admindbdetails.html
   trunk/templates/sr/admindbpreamble.html
   trunk/templates/sr/admindbsummary.html
   trunk/templates/sr/adminsubscribeack.txt
   trunk/templates/sr/adminunsubscribeack.txt
   trunk/templates/sr/admlogin.html
   trunk/templates/sr/approve.txt
   trunk/templates/sr/archidxentry.html
   trunk/templates/sr/archidxfoot.html
   trunk/templates/sr/archidxhead.html
   trunk/templates/sr/archlistend.html
   trunk/templates/sr/archliststart.html
   trunk/templates/sr/archtoc.html
   trunk/templates/sr/archtocentry.html
   trunk/templates/sr/article.html
   trunk/templates/sr/bounce.txt
   trunk/templates/sr/checkdbs.txt
   trunk/templates/sr/convert.txt
   trunk/templates/sr/cronpass.txt
   trunk/templates/sr/disabled.txt
   trunk/templates/sr/emptyarchive.html
   trunk/templates/sr/handle_opts.html
   trunk/templates/sr/headfoot.html
   trunk/templates/sr/help.txt
   trunk/templates/sr/invite.txt
   trunk/templates/sr/listinfo.html
   trunk/templates/sr/masthead.txt
   trunk/templates/sr/newlist.txt
   trunk/templates/sr/nomoretoday.txt
   trunk/templates/sr/options.html
   trunk/templates/sr/postack.txt
   trunk/templates/sr/postauth.txt
   trunk/templates/sr/postheld.txt
   trunk/templates/sr/private.html
   trunk/templates/sr/refuse.txt
   trunk/templates/sr/roster.html
   trunk/templates/sr/subauth.txt
   trunk/templates/sr/subscribe.html
   trunk/templates/sr/subscribeack.txt
   trunk/templates/sr/unsub.txt
   trunk/templates/sr/unsubauth.txt
   trunk/templates/sr/userpass.txt
   trunk/templates/sr/verify.txt
   trunk/templates/sv/admindbdetails.html
   trunk/templates/sv/admindbpreamble.html
   trunk/templates/sv/admindbsummary.html
   trunk/templates/sv/adminsubscribeack.txt
   trunk/templates/sv/adminunsubscribeack.txt
   trunk/templates/sv/admlogin.html
   trunk/templates/sv/approve.txt
   trunk/templates/sv/archtoc.html
   trunk/templates/sv/archtocentry.html
   trunk/templates/sv/article.html
   trunk/templates/sv/bounce.txt
   trunk/templates/sv/checkdbs.txt
   trunk/templates/sv/convert.txt
   trunk/templates/sv/cronpass.txt
   trunk/templates/sv/disabled.txt
   trunk/templates/sv/emptyarchive.html
   trunk/templates/sv/headfoot.html
   trunk/templates/sv/help.txt
   trunk/templates/sv/invite.txt
   trunk/templates/sv/listinfo.html
   trunk/templates/sv/masthead.txt
   trunk/templates/sv/newlist.txt
   trunk/templates/sv/nomoretoday.txt
   trunk/templates/sv/options.html
   trunk/templates/sv/postack.txt
   trunk/templates/sv/postauth.txt
   trunk/templates/sv/postheld.txt
   trunk/templates/sv/private.html
   trunk/templates/sv/refuse.txt
   trunk/templates/sv/roster.html
   trunk/templates/sv/subauth.txt
   trunk/templates/sv/subscribe.html
   trunk/templates/sv/subscribeack.txt
   trunk/templates/sv/unsub.txt
   trunk/templates/sv/unsubauth.txt
   trunk/templates/sv/userpass.txt
   trunk/templates/sv/verify.txt
   trunk/templates/tr/admindbdetails.html
   trunk/templates/tr/admindbpreamble.html
   trunk/templates/tr/admindbsummary.html
   trunk/templates/tr/adminsubscribeack.txt
   trunk/templates/tr/adminunsubscribeack.txt
   trunk/templates/tr/admlogin.html
   trunk/templates/tr/approve.txt
   trunk/templates/tr/archidxentry.html
   trunk/templates/tr/archidxfoot.html
   trunk/templates/tr/archidxhead.html
   trunk/templates/tr/archlistend.html
   trunk/templates/tr/archliststart.html
   trunk/templates/tr/archtoc.html
   trunk/templates/tr/archtocentry.html
   trunk/templates/tr/archtocnombox.html
   trunk/templates/tr/article.html
   trunk/templates/tr/bounce.txt
   trunk/templates/tr/checkdbs.txt
   trunk/templates/tr/convert.txt
   trunk/templates/tr/cronpass.txt
   trunk/templates/tr/disabled.txt
   trunk/templates/tr/emptyarchive.html
   trunk/templates/tr/headfoot.html
   trunk/templates/tr/help.txt
   trunk/templates/tr/invite.txt
   trunk/templates/tr/listinfo.html
   trunk/templates/tr/masthead.txt
   trunk/templates/tr/newlist.txt
   trunk/templates/tr/nomoretoday.txt
   trunk/templates/tr/options.html
   trunk/templates/tr/postack.txt
   trunk/templates/tr/postauth.txt
   trunk/templates/tr/postheld.txt
   trunk/templates/tr/private.html
   trunk/templates/tr/refuse.txt
   trunk/templates/tr/roster.html
   trunk/templates/tr/subauth.txt
   trunk/templates/tr/subscribe.html
   trunk/templates/tr/subscribeack.txt
   trunk/templates/tr/unsub.txt
   trunk/templates/tr/unsubauth.txt
   trunk/templates/tr/userpass.txt
   trunk/templates/tr/verify.txt
   trunk/templates/uk/admindbdetails.html
   trunk/templates/uk/admindbpreamble.html
   trunk/templates/uk/admindbsummary.html
   trunk/templates/uk/adminsubscribeack.txt
   trunk/templates/uk/adminunsubscribeack.txt
   trunk/templates/uk/admlogin.html
   trunk/templates/uk/approve.txt
   trunk/templates/uk/archidxentry.html
   trunk/templates/uk/archidxfoot.html
   trunk/templates/uk/archidxhead.html
   trunk/templates/uk/archlistend.html
   trunk/templates/uk/archliststart.html
   trunk/templates/uk/archtoc.html
   trunk/templates/uk/archtocentry.html
   trunk/templates/uk/archtocnombox.html
   trunk/templates/uk/article.html
   trunk/templates/uk/bounce.txt
   trunk/templates/uk/checkdbs.txt
   trunk/templates/uk/convert.txt
   trunk/templates/uk/cronpass.txt
   trunk/templates/uk/disabled.txt
   trunk/templates/uk/emptyarchive.html
   trunk/templates/uk/headfoot.html
   trunk/templates/uk/help.txt
   trunk/templates/uk/invite.txt
   trunk/templates/uk/listinfo.html
   trunk/templates/uk/masthead.txt
   trunk/templates/uk/newlist.txt
   trunk/templates/uk/nomoretoday.txt
   trunk/templates/uk/options.html
   trunk/templates/uk/postack.txt
   trunk/templates/uk/postauth.txt
   trunk/templates/uk/postheld.txt
   trunk/templates/uk/private.html
   trunk/templates/uk/probe.txt
   trunk/templates/uk/refuse.txt
   trunk/templates/uk/roster.html
   trunk/templates/uk/subauth.txt
   trunk/templates/uk/subscribe.html
   trunk/templates/uk/subscribeack.txt
   trunk/templates/uk/unsub.txt
   trunk/templates/uk/unsubauth.txt
   trunk/templates/uk/userpass.txt
   trunk/templates/uk/verify.txt
   trunk/templates/vi/admindbdetails.html
   trunk/templates/vi/admindbpreamble.html
   trunk/templates/vi/admindbsummary.html
   trunk/templates/vi/adminsubscribeack.txt
   trunk/templates/vi/adminunsubscribeack.txt
   trunk/templates/vi/admlogin.html
   trunk/templates/vi/approve.txt
   trunk/templates/vi/archidxentry.html
   trunk/templates/vi/archidxfoot.html
   trunk/templates/vi/archidxhead.html
   trunk/templates/vi/archlistend.html
   trunk/templates/vi/archliststart.html
   trunk/templates/vi/archtoc.html
   trunk/templates/vi/archtocentry.html
   trunk/templates/vi/archtocnombox.html
   trunk/templates/vi/article.html
   trunk/templates/vi/bounce.txt
   trunk/templates/vi/checkdbs.txt
   trunk/templates/vi/convert.txt
   trunk/templates/vi/cronpass.txt
   trunk/templates/vi/disabled.txt
   trunk/templates/vi/emptyarchive.html
   trunk/templates/vi/headfoot.html
   trunk/templates/vi/help.txt
   trunk/templates/vi/invite.txt
   trunk/templates/vi/listinfo.html
   trunk/templates/vi/masthead.txt
   trunk/templates/vi/newlist.txt
   trunk/templates/vi/nomoretoday.txt
   trunk/templates/vi/options.html
   trunk/templates/vi/postack.txt
   trunk/templates/vi/postauth.txt
   trunk/templates/vi/postheld.txt
   trunk/templates/vi/private.html
   trunk/templates/vi/probe.txt
   trunk/templates/vi/refuse.txt
   trunk/templates/vi/roster.html
   trunk/templates/vi/subauth.txt
   trunk/templates/vi/subscribe.html
   trunk/templates/vi/subscribeack.txt
   trunk/templates/vi/unsub.txt
   trunk/templates/vi/unsubauth.txt
   trunk/templates/vi/userpass.txt
   trunk/templates/vi/verify.txt
   trunk/templates/zh_CN/admindbdetails.html
   trunk/templates/zh_CN/admindbpreamble.html
   trunk/templates/zh_CN/admindbsummary.html
   trunk/templates/zh_CN/adminsubscribeack.txt
   trunk/templates/zh_CN/adminunsubscribeack.txt
   trunk/templates/zh_CN/admlogin.html
   trunk/templates/zh_CN/approve.txt
   trunk/templates/zh_CN/archidxentry.html
   trunk/templates/zh_CN/archidxfoot.html
   trunk/templates/zh_CN/archidxhead.html
   trunk/templates/zh_CN/archlistend.html
   trunk/templates/zh_CN/archliststart.html
   trunk/templates/zh_CN/archtoc.html
   trunk/templates/zh_CN/archtocentry.html
   trunk/templates/zh_CN/archtocnombox.html
   trunk/templates/zh_CN/article.html
   trunk/templates/zh_CN/bounce.txt
   trunk/templates/zh_CN/checkdbs.txt
   trunk/templates/zh_CN/convert.txt
   trunk/templates/zh_CN/cronpass.txt
   trunk/templates/zh_CN/disabled.txt
   trunk/templates/zh_CN/emptyarchive.html
   trunk/templates/zh_CN/headfoot.html
   trunk/templates/zh_CN/help.txt
   trunk/templates/zh_CN/invite.txt
   trunk/templates/zh_CN/listinfo.html
   trunk/templates/zh_CN/masthead.txt
   trunk/templates/zh_CN/newlist.txt
   trunk/templates/zh_CN/nomoretoday.txt
   trunk/templates/zh_CN/options.html
   trunk/templates/zh_CN/postack.txt
   trunk/templates/zh_CN/postauth.txt
   trunk/templates/zh_CN/postheld.txt
   trunk/templates/zh_CN/private.html
   trunk/templates/zh_CN/probe.txt
   trunk/templates/zh_CN/refuse.txt
   trunk/templates/zh_CN/roster.html
   trunk/templates/zh_CN/subauth.txt
   trunk/templates/zh_CN/subscribe.html
   trunk/templates/zh_CN/subscribeack.txt
   trunk/templates/zh_CN/unsub.txt
   trunk/templates/zh_CN/unsubauth.txt
   trunk/templates/zh_CN/userpass.txt
   trunk/templates/zh_CN/verify.txt
   trunk/templates/zh_TW/admindbpreamble.html
   trunk/templates/zh_TW/adminsubscribeack.txt
   trunk/templates/zh_TW/adminunsubscribeack.txt
   trunk/templates/zh_TW/admlogin.html
   trunk/templates/zh_TW/approve.txt
   trunk/templates/zh_TW/bounce.txt
   trunk/templates/zh_TW/checkdbs.txt
   trunk/templates/zh_TW/convert.txt
   trunk/templates/zh_TW/cronpass.txt
   trunk/templates/zh_TW/handle_opts.html
   trunk/templates/zh_TW/headfoot.html
   trunk/templates/zh_TW/help.txt
   trunk/templates/zh_TW/listinfo.html
   trunk/templates/zh_TW/masthead.txt
   trunk/templates/zh_TW/newlist.txt
   trunk/templates/zh_TW/options.html
   trunk/templates/zh_TW/postack.txt
   trunk/templates/zh_TW/postauth.txt
   trunk/templates/zh_TW/postheld.txt
   trunk/templates/zh_TW/refuse.txt
   trunk/templates/zh_TW/roster.html
   trunk/templates/zh_TW/subauth.txt
   trunk/templates/zh_TW/subscribe.html
   trunk/templates/zh_TW/subscribeack.txt
   trunk/templates/zh_TW/userpass.txt
   trunk/templates/zh_TW/verify.txt
   trunk/tests/EmailBase.py
   trunk/tests/Makefile.in
   trunk/tests/TestBase.py
   trunk/tests/bounces/Makefile.in
   trunk/tests/bounces/aol_01.txt
   trunk/tests/bounces/bounce_01.txt
   trunk/tests/bounces/bounce_02.txt
   trunk/tests/bounces/bounce_03.txt
   trunk/tests/bounces/dsn_01.txt
   trunk/tests/bounces/dsn_02.txt
   trunk/tests/bounces/dsn_03.txt
   trunk/tests/bounces/dsn_04.txt
   trunk/tests/bounces/dsn_05.txt
   trunk/tests/bounces/dsn_06.txt
   trunk/tests/bounces/dsn_07.txt
   trunk/tests/bounces/dsn_08.txt
   trunk/tests/bounces/dsn_09.txt
   trunk/tests/bounces/dsn_10.txt
   trunk/tests/bounces/dsn_11.txt
   trunk/tests/bounces/dsn_12.txt
   trunk/tests/bounces/dsn_13.txt
   trunk/tests/bounces/dsn_14.txt
   trunk/tests/bounces/dsn_15.txt
   trunk/tests/bounces/dsn_16.txt
   trunk/tests/bounces/dsn_17.txt
   trunk/tests/bounces/dumbass_01.txt
   trunk/tests/bounces/exim_01.txt
   trunk/tests/bounces/groupwise_01.txt
   trunk/tests/bounces/groupwise_02.txt
   trunk/tests/bounces/hotpop_01.txt
   trunk/tests/bounces/llnl_01.txt
   trunk/tests/bounces/microsoft_01.txt
   trunk/tests/bounces/microsoft_02.txt
   trunk/tests/bounces/microsoft_03.txt
   trunk/tests/bounces/netscape_01.txt
   trunk/tests/bounces/newmailru_01.txt
   trunk/tests/bounces/postfix_01.txt
   trunk/tests/bounces/postfix_02.txt
   trunk/tests/bounces/postfix_03.txt
   trunk/tests/bounces/postfix_04.txt
   trunk/tests/bounces/postfix_05.txt
   trunk/tests/bounces/qmail_01.txt
   trunk/tests/bounces/qmail_02.txt
   trunk/tests/bounces/qmail_03.txt
   trunk/tests/bounces/qmail_04.txt
   trunk/tests/bounces/qmail_05.txt
   trunk/tests/bounces/qmail_06.txt
   trunk/tests/bounces/sendmail_01.txt
   trunk/tests/bounces/simple_01.txt
   trunk/tests/bounces/simple_02.txt
   trunk/tests/bounces/simple_03.txt
   trunk/tests/bounces/simple_04.txt
   trunk/tests/bounces/simple_05.txt
   trunk/tests/bounces/simple_06.txt
   trunk/tests/bounces/simple_07.txt
   trunk/tests/bounces/simple_08.txt
   trunk/tests/bounces/simple_09.txt
   trunk/tests/bounces/simple_10.txt
   trunk/tests/bounces/simple_11.txt
   trunk/tests/bounces/simple_12.txt
   trunk/tests/bounces/simple_13.txt
   trunk/tests/bounces/simple_14.txt
   trunk/tests/bounces/simple_15.txt
   trunk/tests/bounces/simple_16.txt
   trunk/tests/bounces/simple_17.txt
   trunk/tests/bounces/simple_18.txt
   trunk/tests/bounces/simple_19.txt
   trunk/tests/bounces/simple_20.txt
   trunk/tests/bounces/simple_21.txt
   trunk/tests/bounces/simple_22.txt
   trunk/tests/bounces/simple_23.txt
   trunk/tests/bounces/simple_24.txt
   trunk/tests/bounces/simple_25.txt
   trunk/tests/bounces/simple_26.txt
   trunk/tests/bounces/simple_27.txt
   trunk/tests/bounces/simple_28.txt
   trunk/tests/bounces/simple_29.txt
   trunk/tests/bounces/simple_30.txt
   trunk/tests/bounces/simple_31.txt
   trunk/tests/bounces/simple_32.txt
   trunk/tests/bounces/simple_33.txt
   trunk/tests/bounces/simple_34.txt
   trunk/tests/bounces/simple_35.txt
   trunk/tests/bounces/simple_36.txt
   trunk/tests/bounces/simple_37.txt
   trunk/tests/bounces/sina_01.txt
   trunk/tests/bounces/smtp32_01.txt
   trunk/tests/bounces/smtp32_02.txt
   trunk/tests/bounces/smtp32_03.txt
   trunk/tests/bounces/smtp32_04.txt
   trunk/tests/bounces/smtp32_05.txt
   trunk/tests/bounces/smtp32_06.txt
   trunk/tests/bounces/smtp32_07.txt
   trunk/tests/bounces/yahoo_01.txt
   trunk/tests/bounces/yahoo_02.txt
   trunk/tests/bounces/yahoo_03.txt
   trunk/tests/bounces/yahoo_04.txt
   trunk/tests/bounces/yahoo_05.txt
   trunk/tests/bounces/yahoo_06.txt
   trunk/tests/bounces/yahoo_07.txt
   trunk/tests/bounces/yahoo_08.txt
   trunk/tests/bounces/yahoo_09.txt
   trunk/tests/bounces/yahoo_10.txt
   trunk/tests/bounces/yale_01.txt
   trunk/tests/fblast.py
   trunk/tests/msgs/Makefile.in
   trunk/tests/msgs/bad_01.txt
   trunk/tests/onebounce.py
   trunk/tests/test_bounces.py
   trunk/tests/test_handlers.py
   trunk/tests/test_lockfile.py
   trunk/tests/test_membership.py
   trunk/tests/test_message.py
   trunk/tests/test_runners.py
   trunk/tests/test_safedict.py
   trunk/tests/test_security_mgr.py
   trunk/tests/test_smtp.py
   trunk/tests/testall.py
Log:
merge upstream source code into the packaging trunk

no objection from Thijs via IRC



Property changes on: trunk
___________________________________________________________________
Added: svn:mergeinfo
   + /branches/upstream:708

Added: svk:merge
   + 153bf9da-15d3-0310-89f8-c842cf69dc3c:/branches/upstream:708


Copied: trunk/ACKNOWLEDGMENTS (from rev 708, branches/upstream/ACKNOWLEDGMENTS)
===================================================================
--- trunk/ACKNOWLEDGMENTS	                        (rev 0)
+++ trunk/ACKNOWLEDGMENTS	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,251 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2007 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+The following folks are or have been core developers of Mailman (in reverse
+alphabetical order):
+
+    Barry Warsaw, Mailman's yappy guard dog
+    Thomas Wouters, Mailman's Dutch treat
+    John Viega, Mailman's inventor
+    Mark Sapiro, Mailman's compulsive responder
+    Harald Meland, Norse Mailman
+    Ken Manheimer, Mailman's savior
+    Tokio Kikuchi, Mailman's weatherman
+    Scott Cotton, Cookie-Monster
+
+They can be contacted directly via mailman-cabal at python.org.
+
+Here is the list of other contributors who have donated large bits of
+code, and have assigned copyright for contributions to the FSF:
+
+    Juan Carlos Rey Anaya
+    Richard Barrett
+    Stephan Berndts
+    Norbert Bollow
+    Ben Gertzfield
+    Victoriano Giralt
+    Mads Kiilerich
+    The Dragon De Monsyne
+    Les Niles
+    Terri Oda
+    Simone Piunno
+
+Thanks also go to the following people for their important contributions in
+other aspects of the Mailman project:
+
+    Brad Knowles
+    JC Dill
+
+Thanks also to Dragon for his winning Mailman logo contribution, and
+to Terri Oda for the neat shortcut icon and the member documentation.
+
+Control.com sponsored development of several Mailman 2.1 features,
+including topics filters, external membership sources, and initial
+virtual mailing list support.  My thanks especially to Dan Pierson and
+Ken Crater from Control.com.
+
+Here is the list of other people who have contributed useful ideas,
+suggestions, bug fixes, testing, etc., or who have been very helpful
+in answering questions on mailman-users.
+
+    David Abrahams
+    William Ahern
+    Terry Allen
+    Jose Paulo Moitinho de Almeida
+    Sven Anderson
+    Matthias Andree
+    Anton Antonov
+    Mike Avery
+    Stonewall Ballard
+    Moreno Baricevic
+    Jeff Berliner
+    Stuart Bishop
+    David Blomquist
+    Bojan
+    Søren Bondrup
+    Grant Bowman
+    Alessio Bragadini
+    J. D. Bronson
+    Stan Bubrouski
+    Daniel Buchmann
+    Ben Burnett
+    Ted Cabeen
+    Mentor Cana
+    John Carnes
+    Julio A. Cartaya
+    Claudio Cattazzo
+    Donn Cave
+    David Champion
+    Hye-Shik Chang
+    Eric D. Christensen
+    Tom G. Christensen
+    Paul Cox
+    Stefaniu Criste
+    Robert Daeley
+    Ned Dawes
+    Emilio Delgado
+    John Dennis
+    Stefan Divjak
+    Maximillian Dornseif
+    Fred Drake
+    Maxim Dzumanenko
+    Piarres Beobide Egaña
+    Rob Ellis
+    Kerem Erkan
+    Fil
+    Patrick Finnerty
+    Bob Fleck
+    Erik Forsberg
+    Darrell Fuhriman
+    Robert Garrigós
+    Carson Gaspar
+    Pascal GEORGE
+    Vadim Getmanshchuk
+    David Gibbs
+    Dmitri I GOULIAEV
+    Terry Grace
+    Federico Grau
+    Pekka Haavisto
+    David Habben
+    Stig Hackvan
+    Jeff Hahn
+    Terry Hardie
+    Paul Hebble
+    Tollef Fog Heen
+    Peer Heinlein
+    James Henstridge
+    Walter Hop
+    Bert Hubert
+    Henny Huisman
+    Jeremy Hylton
+    Ikeda Soji
+    Rostyk Ivantsiv
+    Ron Jarrell
+    Matthias Juchem
+    Tamito KAJIYAMA
+    Nino Katic
+    SHIGENO Kazutaka
+    Ashley M. Kirchner
+    Matthias Klose
+    Harald Koch
+    Eddie Kohler
+    Chris Kolar
+    Uros Kositer
+    Andrew Kuchling
+    Ricardo Kustner
+    L'homme Moderne
+    Sylvain Langlade
+    Ed Lau
+    J C Lawrence
+    Greg Lindahl
+    Christopher P. Lindsey
+    Martin von Loewis
+    Dario Lopez-Kästen
+    Tanner Lovelace
+    Jay Luker
+    Gergely Madarasz
+    Luca Maranzano
+    John A. Martin
+    Andrew Martynov
+    Jason R. Mastaler
+    Michael Mclay
+    Michael Meltzer
+    Marc MERLIN
+    Nigel Metheringham
+    Dan Mick
+    Garey Mills
+    Martin Mokrejs
+    Michael Fischer v. Mollard
+    David Martínez Moreno
+    Dirk Mueller
+    Jonas Muerer
+    Erik Myllymaki
+    Balazs Nagy
+    Moritz Naumann
+    Dale Newfield
+    Hrvoje Niksic
+    Les Niles
+    Mike Noyes
+    David B. O'Donnell
+    Timothy O'Malley
+    "office"
+    Dan Ohnesorg
+    Gerald Oskoboiny
+    Eva Österlind
+    Toni Panadès
+    Jon Parise
+    Chris Pepper
+    Tim Peters
+    Joe Peterson
+    PieterB
+    Rodolfo Pilas
+    Skye Poier
+    Martin Pool
+    Don Porter
+    Francesco Potortì
+    Bob Puff
+    Michael Ranner
+    John Read
+    Sean Reifschneider
+    Christian Reis
+    Ademar de Souza Reis, Jr.
+    Bernhard Reiter
+    Stephan Richter
+    Tristan Roddis
+    Heiko Rommel
+    Luigi Rosa
+    Guido van Rossum
+    Nicholas Russo
+    Chris Ryan
+    Cabel Sasser
+    Bartosz Sawicki
+    Kai Schaetzl
+    Karoly Segesdi
+    Gleydson Mazioli da Silva
+    Pasi Sjöholm
+    Chris Snell
+    Mikhail Sobolev
+    Greg Stein
+    Dale Stimson
+    Students of HIT <mailman-cn at mail.cs.hit.edu.cn>
+    Szabolcs Szigeti
+    Vizi Szilard
+    David T-G
+    Owen Taylor
+    Danny Terweij
+    Jim Tittsler
+    Todd (Freedom Lover)
+    Roger Tsang
+    Chuq Von Rospach
+    Jens Vagelpohl
+    Valia V. Vaneeva
+    Anti Veeranna
+    Todd Vierling
+    Bill Wagner
+    Greg Ward
+    Mark Weaver
+    Kathleen Webb
+    Florian Weimer
+    Ousmane Wilane
+    Dan Wilder
+    Seb Wills
+    Dai Xiaoguang
+    Ping Yeh
+    YASUDA Yukihiro
+    Michael Yount
+    Blair Zajac
+    Mikhail Zabaluev
+    Noam Zeilberger
+    Daniel Zeiss
+    Todd Zullinger
+
+And everyone else on mailman-developers at python.org and
+mailman-users at python.org!  Thank you, all.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/BUGS (from rev 708, branches/upstream/BUGS)
===================================================================
--- trunk/BUGS	                        (rev 0)
+++ trunk/BUGS	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,13 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+The Mailman project is being managed on Launchpad at
+
+    https://launchpad.net/mailman
+
+You should submit bugs to the Launchpad bug manager at
+
+    https://bugs.launchpad.net/mailman
+
+If you have a suggested fix, please attach it to your bug report.

Copied: trunk/FAQ (from rev 708, branches/upstream/FAQ)
===================================================================
--- trunk/FAQ	                        (rev 0)
+++ trunk/FAQ	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,383 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2005 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+Note: We've migrated the FAQ to the wiki at http://wiki.list.org/
+      To see the Mailman FAQ go to http://wiki.list.org/x/AgA3
+
+FREQUENTLY ASKED QUESTIONS
+
+Q. How do you spell this program?
+
+A. You spell it "Mailman", with a leading capital "M" and a lowercase
+   second "m".  It is incorrect to spell it "MailMan" (i.e. you should
+   not use StudlyCaps).
+
+Q. I'm getting really terrible performance for outgoing messages.  It
+   seems that if the MTA has trouble resolving DNS for any recipients,
+   qrunner just gets really slow clearing the queue.  Any ideas?
+
+A. What's likely happening is that your MTA is doing DNS resolution on
+   recipients for messages delivered locally (i.e. from Mailman to
+   your MTA via SMTPDirect.py).  This is a Bad Thing.  You need to
+   turn off synchronous DNS resolution for messages originating from
+   the local host.
+
+   In Exim, the value to edit is receiver_verify_hosts.  Consult the
+   Mailman Installation Manual for details.  Other MTAs have (of
+   course) different parameters and defaults that control this.  First
+   check the README file for your MTA and then consult your MTA's own
+   documentation.
+
+Q. My list members are complaining about Mailman's List-* headers!
+   What can I do about this?
+
+A. These headers are described in RFC 2369 and are added by Mailman
+   for the long-term benefit of end-users.  While discouraged, the
+   list admin can disable these via the General Options page.  See
+   also README.USERAGENT for more information.
+
+Q. Can I put the user's address in the footer that Mailman adds to
+   each message?
+
+A. Yes, in Mailman 2.1.  The site admin needs to enable personalization by
+   setting the following variable in the mm_cfg.py file:
+
+    OWNERS_CAN_ENABLE_PERSONALIZATION = Yes
+
+   Once this is done, list admins can enable personalization for regular
+   delivery members (digest deliveries can't be personalized currently).  A
+   personalized list can include the user's address in the footer.
+
+Q. My users hate HTML in their email and for security reasons, I want
+   to strip out all MIME attachments.  How can I do this?
+
+A. Mailman 2.1 has this feature built-in.  See the Content Filtering
+   Options page in the admin interface.
+
+Q. What if I get "document contains no data" from the web server, or
+   mail isn't getting delivered, or I see "Premature end of script
+   headers" or "Mailman CGI error!!!"
+
+A. The most likely cause of this is that the GID that is compiled into
+   the C wrappers does not match the GID that your Web server invokes
+   CGI scripts with.  Note that a similar error could occur if your
+   mail system invokes filter programs under a GID that does not match
+   the one compiled into the C mail wrapper.
+
+   To fix this you will need to re-configure Mailman using the
+   --with-cgi-gid and --with-mail-gid options.  See the INSTALL file
+   for details.
+
+   These errors are logged to syslog and they do not show up in the
+   Mailman log files.  Problems with the CGI wrapper do get reported
+   in the web browser though (unless STEALTH_MODE is enabled), and
+   include the expected GID, so that should help a lot.
+
+   You may want to have syslog running and configured to log the
+   mail.error log class somewhere; on Solaris systems, the line
+
+       mail.debug                /var/log/syslog
+
+   causes the messages to go to them in /var/log/syslog, for example.
+   (The distributed syslog.conf forwards the message to the loghost,
+   when present.  See the syslog man page for more details.)
+
+   If your system is set up like this, and you get a failure trying to
+   visit the mailman/listinfo web page, and it's due to a UID or GID
+   mismatch, then you should get an entry at the end of
+   /var/log/syslog identifying the expected and received values.
+
+   If you are not getting any log messages in syslog, or in Mailman's
+   own log files, but messages are still not being delivered, then it
+   is likely that qrunner is not running (qrunner is the process that
+   handles all mail in the system).  In Mailman 2.0, qrunner was
+   invoked from cron so make sure your crontab entries for the
+   `mailman' user have been installed.  In Mailman 2.1, qrunner is
+   started with the bin/mailmanctl script, which can be invoked
+   manually, or merged with your OS's init scripts.
+
+Q. What should I check periodically?
+
+A. Many of the scripts have their standard error logged to
+   $prefix/logs/error, and some of the modules write caught errors
+   there, as well, so you should check there at least occasionally to
+   look for bugs in the code and problems in your setup.
+
+   You may want to periodically check the other log files in the logs/
+   directory, perhaps occasionally rotating them with something like
+   the Linux logrotate script.
+
+Q. I can't access the public archives.  Why?
+
+A. If you are using Apache, you must make sure that FollowSymLinks is
+   enabled for the path to the public archives.  Note that the actual
+   archives always reside in the private tree, and only when archives
+   are public, is the symlink followed. See this archive message for
+   more details:
+
+   http://mail.python.org/pipermail/mailman-users/1998-November/000150.html
+
+Q. Still having problems?  Running QMail?
+
+A. Make sure that you are using "preline" before calling the "mailman"
+   wrapper:
+
+       |preline /home/mailman/mail/mailman post listname
+
+   "preline" adds a Unix-style "From " header which the archiver requires.
+   You can fix the archive mbox files by adding:
+
+       From somebody Mon Oct  9 12:27:34 MDT 2000
+
+   before every message and re-running the archive command
+   "bin/arch listname".  The archives should now exist.
+
+Q. I want to get rid of some messages in my archive.  How do I do
+   this?
+
+A. David Rocher posts the following recipe:
+
+   * remove $prefix/archives/private/<listname>
+   * edit $prefix/archives/private/<listname>.mbox/<listname>.mbox [optional]
+   * run $prefix/bin/arch <listname>
+
+Q. How secure are the authentication mechanisms used in Mailman's web
+   interface?
+
+A. If your Mailman installation run on an SSL-enabled web server
+   (i.e. you access the Mailman web pages with "https://..." URLs),
+   you should be as safe as SSL itself is.
+
+   However, most Mailman installation run under standard,
+   encryption-unaware servers.  There's nothing wrong with that for
+   most applications, but a sufficiently determined cracker *could*
+   get unauthorized access by:
+
+   * Packet sniffing: The password used to do the initial
+     authentication for any non-public Mailman page is sent as clear
+     text over the net.  If you consider this to be a big problem, you
+     really should use an SSL-enabled server.
+
+   * Stealing a valid cookie: After successful password
+     authentication, Mailman sends a "cookie" back to the user's
+     browser.  This cookie will be used for "automatic" authentication
+     when browsing further within the list's protected pages.  Mailman
+     employs "session cookies" which are set until you quit your
+     browser or explicitly log out.
+
+     Gaining access to the user's cookie (e.g. by being able to read
+     the user's browser cookie database, or by means of packet
+     sniffing, or maybe even by some broken browser offering all it's
+     cookies to any and all sites the user accesses), and at the same
+     time being able to fulfill the other criteria for using the
+     cookie could result in unauthorized access.
+
+     Note that this problem is more easily exploited when users browse
+     the web via proxies -- in that case, the cookie would be valid
+     for any connections made through that proxy, and not just for
+     connections made from the particular machine the user happens to
+     be accessing the proxy from.
+
+   * Getting access to the user's terminal: This is really just
+     another kind of cookie stealing.  The short cookie expiration
+     time is supposed to help defeat this problem.  It can be
+     considered the price to pay for the convenience of not having to
+     type the password in every time.
+
+Q. I want to backup my lists.  What do I need to save?
+
+A. See this FAQ entry: http://wiki.list.org/x/5oA9
+
+Q. How do I rename a list?
+
+A. Renaming a list is currently a bit of a pain to do completely
+   correctly, especially if you want to make sure that the old list
+   contacts are automatically forwarded to the new list.  This ought
+   to be easier. :(
+
+   The biggest problem you have is how to stop mail and web traffic to
+   your list during the transition, and what to do about any mail
+   undelivered to the old list after the move.  I don't think there
+   are any foolproof steps, but here's how you can reduce the risk:
+
+   - Temporarily disable qrunner.  To do this, you need to edit the
+     user `mailman's crontab entry.  Execute the following command,
+     commenting out the qrunner line when you're dropped into your
+     editor.  Then save the file and quit the editor.
+
+     % crontab -u mailman -e
+
+   - Turn off your mail server.  This is mostly harmless since remote
+     MTAs will just keep retrying until you turn it back on, and it's
+     not going to be off for very long.
+
+   - Next turn off your web server if possible.  This of course means
+     your entire site will be off-line while you make the switch and
+     this may not be acceptable to you.  The next best suggestion is
+     to set up your permanent redirects now for the list you're
+     moving.  This means that anybody looking for the list under its
+     old name will be redirected to the new name, but they'll get
+     errors until you've completed the move.
+
+     Let's say the old name is "oldname" and the new name is
+     "newname".  Here are some Apache directives that will do the
+     trick, though YMMV:
+
+     RedirectMatch permanent /mailman/(.*)/oldname(.*) http://www.dom.ain/mailman/$1/newname$2
+     RedirectMatch permanent /pipermail/oldname(.*)    http://www.dom.ain/pipermail/newname$1
+
+     Add these to your httpd.conf file and restart Apache.
+
+   - Now cd to the directory where you've installed Mailman.  Let's
+     say it's /usr/local/mailman:
+
+     % cd /usr/local/mailman
+
+     and cd to the `lists' subdirectory:
+
+     % cd lists
+
+     You should now see the directory `oldname'.  Move this to
+     `newname':
+
+     % mv oldname newname
+
+   - Now cd to the private archives directory:
+
+     % cd ../archives/private
+
+     You will need to move the oldname's .mbox directory, and the
+     .mbox file within that directory.  Don't worry about the public
+     archives; the next few steps will take care of them without
+     requiring you to fiddle around in the file system:
+
+     % mv oldname.mbox newname.mbox
+     % mv newname.mbox/oldname.mbox newname.mbox/newname.mbox
+
+   - You now need to run the `bin/move_list' script to update some of
+     the internal archiver paths.  IMPORTANT: Skip this step if you
+     are using Mailman 2.1!
+
+     % cd ../..
+     % bin/move_list newname
+
+   - You should now regenerate the public archives:
+
+     % bin/arch newname
+
+   - You'll likely need to change some of your list's configuration
+     options, especially if you want to accept postings addressed to
+     the old list on the new list.  Visit the admin interface for your
+     new list:
+
+     o Go to the General options
+
+     o Change the "real_name" option to reflect the new list's name,
+       e.g. "Newname"
+
+     o Change the subject prefix to reflect the new list's name,
+       e.g. "[Newname] " (yes, that's a trailing space character).
+
+     o Optionally, update other configuration fields like info,
+       description, or welcome_msg.  YMMV.
+
+     o Save your changes
+
+     o Go to the Privacy options
+
+     o Add the old list's address to acceptable_aliases.
+       E.g. "oldname at dom.ain".  This way, (after the /etc/aliases
+       changes described below) messages posted to the old list will
+       not be held by the new list for "implicit destination"
+       approval.
+
+     o Save your changes
+
+   - Now you want to update your /etc/aliases file to include the
+     aliases for the new list, and forwards for the old list to the
+     new list.  Note that these instructions are for Sendmail style
+     alias files, adjust to the specifics of how your MTA is set up.
+
+     o Find the lines defining the aliases for your old list's name
+
+     o Copy and paste them just below the originals.
+
+     o Change all the references of "oldname" to "newname" in the
+       pasted stanza.
+
+     o Now change the targets of the original aliases to forward to
+       the new aliases.  When you're done, you will end up with
+       /etc/aliases entries like the following (YMMV):
+
+       XXX This needs updating for MM2.1!
+
+       # Forward the oldname list to the newname list
+       oldname:         newname at dom.ain
+       oldname-request: newname-request at dom.ain
+       oldname-admin:   newname-admin at dom.ain
+       oldname-owner:   newname-owner at dom.ain
+
+       newname:         "|/usr/local/mailman/mail/mailman post newname"
+       newname-admin:   "|/usr/local/mailman/mail/mailman mailowner newname"
+       newname-request: "|/usr/local/mailman/mail/mailman mailcmd newname"
+       newname-owner:   newname-admin
+
+     o Run newaliases
+
+   - Before you restart everything, you want to make one last check.
+     You're looking for files in the qfiles/ directory that may have
+     been addressed to the old list but weren't delivered before you
+     renamed the list.  Do something like the following:
+
+     % cd /usr/local/mailman/qfiles
+     % grep oldname *.msg
+
+     If you get no hits, skip to the next step, you've got nothing to
+     worry about.
+
+     If you did get hits, then things get complicated.  I warn you
+     that the rest of this step is untested. :(
+
+     For each of the .msg files that were destined for the old list,
+     you need to change the corresponding .db file.  Unfortunately
+     there's no easy way to do this.  Anyway...
+
+     Save the following Python code in a file called 'hackdb.py':
+
+     -------------------------hackdb.py
+     import sys
+     import marshal
+     fp = open(sys.argv[1])
+     d = marshal.load(fp)
+     fp.close()
+     d['listname'] = sys.argv[2]
+     fp = open(sys.argv[1], 'w')
+     marshal.dump(d, fp)
+     fp.close()
+     -------------------------
+
+     And then for each file that matched your grep above, do the
+     following:
+
+     % python hackdb.py reallylonghexfilenamematch1.db newname
+
+   - It's now safe to turn your MTA back on.
+
+   - Turn your qrunner back on by running
+
+     % crontab -u mailman -e
+
+     again and this time uncommenting the qrunner line.  Save the file
+     and quit your editor.
+
+   - Rejoice, you're done.  Send $100,000 in shiny new pennies to the
+     Mailman cabal as your downpayment toward making this easier for
+     the next list you have to rename. :)
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:

Copied: trunk/INSTALL (from rev 708, branches/upstream/INSTALL)
===================================================================
--- trunk/INSTALL	                        (rev 0)
+++ trunk/INSTALL	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,25 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2005 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+The installation and upgrading instructions are now completely contained in
+the Mailman Installation Guide.  Web, PostScript, PDF, and plaintext formats
+for this guide are available both within this source distribution and online.
+
+All manuals within this source distribution are provided in the doc/
+directory:
+
+    HTML        : doc/mailman-install/index.html
+    PostScript  : doc/mailman-install.ps
+    PDF         : doc/mailman-install.pdf
+    plain text  : doc/mailman-install.txt
+
+Or go online at http://www.list.org/site.html to find the online installation
+guide.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/Makefile.in (from rev 708, branches/upstream/Makefile.in)
===================================================================
--- trunk/Makefile.in	                        (rev 0)
+++ trunk/Makefile.in	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,151 @@
+# Copyright (C) 1998-2003 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.
+
+# NOTE: Makefile.in is converted into Makefile by the configure script
+# in the parent directory.  Once configure has run, you can recreate
+# the Makefile by running just config.status.
+
+# Variables set by configure
+
+SHELL=		/bin/sh
+
+VPATH=		@srcdir@
+srcdir=		@srcdir@
+bindir=		@bindir@
+prefix=		@prefix@
+exec_prefix=	@exec_prefix@
+var_prefix=	@VAR_PREFIX@
+DESTDIR=
+
+CC=		@CC@
+INSTALL=	@INSTALL@
+PYTHON= 	@PYTHON@
+
+DEFS=		@DEFS@
+
+# Customizable but not set by configure
+
+OPT=		@OPT@
+CFLAGS=		@CFLAGS@ $(OPT) $(DEFS)
+
+VAR_DIRS= \
+	logs archives lists locks data spam qfiles \
+	archives/private archives/public
+
+ARCH_INDEP_DIRS= \
+	bin templates scripts cron pythonlib \
+	Mailman Mailman/Cgi Mailman/Logging Mailman/Archiver \
+	Mailman/Handlers Mailman/Queue Mailman/Bouncers	 \
+	Mailman/MTA Mailman/Gui Mailman/Commands messages icons \
+	tests tests/bounces tests/msgs
+
+ARCH_DEP_DIRS=	cgi-bin mail
+
+# Directories make should decend into
+SUBDIRS=	bin cron misc Mailman scripts src templates messages tests
+
+
+# Modes for directories and executables created by the install
+# process.  Default to group-writable directories but
+# user-only-writable for executables.
+DIRMODE=	775
+EXEMODE=	755
+FILEMODE=	644
+INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+DIRSETGID=	chmod g+s
+
+DATE = $(shell python -c 'import time; print time.strftime("%d-%b-%Y"),')
+LANGPACK = README-I18N.en templates messages
+EXCLUDES = --exclude=CVS --exclude=.cvsignore --exclude=Makefile* --exclude=*.files --exclude=*.old
+
+# Rules
+
+all: subdirs
+
+subdirs: $(SUBDIRS)
+	for d in $(SUBDIRS); \
+	do \
+	    (cd $$d; $(MAKE)); \
+	done
+
+install: doinstall update
+
+doinstall: $(SUBDIRS)
+	@echo "Creating architecture independent directories..."
+	@for d in $(VAR_DIRS); \
+	do \
+	    dir=$(DESTDIR)$(var_prefix)/$$d; \
+	    if test ! -d $$dir; then \
+		echo "Creating directory hierarchy $$dir"; \
+		$(srcdir)/mkinstalldirs $$dir; \
+		chmod $(DIRMODE) $$dir; \
+		$(DIRSETGID) $$dir; \
+	    else true; \
+	    fi; \
+	done
+	chmod o-r $(DESTDIR)$(var_prefix)/archives/private
+	@for d in $(ARCH_INDEP_DIRS); \
+	do \
+	    dir=$(DESTDIR)$(prefix)/$$d; \
+	    if test ! -d $$dir; then \
+		echo "Creating directory hierarchy $$dir"; \
+		$(srcdir)/mkinstalldirs $$dir; \
+		chmod $(DIRMODE) $$dir; \
+		$(DIRSETGID) $$dir; \
+	    else true; \
+	    fi; \
+	done
+	@echo "Creating architecture dependent directories..."
+	@for d in $(ARCH_DEP_DIRS); \
+	do \
+	    dir=$(DESTDIR)$(exec_prefix)/$$d; \
+	    if test ! -d $$dir; then \
+		echo "Creating directory hierarchy $$dir"; \
+		$(srcdir)/mkinstalldirs $$dir; \
+		chmod $(DIRMODE) $$dir; \
+		$(DIRSETGID) $$dir; \
+	    else true; \
+	    fi; \
+	done
+	@for d in $(SUBDIRS); \
+	do \
+	    (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
+	done
+	$(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
+# work anyway (because of import paths.)
+update:
+	@(cd $(DESTDIR)$(prefix) ; test -n "$(DESTDIR)" || bin/update)
+
+clean: $(SUBDIRS)
+	@for d in $(SUBDIRS); \
+	do \
+	    (cd $$d; $(MAKE) clean); \
+	done
+	-rm -f update.log
+
+distclean: $(SUBDIRS)
+	@for d in $(SUBDIRS); \
+	do \
+	    (cd $$d; $(MAKE) distclean); \
+	done
+	-rm -f config.cache config.log config.status Makefile
+	-rm -rf build
+
+langpack:
+	tar zcvf langpack-$(DATE).tgz $(EXCLUDES) $(LANGPACK)

Copied: trunk/NEWS (from rev 708, branches/upstream/NEWS)
===================================================================
--- trunk/NEWS	                        (rev 0)
+++ trunk/NEWS	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,3264 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2010 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+Here is a history of user visible changes to Mailman.
+
+2.1.14 (20-Sep-2010)
+
+  Security
+
+    - Two potential XSS vulnerabilities have been identified and fixed.
+
+  New Features
+
+    - A new feature for controlling the addition/replacement of the Sender:
+      header in outgoing mail has been implemented.  This allows a list owner
+      to set include_sender_header on the list's General Options page in the
+      admin GUI.  The default for this setting is Yes which preserves the prior
+      behavior of removing any pre-existing Sender: and setting it to the
+      list's -bounces address.  Setting this to No stops Mailman from adding or
+      modifying the Sender: at all.
+
+      Additionally, there is a new Defaults.py/mm_cfg.py setting
+      ALLOW_SENDER_OVERRIDES which defaults to Yes but which can be set to No
+      to remove the include_sender_header setting from General Options, and
+      thus preserve the prior behavior completely.
+
+    - Bounce processing has been enhanced so that if a bounce is returned to a
+      list from a non-member who is a member of a regular_include_list, the
+      bounce will be processed as a bounce for the included list.
+
+  i18n
+
+    - Fixed a missing format character in the German bin/mailmanctl docstring.
+
+    - Updated Dutch translation from Jan Veuger.
+
+    - Updated Japanese Translation from Tokio Kikuchi.
+
+    - Updated Finnish translation from Joni Töyrylä.
+
+    - Made a few corrections to some Polish templates.  Bug #566731.
+
+    - Made a minor change to the Chinese (China) message catalog.  Bug #545772.
+
+    - Changed a few DOCTYPE directives in templates for compliance.
+      Bug #500952 and Bug #500955.
+
+  Bug Fixes and other patches
+
+    - Made minor wording improvements and typo corrections in some messages.
+      Bug #426979.
+
+    - Fixed i18n._() to catch exceptions due to bad formats.  Bug #632660.
+
+    - Fixed admindb interface to decode base64 and quoted-printable encoded
+      message body excerpts for display.  Bug #629738.
+
+    - Fixed web CGI tracebacks to properly report sys.path.  Bug #615114.
+
+    - Changed the member options login page unsubscribe request to include the
+      requesters IP address in the confirmation request.  Bug #610527.
+
+    - Changed fix_url to lock the list if not locked.  Bug #610364.
+
+    - Made a minor change to the English subscribeack.txt (welcome message)
+      template to emphasize that a password is only required to unsubscribe
+      *without confirmation*.
+
+    - Fixed an issue in admindb that could result in a KeyError and "we hit a
+      bug" response when a moderator acts on a post that had been handled by
+      someone else after the first moderator had retrieved it.  Bug #598671.
+
+    - Fixed a bug which would fail to show a list on the admin and listinfo
+      overview pages if its web_page_url contained a :port.  Bug # 597741.
+
+    - Fixed bin/genaliases to not throw TypeError when MTA = None.
+      Bug #587657.
+
+    - Provided the ability to specify in mm_cfg.py a local domain (e.g.
+      'localhost') for the local addresses in the generated virtual-mailman
+      when MTA = 'Postfix'.  See VIRTUAL_MAILMAN_LOCAL_DOMAIN in Defaults.py.
+      Bug #328907.
+
+    - Made a minor change to the removal of an Approved: pseudo-header from
+      a text/html alternative to allow for an inserted '\xA0' before the
+      password.
+
+    - Fixed Content Filtering collapse_alternatives to work on deeply nested
+      multipart/alternative parts.  Bug #576675.
+
+    - We now accept/remove X-Approved: and X-Approve: headers in addition to
+      Approved: and Approve: for pre-approving posts.  Bug #557750.
+
+    - Reordered the 'cancel' and 'subscribe' buttons on the subscription
+      confirmation web page so the default action upon 'enter' will be the
+      subscribe button in browsers that pick the first button.  Bug #530654.
+
+    - Fixed a bug in the admindb interface that could apply a moderator
+      action to a message not displayed.  Bug #533468.
+
+    - Added a traceback to the log message produced when processing the
+      digest.mbox throws an exception.
+
+    - Added a urlhost argument to the MailList.MailList.Create() method to
+      allow bin/newlist and the the create CGI to pass urlhost so the host
+      will be correct in the listinfo link on the emptyarchive page.
+      Bug #529100.
+
+    - Added the List-Post header to the default list of headers retained in
+      messages in the MIME digest.  Bug #526143.
+
+    - When daemonizing mailmanctl, we now ensure terminal files are closed.
+
+    - Fixed a bug in pipermail archiving that caused fallback threading by
+      subject to fail.  Bug #266572.
+
+    - We now give an HTTP 401 status for authentication failures from admin,
+      admindb, private, options and roster CGIs, and an HTTP 404 status from
+      all the CGIs for an invalid list name.
+
+    - Backported the listinfo template change from the 2.2 branch to fix
+      Bug #514050.
+
+    - Fixed a bug where going to an archives/private/list.mbox/list.mbox URL
+      would result in a munged URL if authentication was required. Bug #266164.
+
+    - Fixed a bug where check_perms would throw an OSError if an entry in
+      Mailman's lists/ directory was not a directory.  Bug #265613.
+
+    - Fixed a bug where a message with an Approved: header held by a handler
+      that precedes Approve (SpamDetect by default) would not have the
+      Approved: header removed if the held message was approved.  Bug #501739.
+
+2.1.13 (22-Dec-2009)
+
+  i18n
+
+    - Updated Dutch message catalog from Jan Veuger.
+
+    - Added Asturian translation from Marcos Costales and the Asturian
+      Language Team.
+
+  Bug Fixes and other patches
+
+    - Added "white-space: pre-wrap" style for <pre> tag in archives.
+      Bug #266467.
+
+    - Added vette logging for rejected and discarded (un)subscribe requests.
+
+    - Fixed a bug in admindb.py that could erroneously discard an unsubscribe
+      request as a duplicate.
+
+    - Decoded RFC 2047 encoded message subjects for a few reports.
+      Bug #266428.
+
+    - Fixed the French, Spanish and Hebrew translations which improperly
+      translated the 'coding:' line in bin/config_list output.
+
+    - Fixed the auto-responder to treat messages to -confirm, -join, -leave,
+      -subscribe and -unsubscribe as requests rather than posts.  Bug #427962.
+
+    - Configure/make no longer builds Japanese and Korean codecs in
+      pythonlib if Python already has them.
+
+    - Inadvertently setting a null site or list password allowed access
+      to a list's web admin interface without authentication.  Fixed by
+      not accepting null passwords.
+
+    - Changed VERP_CONFIRM_REGEXP  in Defaults.py to work if the replying
+      MUA folds the To: header and in cases where the list name includes '+'.
+
+    - Fixed some paths in contrib/check_perms_grsecurity.py. Bug #411192.
+
+    - Replies to commands sent to list-request now come From: list-owner
+      instead of list-bounces.
+
+    - Mailman no longer folds long sub-part headers in multipart messages.
+      In addition, Mailman no longer escapes From_ lines in the body of
+      messages sent to regular list members, although MTA's may do it anyway.
+      This is to avoid breaking signatures per Bug #265967.
+
+    - XSS protection in the web interface went too far in escaping HTML
+      entities.  Fixed.
+
+    - Removed or anonymized additional headers in posts to anonymous lists.
+
+    - Fixed a bug that could cause incorrect threading of replies to archived
+      messages that arrive with timestamps in the same second.
+
+    - Scrubbed HTML attachments containing tab characters would get the tabs
+      replaced by a string of '&nbsp' without a semicolon.  Fixed.
+
+    - Caught a TypeError in content filtering, collapse alternatives that
+      occurred with a malformed message if a multipart/alternative part
+      wasn't multi-part.  Reported in comments to bug #266230.
+
+    - Fixed a few things in bin/update:
+      - Changed some old messages for more current meaning.
+      - Fixed qfiles update to not lose metadata from 2.1.5+ format entries.
+      - Fixed 2.0.x template migration to not die if the templates/ tree
+        contains subdirectories from a version control system.
+
+    - Fixed a bug that would show a list on the admin and listinfo overview
+      pages if its web_page_url host contained the current host as a
+      substring.  Bug #342162.
+
+    - Fixed a bug in Utils.canonstr() that would throw a UnicodeDecodeError
+      if the string contained an HTML entity > 255 and also characters in the
+      128-255 range.  Bug #341594.
+
+    - Added recognition for more bounces.
+
+    - Updated contrib/mmdsr to report preserved messages and to use mktemp to
+      create temp files.
+
+2.1.12 (23-Feb-2009)
+
+  Bug fixes and other patches
+
+    - Fix compatibility with Python 2.6.
+
+    - Fixed a bug in admin.py which would result in chunked pages of the
+      membership list for members whose address begins with a non-alphanumeric
+      character to not be visible or retrievable.
+
+    - Changed ListAdmin.py to make rejected post messages From: the -owner
+      address instead of the -bounces address.
+
+    - With MTA = 'Postfix', if the STANZA END for a list being removed is
+      missing or munged, the remainder of the aliases and/or virtual-mailman
+      file is lost.  Fixed.
+
+    - Since Mailman 2.1.1, 2.0.x outstanding subscription and held message
+      requests have not been migrated properly.  This is fixed.
+      Bug #266106 (sf998384).
+
+    - Changed cron/gate_news to continue processing the remaining lists on
+      certain errors that can be caused by configuration of a particular list.
+      Bug #265941 (sf775100).
+
+    - Fixed a bug in AvoidDuplicates.py that caused it to fail if the address
+      in the To: or Cc: header differed in case from the case-preserved member
+      address.  Bug #297795.
+
+    - Fixed a problem in SecurityManager that caused it to not find the
+      cookie when CheckCookie was not given a user and the user in the cookie
+      had a %xx encoded character.  Bug # 299220.
+
+    - Fixed a minor fromusenet reporting issue in the contributed mmdsr
+      script.
+
+    - Fixed a minor issue in cron/gate_news that could cause a list's
+      watermark to not be completely updated.
+
+    - Fixed an issue that prevented editing the options.html template from
+      the web admin interface. SF Bug #2164798.
+
+    - Fixed a problem in Decorate which could throw a TypeError on conversion
+      to unicode of a header/footer that was already unicode because of
+      interpolating a unicode value.
+
+    - Fixed an issue where list creation would report bad owner email
+      instead of bad listname when the list name had non-ascii characters.
+      SF Bug #2126489.
+
+    - Fixed an issue where in some circumstances HyperArch.py would translate
+      ' at ' into the wrong language ultimately throwing a UnicodeDecodeError
+      when the translation was decoded with a different character set.
+      Bug #308152.
+
+    - Corrected a typo in Mailman/Gui/Privacy.py. Bug #309757.
+
+    - Changed the pattern used to recognize URLs in messages for the pipermail
+      archive in order to try to do a better job of making hyperlinks.
+      Bug #310124.
+
+    - Added missing --bare option to French translation of list_lists help.
+      Bug #312119.
+
+    - Fixed a long standing error that stopped relative hrefs from being
+      generated for links on Mailman's web pages.
+
+    - Changed the admindb interface so that when messages are rejected from
+      the summary page, the reject reason is the rejection message from the
+      Errors.HoldMessage subclass instead of the generic "No reason given".
+
+    - Fixed the admin Membership List Find member function so the 'letter'
+      links to a chunked result would still be limited to the Find member
+      search. SF patch #1532081.
+
+    - Changed scripts/driver to return a 405 status for non GET, POST, HEAD
+      methods. SF patch #1578756.
+
+    - Fixed a bug in admindb.py in the implementation of replacing "No Reason
+      Given" with the default rejection reason.  Bug #325016.
+
+    - Changed Gui/Topics.py to validate regexps in VERBOSE mode.  Bug #327008.
+
+    - Worked around a potential problem in HyperArch.py with unicode character
+      set arguments.  Bug #328353.
+
+    - Recognize a couple more bounces.
+
+    - Fixed a bug introduced in 2.1.11 which would attempt to store bounce info
+      for a member just deleted if bounce_you_are_disabled_warnings is zero.
+
+  i18n
+
+    - Updated Dutch, Catalan and Polish translations.
+
+  Miscellaneous
+
+    - Added Lindsay Haisley's courier_to_mailman.py to the contrib directory.
+
+    - Added John Dennis' (RedHat) FHS patch to the contrib directory.
+
+2.1.11 (30-Jun-2008)
+
+  New Features
+
+    - Added a new cron/cull_bad_shunt script to cull and optionally
+      archive old entries from the bad and shunt queues. This is controlled
+      by new Defaults.py/mm_cfg.py settings BAD_SHUNT_STALE_AFTER (default
+      7 days) and BAD_SHUNT_ARCHIVE_DIRECTORY (default None) which determine
+      how long to keep bad and shunt queue entries and optionally, where to
+      archive removed entries.
+
+    - Prepended list name to bounce log unrecognized bounce messages.
+
+    - Added a new Defaults.py|mm_cfg.py setting ACCEPTABLE_LISTNAME_CHARACTERS
+      with default value '[-+_.=a-z0-9]'.  This Python regular expression
+      character class specifies the characters allowed in list names.  The
+      motivation for this is the fact that previously, a list named, e.g.,
+      xxx&yyy could be created and MTA aliases generated that would cause
+      The MTA to execute yyy as a command.  There is a possible security issue
+      here, but it is not believed to be exploitable in any meaningful way.
+
+  Bug fixes and other patches
+
+    - Changed the preservation of unparseable messages to be conditional on
+      the Defaults.py/mm_cfg.py setting of QRUNNER_SAVE_BAD_MESSAGES and
+      changed the queue directory in which messages are preserved from 'shunt'
+      to 'bad'.
+
+    - Fixed a bug introduced in 2.1.10 that caused some email subscribe
+      requests to be shunted (1966837).
+
+    - Fixed a problem with bin/update erroneously moving templates from
+      templates/xx to lists/xx if a list has the same name as a language
+      code.  Also fixed the absolute path to lists/ (1418670 ).
+
+    - Changed Utils.ValidateEmail to not allow specials (particularly ':')
+      in unquoted local parts (1956393).
+
+    - Changed bin/update to remove .bak files erroneously left behind in
+      qfiles/*/ by a 2.1.9 bug.
+
+    - Added 's' to %(listname) in templates/ia/admlogin.html and
+      templates/sl/help.txt (1682990).
+
+    - Use newer template variable for site-owner address in
+      templates/ko/newlist.txt and templates/ru/newlist.txt (1578766).
+
+    - Corrections to Spanish translation submitted by Wikimedia Foundation
+      (1433262) and Debian.
+
+    - Corrections to German translation submitted by Ralf Doeblitz (916196).
+
+    - Correction to French translation submitted by Maxime Carron (1588617).
+
+    - Correction to Portuguese translation submitted by Gabriel P. Silva
+      (1733057).
+
+    - Add #! line to fblast.py test script (1578740).
+
+    - Fixed unescaped '%' in templates/nl/newlist.txt (1719017).
+
+    - Changed non-ascii characters in some templates/*/*.html files to HTML
+      entities.
+
+    - Fixed a problem in Decorate.py that could result in a multipart
+      message with no part headers for the original body part (1991348).
+
+    - Improved recognition of some bounce messages.
+
+    - Rearranged calls to the list setBounceInfo() method in Bouncer.py
+      to accommodate MemberAdaptors that store bounce info outside the
+      list instance.
+
+    - Fixed CookHeaders.py which in some cases with new style prefixing
+      would insert an extra space between the prefix and the subject.
+
+    - Changed OldStyleMemberships.py to remove the member from one_last_digest
+      when changing from regular to digest delivery to avoid the possibility
+      of a duplicate digest in some circumstances.
+
+    - Patched Danish message catalog for proper use of HTML entities per
+      Jonas Smedegaard (1999966).
+
+    - Improved bounce loop detection and handling in BounceRunner.py.
+
+    - Merged the Catalan i18n from the Mailman Catalan Translation Team.
+
+    - German translation updated by Peer Heinlein.
+
+    - Added check for gateway_to_news before holding for ModeratedNewsgroup.
+
+    - At some point, cron/senddigests and bin/update were inadvertently
+      'preconfigured'. This has been fixed.
+
+    - Brazilian Portuguese translation updated by Diego Francisco
+      de Gastal Morales.
+
+    - Added 'listname' to the replacements for the archidxfoot.html template.
+
+  Miscellaneous
+
+    - Brad Knowles' mailman daily status report script updated to 0.0.18.
+
+2.1.10 (21-Apr-2008)
+
+  Security
+
+    - The 2.1.9 fixes for CVE-2006-3636 were not complete.  In particular,
+      some potential cross-site scripting attacks were not detected in
+      editing templates and updating the list's info attribute via the web
+      admin interface.  This has been assigned CVE-2008-0564 and has been
+      fixed.  Thanks again to Moritz Naumann for assistance with this.
+
+    - There is a new mm_cfg.py/Defaults.py variable
+      OWNERS_CAN_CHANGE_MEMBER_PASSWORDS which controls whether the list
+      owner can change a member's password from the member's options page.
+      This defaults to No and should be changed to Yes only if list owners
+      are trusted to not change a member's password, log in as the member
+      and make global membership changes.
+
+  New Features
+
+    - Changed cmd_who.py to list all members if authorization is with the
+      list's admin or moderator password and to accept the password if the
+      roster is public.  Also changed the web roster to show hidden members
+      when authorization is by site or list's admin or moderator password
+      (1587651).
+
+    - Added the ability to put a list name in accept_these_nonmembers
+      to accept posts from members of that list (1220144).
+
+    - Added a new 'sibling list' feature to exclude members of another list
+      from receiving a post from this list if the other list is in the To: or
+      Cc: of the post or to include members of the other list if that list is
+      not in the To: or Cc: of the post (Patch ID 1347962).
+
+    - Added the admin_member_chunksize attribute to the admin General Options
+      interface (Bug 1072002, Partial RFE 782436).
+
+Internationalization
+
+    - Added the Hebrew translation from Dov Zamir.  This includes addition of
+      a direction ('ltr', 'rtl') to the LC_DESCRIPTIONS table.  The
+      add_language() function defaults direction to 'ltr' to not break
+      existing mm_cfg.py files.
+
+    - Added the Slovak translation from Martin Matuska.
+
+    - Added the Galician translation from Frco. Javier Rial Rodríguez.
+
+  Bug fixes and other patches
+
+    - Added bounce recognition for several additional bounce formats.
+
+    - Fixed CommandRunner.py to decode a quoted-printable or base64 encoded
+      message part (1829061).
+
+    - Fixed Scrubber.py to avoid loss of an implicit text/plain message part
+      with no Content-* headers in a MIME multipart message (759841).  Fixed
+      several other minor scrubber issues (1242450).
+
+    - Added Date and Message-ID headers to the confirm reply message that
+      Mailman adds to the admin notification (1471318).
+
+    - Fixed Cgi/options.py to not present the "empty" topic to user.
+
+    - Fixed Handlers/CalcRecips.py to not process topics if topics are
+      disabled for the list.  This caused users who had previously subscribed
+      to topics and elected to not receive non-matching posts to receive no
+      messages after topics were disabled for the list.
+
+    - Fixed MaildirRunner.py to handle hyphenated list names.
+
+    - Fixed a bug in MimeDel.py (content filtering) which caused
+      *_filename_extensions to not match if the extension in the message was
+      not all lower case.
+
+    - Fixed versions.py to not call a non-existant method when converting held
+      posts from Mailman 1.0.x lists.
+
+    - Added a test to configure to detect a missing python-devel package on
+      some RedHat systems.
+
+    - Fixed bin/dumpdb to once again be able to dump marshals (broken since
+      2.1.5) (963137).
+
+    - Worked around a bug in the Python email library that could cause Mailman
+      to not get the correct value for the sender of a message from an RFC
+      2231 encoded header causing spurious held messages.
+
+    - Fixed bin/check_perms to detect certain missing permissions on the
+      archives/private/ and archives/private/<list>/database/ directories.
+
+    - Improved exception handling in cron/senddigests.
+
+    - Changed the admindb page to not show the "Discard all messages marked
+      Defer" checkbox when there are only (un)subscribes and no held messages.
+      Also added a separator and heading for "Held Messages" like the ones for
+      "Subscribe Requests" and "Unsubscribe Requests".  Suppressed the
+      "Database Updated" message when coming from the login page.  Also
+      removed the "Discard all messages marked Defer" checkbox from the
+      details page where it didn't work (1562922, 1000699).
+
+    - Fixed admin.py so null VARHELP category is handled (1573393).
+
+    - Fixed OldStyleMemberships.py to preserve delivery statuses BYADMIN
+      and BYUSER on a straight change of address (1642388).  Also fixed a
+      bug that could result in a member key with uppercase in the domain.
+
+    - Fixed bin/withlist so that -r can take a full package path to a
+      callable.
+
+    - Removal of DomainKey/DKIM signatures is now controlled by Defaults.py
+      mm_cfg.py variable REMOVE_DKIM_HEADERS (default = No).  Also, if
+      REMOVE_DKIM_HEADERS = Yes, an Authentication-Results: header will be
+      removed if present.
+
+    - The DeprecationWarning issued by Python 2.5 regarding string exceptions
+      is supressed.
+
+    - format=flowed and delsp=yes are now preserved for message bodies when
+      message headers/footers are added and attachments are scrubbed
+      (1495122).
+
+    - Queue runner processing is improved to log and preserve for analysis in
+      the shunt queue certain bad queue entries that were previously logged
+      but lost.  Also, entries are preserved when an attempt to shunt throws
+      an exception (1656289).
+
+    - The admin Membership List pages have been changed in that the email
+      address which forms a part of the various CGI data keys is now
+      urllib.quote()ed. This allows changing options for and unsubbing an
+      address which contains a double-quote character, but it may require
+      changes to scripts that screen-scrape the web admin interface to
+      produce a membership list so they will report an unquoted address.
+
+    - The fix for bug 1181161 in 2.1.7 was incomplete.  The Approve(d): line
+      wasn't always found in quoted-printable encoded parts and was never
+      found in base64 encoded parts.  This is now fixed.
+
+    - Fixed a mail loop if a list owner puts the list's -bounces or -admin
+      address in the list's owner attribute (1834569).
+
+    - Fixed the mailto: link in archived messages to prefix the subject with
+      Re: and to put the correct message-id in In-Reply-To (1621278, 1834281).
+
+    - Coerced list name arguments to lower case in the change_pw, inject,
+      list_admins and list_owners command line tools (patch 1842412).
+
+    - Fixed cron/disabled to test if bounce info is stale before disabling
+      a member when the threshold has been reduced.
+
+    - It wasn't noted here, but in 2.1.9, queue runner processing was made
+      more robust by making backups of queue entries when they were dequeued
+      so they could be recovered in the event of a system failure.  This
+      opened the possibility that if a message itself caused a runner to
+      crash, a loop could result that would endlessly reprocess the message.
+      This has now been fixed by adding a dequeue count to the entry and
+      moving the entry aside and logging the fact after the third dequeue of
+      the same entry.
+
+    - Fixed the command line scripts add_members, sync_members and
+      clone_member to properly handle banned addresses (1904737).
+
+    - Fixed bin/newlist to add the list's preferred language to the list's
+      available_languages if it is other than the server's default language
+      (1906368).
+
+    - Changed the first URL in the RFC 2369 List-Unsubscribe: header to go
+      to the options login page instead of the listinfo page.
+
+    - Changed the options login page to not issue the "No address given" error
+      when coming from the List-Unsubscribe and other direct links.  Also
+      changed to remember the user's language selection when redisplaying the
+      page following an error.
+
+    - Changed cmd_subscribe.py to properly accept (no)digest without a
+      password and to recognize (no)digest and address= case insensitively.
+
+    - Fixed a problem where GuiBase._getValidValue() would truncate a
+      floating point Number type to an int if the value was a float instead
+      of a numeric string. This affected setting floating point values with
+      config_list.
+
+  Miscellaneous
+
+    - Brad Knowles' mailman daily status report script updated to 0.0.17.
+
+    - An updated mm-handler (mm-handler-2.1.10) that can help reduce
+      backscatter has been added to the contrib directory.
+
+2.1.9 (12-Sep-2006)
+
+  Security
+
+    - A malicious user could visit a specially crafted URI and inject an
+      apparent log message into Mailman's error log which might induce an
+      unsuspecting administrator to visit a phishing site.  This has been
+      blocked.  Thanks to Moritz Naumann for its discovery.
+
+    - Fixed denial of service attack which can be caused by some
+      standards-breaking RFC 2231 formatted headers.  CVE-2006-2941.
+
+    - Several cross-site scripting issues have been fixed.  Thanks to Moritz
+      Naumann for their discovery.  CVE-2006-3636
+
+    - Fixed an unexploitable format string vulnerability.  Discovery and fix
+      by Karl Chen.  Analysis of non-exploitability by Martin 'Joey' Schulze.
+      Also thanks go to Lionel Elie Mamane.  CVE-2006-2191.
+
+  Internationalization
+
+    - New languages: Arabic, Vietnamese.
+
+  Bug fixes and other patches
+
+    - Fixed Decorate.py so that characters in message header/footer which
+      are not in the character set of the list's language are ignored rather
+      than causing shunted messages (1507248).
+
+    - Switchboard.py - Closed very tiny holes at the upper ends of queue
+      slices that could result in unprocessable queue entries.  Improved FIFO
+      processing when two queue entries have the same timestamp.
+
+2.1.8 (15-Apr-2006)
+
+  Security
+
+    - A cross-site scripting hole in the private archive script of 2.1.7
+      has been closed.  Thanks to Moritz Naumann for its discovery.
+
+  Bug fixes and other patches
+
+    - Bouncers support added: 'unknown user', Microsoft SMTPSVC, Prodigy.net
+      and several others.
+
+    - Updated email library to 2.5.7 which will encode payload into qp/base64
+      upon setting.  This enabled backing out the scrubber related patches
+      including 'X-Mailman-Scrubbed' header in 2.1.7.
+
+    - Fix SpamDetect.py potential hold/reject loop problem.
+
+    - A warning message from email package to the stderr can cause error
+      in Logging because stderr may be detached from the process during
+      the qrunner run.  We chose not to output errors to stderr but to
+      the logs/error if the process is running under mailmanctl subprocess.
+
+    - DKIM header cleansing was separated from Cleanse.py and added to
+      -owner messages too.
+
+    - Fixes: Lose Topics when go directly to topics URL (1194419).
+      UnicodeError running bin/arch (1395683).  edithtml.py missing import
+      (1400128).  Bad escape in cleanarch.  Wrong timezone in list archive
+      index pages (1433673).  bin/arch fails with TypeError (1430236).
+      Subscription fails with some Language combinations (1435722).
+      Postfix delayed notification not recognized (863989).  2.1.7 (VERP)
+      mistakes delay notice for bounce (1421285).  show_qfiles: 'str'
+      object has no attribute 'as_string' (1444447).  Utils.get_domain()
+      wrong if VIRTUAL_HOST_OVERVIEW off (1275856).
+
+  Miscellaneous
+
+    - Brad Knowles' mailman daily status report script updated to 0.0.16.
+
+2.1.7 (31-Dec-2005)
+
+  Security
+
+    - The fix for CAN-2005-0202 has been enhanced to issue an appropriate
+      message instead of just quietly dropping ./ and ../ from URLs.
+
+    - A note on CVE-2005-3573: Although the RFC2231 bug example in the CVE has
+      been solved in Mailman 2.1.6, there may be more cases where
+      ToDigest.send_digests() can block regular delivery.  We put the
+      send_digests() calling part in a try/except clause and leave a message
+      in the error log if something happened in send_digests().  Daily call of
+      cron/senddigests will provide more detail to the site administrator.
+
+    - List administrators can no longer change the user's option/subscription
+      globally.  Site admin can change these only if
+      mm_cfg.ALLOW_SITE_ADMIN_COOKIES is set to Yes.
+
+    - <script> tags are HTML-escaped in the edithtml CGI script.
+
+    - Since the probe message for disabled users may reach unintended
+      recipients, the password is excluded from sendProbe() and probe.txt.
+      Note that the default value of VERP_PROBE has been set to `No' from
+      2.1.6., thus this change doesn't affect the default behavior.
+
+  New Features
+
+    - Always remove DomainKey (and similar) headers from messages sent to the
+      list. (1287546)
+
+    - List owners can control the content filter behavior when collapsing
+      multipart/alternative parts to its first subpart.  This allows the
+      option of letting the HTML part pass through after other content
+      filtering is done.
+
+  Internationalization
+
+    - New language: Interlingua.
+
+  Bug fixes and other patches
+
+    - Defaults.py.in: SCRUBBER_DONT_USE_ATTACHMENT_FILENAME is set to True for
+      safer operation.
+
+    - Fixed the bug where Scrubber.py munges quoted-printable by introducing
+      the 'X-Mailman-Scrubbed' header which marks that the payload is
+      scrubber-munged.  The flag is referenced in ToDigest.py, ToArchive.py,
+      Decorate.py and Archiver.  A similar problem in ToDigest.py where the
+      plain digest is generated is also fixed.
+
+    - Fixed Syslog.py to write quopri encoded messages when it fail to write
+      8-bit characters.
+
+    - Fixed MTA/Postfix.py to check aliases group permission in check_perms
+      and fixed mailman-install document on this matter (1378270).
+
+    - Fixed private.py to go to the original URL after authorization
+      (1080943).
+
+    - Fixed bounce log score messages to be more consistent.
+
+    - Fixed bin/remove_members to accept no arguments when both --fromall and
+      --file= options are specified.
+
+    - Changed cgi-bin and mail wrapper "group not found" error message to be
+      more descriptive of the actual problem.
+
+    - The list's ban_list now applies to address changes, admin mass
+      subscribes and invites, and to confirmations/approvals of address
+      changes, subscriptions and invitations.
+
+    - quoted-printable and base64 encoded parts are decoded before passing to
+      HTML_TO_PLAIN_TEXT_COMMAND (1367783).
+
+    - Approve: header is removed from posts, and treated the same as the
+      Approved: header. (1355707)
+
+    - Fixed the removal of the line following Approve[d]: line in body of
+      post.  (1318883)
+
+    - The Approve[d]: <password> header is removed from all text/* parts in
+      addition the initial text/plain part.  It must still be the first
+      non-blank line in the first text/plain part or it won't be found or
+      removed at all. (1181161)
+
+    - Posts are now logged in post log file with the true sender, not
+      listname-bounces. (1287921)
+
+    - Correctly initialize and remember the list's default_member_moderation
+      attribute in the web list creation page. (1263213)
+
+    - PEP263 charset is added to the config_list output. (1343100)
+
+    - Fixed header_filter_rules getting lost if accessed directly and
+      authentication was needed by login page. (1230865)
+
+    - Obscure email when the poster doesn't set full name in 'From:' header.
+
+    - Preambles and epilogues are taken into account when calculating message
+      sizes for holding purposes. (Mark Sapiro)
+
+    - Logging/Logger.py unicode transform option. (1235567)
+
+    - bin/update crashes with bogus files. (949117)
+
+    - Bugs and patches: 1212066/1301983 (Date header in create/remove notice)
+
+2.1.6 (30-May-2005)
+
+  Security
+
+    - Critical security patch for path traversal vulnerability in private
+      archive script  (CAN-2005-0202).
+
+    - Added the ability for Mailman generated passwords (both member and list
+      admin) to be more cryptographically secure.  See new configuration
+      variables USER_FRIENDLY_PASSWORDS, MEMBER_PASSWORD_LENGTH, and
+      ADMIN_PASSWORD_LENGTH.  Also added a new bin/withlist script called
+      reset_pw.py which can be used to reset all member passwords.  Passwords
+      generated by Mailman are now 8 characters by default for members, and 10
+      characters for list administrators.
+
+    - A potential cross-site scripting hole in the driver script has been
+      closed.  Thanks to Florian Weimer for its discovery.  Also, turn
+      STEALTH_MODE on by default.
+
+  Internationalization
+
+    - Chinese languages are now supported.  They have been moved from 'big5'
+      and 'gb' to 'zh_TW' and 'zh_CN' respectively for compliance to the IANA
+      spec.  Note, however, that the character sets were changed from 'Big5'
+      or 'GB2312' to 'UTF-8' to cope with the insufficient codecs support in
+      Python 2.3 and earlier.  You may have to install Chinese capable codecs
+      (like CJKCodecs) separately to handle the incoming messages which are in
+      local charsets, or upgrade your Python to 2.4 or newer.
+
+  Behavior or defaults changes
+
+    - VERP_PROBES is disabled by default.
+
+    - bin/withlist can be run without a list name, but only if -i is given.
+      Also, withlist puts the directory it's found in at the end of sys.path,
+      making it easier to run withlist scripts that live in $prefix/bin.
+
+    - bin/newlist grew two new options: -u/--urlhost and -e/--emailhost which
+      lets the user provide the web and email hostnames for the new mailing
+      list.  This is a better way to specify the domain for the list, rather
+      than the old 'mylist at hostname' syntax (which is still supported for
+      backward compatibility, but deprecated).
+
+  Compatibility
+
+    - Python 2.4 compatibility issue: time.strftime() became strict about the
+      'day of year' range.  (1078482)
+
+  New Features
+
+    - New feature: automatic discards of held messages.  List owners can now
+      set how many days to hold the messages in the moderator request queue.
+      cron/checkdb will automatically discard old messages.  See the
+      max_days_to_hold variable in the General Options and
+      DEFAULT_MAX_DAYS_TO_HOLD in Defaults.py.  This defaults to 0
+      (i.e. disabled). (790494)
+
+    - New feature: subject_prefix can be configured to include a sequence
+      number which is taken from the post_id variable.  Also, the prefix is
+      always put at the start of the subject, i.e. "[list-name] Re: original
+      subject", if mm_cfg.OLD_STYLE_PREFIXING is set No.  The default style
+      is "Re: [list-name]" if numbering is not set, for backward compatibility.
+      If the list owner is using numbering feature by "%d" directive, the new
+      style, "[list-name 123] Re:", is always used.
+
+    - List owners can now cusomize the non-member rejection notice from
+      admin/<listname>/privacy/sender page. (1107169)
+
+    - Allow editing of the welcome message from the admin page (1085501).
+
+    - List owners can now use Scrubber to get the attachments scrubbed (held
+      in the web archive), if the site admin permits it in mm_cfg.py.  New
+      variables introduced are SCRUBBER_DONT_USE_ATTACHMENT_FILENAME and
+      SCRUBBER_USE_ATTACHMENT_FILENAME_EXTENSION in Defaults.py for scrubber
+      behavior.  (904850)
+
+  Documentation
+
+    - Most of the installation instructions have been moved to a latex
+      document.  See doc/mailman-install/index.html for details.
+
+  Bug fixes and other patches
+
+    - Mail-to-news gateway now strips subject prefix off from a response
+      by a mail user if news_prefix_subject_too is not set.
+
+    - Date and Message-Id headers are added for digests. (1116952)
+
+    - Improved mail address sanity check.  (1030228)
+
+    - SpamDetect.py now checks attachment header.  (1026977)
+
+    - Filter attachments by filename extensions.  (1027882)
+
+    - Bugs and patches: 955381 (older Python compatibility), 1020102/1013079/
+      1020013 (fix spam filter removed), 665569 (newer Postfix bounce
+      detection), 970383 (moderator -1 admin requests pending), 873035
+      (subject handling in -request mail), 799166/946554 (makefile
+      compatibility), 872068 (add header/footer via unicode), 1032434
+      (KNOWN_SPAMMERS check for multi-header), 1025372 (empty Cc:), 789015
+      (fix pipermail URL), 948152 (Out of date link on Docs),  1099138
+      (Scrubber.py breaks on None part),  1099840/1099840 (deprecated %
+      insertion),  880073/933762 (List-ID RFC compliance),  1090439 (passwd
+      reminder shunted), 1112349 (case insensitivity in acceptable_aliases),
+      1117618 (Don't Cc for personalized anonymous list), 1190404 (wrong
+      permission after editing html)
+
+2.1.5 (15-May-2004)
+
+    - The admindb page has a checkbox that allows you to discard all held
+      messages that are marked Defer.  On heavy lists with lots of spam holds,
+      this makes clearing them much faster.
+
+    - The qrunner system has changed to use only one file per message.
+      However the configuration variable METADATA_FORMAT has been removed, and
+      support for SAVE_MSGS_AS_PICKLES has been changed.  The latter no longer
+      writes messages as plain text.  Instead, they are stored as pickles of
+      plain strings, using the text pickle format.  This still makes them
+      non-binary files readable and editable by humans.
+
+      bin/dumpdb also works differently.  It will print out the entire pickle
+      file (with more verbosity) and if used with 'python -i', it binds msg to
+      a list of all objects found in the pickle file.
+
+      Removed from Defaults.py: PENDINGDB_LOCK_TIMEOUT,
+      PENDINGDB_LOCK_ATTEMPTS, METAFMT_MARSHAL, METAFMT_BSDDB_NATIVE,
+      METAFMT_ASCII, METADATA_FORMAT
+
+    - The bounce processor has been redesigned so that now when an address's
+      bounce score reaches the threshold, that address will be sent a probe
+      message.  Only if the probe bounces will the address be disabled.  The
+      score is reset to zero when the probe is sent.  Also, bounce events are
+      now kept in an event file instead of in memory.  This should help
+      contain the bloat of the BounceRunner.
+
+      New supporting variables in Defaults.py: VERP_PROBE_FORMAT,
+      VERP_PROBE_REGEXP
+
+      REGISTER_BOUNCES_EVERY is promoted to a Defaults.py variable.
+
+    - The pending database has been changed from a global pickle file, to a
+      unique pickle file per mailing list.
+
+    - The 'request' database file has changed from a marshal, to the more
+      secure pickle format.
+
+    - Disallow multiple password retrievals.
+
+    - SF patch #810675 which adds a "Discard all messages marked Defer" button
+      for faster admindb maintenance.
+
+    - The email package is updated to version 2.5.5.
+
+    - New language: Turkish.
+
+    - Bugs and patches: 869644, 869647 (NotAMemberError for old cookie data),
+      878087 (bug in Slovenian catalog), 899263 (ignore duplicate pending
+      ids), 810675 (discard all defers button)
+
+2.1.4 (31-Dec-2003)
+
+    - Close some cross-site scripting vulnerabilities in the admin pages
+      (CAN-2003-0965).
+
+    - New languages: Catalan, Croatian, Romanian, Slovenian.
+
+    - New mm_cfg.py/Defaults.py variable PUBLIC_MBOX which allows the site
+      administrator to disable public access to all the raw list mbox files
+      (this is not a per-list configuration).
+
+    - Expanded header filter rules under Privacy -> Spam Filters.  Now you can
+      specify regular expression matches against any header, with specific
+      actions tied to those matches.
+
+    - Rework the SMTP error handling in SMTPDirect.py to avoid scoring bounces
+      for all recipients when a permanent error code is returned by the mail
+      server (e.g. because of content restrictions).
+
+    - Promoted SYNC_AFTER_WRITE to a Default.py/mm_cfg.py variable and
+      make it control syncing on the config.pck file.  Also, we always flush
+      and sync message files.
+
+    - Reduce archive bloat by not storing the HTML body of Article objects in
+      the Pipermail database.  A new script bin/rb-archfix was added to clean
+      up older archives.
+
+    - Proper RFC quoting for List-ID descriptions.
+
+    - PKGDIR can be passed to the make command in order to specify a different
+      directory to unpack the distutils packages in misc.  (SF bug 784700).
+
+    - Improved logging of the origin of subscription requests.
+
+    - Bugs and patches: 832748 (unsubscribe_policy ignored for unsub button on
+      member login page), 846681 (bounce disabled cookie was always out of
+      date), 835870 (check VIRTUAL_HOST_OVERVIEW on through the web list
+      creation), 835036 (global address change when the new address is already
+      a member of one of the lists), 833384 (incorrect admin password on a
+      hold message confirmation attachment would discard the message), 835012
+      (fix permission on empty archive index), 816410 (confirmation page
+      consistency), 834486 (catch empty charsets in the scrubber), 777444 (set
+      the process's supplemental groups if possible), 860135 (ignore
+      DiscardMessage exceptions during digest scrubbing), 828811 (reduce
+      process size for list and admin overviews), 864674/864676 (problems
+      accessing private archives and rosters with admin password), 865661
+      (Tokio Kikuchi's i18n patches), 862906 (unicode prefix leak in admindb),
+      841445 (setting new_member_options via config_list), n/a (fixed email
+      command 'set delivery')
+
+2.1.3 (28-Sep-2003)
+
+    Performance, Reliability, Security
+
+        - Closed a cross-site scripting exploit in the create cgi script.
+
+        - Improvements in the performance of the bounce processor.
+          Now, instead of processing each bounce immediately (which
+          can cause severe lock contention), bounce events are queued.
+          Every 15 minutes by default, the queued bounce events are
+          processed en masse, on a list-per-list basis, so that each
+          list only needs to be locked once.
+
+        - When some or all of a message's recipients have temporary
+          delivery failures, the message is moved to a "retry" queue.
+          This queue wakes up occasionally and moves the file back to
+          the outgoing queue for attempted redelivery.  This should
+          fix most observed OutgoingRunner 100% cpu consumption,
+          especially for bounces to local recipients when using the
+          Postfix MTA.
+
+        - Optional support for fsync()'ing qfile data after writing.
+          Under some catastrophic system failures (e.g. power lose),
+          it would be possible to lose messages because the data
+          wasn't sync'd to disk.  By setting SYNC_AFTER_WRITE to True
+          in Mailman/Queue/Switchboard.py, you can force Mailman to
+          fsync() queue files after flushing them.  The benefits are
+          debatable for most operating environments, and you must
+          ensure that your Python has the os.fsync() function defined
+          before enabling this feature (it isn't, even on all
+          Unix-like operating systems).
+
+    Internationalization
+
+        - New languages Ukrainian, Serbian, Danish, Euskara/Basque.
+
+        - Fixes to template lookup.  Lists with local overriding
+          templates would find the wrong template.
+
+        - .mo files (for internationalization) are now generated at
+          build time instead of coming as part of the source
+          distribution.
+
+    Documentation
+
+        - A first draft of member documentation by Terri Oda.  There
+          is also a Japanese translation of this manual by Ikeda Soji.
+
+    Archiver / Pipermail
+
+        - In the configuration variables PUBLIC_EXTERNAL_ARCHIVER, and
+          PRIVATE_EXTERNAL_ARCHIVER, %(hostname)s has been added to
+          the list of allowable substitution variables.
+
+        - The timezone is now taken into account when figuring the
+          posting date for an article.
+
+    Scripts / Cron
+
+        - Fixes to cron/disabled for NotAMemberError crashes.
+
+        - New script bin/show_qfiles which prints the contents of .pck
+          message files.  New script bin/discard which can be used to
+          mass discard held messages.
+
+        - Fixes to cron/mailpasswds to account for old password-less
+          subscriptions.
+
+        - bin/list_members has grown two new options: --invalid/-i
+          prints only the addresses in the member database that are
+          invalid (which could have snuck in via old releases);
+          --unicode/-u prints addresses which are stored as Unicode
+          objects instead of as normal strings.
+
+    Miscellaneous
+
+        - Fixes to problems in some configurations where Python wouldn't
+          be able to find its standard library.
+
+        - Fixes to the digest which could cause MIME-losing missing
+          newlines when parts are scrubbed via the content filters.
+
+        - In the News/Mail gateway admin page, the configuration variable
+          nntp_host can now be a name:port pair.
+
+        - When messages are pulled from NNTP, the member moderation checks
+          are short-circuited.
+
+        - email 2.5.4 is included.  This fixes an RFC 2231 bug, among
+          possibly others.
+
+        - Fixed some extra spaces that could appear in the List-ID header.
+
+        - Fixes to ensure that invalid email addresses can't be invited.
+
+        - WEB_LINK_COLOR in Defaults.py/mm_cfg.py should now work.
+
+        - Fixes so that shunted message file names actually match
+          those logged in log/errors.
+
+        - An improved pending action cookie generation algorithm has
+          been added.
+
+        - Fixes to the DSN bounce detector.
+
+        - The usual additional u/i, internationalization, unicode, and
+          other miscellaneous fixes.
+
+2.1.2 (22-Apr-2003)
+
+    - New languages Portuguese (Portugal) and Polish.
+
+    - Many convenient constants have been added to the Defaults.py
+      module to (hopefully) make it more readable.
+
+    - Email addresses which contain 8-bit characters in them are now
+      rejected and won't be subscribed.  This is not the same as 8-bit
+      characters in the realname, which is still allowed.
+
+    - The X-Originating-Email header is removed for anonymous lists.
+      Hotmail apparently adds this header.
+
+    - When running make to build Mailman, you can specify $DESTDIR to
+      the install target to specify an alternative location for
+      installation, without influencing the paths stored in
+      e.g. Defaults.py.  This is useful to package managers.
+
+    - New Defaults.py variable DELIVERY_RETRY_WAIT which controls how
+      long the outgoing qrunner will wait before it retries a
+      tempfailure delivery.
+
+    - The semantics for the extend.py hook to MailList objects has
+      changed slightly.  The hook is now called before attempting to
+      lock and load the database.
+
+    - Mailman now uses the email package version 2.5.1
+
+    - bin/transcheck now checks for double-%'s
+
+    - bin/genaliases grew a -q / --quiet flag
+
+    - cron/checkdbs grew a -h / --help option.
+
+    - The -c / --change-msg option has been removed from bin/add_members
+
+    - bin/msgfmt.py has been added, taken from Python 2.3's Tools/i18n
+      directory.  The various .mo files are now no longer distributed
+      with Mailman.  They are generated at build time instead.
+
+    - A new file misc/sitelist.cfg which can be used with
+      bin/config_list provides a small number of recommended settings
+      for your site list.  Be sure to read it over before applying!
+      sitelist.cfg is installed into the data directory.
+
+    - Many bug fixes, including these SourceForge bugs closed and
+      patches applied: 677668, 690448, 700538, 700537, 673294, 683906,
+      671294, 522080, 521124, 534297, 699900, 697321, 695526, 703941,
+      658261, 710678, 707608, 671303, 717096, 694912, 707624, 716755,
+      661138, 716754, 716702, 667167, 725369, 726415
+
+
+2.1.1 (08-Feb-2003)
+
+    Lots of bug fixes and language updates.  Also:
+
+    - Closed a cross-site scripting vulnerability in the user options page.
+
+    - Restore the ability to control which headers show up in messages
+      included in plaintext and MIME digests.  See the variables
+      PLAIN_DIGEST_KEEP_HEADERS and MIME_DIGEST_KEEP_HEADERS in
+      Defaults.py.
+
+    - Messages included in the plaintext digests are now sent through
+      the scrubber to remove (and archive) attachments.  Otherwise,
+      attachments would screw up plaintext digests.  MIME digests
+      include the attachments inline.
+
+2.1 final (30-Dec-2002)
+
+    Last minute bug fixes and language updates.
+
+2.1 rc 1 (24-Dec-2002)
+
+    Bug fixes and language updates.  Also,
+
+    - Lithuanian support has been added.
+
+    - bin/remove_members grew --nouserack and --noadminack switches
+
+    - configure now honors --srcdir
+
+2.1 beta 6 (09-Dec-2002)
+
+    Lots and lots of bug fixes, and translation updates.  Also,
+
+    - ARCHIVER_OBSCURES_EMAILADDRS is now set to true by default.
+
+    - QRUNNER_SAVE_BAD_MESSAGES is now set to true by default.
+
+    - Bounce messages which were recognized, but in which no member
+      addresses were found are no longer forwarded to the list
+      administrator.
+
+    - bin/arch grew a --wipe option which first removes the entire old
+      archive before regenerating the new one.
+
+    - bin/mailmanctl -u now prints a warning that permission problems
+      could appear, such as when trying to delete a list through the
+      web that has some archives in it.
+
+    - bin/remove_members grew --nouserack/-n and -noadminack/-N options.
+
+    - A new script bin/list_owners has been added for printing out
+      list owners and moderators.
+
+    - Dates in the web version of archived messages are now relative
+      to the local timezone, and include the timezone names, when
+      available.
+
+2.1 beta 5 (19-Nov-2002)
+
+    As is typical for a late beta release, this one includes the usual
+    bug fixes, tweaks, and massive new features (just kidding).
+
+    IMPORTANT: If you are using Pipermail, and you have any archives
+    that were created or added to in 2.1b4, you will need to run
+    bin/b4b5-archfix, followed by bin/check_perms to fix some serious
+    performance problems.  From you install directory, run
+    "bin/b4b5-archfix --help" for details.
+
+    - The personalization options have been tweaked to provide more
+      control over mail header and decoration personalizations.  In
+      2.1b4, when personalization was enabled, the To and Cc headers
+      were always overwritten.  But that's usually not appropriate for
+      anything but announce lists, so now these headers aren't changed
+      unless "Full personalization" is enabled.
+
+    - You now need to go to the General category to enable emergency
+      moderation.
+
+    - The order of the hold modules in the GLOBAL_PIPELINE has
+      changed, again.  Now Moderate comes before Hold.
+
+    - Estonian language support has been added.
+
+    - All posted messages should now get decorated with headers and
+      footers in a MIME-safe way.  Previously, some MIME type messages
+      didn't get decorated at all.
+
+    - bin/arch grew a -q/--quiet option
+
+    - bin/list_lists grew a -b/--bare option
+
+2.1 beta 4 (26-Oct-2002)
+
+    The usual assortment of bug fixes and language updates, some u/i
+    tweaks, as well as the following:
+
+    - Configuring / building / installing
+        o Tightened up some configure checks; it will now bark loudly
+          if you don't have the Python distutils package available
+          (some Linux distros only include distutils in their "devel"
+          packages).
+
+        o Mailman's username/group security assertions are now done by
+          symbolic name instead of numeric id.  This provides a level
+          of indirection that makes it much easier to move or package
+          Mailman.  --with-mail-gid and --with-cgi-gid are retained,
+          but they control the group names used instead.
+
+    - Command line scripts
+        o A new script, bin/transcheck that language teams can use to
+          check their .po files.
+
+        o bin/list_members grew a --fullnames/-f option to print the
+          full names along with the addresses.
+
+        o cron/senddigests grew --help/-h and --listname/-l options.
+
+        o bin/fix_url.py grew some command line options to support moving
+          a list to a specific virtual domain.
+
+    - Pipermail / archiving
+        o Reworked the directory layout for archive attachments to be
+          less susceptible to inode overload.  Attachments are now
+          placed in
+
+          archives/private/<listname>/attachments/<YYYYMMDD>/<msgidhash>
+
+        o Internationalization support in the archiver has been improved.
+
+    - Internationalization
+        o New languages: Swedish.
+
+    - Mail handling
+        o Content filtering now has a pass_mime_type variable, which
+          is a whitelist of MIME types to allow in postings.  See the
+          details of the variable in the Content Filtering category
+          for more information.
+
+        o If a member has enabled their DontReceiveDuplicates option,
+          we'll also strip their addresses from the Cc headers in the
+          copy of the message sent to the list.  This helps keep the
+          Cc lines from growing astronomically.
+
+        o Bounce messages are now forwarded to the list administrators
+          both if they are unrecognized, and if no list member's
+          address could be extracted.
+
+        o Content filtering now has a filter_action variable which
+          controls what happens when a message matches the content
+          filter rules.  The default is still to discard the message.
+
+        o When searching for an Approve/Approved header, the first
+          non-whitespace line of the body of the message is also
+          checked, if the body has a MIME type of text/plain.
+
+        o If a list is personalized, and the list's posting address is
+          not included in a Reply-To header, the posting address is
+          copied into a Cc header, otherwise there was no (easy) way a
+          recipient could reply back to the list.
+
+        o Added a MS Exchange bounce recognizer.
+
+        o New configuration variable news_moderation which allows the
+          mail->news gateway to properly post to moderated newsgroups.
+
+        o Messages sent to a list's owners now comes from the site
+          list to prevent mail loops when list owners or moderators
+          having bouncing addresses.
+
+    - Miscellaneous
+        o mailanctl prevents runaway restarts by imposing a maximum
+          restart value (defaulting to 10) for restarting the
+          qrunners.  If you hit this limit, do "mailmanctl stop"
+          followed by "mailmanctl start".
+
+        o The Membership Management page's search feature now includes
+          searching on members real names.
+
+        o The start of a manual for list administrators is given in
+          Python HOWTO format (LaTeX).  It's in doc/mailman-admin.tex
+          but it still needs lots of fleshing out.
+
+        o More protections against creating a list with an invalid name.
+
+2.1 beta 3 (09-Aug-2002)
+
+    The usual assortment of bug fixes and language updates.
+
+    - New languages: Dutch, Portuguese (Brazil)
+
+    - New configure script options: --with-mailhost, --with-urlhost,
+      --without-permcheck.  See ./configure --help for details.
+
+    - The encoding of Subject: prefixes is controlled by a new list
+      option encode_ascii_prefixes.  This is useful for languages with
+      character sets other than us-ascii.  See the Languages admin
+      page for details.
+
+    - A new list option news_prefix_subject_too controls whether
+      postings gated from mail to news should have the subject prefix
+      added to their Subject: header.
+
+    - The algorithm for upgrading the moderation controls for a
+      Mailman 2.0.x list has changed.  The change should be
+      transparent, but you'll want to double check the moderation
+      controls after upgrading from MM2.0.x.  This should have no
+      effect for upgrades from a previous MM2.1 beta.
+
+      See the UPGRADING file for details.
+
+    - On the Mass Subscribe admin page, a text box has been added so
+      that the admin can add a custom message to be prepended to the
+      welcome/invite notification.
+
+    - On the admindb page, a link is included to more easily reload
+      the page.
+
+    - The Sendmail.py delivery module is sabotaged so that it can't be
+      used naively.  You need to read the comments in the file and
+      edit the code to use this unsafe module.
+
+    - When a member sends a `help' command to the request address,
+      the url to their options page is included in the response.
+
+    - Autoresponses, -request command responses, and posting hold
+      notifications are inhibited for any message that has a
+      Precedence: {bulk|list|junk} header.  This is to avoid mail
+      loops between email 'bots.  If the original message has an
+      X-Ack: yes header, the response is sent.
+
+      Responses are also limited to a maximum number per day, as
+      defined in the site variable MAX_AUTORESPONSES_PER_DAY.  This is
+      another guard against 'bot loops, and it defaults to 10.
+
+    - When a Reply-To: header is munged to include both the original
+      and the list address, the list address is always added last.
+
+    - The cron/mailpasswds script has grown a -l/--listname option.
+
+    - The cron/disabled script has grown options to send out
+      notifications for reasons other than bounce-disabled.  It has
+      also grown a -f/--force option.  See cron/disabled --help for
+      details.
+
+    - The bin/dumpdb script has grown a -n/--noprint option.
+
+    - An experimental new mechanism for processing incoming messages
+      has been added.  If you can configure your MTA to do qmail-style
+      Maildir delivery, Mailman now has a MaildirRunner qrunner.  This
+      may turn out to be much more efficient and scalable, but for
+      MM2.1, it will not be officially supported.  See Defaults.py.in
+      and Mailman/Queue/MaildirRunner.py for details.
+
+2.1 beta 2 (05-May-2002)
+
+    Lots of bug fixing, and the following new features and changes:
+
+    - A "de-mime" content filter feature has been added.  This
+      oft-requested feature allows you to specify MIME types that
+      Mailman should strip off of any messages before they're posted
+      to the list.  You can also optionally convert text/html to
+      text/plain (by default, through lynx if it's available).
+
+    - Changes to the way the RFC 2919 and 2369 headers (i.e. the
+      List-*: headers) are added:
+          o List-Id: is always added
+          o List-Post:, List-Help:, List-Subscribe:,
+            List-Unsubscribe:, and List-Archive: are only added to
+            posting messages.
+          o X-List-Administrivia: is only added to messages Mailman
+            creates and sends out of its own accord.
+
+      Also, if the site administrator allows it, list owners can
+      suppress the addition of all the List-*: headers.  List owners
+      can also separately suppress the List-Post: header for
+      announce-only lists.
+
+    - A new framework for email commands has been added.  This allows
+      you to easily add, delete, or change the email commands that
+      Mailman understands, on a per-site, per-list, or even per-user
+      basis.
+
+    - Users can now change their digest delivery type from MIME to
+      plain text globally, for all lists they are subscribed to.
+
+    - No language select pulldowns are shown if the list only supports
+      one language.
+
+    - More mylist-admin eradication.
+
+    - Several performance improvements in the bounce qrunner, one of
+      which is to make it run only once per minute instead of once per
+      second.
+
+    - Korean language support as been added.
+
+    - Gatewaying from news -> mail uses its connections to the nntpd
+      more efficiently.
+
+    - In bin/add_members, -n/--non-digest-members-file command line
+      switch is deprecated in favor of -r/--regular-members-file.
+
+    - bin/sync_members grew a -g/--goodbye-msg switch.
+
+2.1 beta 1 (16-Mar-2002)
+
+    In addition to the usual bug fixes, performance improvements, and
+    GUI changes, here are the highlights:
+
+    - MIME and other message handling
+        o More robustness against badly MIME encapsulated messages: if
+          a MessageParseError is raised during the initial parse, the
+          message can either be discarded or saved in qfiles/bad,
+          depending on the value of the new configuration variable
+          QRUNNER_SAVE_BAD_MESSAGES.
+
+        o There is a new per-user option that can be used to avoid
+          receipt of extra copies, when a member of the list is also
+          explicitly CC'd.
+
+        o Always add an RFC 2822 Date: header if missing, since not
+          all MTAs insert one automatically.
+
+        o The Sender: and Errors-To: headers are no longer added to
+          outgoing messages.
+
+        o Headers and footers are always added by concatenation, if
+          the message is not MIME and if the list's charset is a
+          superset of us-ascii.
+
+    - List administration
+        o An `invitation' feature has been added.  This is selectable
+          as a radio button on the mass subscribe page.  When
+          selected, users are invited to join instead of immediately
+          joined, i.e. they get a confirmation message.
+
+        o You can now enable and disable list owner notifications for
+          disabled-due-to-bouncing and removal-due-to-bouncing
+          actions.  The site config variables
+          DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE and
+          DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL control the default
+          behavior.
+
+        o List owners can now decide whether they receive unrecognized
+          bounce messages or not (i.e. messages that the bounce
+          processor doesn't recognize).  Site admins can set the
+          default value for this flag with the config variable
+          DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER.
+
+        o The admindb summary page gives the option of clearing the
+          moderation flag of members who are on quarantined.
+
+        o The action to take when a moderated member posts to a list
+          is now configurable.  The message can either be held,
+          rejected (bounced), or discarded.  If the message is
+          rejected, a rejection notice string can be given.
+
+        o In the General admin page, you can now set the default value
+          for five per-user flags: concealing the user's email
+          address, acknowledging posts sent by the user, copy
+          suppression, not-me-too selection, and the default digest
+          type.  Site admins can set the default bit field with the
+          new DEFAULT_NEW_MEMBER_OPTIONS variable.
+
+        o A new "Emergency brake" feature for turning on moderation of
+          all list postings.  This is useful for when flamewars break
+          out, and the list needs a cooling off period.  Messages
+          containing an Approved: header with the list owner password
+          are still allowed through, as are messages approved through
+          the admindb interface.
+
+        o When a moderated message is approved for the list, add an
+          X-Mailman-Approved-At: header which contains the timestamp
+          of the approval action (changed from X-Moderated: with a
+          different format).
+
+        o Lists can now be converted to using a less error prone
+          mechanism for variable substitution syntax in headers and
+          footers.  Instead of %(var)s strings, you'd use $var
+          strings.  You must use "bin/withlist -r convert" to enable
+          this.
+
+        o When moderating held messages, the header text box and the
+          message excerpt text box are now both read-only.
+
+        o You can't delete the site list through the web.
+
+        o When creating new lists through the web, you have the option
+          of setting the "default member moderation" flag.
+
+    - Security and privacy
+        o New feature: banned subscription addresses.  Privacy
+          options/subscription rules now have an additional list box
+          which can contain addresses or regular expressions.
+          Subscription requests from any matching address are
+          automatically rejected.
+
+        o Membership tests which compare message headers against list
+          rosters are now more robust.  They now check, by default
+          these header in order: From:, unixfrom, Reply-To:, Sender:.
+          If any match, then the membership test succeeds.
+
+        o ALLOW_SITE_ADMIN_COOKIES is a new configuration variable
+          which says whether to allow AuthSiteAdmin cookies or not.
+          Normally, when a list administrator logs into a list with
+          the site password, they are issued a cookie that only allows
+          them to do administration for this one list.  By setting
+          ALLOW_SITE_ADMIN_COOKIES to 1, the user only needs to
+          authenticate to one list with the site password, and they
+          can administer any mailing list.
+
+          I'm not sure this feature is wise, so the default value for
+          ALLOW_SITE_ADMIN_COOKIES is 0.
+
+        o Marc MERLIN's new recipes for secure Linuxes have been
+          updated.
+
+        o DEFAULT_PRIVATE_ROSTER now defaults to 1.
+
+        o Passwords are no longer included in the confirmation pages.
+
+    - Internationalization
+        o With the approval of Tamito KAJIYAMA, the Japanese codecs
+          for Python are now included automatically, so you don't need
+          to download and install these separate.  It is installed in
+          a Mailman-specific place so it won't affect your larger
+          Python installation.
+
+        o The configure script will produce a warning if the Chinese
+          codes are not installed.  This is not a fatal error.
+
+        o Russian templates and catalogs have been added.
+
+        o Finnish templates and catalogs have been added.
+
+    - Scripts and utilities
+        o New program bin/unshunt to safely move shunted messages back
+          into the appropriate processing queue.
+
+        o New program bin/inject for sending a plaintext message into
+          the incoming queue from the command line.
+
+        o New cron script cron/disabled for periodically culling the
+          disabled membership.
+
+        o bin/list_members has grown some new command line switches
+          for filtering on different criteria (digest mode, disable
+          mode, etc.)
+
+        o bin/remove_members has grown the --fromall switch.
+
+        o You can now do a bin/rmlist -a to remove an archive even
+          after the list has been deleted.
+
+        o bin/update removes the $prefix/Mailman/pythonlib directory.
+
+        o bin/withlist grows a --all/-a flag so the --run/-r option
+          can be applied to all the mailing lists.  Also, interactive
+          mode is now the default if -r isn't used.  You don't need to
+          run this script as "python -i bin/withlist" anymore.
+
+        o There is a new script contrib/majordomo2mailman.pl which
+          should ease the transition from Majordomo to Mailman.
+
+    - MTA integration
+        o Postfix integration has been made much more robust, but now
+          you have to set POSTFIX_ALIAS_CMD and POSTFIX_MAP_CMD to
+          point to the postalias and postmap commands respectively.
+
+        o VERP-ish delivery has been made much more efficient by
+          eliminating extra disk copies of messages for each recipient
+          of a VERP delivery.  It has also been made more robust in
+          the face of failures during chunk delivery.  This required a
+          rewrite of SMTPDirect.py and one casualty of that rewrite
+          was the experimental threaded delivery.  It is no longer
+          supported (but /might/ be resurrected if there's enough
+          demand -- or a contributed patch :).
+
+        o A new site config variable SMTP_MAX_SESSIONS_PER_CONNECTION
+          specifies how many consecutive SMTP sessions will be
+          conducted down the same socket connection.  Some MTAs have a
+          limit on this.
+
+        o Support for VERP-ing confirmation messages.  These are less
+          error prone since the Subject: header doesn't need to be
+          retained, and they allow a more user friendly (and i18n'd)
+          Subject: header.  VERP_CONFIRM_FORMAT, VERP_CONFIRM_REGEXP,
+          and VERP_CONFIRMATIONS control this feature (only supported
+          for invitation confirmations currently, but will be expanded
+          to the other confirmations).
+
+        o Several new list-centric addresses have been added:
+          -subscribe and -unsubscribe are synonyms for -join and
+          -leave, respectively.  Also -confirm has been added to
+          support VERP'd confirmations.
+
+    - Archiver
+        o There's now a default page for the Pipermail archive link
+          for when no messages have yet been posted to the list.
+
+        o Just the mere presence of an X-No-Archive: is enough to
+          inhibit archiving for this message; the value of the header
+          is now ignored.
+
+    - Configuring, building, installing
+        o Mailman now has a new favicon, donated by Terry Oda.  Not
+          all web pages are linked to the favicon yet though.
+
+        o The add-on email package is now distributed and installed
+          automatically, so you don't need to do this.  It is
+          installed in a Mailman-specific place so it won't affect
+          your larger Python installation.
+
+        o The default value of VERP_REGEXP has changed.
+
+        o New site configuration variables BADQUEUE_DIR and
+          QRUNNER_SAVE_BAD_MESSAGES which describe where to save
+          messages which are not properly MIME encoded.
+
+        o configure should be more POSIX-ly conformant.
+
+        o The Mailman/pythonlib directory has been removed, but a new
+          $prefix/pythonlib directory has been added.
+
+        o Regression tests are now installed.
+
+        o The second argument to add_virtual() calls in mm_cfg.py are
+          now optional.
+
+        o DEFAULT_FIRST_STRIP_REPLY_TO now defaults to 0.
+
+        o Site administrators can edit the Mailman/Site.py file to
+          customize some filesystem layout policies.
+
+
+2.1 alpha 4 (31-Dec-2001)
+
+    - The administrative requests database page (admindb) has been
+      redesigned for better usability when there are lots of held
+      postings.  Changes include:
+        o A summary page which groups held messages by sender email
+          address.  On this page you can dispose of all the sender's
+          messages in one action.  You can also view the details of
+          all the sender's messages, or the details of a single
+          message.  You can also add the sender to one of the list's
+          sender filters.
+
+        o A details page where you can view all messages, just those
+          for a particular sender, or just a single held message.
+          This details page is laid out the same as the old admindb
+          page.
+
+        o The instructions have been shorted on the summary and
+          details page, with links to more detailed explanations.
+
+    - Bounce processing
+        o Mailman now keeps track of the reason a member's delivery
+          has been disabled: explicitly by the administrator,
+          explicitly by the user, by the system due to excessive
+          bounces, or for (legacy) unknown reasons.
+
+        o A new bounce processing algorithm has been implemented (we
+          might actually understand this one ;).  When an address
+          starts bouncing, the member gets a "bounce score".  Hard
+          (fatal) bounces score 1.0, while soft (transient) bounces
+          score 0.5.
+
+          List administrators can specify a bounce threshold above
+          which a member gets disabled.  They can also specify a time
+          interval after which, if no bounces are received from the
+          member, the member's bounce score is considered stale and is
+          thrown away.
+
+        o A new cron script, cron/disabled, periodically sends
+          notifications to members who are bounce disabled.  After a
+          certain number of warnings the member is deleted from the
+          list.  List administrators can control both the number of
+          notifications and the amount of time between notifications.
+
+          Notifications include a confirmation cookie that the member
+          can use to re-enable their subscription, via email or web.
+
+        o New configuration variables to support the bounce processing
+          are DEFAULT_BOUNCE_SCORE_THRESHOLD,
+          DEFAULT_BOUNCE_INFO_STALE_AFTER,
+          DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS,
+          DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL.
+
+    - Privacy and security
+        o Sender filters can now be regular expressions.  If a line
+          starts with ^ it is taken as a (raw string) regular
+          expression, otherwise it is a literal email address.
+
+        o Fixes in 2.0.8 ported forward: prevent cross-site scripting
+          exploits.
+
+    - Mail delivery
+        o Aliases have all been changed so that there's more
+          consistency between the alias a message gets delivered to,
+          and the script & queue runner that handles the message.
+
+          I've also renamed the mail wrapper script to `mailman' from
+          `wrapper' to avoid collisions with other MLM's.  You /will/
+          need to regenerate your alias files with bin/genaliases, and
+          you may need to update your smrsh (Sendmail) configs.a
+
+          Bounces always go to listname-bounces now, since
+          administration has been separated from bounce processing.
+          listname-admin is obsolete.
+
+        o VERP support!  This greatly improves the accuracy of bounce
+          detection.  Configuration variables which control this feature
+          include VERP_DELIVERY_INTERVAL, VERP_PERSONALIZED_DELIVERIES,
+          VERP_PASSWORD_REMINDERS, VERP_REGEXP, and VERP_FORMAT.  The
+          latter two must be tuned to your MTA.
+
+        o A new alias mailman-loop at dom.ain is added which directs all
+          output to the file $prefix/data/owner-bounces.mbox.  This is
+          used when sending messages to the site list owners, as the
+          final fallback for bouncing messages.
+
+        o New configuration variable POSTFIX_STYLE_VIRTUAL_DOMAINS
+          which should be set if you are using the Postfix MTA and
+          want Mailman to play nice with Postfix-style virtual
+          domains.
+
+    - Miscellaneous
+        o Better interoperability with Python 2.2.
+
+        o MailList objects now record the date (in seconds since
+          epoch) that they were created.  This is in a hidden
+          attribute `created_at'.
+
+        o bin/qrunner grows a -s/--subproc switch which is usually
+          used only when it's started from mailmanctl.
+
+        o bin/newlist grows a -l/--language option so that the list's
+          preferred language can be set from the command line.
+
+        o cron changes: admin reminders go out at 8am local time instead
+          of 10pm local time.
+
+    - Pipermail archiver
+        o MIME attachments are scrubbed out into separate files which
+          can be viewed by following a link in the original article.
+          Article contains an indication of the size of the
+          attachment, its type, and other useful information.
+
+        o New script bin/cleanarch which can be used to `clean' an
+          .mbox archive file by fixing unescaped embedded Unix From_
+          lines.
+
+        o New configuration variable ARCHIVE_SCRUBBER in
+          Defaults.py.in which names the module that Pipermail should
+          use to scrub articles of MIME attachments.
+
+        o New configuration variable ARCHIVE_HTML_SANITIZER which
+          describes how the scrubber should handle text/html
+          attachments.
+
+        o PUBLIC_ARCHIVE_URL has change its semantics.  It is now an
+          absolute url, with the hostname and listname parts
+          interpolated into it on a per-list basis.
+
+        o Pipermail should now provide the proper character set in the
+          Content-Type: header for archived articles.
+
+    - Internationalization
+        o Czech translations by Dan Ohnesorg.
+
+        o The Hungarian charset has be fixed to be iso-8859-2.
+
+        o The member options login page now has a language selection
+          widget.
+
+    - Building, configuration
+        o email-0.96 package is required (see the misc directory).
+
+        o New recipes for integrating Mailman and Sendmail,
+          contributed by David Champion.
+
+
+2.1 alpha 3 (22-Oct-2001)
+
+    - Realname support
+        o Mailman now tracks a member's Real Name in addition to their
+          email address.
+
+        o List members can now supply their Real Names when
+          subscribing via the web.  Their Real Names are parsed from
+          any thru-email subscriptions.
+
+        o Members can change their Real Names on their options page,
+          and admins can change members' Real Names on the membership
+          pages.  Mass subscribing accepts "email at dom.ain (Real Name)"
+          and "Real Name <email at dom.ain>" entries, for both
+          in-text-box and file-upload mass subscriptions.
+
+    - Filtering and Privacy
+        o Reply-To: munging has been enhanced to allow a wider range
+          of list policies.  You can now pre-strip any Reply-To:
+          headers before adding list-specific ones (i.e. you can
+          override or extend existing Reply-To: headers).  If
+          stripping, the old headers are no longer saved on
+          X-Reply-To:
+
+        o New sender moderation rules.  The old `posters',
+          `member_only_posting', `moderated' and `forbidden_posters'
+          options have been removed in favor of a new moderation
+          scheme.  Each member has a personal moderation bit, and
+          non-member postings can be automatically accepted, held for
+          approval, rejected (bounced) or discarded.
+
+        o When membership rosters are private, responses to
+          subscription (and other) requests are made more generic so
+          that these processes can't be covertly mined for hidden
+          addresses.  If a subscription request comes in for a user
+          who is already subscribed, the user is notified of potential
+          membership mining.
+
+        o When a held message is approved via the admindb page, an
+          X-Moderated: header is added to the message.
+
+        o List admins can now set an unsubscribe policy which requires
+          them to approve of member unsubscriptions.
+
+    - Web U/I
+        o All web confirmations now require a two-click procedure,
+          where the first click gives them a page that allows them to
+          confirm or cancel their subscription.  It is bad form for an
+          email click (HTTP GET) to have side effects.
+
+        o Lots of improvements for clarity.
+
+        o The Privacy category has grown three subcategories.
+
+        o The General options page as a number of subsection headers.
+
+        o The Passwords and Languages categories are now on separate
+          admin pages.
+
+        o The admin subcategories are now formated as two columns in
+          the top and bottom legends.
+
+        o When creating a list through the web, you can now specify
+          the initial list of supported languages.
+
+        o The U/I for unsubscribing a member on the admin's membership
+          page should be more intuitive now.
+
+        o There is now a separate configuration option for whether the
+          goodbye_msg is sent when a member is unsubscribed.
+
+    - Performance
+        o misc/mailman is a Unix init script, appropriate for
+          /etc/init.d, and containing chkconfig hooks for systems that
+          support it.
+
+        o bin/mailmanctl has been rewritten; the `restart' command
+          actually works now.  It now also accepts -s, -q, and -u
+          options.
+
+        o bin/qrunner has been rewritten too; it can serve the role of
+          the old cron/qrunner script for those who want classic
+          cron-invoked mail delivery.
+
+        o Internally, messages are now stored in the qfiles directory
+          primarily as pickles.  List configuration databases are now
+          stored as pickles too (i.e. config.pck).  bin/dumpdb knows
+          how to display both pickles and marshals.
+
+    - Mail delivery
+        o If a user's message is held for approval, they are sent a
+          notification message containing a confirmation cookie.  They
+          can use this confirmation cookie to cancel their own
+          postings (if they haven't already been approved).
+
+        o When held messages are forwarded to an explicit address
+          using the admindb page, it is done so  in a message/rfc822
+          encapsulation.
+
+        o When a message is first held for approval, the notification
+          sent to the list admin is a 3-part multipart/mixed.  The
+          first part holds the notification message, the second part
+          hold the original message, and the third part hold a cookie
+          confirmation message, to which the admin can respond to
+          approve or discard the message via email.
+
+        o In the mail->news gateway, you can define mail headers that
+          must be modified or deleted before the message can be posted
+          to the nntp server.
+
+        o The list admin can send an immediate urgent message to the
+          entire list membership, bypassing digest delivery.  This is
+          done by adding an Urgent: header with the list password.
+          Urgent messages with an invalid password are rejected.
+
+        o Lists can now optionally personalize email messages, if the
+          site admin allows it.  Personalized messages mean that the
+          To: header includes the recipient's address instead of the
+          list's address, and header and footer messages can contain
+          user-specific information.  Note that only regular
+          deliveries can currently be personalized.
+
+        o Message that come from Usenet but that have broken MIME
+          boundaries are ignored.
+
+        o If the site administrator agrees, list owners have the
+          ability to disable RFC 2369 List-* headers.
+
+        o There is now an API for an external process to post a
+          message to a list.  This posting process can also specify an
+          explicit list of recipients, in effect turning the mailing
+          list into a "virtual list" with a fluid membership.  See
+          Mailman/Post.py for details.
+
+    - Building/testing/configuration
+        o mimelib is no longer required, but you must install the
+          email package (see the tarball in the misc directory).
+
+        o An (as yet) incomplete test suite has been added.  Don't try
+          running it in a production environment!
+
+        o Better virtual host support by adding a mapping from the
+          host name given in cgi's HTTP_HOST/SERVER_NAME variable to
+          the email host used in list addresses.  (E.g. www.python.org
+          maps to @python.org).
+
+        o Specifying urls to external public archivers is more
+          flexible.
+
+        o The filters/ subdirectory has been removed.
+
+        o There is now a `site list' which is a mailing list that must
+          be created first, and from which all password reminders
+          appear to come from.  It is recommended that this list be
+          called "mailman at your.site".
+
+        o bin/move_list is no longer necessary (see the FAQ for
+          detailed instructions on renaming a list).
+
+        o A new script bin/fix_url.py can be used with bin/withlist to
+          change a list's web_page_url configuration variable (since
+          it is no longer modifiable through the web).
+
+    - Internationalization
+        o Support for German, Hungarian, Italian, Japanese, and
+          Norwegian have been added.
+
+    - Miscellaneous
+        o Lots of new bounce detectors.  Bounce detectors can now
+          discard temporary bounce messages by returning a special
+          Stop value.
+
+        o bin/withlist now sports a -q/--quiet flag.
+
+        o bin/add_members has a new -a/--admin-notify flag which can
+          be used to inhibit list owner notification for each
+          subscription.
+
+    - Membership Adaptors
+        o Internally, mailing list memberships are accessed through a
+          MemberAdaptor interface.  This would allow for integrating
+          membership databases with external sources (e.g. Zope or
+          LDAP), although the only MemberAdaptor currently implemented
+          is a "classic" adaptor which stores the membership
+          information on the MailList object.
+
+        o There's a new pipeline handler module called FileRecips.py
+          which could be used to get all regular delivery mailing list
+          recipients from a Sendmail-style :include: file (see List
+          Extensibility bullet below).
+
+          This work was sponsored by Control.com
+
+    - List Extensibility
+        o A framework has been added which can be used to specialize
+          and extend specific mailing lists.  If there is a file
+          called lists/<yourlist>/extend.py, it is execfile()'d after
+          the MailList object is instantiated.  The file should
+          contain a function extend() which will be called with the
+          MailList instance.  This function can do all sorts of deep
+          things, like modify the handler pipeline just for this list,
+          or even strip out particular admin GUI elements (see below).
+
+        o All the admin page GUI elements are now separate
+          components.  This provides greater flexibility for list
+          customization.  Also, each GUI element will be given an
+          opportunity to handle admin CGI form data.
+
+          This work was sponsored by Control.com
+
+    - Topic Filters
+        o A new feature has been added called "Topic Filters".  A list
+          administrator can create topics, which are essentially
+          regular expression matches against Subject: and Keyword:
+          headers (including such pseudo-headers if they appear in the
+          first few lines of the body of a message).
+
+          List members can then `subscribe' to various topics, which
+          allows them to filter out any messages that don't match a
+          topic, or to filter out any message that does match a
+          topic.  This can be useful for high volume lists where not
+          everyone will be interested in every message.
+
+          This work was sponsored by Control.com
+
+2.1 alpha 2 (11-Jul-2001)
+
+    - Building
+        o mimelib 0.4 is now required.  Get it from
+          http://mimelib.sf.net.  If you've installed an earlier
+          version of mimelib, you must upgrade.
+
+        o /usr/local/mailman is now the default installation
+          directory.  Use configure's --prefix switch to change it
+          back to the default (/home/mailman) or any other
+          installation directory of your choice.
+
+    - Security
+        o Better definition of authentication domains.  The following
+          roles have been defined: user, list-admin, list-moderator,
+          creator, site-admin.
+
+        o There is now a separate role of "list moderator", which has
+          access to the pending requests (admindb) page, but not the
+          list configuration pages.
+
+        o Subscription confirmations can now be performed via email or
+          via URL.  When a subscription is received, a unique (sha)
+          confirm URL is generated in the confirmation message.
+          Simply visiting this URL completes the subscription process.
+
+        o In a similar manner, removal requests (via web or email
+          command) no longer require the password.  If the correct
+          password is given, the removal is performed immediately.  If
+          no password is given, then a confirmation message is
+          generated.
+
+    - Internationalization
+        o More I18N patches.  The basic infrastructure should now be
+          working correctly.  Spanish templates and catalogs are
+          included, and English, French, Hungarian, and Big5 templates
+          are included.
+
+        o Cascading specializations and internationalization of
+          templates.  Templates are now search for in the following
+          order: list-specific location, domain-specific location,
+          site-wide location, global defaults.  Each search location
+          is further qualified by the language being displayed.  This
+          means that you only need to change the templates that are
+          different from the global defaults.
+
+          Templates renamed: admlogin.txt => admlogin.html
+          Templates added: private.html
+
+    - Web UI
+        o Redesigned the user options page.  It now sits behind an
+          authentication so user options cannot be viewed without the
+          proper password.  The other advantage is that the user's
+          password need not be entered on the options page to
+          unsubscribe or change option values.  The login screen also
+          provides for password mail-back, and unsubscription w/
+          confirmation.
+
+          Other new features accessible from the user options page
+          include: ability to change email address (with confirmation)
+          both per-list and globally for all list on virtual domain;
+          global membership password changing; global mail delivery
+          disable/enable; ability to suppress password reminders both
+          per-list and globally; logout button.
+
+          [Note: the handle_opts cgi has gone away]
+
+        o Color schemes for non-template based web pages can be defined
+          via mm_cfg.
+
+        o Redesign of the membership management page.  The page is now
+          split into three subcategories (Membership List, Mass
+          Subscription, and Mass Removal).  The Membership List
+          subcategory now supports searching for member addresses by
+          regular expression, and if necessary, it groups member
+          addresses first alphabetically, and then by chunks.
+
+          Mass Subscription and Mass Removal now support file upload,
+          with one address per line.
+
+        o Hyperlinks from the logos in the footers have been removed.
+          The sponsors got too much "unsubscribe me!" spam from
+          desperate user of Mailman at other sites.
+
+        o New buttons on the digest admin page to send a digest
+          immediately (if it's non-empty), to start a new digest
+          volume with the next digest, and to select the interval with
+          which to automatically start a new digest volume (yearly,
+          monthly, quarterly, weekly, daily).
+
+          DEFAULT_DIGEST_VOLUME_FREQUENCY is a new configuration
+          variable, initially set to give a new digest volume monthly.
+
+        o Through-the-web list creation and removal, using a separate
+          site-wide authentication role called the "list creator and
+          destroyer" or simply "list creator".  If the configuration
+          variable OWNERS_CAN_DELETE_THEIR_OWN_LISTS is set to 1 (by
+          default, it's 0), then list admins can delete their own
+          lists.
+
+          This feature requires an adaptor for the particular MTA
+          you're using.  An adaptor for Postfix is included, as is a
+          dumb adaptor that just emails mailman at yoursite with the
+          necessary Sendmail style /etc/alias file changes.  Some MTAs
+          like Exim can be configured to automatically recognize new
+          lists.  The adaptor is selected via the MTA option in
+          mm_cfg.py
+
+    - Email UI
+        o In email commands, "join" is a synonym for
+          "subscribe". "remove" and "leave" are synonyms for
+          "unsubscribe".  New robot addresses are support to make
+          subscribing and unsubscribing much easier:
+
+          mylist-join at mysite
+          mylist-leave at mysite
+
+        o Confirmation messages have a shortened Subject: header,
+          containing just the word "confirm" and the confirmation
+          cookie.  This should help for MUAs that like to wrap long
+          Subject: lines, messing up confirmation.
+
+        o Mailman now recognizes an Urgent: header, which, if it
+          contains the list moderator or list administrator password,
+          forces the message to be delivered immediately to all
+          members (i.e. both regular and digest members).  The message
+          is also placed in the digest.  If the password is incorrect,
+          the message will be bounced back to the sender.
+
+    - Performance
+        o Refinements to the new qrunner subsystem which preserves
+          FIFO order of messages.
+
+        o The qrunner is no longer started from cron.  It is started
+          by a Un*x init-style script called bin/mailmanctl (see
+          below).  cron/qrunner has been removed.
+
+    - Command line scripts
+        o bin/mailmanctl script added, which is used to start, stop,
+          and restart the qrunner daemon.
+
+        o bin/qrunner script added which allows a single sub-qrunner
+          to run once through its processing loop.
+
+        o bin/change_pw script added (eases mass changing of list
+          passwords).
+
+        o bin/update grows a -f switch to force an update.
+
+        o bin/newlang renamed to bin/addlang; bin/rmlang removed.
+
+        o bin/mmsitepass has grown a -c option to set the list
+          creator's password.  The site-wide `create' web page is
+          linked to from the admin overview page.
+
+        o bin/newlist's -o option is removed.  This script also grows
+          a way of spelling the creation of a list in a specific
+          virtual domain.
+
+        o The `auto' script has been removed.
+
+        o bin/dumpdb has grown -m/--marshal and -p/--pickle options.
+
+        o bin/list_admins can be used to print the owners of a mailing list.
+
+        o bin/genaliases regenerates from scratch the aliases and
+          aliases.db file for the Postfix MTA.
+
+    - Archiver
+        o New archiver date clobbering option, which allows dates to
+          only be clobber if they are outrageously out-of-date
+          (default setting is 15 days on either side of received
+          timestamp).  New configuration variables:
+
+          ARCHIVER_CLOBBER_DATE_POLICY
+          ARCHIVER_ALLOWABLE_SANE_DATE_SKEW
+
+          The archived copy of messages grows an X-List-Received-Date:
+          header indicating the time the message was received by
+          Mailman.
+
+        o PRIVATE_ARCHIVE_URL configuration variable is removed (this
+          can be calculated on the fly, and removing it actually makes
+          site configuration easier).
+
+    - Miscellaneous
+        o Several new README's have been added.
+
+        o Most syslog entries for the qrunner have been redirected to
+          logs/error.
+
+        o On SIGHUP, qrunner will re-open all its log files and
+          restart all child processes.  See "bin/mailmanctl restart".
+
+    - Patches and bug fixes
+        o SF patches and bug fixes applied: 420396, 424389, 227694,
+          426002, 401372 (partial), 401452.
+
+        o Fixes in 2.0.5 ported forward:
+            Fix a lock stagnation problem that can result when the
+            user hits the `stop' button on their browser during a
+            write operation that can take a long time (e.g. hitting
+            the membership management admin page).
+
+        o Fixes in 2.0.4 ported forward:
+            Python 2.1 compatibility release.  There were a few
+            questionable constructs and uses of deprecated modules
+            that caused annoying warnings when used with Python 2.1.
+            This release quiets those warnings.
+
+        o Fixes in 2.0.3 ported forward:
+            Bug fix release.  There was a small typo in 2.0.2 in
+            ListAdmin.py for approving an already subscribed member
+            (thanks Thomas!).  Also, an update to the OpenWall
+            security workaround (contrib/securelinux_fix.py) was
+            included.  Thanks to Marc Merlin.
+
+2.1 alpha 1 (04-Mar-2001)
+
+    - Python 2.0 or newer required.  Also required is `mimelib' a new
+      library for handling MIME documents.  This will be bundled in
+      future releases, but for now, you must download and install it
+      (using Python's distutils) from
+
+      http://barry.wooz.org/software/Code/mimelib-0.2.tar.gz
+
+      You need mimelib 0.2 or better.
+
+    - Redesigned qrunner subsystem.  Now there are multiple message
+      queues, and considerable flexibility in file formats for
+      integration with external systems.  The current crop of queues
+      include:
+
+      archive -- for posting messages to an archiver
+      commands -- for incoming email commands and bounces
+      in -- for list-destined incoming email
+      news -- for messages outgoing to a nntp server
+      out -- for messages outgoing to a smtp server
+      shunt -- for messages that trigger unexpected exceptions in Mailman
+      virgin -- for messages that are generated by Mailman
+
+      cron/qrunner is now a long running script that forks off
+      sub-runners for each of the above queues.  qrunner still plays
+      nice with cron, but it is expected to be started by init at some
+      point in the future.  Some support exists for parallel
+      processing of messages in the queues.
+
+    - Support for internationalization support merged in.  Original
+      work done by Juan Carlos Rey Anaya and Victoriano Giralt.  I've
+      tested about 90% of the web side, 50% of the email, and 50% of
+      the command line / cron scripts.
+
+      New scripts: bin/newlang, bin/rmlang
+
+    - New delivery script `auto' for automatic integration with the
+      Postfix MTA.
+
+    - A bunch of new bounce detectors.
+
+    Changes ported from Mailman 2.0.2 and 2.0.1:
+
+    - A fix for a potential privacy exploit where a clever list
+      administrator could gain access to user passwords.  This doesn't
+      allow them to do much more harm to the user then they normally
+      could, but they still shouldn't have access to the passwords.
+
+    - In the admindb page, don't complain when approving a
+      subscription of someone who's already on the list (SF bug
+      #222409 - Thomas Wouters).
+
+      Also, quote for HTML the Subject: text printed for held
+      messages, otherwise messages with e.g. "Subject: </table>" could
+      royally screw page formatting.
+
+    - Docstring fix bin/newlist to remove mention of "immediate"
+      argument (Thomas Wouters).
+
+    - Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
+      Thomas Wouters).
+
+    - Bug fix release, namely fixes a buglet in bin/withlist affecting
+      the -l and -r flags; also a problem that can cause qrunner to
+      stop processing mail after disk-full events (SourceForge bug
+      127199).
+
+2.0 final (21-Nov-2000)
+
+    No changes from rc3.
+
+2.0 release candidate 3 (16-Nov-2000)
+
+    - By popular demand, Reply-To: munging policy is now to always
+      override any Reply-To: header in the original message, if
+      reply_goes_to_list is set to "This list" or "Explicit Address"
+
+    - bin/newlist given -q/--quiet flag instead of the <immediate>
+      positional argument
+
+    - Hopefully last fix to DEFAULT_URL not ending in a slash
+      sensitivity
+
+    - 2.0rc2 buglets fixed:
+        o newlist argument parsing
+        o updating with unlocked lists
+        o HyperArch.py traceback when there's no
+          Content-Transfer-Encoding: header
+
+    - SourceForge bugs fixed:
+        122358 (qmail-to-mailman.py listname case folding)
+
+    - SourceForge patches applied:
+        102373 (qmail-to-mailman.py listname case folding)
+
+2.0 release candidate 2 (10-Nov-2000)
+
+    - Documentation updates: start in the doc/ directory.
+
+    - bin/withlist accepts additional command line arguments when used
+      with the --run flag; bin/mmsitepass and bin/newlist accept
+      -h/--help flags
+
+    - bin/newlist has a -o/--output flag to append /etc/aliases
+      suggestions to a specified file
+
+    - SourceForge bugs fixed:
+        116615 (README.BSD update), 117015 (duplicate messages on
+        moderated posts), 117548 (exception in HyperArch.py), 117682
+        (typos), 121185 (vsnprintf signature), 121591 and 122017
+        (bogus link after web unsubscribe), 121811 (`subscribe' in
+        Subject: doesn't get archived)
+
+    - SourceForge patches applied:
+        101812 (securelinux_fix.py contrib), 102097 (fix for bug
+        117548), 102211 (additional args for withlist), 102268 (case
+        insensitive Content-Transfer-Encoding:)
+
+2.0 release candidate 1 (23-Oct-2000)
+
+    - Bug fixes and security patches.
+
+    - Better html rendition of articles in non us-ascii charsets
+      (Jeremy Hylton).  See VERBATIM_ENCODING variable in
+      Defaults.py.in for customization.
+
+2.0 beta 6 (22-Sep-2000)
+
+    - Building
+        o Tested with Python 1.5.2, Python 1.6, and Python 2.0 beta 1.
+          Conducted on RH Linux 6.1 only, but should work
+          cross-platform.
+
+        o Configure now accepts --with-username, --with-groupname,
+          --with-var-prefix flags.  See `configure --help' or the
+          INSTALL file for details.
+
+        o Setting the CFLAGS environment variable before invoking
+          configure now works.
+
+        o The icons are now copied into $prefix/icons at install time.
+          Patch by David Champion.
+
+    - Standards
+        o Compliance with RFC 2369 (List-*: headers).  Patch by
+          Darrell Fuhriman.  List-ID: header is kept for historical
+          reasons.
+
+        o Fixes by Jeremy Hylton to Pipermail in support of non-ASCII
+          charsets, based on the Content-Type: and encoded-words in
+          the original message.  Mail headers are now decoded as per
+          RFC 2047.
+
+        o Many more bounce formats are detected: Microsoft's SMTPSVC,
+          Compuserve, GroupWise, SMTP32, and the more generic
+          SimpleMatch (which catches lots of similar but slightly
+          different formats).
+
+    - Defaults
+        o Email addresses can now be obscured in Pipermail archives by
+          setting mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS to 1 (obscuring
+          is turned off by default).  Patch provided by Chris Snell.
+
+        o The default NNTP host can now be set by editing
+          mm_cfg.DEFAULT_NNTP_HOST.  Patch by David Champion.
+
+        o The default archiving mode (public/private) can now be set
+          by editing mm_cfg.DEFAULT_ARCHIVE.  Patch by Ted Cabeen.
+
+    - Web UI
+        o The variable details pages in the administrators interface
+          is now `live', i.e. there's a submit button on the details
+          page.
+
+        o A link to the administrative interface is placed in the
+          footer of the general user pages (authentication still
+          required, of course!)
+
+        o The user options change results page has a link back to the
+          user's main page.
+
+        o In the admindb page (for dealing with held postings), the
+          default forward address is now listname-owner instead of
+          listname-admin.  This avoids bounce detection on the
+          forwarded message.
+
+    - Miscellaneous
+        o Fixed config.db corruption problem when disk-full errors are
+          encountered.
+
+        o Command line scripts accept list names case-insensitively.
+
+        o bin/remove_members takes a -a flag to remove all members of
+          a list in one fell swoop.
+
+        o List admin passwords must be non-empty.
+
+        o Mailman generated passwords are slightly more mnemonic, and
+          shouldn't have confusing character selections (i.e. `i'
+          only, but no `1' or `l').
+
+        o Crossposting to two gated mailing lists should be fixed.
+
+        o Many other bug fixes and minor web UI improvements.
+
+2.0 beta 5 (01-Aug-2000)
+
+    - Bug fix release.  This includes a fix for a small security hole
+      which could be exploited to gain mailman group access by a local
+      user (not a mail or web user).
+
+    - As part of the fix for the "cookie reauthorization" bug, only
+      session cookies are used now.  This means that administrative
+      and private archive cookies expire only when the browser session
+      is quit, however an explicit "Logout" button has been added.
+
+2.0 beta 4 (06-Jul-2000)
+
+    - Bug fix release.
+
+2.0 beta 3 (29-Jun-2000)
+
+    - Delivery mechanism (qrunner) refined to support immediate
+      queuing, queuing directly from MTA, and queuing on any error
+      along the delivery pipeline.  This means 1) that huge lists
+      can't time out the MTA's program delivery channel; 2) it is much
+      harder to completely lose messages; 3) eventually, qrunner will
+      be elaborated to meter delivery to the MTA so as not to swamp
+      it.  The tradeoff is in more disk I/O since every message coming
+      into the system (and most that are generated by the system) live
+      on disk for some part of their journey through Mailman.
+
+      For now, see the Default.py variables QRUNNER_PROCESS_LIFETIME
+      and QRUNNER_MAX_MESSAGES for primitive resource management.
+
+      The API to the pipeline handler modules has changed.  See
+      Mailman/Handlers/HandlerAPI.py for details.
+
+    - Revamped admindb web page: held messages are split into headers
+      and bodies so they are easier to vette; admins can now also
+      preserve a held message (for spam evidence gathering) or forward
+      the message to a specified email address; disposition of held
+      messages can be deferred; held messages have a more context
+      meaningful default rejection message.
+
+    - Change to the semantics for `acceptable_aliases' list
+      configuration variable, based on suggestions by Harald Meland.
+
+    - New mm_cfg.py variables NNTP_USERNAME and NNTP_PASSWORD can be
+      set on a site-wide basis if connection to your nntpd requires
+      authentication.
+
+    - The list attribute `num_spawns' has been removed.  The mm_cfg.py
+      variables MAX_SPAWNS, and DEFAULT_NUM_SPAWNS removed too.
+
+    - LIST_LOCK_LIFETIME cranked to 5 hours and LIST_LOCK_TIMEOUT
+      shortened to 10 seconds.  QRUNNER_LOCK_LIFETIME cranked up to 10
+      hours.  This should decrease the changes for bogus and harmful
+      lock breaking.
+
+    - Resent-to: is now one of the headers checked for explicit
+      destinations.
+
+    - Tons more bounce formats are recognized.  The API to the bounce
+      modules has changed.
+
+    - A rewritten LockFile module which should fix most (hopefully all)
+      bugs in the locking machinery.  Many improvements suggested by
+      Thomas Wouters and Harald Meland.
+
+    - Experimental support (disabled by default) for delivering SMTP
+      chunks to the MTA via multiple threads.  Your Python executable
+      must have been compiled with thread support enabled, and you
+      must set MAX_DELIVERY_THREADS in mm_cfg.py.  Note that this may
+      not improve your overall system performance.
+
+    - Some changes and additions to scripts: bin/find_member now
+      supports a -w/--owner flag to match regexps against mailing list
+      owners; bin/find_member now supports multiple regexps;
+      cron/gate_news command line option changes; new script
+      bin/dumbdb for debugging purposes; bin/clone_member can now also
+      remove the old address and change change the list owner
+      addresses.
+
+    - The News/Mail gateway admin page has a button that lets you do
+      an explicit catchup of the newsgroup.
+
+    - The CVS repository has been moved out to SourceForge.  For more
+      information, see the project summary at
+
+      http://sourceforge.net/project/?group_id=103
+
+    - Lots 'o bug fixes and some performance improvements.
+
+2.0 beta 2 (07-Apr-2000)
+
+    - Rewritten gate_news cron script which should be more efficient
+      and avoid race and locking problems.  Each list now maintains
+      its own watermark, and when you use the admin CGI script to turn
+      on gating from Usenet->mail, an automatic mass catch up is done
+      to avoid flooding the mailing list.  cron/gate_news's command
+      line interface has also changed.  See its docstring for
+      details.
+
+    - A new cron script called qrunner has been added to retry message
+      deliveries that fail because of temporary smtpd problems.
+
+    - New command line script called bin/list_lists which does exactly
+      that: lists all the mailing lists on the system (much like the
+      listinfo CGI does).
+
+    - bin/withlist is now directly executable, however if you want to
+      use python -i, you must still explicitly invoke it.
+      bin/withlist also now cleans up after itself by unlocking any
+      locked lists.  It does NOT save any dirty lists though - you
+      must do this explicitly.
+
+    - $prefix permissions (and all subdirs) must now be 02775.
+      bin/check_perms has been updated to fix all the subdir
+      permissions.
+
+    - "make update" (a.k.a. bin/update) is run automatically when you
+      do a "make install"
+
+    - The CGI driver script now puts information about the Python
+      environment into the logs/error file (but not the diagnostic web
+      page).
+
+    - Bug fixes and some performance improvements
+
+2.0 beta 1 (19-Mar-2000)
+
+    - Python 1.5.2 (or newer) is now required.
+
+    - A new bundled auto-responder has been added.  You can now
+      configure an autoresponse text for each list's primary
+      addresses:
+
+        listname at yourhost.com -- the general posting address
+        listname-request at ...  -- the automated "request bot" address
+        listname-admin at ...    -- the human administrator address
+
+    - The standard UI now includes three logos at the bottom of the
+      page: Dragon's Mailman logo, the Python Powered logo, and the
+      GNU logo.  All point to their respective home pages.
+
+    - It is now possible to set the Reply-To: field on lists to an
+      arbitrary address.  NOTE: Reply-To: munging is generally
+      considered harmful!  However for some read-only lists, it is
+      useful to direct replies to a parallel discussion list.
+
+    - There is a new message delivery architecture which uses a
+      pipeline processor for incoming and internally generated
+      messages.  Mailman no longer contains a bundled bulk-mailer;
+      instead message delivery is handled completely by the MTA.  Most
+      MTAs give a high enough priority to connections from the
+      localhost that mail will not be lost because of system load, but
+      this is not guaranteed (or handled) by Mailman currently.  Be
+      careful also if your smtpd is on a different host than the
+      Mailman host.  In practice, mail lossage has not be observed.
+
+      For this reason cron/run_queue is no longer needed (see the
+      UPGRADING file for details).
+
+      Also, you can choose whether you want direct smtp delivery, or
+      delivery via the command line to a sendmail-compatible daemon.
+      You can also easily add your own delivery module.  See
+      Mailman/Defaults.py for details.
+
+    - A similar pipeline architecture for the parsing of bounce
+      messages has been added.  Most common bounce formats are now
+      handled, including Qmail, Postfix, and DSN.  It is now much
+      easier to add new bounce detectors.
+
+    - The approval pending architecture has also been revamped.
+      Subscription requests and message posts waiting for admin
+      approval are no longer kept in the config.db file, but in a
+      separate requests.db file instead.
+
+    - Finally made consistent the use of Sender:/From:/From_ in the
+      matching of headers for such things as member-post-only.  Now,
+      if USE_ENVELOPE_SENDER is true, Sender: will always be chosen
+      over From:, however the default has been changed to
+      USE_ENVELOPE_SENDER false so that From: is always chosen over
+      Sender:.  In both cases, if no header is found, From_ (i.e. the
+      envelope sender is used).  Note that the variable is now
+      misnamed!  Most people want From: matching anyway and any are
+      easily spoofable.
+
+    - New scripts bin/move_list, bin/config_list
+
+    - cron/upvolumes_yearly, cron/upvolumes_monthly, cron/archive,
+      cron/run_queue all removed.  Edit your crontab if you used these
+      scripts.  Other scripts removed: contact_transport, deliver,
+      dumb_deliver.
+
+    - Several web UI improvements, especially in the admin page.
+
+    - Remove X-pmrqc: headers to prevent return reciepts for Pegasus
+      mail users.
+
+    - Security patch when using external archivers.
+
+    - Honor "X-Archive: No" header by not putting this message in the
+      archive.
+
+    - Changes to the log file format.
+
+    - The usual bug fixes.
+
+1.1 (05-Nov-1999)
+
+    - All GIFs removed.  See http://www.gnu.org/philosophy/gif.html
+      for the reason why.
+
+    - Improvements to the Pipermail archiver which make things faster.
+      Primary change is that the .txt files are not gzipped on every
+      posted message.  Instead, use the new cron script `nightly_gzip'
+      to gzip the .txt file in batches (this means that the .txt file
+      will lag behind the on-line archives a little).
+
+    - From the C drivers programs, Python is invoked with the -S
+      option.  This tells Python to avoid importing the site module,
+      which can improve start up time of the Python process
+      considerably.  Note that the command line script invocation has
+      not been changed.
+
+    - New configuration variables PUBLIC_EXTERNAL_ARCHIVER and
+      PRIVATE_EXTERNAL_ARCHIVER which can contain a shell command
+      string for os.popen().  This can be used to invoke an external
+      archiver instead of the bundled Pipermail archiver.  See
+      Defaults.py for details.
+
+    - new script `bin/find_member' which can be used to search for a
+      member by regular expression.
+
+    - More child processes are reaped, which should eliminate most
+      occurrences of zombie processes.
+
+    - A few small miscellaneous bug fixes (including PR#99, PR#107)
+      and improvements to the file locking algorithms.
+
+1.0 (30-Jul-1999)
+
+    - Configure script now allows $PREFIX (by default /home/mailman)
+      to be permissions 02755.  Also, configure now tests for
+      vsnprintf()
+
+    - Workaround, taken from GNU screen, for systems missing
+      vsnprintf()
+
+    - Return-Receipt-To: and Disposition-Notification-To: headers are
+      always removed from posted messages (they can be used to troll
+      for list membership).
+
+    - Workaround for MSIE4.01 (and possibly other versions) bug in the
+      handling of cookies.
+
+    - A small collection of other bug fixes.
+
+1.0rc3 (10-Jul-1999)
+
+    - new script bin/check_perms which checks (and optionally fixes)
+      the permissions and group ownerships of the files in your
+      Mailman installation.
+
+    - Removed a bottleneck in the archiving code that was causing
+      performance problems on highly loaded servers.
+
+    - The code that saves a list's state and configuration database
+      has been made more robust.
+
+    - Additional exception handlers have been added in several places
+      to alleviate problems with Mailman bombing out when it really
+      would be better to print/log a helpful message.
+
+    - The "password" mail command will now mail back the sender's
+      subscription password when given with no arguments.
+
+    - The embarrassing subject-prefixing bug present in rc2 has been
+      fixed.
+
+    - A small (but nice :) collection of other squashed bugs.
+
+1.0rc2 (14-Jun-1999)
+
+    - A security flaw in the CGI cookie mechanisms was discovered --
+      the Mailman-issued cookies were easily spoofable, implying that
+      e.g. admin access to all Mailman lists via the web interface
+      could be compromised.  This flaw has now been fixed.
+
+    - Handling of SMTP errors has been improved.
+
+    - Both "Mass Subscription" via web admin interface and
+      bin/add_members have been greatly sped up.
+
+    - autoconf check for syslog has been revamped, and is now verified
+      to work on SCO OpenServer 5.  If syslog can't be found, the C
+      wrappers will compile, but without any syslog calls.
+
+    - Various other bug fixes.
+
+1.0rc1 (04-May-1999)
+
+    - There is a new Mailman logo, contributed by The Dragon De
+      Monsyne.  Please read the INSTALL file for information about
+      installing the logo in a place your Web server can find it.
+
+    - USE_ENVELOPE_SENDER is now set to 0 by default.  Turning this on
+      caused problems for too many users; lists restricted to
+      member-only posts were not matching the addresses correctly.
+
+    - A revamped bin/withlist to be a little more useful.
+
+    - A revamped cron/mailpasswds which groups users by virtual hosts.
+
+    - The usual assortment of bug fixes.
+
+1.0b11 (03-Apr-1999)
+
+    - Bug fixes and improvements for case preservation of subscribed
+      addresses.  The DATA_FILE_VERSION has been bumped to 14.
+
+    - New script bin/withlist, useful for interactive debugging.
+
+1.0b10 (26-Mar-1999)
+
+    - New script bin/sync_members which can be used to synchronize a
+      list's membership against a flat (e.g. sendmail :include: style)
+      file.
+
+    - bin/add_members and bin/remove_members now accept addresses on
+      the command line with `-' as the value for the -d and -n
+      options.
+
+    - Added variable USE_ENVELOPE_SENDER to Defaults.py for site-wide
+      configuration of address matching scheme.  With this variable
+      set to true, the envelope sender (e.g. Unix "From_" header) is
+      used to match addresses, otherwise the From: header is used.
+      Envelope sender matching seems not to work on many systems.
+      This variable is currently defaulted to 1, but may change to 0
+      for the final release.
+
+    - Reorganization of the membership management admin page.  Also
+      member addresses are linked to their options page.  Only the
+      `General' category has the admin password change form.
+
+    - Major reorganization of email command handling and responses.
+      `notmetoo' is the preferred email command instead of `norcv',
+      although the latter is still accepted as an argument.  If more
+      than 5 errors are found in the message, command processing is
+      halted.
+
+    - User options page now shows the user their case-preserved
+      subscribed address as well.
+
+    - The usual assortment of bug fixes.
+
+1.0b9 (01-Mar-1999)
+
+    - New bin scripts: clone_member, list_members, add_members (a
+      consolidation of convertlist and populate_new_list which have
+      been removed).
+
+    - Two new readmes have been added: README.LINUX and README.QMAIL
+
+    - New configure option --with-cgi-ext which can be used if your
+      Web server requires extensions on CGI scripts.  The extension
+      must include a dot (e.g. --with-cgi-ext=".cgi").
+
+    - Many bug fixes, including the setgid problem that was causing
+      mail to be lost on some versions of Linux.
+
+1.0b8 (14-Jan-1999)
+
+     - Bug fixes and workarounds for certain Linuxes.
+
+     - Illegal addresses are no longer allowed to be subscribed, from
+       any interface.
+
+1.0b7 (31-Dec-1998)
+
+     - Many, many bug fixes.  Some performance improvements for large
+       lists.  Some improvements in the Web interfaces.  Some security
+       improvements.  Improved compatibility with Python 1.5.
+
+     - bin/convert_list and bin/populate_new_list have been replaced
+       by bin/add_members.
+
+     - Admins can now get notification on subscriptions and
+       unsubscriptions.  Posts are now logged.
+
+     - The username portion of email addresses are now case-preserved
+       for delivery purposes.  All other address comparisions are
+       case-insensitive.
+
+     - New default SMTP_MAX_RCPTS that limits the number of "RCPT TO"
+       SMTP commands that can be given for a single message.  Most
+       MTAs have some hard limit.
+
+     - "Precedence: bulk" header and "List-id:" header are now added
+       to all outgoing messages.  The latter is not added if the
+       message already has a "List-id:" header.  See RFC 2046 and
+       draft-chandhok-listid-02 for details.
+
+     - The standard (as of Python 1.5.2) smtplib.py is now used.
+
+     - The install process now compiles all the .py files in the
+       installation.
+
+     - Versions of the Mailman papers given at IPC7 and LISA-98 are
+       now included.
+
+1.0b6 (07-Nov-1998)
+
+     - Archiving is (finally) back in.
+
+     - Administrivia filter added.
+
+     - Mail queue mechanism revamped with better concurrency control.
+
+     - For recipients that have estmp MTAs, set delivery notification
+       status so that only delivery failure notices are sent out,
+       inhibiting 4 hour and N day warning notices.
+
+     - Now expire old unconfirmed subscription requests, rather than
+       keeping them forever.
+
+     - Added proposed standard List-Id: header, and our own
+       X-MailmanVersion header.
+
+     - Prevent havoc from attempts to subscribe a list to itself.  (!)
+
+     - Refine mail command processing to prevent loops.
+
+     - Pending subscription DB redone with better locking and cleaner
+       interface.
+
+     - posters functionality expanded.
+
+     - Subscription policy more flexible, sensible, and
+       site-configurable.
+
+     - Various and sundry bug fixes.
+
+1.0b5 (27-Jul-1998)
+
+    - New file locking that should be portable and work w/ NFS.
+
+    - Better use of packages.
+
+    - Better error logging and reporting.
+
+    - Less startup overhead.
+
+    - Various and sundry bug fixes.
+
+
+1.0b4 (03-Jun-1998)
+
+    - A configure script for easy installation (Barry Warsaw)
+
+    - The ability to install Mailman to locations other than
+      /home/mailman (Barry Warsaw)
+
+    - Use cookies on the admin pages (also hides admin pages from
+      others) (Scott Cotton)
+
+    - Subscription requests send a request for confirmation, which may
+      be done by simply replying to the message (Scott Cotton)
+
+    - Facilities for gating mail to a newsgroup, and for gating a
+      newsgroup to a mailing list (John Viega)
+
+    - Contact the SMTP port instead of calling sendmail (primarily for
+      portability) (John Viega)
+
+    - Changed all links on web pages to relative links where appropriate.
+      (John Viega)
+
+    - Use MD5 if crypt is not available (John Viega)
+
+    - Lots of fixing up of bounce handling (Ken Manheimer)
+
+    - General UI polishing (Ken Manheimer)
+
+    - mm_html: Make it prominent when the user's delivery is disabled
+      on his option page. (Ken Manheimer)
+
+    - mallist:DeleteMember() Delete the option setings if any. (Ken
+      Manheimer)
+
+1.0b3 (03-May-1998)
+
+    - mm_message:Deliverer.DeliverToList() added missing newline
+      between the headers and message body.  Without it, any sequence
+      of initial body lines that _looked_ like headers ("Sir: Please
+      excuse my impertinence, but") got treated like headers.
+
+    - Fixed typo which broke subscription acknowledgement message
+      (thanks to janne sinkonen for pointing this out promptly after
+      release).  (Anyone who applied my intermediate patch will
+      probably see this one trigger patch'es reversed-patch
+      detector...)
+
+    - Fixed cgi-wrapper.c so it doesn't segfault when invoked with
+      improper uid or gid, and generally wrappers are cleaned up a
+      bit.
+
+    - Prevented delivery-failure notices for misdirected subscribe-
+      confirmation requests from bouncing back to the -request addr,
+      and then being treated as failing requests.
+
+      Implemented two measures.  Set the reply-to for the
+      confirmation- request to the -request addr, and the sender to be
+      the list admin.  This way, bounces go to list admin instead of
+      to -request addr.  (Using the errors-to header wasn't
+      sufficient.  Thanks, barry, for pointing out the use of sender
+      here.)  Second, ignore any mailcommands coming from postmaster
+      or non-login system type accounts (mailer-daemon, daemon,
+      postoffice, etc.)
+
+    - Reenabled admin setting of web_page_url - crucial for having
+      lists use alternate names of a host that occupies multiple
+      addresses.
+
+    - Fixed and refined admin-options help mechanism.  Top-level visit
+      to general-category (where the "general" isn't in the URL) was
+      broken.  New help presentation shows the same row that shows on
+      the actual options page.
+
+    - cron/crontab.in crontab template had wrong name for senddigests.
+
+    - Default digest format setting, as distributed, is now non-MIME,
+      on urging of reasoned voices asserting that there are still
+      enough bad MIME implementations in the world to be a nuisance to
+      too many users if MIME is the default.  Sigh.
+
+    - MIME digests now preserve the structure of MIME postings,
+      keeping attachments as attachments, etc.  They also are more
+      structured in general.
+
+    - Added README instructions explaining how to determine the right
+      UID and GID settings for the wrapper executables, and improved
+      some of the explanations about exploratory interaction
+      w/mailman.
+
+    - Removed the constraint that subscribers have their domain
+      included in a static list in the code.  We might want to
+      eventually reincorporate the check for the sake of a warning
+      message, to give a heads up to the subscriber, but try delivery
+      anyway...
+
+    - Added missing titles to error docs.
+
+    - Improved several help details, including particularly explaining
+      better how real_name setting is used.
+
+    - Strengthened admonition against setting reply_goes_to_list.
+
+    - Added X-BeenThere header to postings for the sake of prevention
+      of external mail loops.
+
+    - Improved handling of bounced messages to better recognize
+      members address, and prevent duplicate attempts to react (which
+      could cause superfluous notices to administrator).
+
+    - Added __delitem__ method to mm_message.OutgoingMessage, to fix
+      the intermediate patch posted just before this one.
+
+    - Using keyword substitution format for more message text (ie,
+      "substituting %(such)s into text" % {'such': "something"}) to
+      make the substitutions less fragile and, presumably, easier to
+      debug.
+
+    - Removed hardwired (and failure-prone) /tmp file logging from
+      answer.majordomo_mail, and generally spiffed up following janne
+      sinkkonen's lead.
+
+1.0b2 (13-Apr-1998)
+1.0b1 (09-Apr-1998)
+
+  Web pages much more polished
+   - Better organized, text more finely crafted
+   - Easier, more refined layout
+   - List info and admin interface overviews, enumerate all public lists
+     (via, e.g., http://www.python.org/mailman/listinfo - sans the
+     specific list)
+   - Admin interface broken into sections, with help elaboration for
+     complicated configuration options
+
+  Mailing List Archives
+   - Integrated with a newer, *much* improved, external pipermail - to be
+     found at http://starship.skyport.net/crew/amk/maintained/pipermail.html
+   - Private archives protected with mailing list members passwords,
+     cookie-fied.
+
+  Spam prevention
+   - New spam prevention measures catch most if not all spam without
+     operator intervention or general constraints on who can post to
+     list:
+       require_explicit_destination option imposes hold of any postings
+       that do not have the list name in any of the to or cc header
+       destination addresses.  This catches the vast majority of random
+       spam.
+     Other options (forbidden_posters, bounce_matching_headers) provide
+     for filtering of known transgressors.
+   - Option obscure_addresses (default on) causes mailing list subscriber
+     lists on the web to be slightly mangled so they're not directly
+     recognizable as email address by web spiders, which might be
+     seeking targets for spammers.
+
+  Site configuration arrangement organized - in mailman/mailman/modules:
+   - When installing, create a mailman/modules/mm_cfg.py (if there's not
+     one already there), using mm_cfg.py.dist as a template.
+     mm_default.py contains the distributed defaults, including
+     descriptions of the values.  mm_cfg.py does a 'from mm_defaults.py
+     import *' to get the distributed defaults.  Include settings in
+     mm_cfg.py for any values in mm_defaults.py that need to be
+     customized for your site, after the 'from .. import *'.
+   See mm_cfg.py.dist for more details.
+
+  Logging
+   - Major operations (subscription, admin approval, bounce,
+     digestification, cgi script failure tracebacks) logged in files
+     using a reliable mechanism
+   - Wrapper executables log authentication complaints via syslog
+
+  Wrappers
+   - All cgi-script wrapper executables combined in a single source,
+     easier to configure.  (Mail and aliases wrappers separate.)
+
+  List structure version migration
+   - Provision for automatic update of list structures when moving to a
+     new version of the system.  See modules/versions.py.
+
+  Code cleaning
+   - Many more module docstrings, __version__ settings, more function
+     docstrings.
+   - Most unqualified exception catches have been replaced with more
+     finely targeted catches, to avoid concealing bugs.
+   - Lotsa long lines wrapped (pet peeve:).
+
+  Random details (not complete, sorry):
+   - make archival frequency a list option
+   - Option for daily digest dispatch, in addition to size threshhold
+   - make sure users only get one periodic password notifcation message for
+     all the lists they're on (repaired 1.0b1.1 varying-case mistake)
+   - Fix rmlist sans-argument bug causing deletion of all lists!
+   - doubled generated random passwords to four letters
+   - Cleaned lots and lots of notices
+   - Lots and lots of html page cleanup, including table-of-contents, etc
+   - Admin options sections - don't do the "if so" if the ensuing list
+     is empty
+   - Prevent list subject-prefix cascade
+   - Sources under CVS
+   - Various spam filters - implicit-destination, header-field
+   - Adjusted permissions for group access
+   - Prevent redundant subscription from redundant vetted requests
+   - Instituted centralize, robustish logging
+   - Wrapper sources use syslog for logging (john viega)
+   - Sorting of users done on presentation, not in list.
+   - Edit options - give an error for non-existent users, not an options page.
+   - Bounce handling - offer 'disable' option, instead of remove, and
+     never remove without notifying admin
+   - Moved subscribers off of listinfo (and made private lists visible
+     modulo authentication)
+   - Parameterize default digest headers and footers and create some
+   - Put titles on cgi result pages that do not get titles (all?)
+   - Option for immediate admin notifcation via email of pending
+     requests, as well as periodic
+   - Admin options web-page help
+   - Enabled grouped and cascading lists despite implicit-name constraint
+   - Changed subscribers list so it has its own script (roster)
+   - Welcome pages: http://www.python.org/mailman/{admin,listinfo}/
+
+0.95 (25-Jan-1997)
+  - Fixed a bug in sending out digests added when adding disable mime option.
+  - Added an option to not notify about bounced posts.
+  - Added hook for pre-posting filters.  These could be used to
+    auto-strip signatures.  I'm using the feature to auto-strip footers
+    that are auto-generated by mail received from another mailing list.
+
+0.94 (22-Jan-1997)
+  - Made admin password work ubiquitously in place of a user password.
+  - Added an interface for getting / setting user options.
+  - Added user option to disable mime digests (digested people only)
+  - Added user option to not receive your own posts (nondigested people only)
+  - Added user option to ack posts
+  - Added user option to disable list delivery to their box.
+  - Added web interface to user options
+  - Config number of sendmail spawns on a per-list basis
+  - Fixed extra space at beginning of each message in digests...
+  - Handled comma separated emails in bounce messages...
+  - Added a FindUser() function to MailList.  Used it where appropriate.
+  - Added mail interface to setting list options.
+  - Added name links to the templates options page
+  - Added an option so people can hide their names from the subscription list.
+  - Added an answer_majordomo_mail script for people switching...
+
+0.93 (18/20-Jan-1997)
+  -  When delivering to list, don't call sendmail directly.  Write to a file,
+     and then run the new deliver script, which forks and exits in the parent
+     immediately to avoid hanging when delivering mail for large lists, so that
+     large lists don't spend a lot of time locked.
+  -  GetSender() no longer assumes that you don't have an owner-xxx address.
+  -  Fixed unsubscribing via mail.
+  -  Made subscribe via mail generate a password if you don't supply one.
+  -  Added an option to clobber the date in the archives to the date the list
+     resent the post, so that the archive doesn't get mail from people sending
+      bad dates clumped up at the beginning or end.
+  -  Added automatic error message processing as an option.  Currently
+     logging to /tmp/bounce.log
+  -  Changed archive to take a list as an argument, (the old way was broken)
+  -  Remove (ignore) spaces in email addresses
+  -  Allow user passwords to be case insensitive.
+  -  Removed the cleanup script since it was now redundant.
+  -  Fixed archives if there were no archives.
+  -  Added a Lock() call to Load() and Create().  This fixes the
+     problem of loading then locking.
+  -  Removed all occurances of Lock() except for the ones in mailing
+     list since creating a list
+     now implicitly locks it.
+  -  Quote single periods in message text.
+  - Made bounce system handle digest users fairly.
+
+0.92 (13/16-Jan-1997)
+  -  Added Lock and Unlock methods to list to ensure each operation is atomic
+  -  Added a cmd that rms all files of a mailing list (but not the aliases)
+  -  Fixed subscribing an unknown user at localhost (confirm this)
+  -  Changed the sender to list-admin at ... to ensure we avoid mail loops.
+  -  check to make sure there are msgs to archive before calling pipermail.
+  -  started using this w/ real mailing lists.
+  -  Added a cron script that scours the maillog for User/Host unknown errs
+  -  Sort membership lists
+  -  Always display digest_is_default option
+  -  Don't slam the TO list unless you're sending a digest.
+  -  When making digest summaries, if missing sender name, use their email.
+  -  Hacked in some protection against crappy dates in pipermail.py
+  -  Made it so archive/digest volumes can go up monthly for large large lists.
+  -  Number digest messages
+  -  Add headers/footers to each message in digest for braindead mailers
+  -  I removed some forgotten debug statements that caused server errors
+         when a CGI script sent mail.
+  -  Removed loose_matches flag, since everything used it.
+  -  Fixed a problem in pipermail if there was no From line.
+  -  In upvolume_ scripts, remove INDEX files as we leave a volume.
+  -  Threw a couple of scripts in bin for generating archives from majordomo's
+     digest-archives.  I wouldn't recommend them for the layman, though, they
+     were meant to do a job quickly, not to be usable.
+
+0.91 (23-Dec-1996)
+  -  broke code into mixins for managability
+  -  tag parsing instead of lots of gsubs
+  -  tweaked pipermail (see comments on pipermail header)
+  -  templates are now on a per-list basis as intended.
+  -  request over web that your password be emailed to you.
+  -  option so that web subscriptions require email confirmation.
+  -  wrote a first pass at an admin interface to configurable variables.
+  -  made digests mime-compliant.
+  -  added a FakeFile class that simulates enough of a file object on a
+        string of text to fool rfc822.Message in non-seek mode.
+  -  changed OutgoingMessage not to require its args in constructor.
+  -  added an admin request DB interface.
+  -  clearly separated the internal name from the real name.
+  -  replaced lots of ugly, redundant code w/ nice code.
+        (added Get...Email() interfaces, GetScriptURL, etc...)
+  -  Wrote a lot of pretty html formatting functions / classes.
+  -  Fleshed out the newlist command a lot.  It now mails the new list
+        admin, and auto-updates the aliases file.
+  -  Made multiple owners acceptable.
+  -  Non-advertised lists, closed lists, max header length, max msg length
+  -  Allowed editing templates from list admin pages.
+  -  You can get to your info page from the web even if the list is closed.
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/README (from rev 708, branches/upstream/README)
===================================================================
--- trunk/README	                        (rev 0)
+++ trunk/README	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,180 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+INTRODUCTION
+
+    This is GNU Mailman, a mailing list management system distributed under
+    the terms of the GNU General Public License (GPL).  The name of this
+    software is spelled "Mailman" with a leading capital `M' but with a lower
+    case second `m'.  Any other spelling is incorrect.
+
+    Mailman is written primarily in Python, a free object-oriented scripting
+    language.  There is some ANSI C code for security purposes.
+
+    Mailman was originally developed by John Viega.  Subsequent development
+    (through version 1.0b3) was by Ken Manheimer.  Further work towards the
+    1.0 final release was a group effort, with the core contributors being:
+    Barry Warsaw, Ken Manheimer, Scott Cotton, Harald Meland, and John Viega.
+    Version 1.0 and beyond have been primarily maintained by Barry Warsaw with
+    contributions from many; see the ACKNOWLEDGMENTS file for details.  Jeremy
+    Hylton helped considerably with the Pipermail code in Mailman 2.0.
+
+    The Mailman home page is:
+
+        http://www.list.org
+
+    with mirrors at:
+
+        http://www.gnu.org/software/mailman
+        http://mailman.sf.net
+
+    Mailman 2.1 requires Python 2.3 or greater, which can be downloaded from:
+
+        http://www.python.org
+
+    It is recommended that you use Python 2.5.2, the latest release as of this
+    writing (26-Feb-2008).  
+
+    Mailman 2.1 is not compatible with Python 2.2 or any earlier
+    version.
+
+    You will also need an ANSI C compiler to build both Python and Mailman;
+    gcc (the GNU C compiler) works just fine.  Mailman currently works only on
+    GNU/Linux and other Unix-like operating systems (e.g. Solaris, *BSD,
+    MacOSX, etc.).  It does not run on Windows, although web and mail clients
+    on any platform should be able to interact with Mailman just fine.
+
+    See the INSTALL file for installation instructions.  If you are upgrading
+    from a previous version of Mailman, you need to read the UPGRADING file
+    for important information.
+
+
+FEATURES
+
+    Read the NEWS file for a list of changes since version 0.9.  Read the TODO
+    file for our (extensive) wish list.  You can see Mailman 2.1 in action at:
+
+        http://mail.python.org/mailman/listinfo
+
+    Mailman has most of the standard features you'd expect in a mailing list
+    manager, and more:
+
+    - Web based list administration for nearly all tasks.  Web based
+      subscriptions and user configuration management.  A customizable "home
+      page" for each mailing list.
+
+    - Privacy features such as moderation, open and closed list subscription
+      policies, private membership rosters, and sender-based filters.
+
+    - Automatic web based archiving built-in with support for private and
+      public archives, and hooks for external archivers.
+
+    - Per-user configuration optional digest delivery for either
+      MIME-compliant or RFC 1153 style "plain text" digests.
+
+    - Integrated mail/Usenet gateways.
+
+    - Integrated auto-replies.
+
+    - Majordomo-style email based commands.
+
+    - Integrated bounce detection within an extensible framework.
+
+    - Integrated spam detection, and MIME-based content filtering.
+
+    - An extensible mail delivery pipeline.
+
+    - Support for virtual domains.
+
+
+REQUIREMENTS
+
+    The default mail delivery mechanism uses a direct SMTP connection to
+    whatever mail transport agent you have running on port 25.  You can thus
+    use Mailman with any such MTA, however with certain MTAs (e.g. Exim and
+    Postfix), Mailman will support thru-the-web creation and removal of
+    mailing lists.
+
+    Mailman works with any web server that supports CGI/1.1.  The HTML it
+    generates is quite pedestrian and stingy on the graphics so it should be
+    friendly to most web browsers and network connections.
+
+    You will need root access on the machine hosting your Mailman installation
+    in order to complete some of the configuration steps.  See the INSTALL
+    file for details.
+
+    Mailman's web and email user interface should be compatible with just
+    about any mail reader or web browser, although a mail reader that is MIME
+    aware will be a big help.  You do not need Java, JavaScript, or any other
+    fancy plugins.
+
+
+FOR MORE INFORMATION
+
+    The online documentation can be found in
+
+        file:doc/
+
+    in the directory in which you unpacked Mailman.
+
+    There is a wiki for more community-driven information:
+
+        http://wiki.list.org
+
+    The wiki includes the online FAQ maintained by the Mailman community,
+    which contains a vast amount of information:
+
+        http://wiki.list.org/display/DOC/Frequently+Asked+Questions
+
+    As well as links to further documentation:
+
+        http://wiki.list.org/display/DOC/
+
+    There are also several mailing lists that can be used as resources
+    to help you get going with Mailman.
+
+    Mailman-Users
+        A list for users of Mailman, for posting questions or problems
+        related to installation, use, etc.  We'll try to keep the deep
+        technical discussions off this list.
+
+        http://mail.python.org/mailman/listinfo/mailman-users
+
+    Mailman-Announce
+        A read-only list for release announcements and other important news.
+
+        http://mail.python.org/mailman/listinfo/mailman-announce
+
+    Mailman-Developers
+        A list for those of you interested in helping develop Mailman 2's
+        future direction.  This list contains in-depth technical
+        discussions.
+
+        http://mail.python.org/mailman/listinfo/mailman-developers
+
+    Mailman-I18N
+        A list for the discussion of the Mailman internationalization
+        effort.  Mailman 2.1 is fully multi-lingual.
+
+        http://mail.python.org/mailman/listinfo/mailman-i18n
+
+    Mailman-Checkins
+        A read-only list which is an adjunct to the Bazaar
+        repository.  You can stay on the bleeding edge of Mailman development
+        by subscribing to this list.
+
+        http://mail.python.org/mailman/listinfo/mailman-checkins
+
+    The Mailman project is coordinated on SourceForge at
+
+        http://sf.net/projects/mailman
+
+    You should use SourceForge to report bugs and to upload patches.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/README-I18N.en (from rev 708, branches/upstream/README-I18N.en)
===================================================================
--- trunk/README-I18N.en	                        (rev 0)
+++ trunk/README-I18N.en	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,213 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001-2003 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+
+INTERNATIONALIZATION
+
+    Mailman 2.1 is multilingual.  By default it supports English, but
+    additional languages may also be available.  If the language you
+    want to add is already supported by Mailman, then getting all your
+    lists to also support that language is fairly easy.  You just need
+    to go to the administrative web pages, click on the "Languages"
+    category, and select the languages you want your list to support.
+
+    If the language you want to use has not been previously
+    translated, or you don't know where to find the language pack for
+    your language, read the section below or contact the Mailman
+    internationalization mailing list mailman-i18n at python.org.
+
+
+ADDING NEW TRANSLATIONS
+
+    Suppose you want to add new translations for a previously
+    unsupported language, what steps would you need to take?
+
+    First, you should send a message to mailman-i18n at python.org to
+    make sure nobody has already created the translations for your
+    language.  In the example below, we're going to create a
+    translation for the mythical language "Fredonia" which has the
+    official language code of "xx".
+
+    You should see
+
+        http://www.list.org/i18n.html
+
+    for more information on internationalizing Mailman.  Also, Simone
+    Piunno -- who is the Italian translation champion -- has written
+    up some nice instructions, which are provided below.
+
+    In general you need to do two things to add translations for a
+    language in Mailman.  You need to translate the message catalog
+    and you need to translate the templates.
+
+    To translate the message catalog, grab the file
+    messages/mailman.pot and make a copy called mailman.po in the
+    subdirectory messages/xx/LC_MESSAGES.  Then you edit the file and
+    add the translations for each message identified in the catalog.
+    It will be very helpful to have a good tool, such as KDE's KBabel
+    tool, or po-mode for Emacs, for this part of the job.
+
+    Once you've added your translations, you can then run msgfmt over
+    your .po file to generate messages/xx/LC_MESSAGE/mailman.mo.  Run
+    "make" in the messages subdirectory to do this.
+
+    Next, create the subdirectory templates/xx and translate each of
+    the files in templates/en/*.{html,txt}.  These you should also
+    donate back to the Mailman project.
+
+    To make Mailman and your lists aware of the new language, follow
+    the directions in the section above.
+
+
+TRANSLATION HINTS
+
+    Q: If your language uses non-ASCII characters, such as the cedilla in
+       French, how should you add these to the catalogs and templates?
+
+    A: For any message that is destined for the web interface, use an
+       HTML entity reference where appropriate.  For messages destined
+       for email, you should use the non-ASCII characters explicitly.
+       This includes both for the message catalog and the templates.
+
+
+RESYNCHRONIZING THE CATALOG
+
+    As Mailman development continues, new updated catalogs
+    (i.e. mailman.pot files) will be made available.  As mailman.pot
+    changes, the individual language catalogs
+    (i.e. xx/LC_MESSAGES/mailman.po files) need to be updated as well.
+
+    In general, I as the Mailman maintainer will merge the new
+    catalogs with the individual language catalogs, and commit the
+    updates to CVS.  Translators should grab the new mailman.po files
+    from CVS and update the translated messages.  They should also
+    update the template translations.
+
+    For best results, you will probably want to keep current on
+    changes to Mailman 2.1 in the CVS.  As Mailman 2.1 moves towards
+    final release, the catalogs and templates should start to
+    stabilize.  Alternatively, occasionally I will make new English
+    language packs available on SourceForge, and you can use these to
+    create your translations.
+
+
+DONATING YOUR TRANSLATION BACK TO MAILMAN
+
+    We'd really appreciate it if you donate your translations back to
+    the Mailman project, so that others can benefit from your effort.
+    You'll get credit of course, in the Mailman documentation.  Here
+    are the steps to donate your translations, either the first time
+    or subsequent updates.
+
+    The best thing to do is to send me <barry at python.org> a "tarball",
+    i.e. a gzip'd tarfile, that can be unpacked in the top level
+    directory of the Mailman CVS tree.  This would be the directory
+    containing this README-I18N.en file.
+
+    Your tarball should contain two directories, where your donated
+    language is `xx':
+
+        templates/xx
+        messages/xx
+
+    In templates/xx there should be the translated templates, all the
+    .txt and .html files, for your language, mirroring those in the
+    English template directory (always the master copy).
+
+    In messages/xx you should have a single directory LC_MESSAGES, and
+    in that directory a file called mailman.po, which is the human
+    readable catalog for your language.  Do not send me the mailman.mo
+    file, since I'll recreate it on my end, and that'll save on the
+    size of the tarball.
+
+    That's basically it.  If you need to include a README, please call
+    it README.xx and put it in the messages/xx directory.  README.xx
+    can be in your native language.
+
+    You can email the tarball to me, and if this is the first
+    installation of the language, please tell me what the
+    add_language() call in Defaults.py.in should be for your
+    language.
+
+
+CURRENT LIST OF LANGUAGE SUPPORTED OUT-OF-THE BOX
+
+    See http://www.list.org/i18n.html
+
+
+MORE INSTRUCTIONS
+
+    Here is the recipe that Simone Piunno used for the Italian
+    translations:
+
+    "You can start without much technical knowledge, but if you want
+    to keep your translation up-to-date (while the development branch
+    evolves into the next stable release) you'd better learn how to
+    use cvs and diff.
+
+    Here is my recipe.
+
+    Basically, you'll start by copying templates/en/* to your sandbox dir
+    and then translating each file.  Keep in mind that %(foo)s is a
+    variable reference (much like %s in C) and must be left untouched.
+    Also, you must be able to recognize a markup tag (eg, <foo>) because
+    they must be left untouched too, and you should know how to escape
+    non-ASCII characters, e.g. "è" -> "è", but only in html files.
+    Remember that if you need a literal % sign, it must be doubled: %%
+
+    Next, you copy messages/mailman.pot, renaming it to serbian.po.
+    You can open this file with kbabel (a tool included in KDE SDK) and
+    translate each string (original on the higher half of the window, your
+    translation on the bottom half).
+
+    If you are a masochist, you can even use emacs PO mode ;)
+    Keep attention to the same markers and escaping as above, with the added
+    complexity that here it's harder to say when a string is html (e.g. used
+    for web UI) or pure text (e.g used for email interface)
+
+    Then you try to compile you .po file:
+
+        msgfmt -v -o serbian.mo serbian.po
+
+    No error messages should appear.
+
+    Next, copy your files on an installed mailman tree, and run
+    bin/transcheck XX, where XX is your country code.
+
+    No warning should appear (but maybe some warning is ok, if you really
+    know what you're doing).
+
+    Now, try to run your translation (add an "add_language" line to
+    Mailman/Defaults.py) and check the many scattered pieces blend
+    together well.  Sometimes you'll need some adjustment.
+
+    When you're satistied, pack up a tar.gz with the following structure:
+
+    messages/XX/LC_MESSAGES/mailman.po
+    templates/XX/admindbdetails.html
+    templates/XX/admindbpreamble.html
+    .
+    .
+    templates/XX/userpass.txt
+    templates/XX/verify.txt
+
+    (XX is your country code) and send it to Barry Warsaw.  Do not
+    include the mailman.mo file if you can help it.
+
+    By that time, your translation could be somewhat obsolete, because
+    templates and mailman.pot could have been evolved meanwhile.
+
+    Don't panic.
+
+    You'll need to check diffs to find what changed and how, so that
+    you can easily update your files.
+
+    Save everything everytime, you'll need it.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:

Copied: trunk/README.CONTRIB (from rev 708, branches/upstream/README.CONTRIB)
===================================================================
--- trunk/README.CONTRIB	                        (rev 0)
+++ trunk/README.CONTRIB	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,17 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+Encrypted mailing lists
+
+    Raphinou <rb at raphinou.com> has documented a setup for encrypted
+    mailing lists at
+
+        http://www.raphinou.com/smailman
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/README.NETSCAPE (from rev 708, branches/upstream/README.NETSCAPE)
===================================================================
--- trunk/README.NETSCAPE	                        (rev 0)
+++ trunk/README.NETSCAPE	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,57 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+
+NETSCAPE ISSUES
+
+    Some of your users may experience problems sending mail to a
+    members-only list, if they are using Netscape Communicator as
+    their MUA.  Communicator 4.x on Linux has been observed to insert
+    bogus unqualified Sender: headers -- i.e. Sender: headers with
+    only the username part of the email address.  Other version of
+    Netscape may also have the same bug.
+
+    By default, members-only lists use the From: header as the first
+    field to authenticate against, falling back to Sender:.  The site
+    administrator can also configure Mailman to always use Sender:
+    first.  If Sender: is used, and it exists in the email message,
+    but it is unqualified, it will never match a mailing list member's
+    address, and their post will always be held for approval.
+
+    In the future, Mailman will improve its algorithm for finding a
+    matching address, but in the meantime, M. A. Lemburg <mal at lemburg.com> 
+    provides the following advice.  You can send this snippet to any user
+    whose posts are being held for seemingly no reason.
+
+        Edit the two .js files in your .netscape directory (liprefs.js and
+        preferences.js) to include the function call:
+
+        user_pref("mail.suppress_sender_header", true);
+
+        BTW, the binary includes a comment which says that this is only
+        necessary on Unix.
+
+        Since Communicator regenerates this file upon exit, the change
+        must be done when Communicator is not currently running.  With the
+        next start, it will stop adding the Sender: header and things
+        start to work like a charm again.
+
+    The reason things start to work again, is that Mailman falls back to
+    authenticating the From: header if the Sender: header is missing,
+    even if the site administrator has configured things to look at
+    Sender: first.
+
+
+MOZILLA
+
+    There are no known problems with Mozilla 0.9.x at this time.  I
+    don't know whether the above Netscape problem also affects
+    Mozilla.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/README.USERAGENT (from rev 708, branches/upstream/README.USERAGENT)
===================================================================
--- trunk/README.USERAGENT	                        (rev 0)
+++ trunk/README.USERAGENT	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,49 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+
+INTRODUCTION
+
+    Mailman is compliant with RFC 2369, which specifies a number of
+    List-* headers that mailing list management software should add to
+    every outbound email message.  These headers are designed to make
+    it easy for mail user agents (MUAs) to assist users in common
+    mailing list tasks, such as getting help or unsubscribing.
+
+    At this time, not all MUAs understand the RFC 2369 headers, and
+    instead of suppressing those List-* headers, they show them to the
+    user.  Many list managers report that this can generate a large
+    amount of support requests from their user base.
+
+    In Mailman 2.0, you cannot turn off the List-* headers without
+    hacking the Mailman source.  Because these headers are in the
+    long-term benefit of end-users, it is strongly encouraged to leave
+    these headers in and lobby the MUA vendors to support them.  In
+    the meantime, you can provide your users with the following
+    information to help them suppress these headers.
+
+
+EUDORA USERS
+
+    Mike Noyes provides the following suggestion:
+
+    You can hide the new list headers. Edit your Eudora.ini file, and
+    add this line under [settings].
+
+    TabooHeaders=List,X-UID,Received,Status,X-UIDL,Message,In-Reply, \
+    X-Priority,Mime-Version,Content,X-Persona,Resent-Message,References, \
+    Return,X400,X-400,Mail-System,Errors-To,X-List,Delivery,Disposition, \
+    X-Juno,Precedence,X-Attachments,X-MSMail,X-MimeOLE,X-Nav
+
+    note: everything other than "List" is the default
+
+    ref. Eudora .ini Settings TabooHeaders
+    http://www.eudora.com/techsupport/ini.html
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End:

Copied: trunk/STYLEGUIDE.txt (from rev 708, branches/upstream/STYLEGUIDE.txt)
===================================================================
--- trunk/STYLEGUIDE.txt	                        (rev 0)
+++ trunk/STYLEGUIDE.txt	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,162 @@
+Python coding style guide for Mailman
+Copyright (C) 2002-2004 Barry A. Warsaw
+$Revision: 7097 $
+
+NOTE: The canonical version of this style guide can be found at:
+
+    http://barry.warsaw.us/software/STYLEGUIDE.txt
+
+This document contains a style guide for Python programming, as used in
+Mailman.  In general, Guido van Rossum's style guide should be taken as a
+basis, as embodied in PEP 8:
+
+    http://www.python.org/dev/peps/pep-0008/
+
+however, my (Barry Warsaw's) personal preferences differ from Guido's in a few
+places.  "When in Rome..." should apply meaning, when coding stuff for Python,
+Guido's style should rule, however when coding for Mailman, I'd like to see my
+preferences used instead.
+
+Remember rule #1, A Foolish Consistency is the Hobgoblin of Little Minds.
+That said, here's a quick outline of where my preferences depart from Guido's:
+
+- Imports usually should be on separate lines.  While it's sometimes
+  okay to say
+
+    from types import StringType, ListType
+
+  it's never okay to say
+
+    import os, sys
+
+  Put these on separate lines.
+
+- Imports are always put at the top of the file, just after any module
+  comments and docstrings, and before module globals and constants.
+  Imports should be grouped, with the order being:
+
+  1. standard library imports
+  2. related major package imports (i.e. all email package imports next)
+  3. application specific imports
+
+  From-imports should follow non-from imports.  Dotted imports should follow
+  non-dotted imports.  Non-dotted imports should be grouped by increasing
+  length, while dotted imports should be grouped roughly alphabetically.
+
+- In general, there should be at most one class per module, if the module
+  contains class definitions.  If it's a module of functions, that's fine,
+  group them as common sense dictates.  A class-containing module can also
+  contain some helper functions, but it's best to keep these non-public
+  (i.e. use a single leading underscore).
+
+  Always give the class and the module the same name, differing only by case
+  as PEP 8 recommends.  E.g.
+
+  from mailman.parser import Parser
+
+- When importing a class from a class-containing module, it's usually
+  okay to spell this
+
+    from myclass import MyClass
+    from foo.bar.yourclass import YourClass
+
+  If this spelling causes name clashes, then spell them
+
+    import myclass
+    import foo.bar.yourclass
+
+  and use "myclass.MyClass"
+
+- Right hanging comments are discouraged, in favor of preceding comments.
+  E.g.
+
+    foo = blarzigop(bar)  # if you don't blarzigop it, it'll shlorp
+
+  should be written as
+
+    # if you don't blarzigop it, it'll shlorp
+    foo = blarzigop(bar)
+
+- Major sections of code in a module should be separated by line feed
+  characters (e.g. ^L -- that's a single character control-L not two
+  characters).  This helps with Emacs navigation.
+
+  Always put a ^L before module-level functions, before class definitions,
+  before big blocks of constants which follow imports, and any place else that
+  would be convenient to jump to.  Always put two blank lines before a ^L.
+
+- Put to blank lines between any module level function.  Put only one blank
+  line between methods in a class.  No blank lines between the class
+  definition and the first method in the class (although class docstrings
+  often go in this space).
+
+- Try to minimize the vertical whitespace in a class.  If you're inclined to
+  separate stanzas of code for readability, consider putting a comment in
+  describing what the next stanza's purpose is.  Don't put stupid or obvious
+  comments in just to avoid vertical whitespace though.
+
+- Unless internal quote characters would mess things up, the general rule is
+  that single quotes should be used for short strings, double quotes for
+  triple-quoted multi-line strings and docstrings.  E.g.
+
+    foo = 'a foo thing'
+    warn = "Don't mess things up"
+    notice = """Our three chief weapons are:
+             - surprise
+             - deception
+             - an almost fanatical devotion to the pope
+             """
+
+- Write docstrings for all public modules, functions, classes, and methods.
+  Docstrings are not necessary and usually discouraged for non-public methods,
+  but you should have a comment that describes what the method does.  This
+  comment should appear after the "def" line.
+
+- PEP 257 describes good docstrings conventions.  Note that most importantly,
+  the """ that ends a multiline docstring should be on a line by itself, e.g.:
+
+  """Return a foobang
+
+  Optional plotz says to frobnicate the bizbaz first.
+  """
+
+- For one liner docstrings, keep the closing """ on the same line --
+  except for module docstrings!
+
+- <> is strongly preferred over !=
+
+- fill-column for docstrings should be 78.
+
+- Always use string methods instead of string module functions.
+
+- For sequences, (strings, lists, tuples), use the fact that empty sequences
+  are false, so "if not seq" or "if seq" is preferable to "if len(seq)" or "if
+  not len(seq)".  Always use True and False instead of 1 and 0 for boolean
+  values.
+
+- Always decide whether a class's methods and instance variables should be
+  public or non-public.  In general, never make data variables public unless
+  you're implementing essentially a record.  It's almost always preferable to
+  give a functional interface to your class instead (Python 2.2's descriptors
+  and properties make this much nicer).
+
+  Also decide whether your attributes should be private or not.  The
+  difference between private and non-public is that the former will never be
+  useful for a derived class, while the latter might be.  Yes, you should
+  design your classes with inheritance in mind!
+
+- Single leading underscores are generally preferred for non-public
+  attributes.  Use double leading underscores only in classes designed for
+  inheritance to ensure that truly private attributes will never name clash.
+
+  Public attributes should have no leading or trailing underscores unless they
+  conflict with reserved words, in which case, a single trailing underscore is
+  preferable to a leading one, or a corrupted spelling, e.g. class_ rather
+  than klass.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/TODO (from rev 708, branches/upstream/TODO)
===================================================================
--- trunk/TODO	                        (rev 0)
+++ trunk/TODO	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,174 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2003 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+
+The Mailman Wishlist
+(Last Update: $Date: 2005-08-27 02:40:17 +0100 (Sat, 27 Aug 2005) $)
+
+    Here's the wish list for future versions of Mailman.  Many new
+    features have been added to Mailman 2.1, and it is currently
+    undecided whether the next release will be 2.2 or 3.0.
+
+    Please also see the Mailman design notes wiki at
+
+    http://wiki.list.org/display/DEV/Home
+
+Email Handling
+    - Re-implement the bulk mailer to do DNS lookups and remote MTA
+      delivery directly (optional).
+    - For low-traffic sites, a queued message could trigger a qrunner
+      process.  It would work until all mail was delivered, then sleep
+      and exit if no new work arrived.
+    - Strip any addresses of members who have nodupe turned on, from
+      the Cc headers of the list copy of a message.
+    - Separate processing for MIME and plaintext digests.  E.g. you
+      might want to filter images out of plaintext but not MIME
+      digests.
+
+Documentation
+    - A detailed feature list
+    - A user's guide
+    - A site-admin's guide
+    - A list-admin's guide
+    - More on-line documentation and UI help
+    - A developer's guide w/ architecture and API information
+    - manpages for the scripts in bin and cron
+    - Integrate Christopher Kolar's documentation
+
+General Web UI
+    - NO DEAD ENDS and every web page is reachable.
+    - All web UI must be configurable so that it more easily
+      integrates into an existing site's design.  Probably means using
+      a better template language/system like Zope's Presentation
+      Templates, Quixote, or PHP.
+    - Default UI should add a navigation sidebar to all web pages.
+    - Web pages should never mention disabled features.
+    - Allow a site admin and list admins to categorize lists, so that
+      they can be better organized on the listinfo and admin overview
+      pages.
+
+List Administration
+    - Allow the moderator to edit posts being held for approval (make
+      it evident, either through a header or other means that the
+      message was edited by the moderator).
+    - Allow the admin to disable option settings by users
+    - Allow admins to block nomail settings
+    - Allow admins to control and set individual headers, adding,
+      removing, or overriding those in the original message (sometimes
+      very useful, but could be dangerous!)
+    - New moderation choice: archive but don't send to list.
+    - New moderation choice: annotate and send to author for
+      resubmittal.  Or just be able to annotate the message for
+      multiple moderator scenarios.
+    - Better integration with moderated newsgroups (and allow some
+      addresses to bypass even that moderation and be delivered to a
+      secondary channel, like moderators at isc.org).
+    - Allow a list to be marked `disabled' so things like the replybot
+      still works, and the archives are still available, but mail
+      posted to the list is always returned unsent.
+    - Ability to `sideline' some messages in the moderation queue
+    - Hook moderation up to a whitelist a la TMDA.  A non-member
+      message gets held in a non-admindb queue, and the sender gets a
+      confirmation message.  When they confirm, we moderate the
+      message as normal, but if they don't we assume it's spam (after
+      some period of time) and discard it.  The admin should be able
+      to see all these super-quarantined messages with the flip of a
+      button.
+    - Add a moderation option to pass through any message which is a
+      reply to a message previously distributed through the list, even
+      if it comes from a non-member.  Treat that non-member as a
+      member for the duration of the thread.  Use In-Reply-To,
+      References and Message-ID to match these up.
+    - When a held message is forwarded (for admin editing and approved
+      resend) there should be a way to auto-discard the held message
+      when the approved resend is received.
+    - Have an option to sort the list of members by real name or email
+      address.
+    - Test a message for all hold criteria, record them all instead of
+      just the first match, and do a SpamAssassin like scoring to
+      decide whether the message should get held or not.
+
+List Membership
+    - Have one account per user per site, with multiple email
+      addresses and fallbacks.  Allow them to subscribe whichever
+      address they want to whichever list, with different options per
+      subscription.
+    - Allow the user to get BOTH normal and digested delivery (but I
+      still don't understand why someone would want this)
+    - More flexible digests: index digests (subject and authors only,
+      with URLs to retrieve the article)
+    - Timed vacations, allowing a user to postpone or discard email
+      for a certain number of days or weeks.
+    - Keep user-centric stats, such as the date the user was
+      subscribed, the date of their last change to their account, the
+      date they last sent a message through the list.  Perhaps also
+      log each message they send through the list.
+
+Site Administration
+    - Allow the site admin to define list styles or themes, and list
+      admins to choose one of the canned styles to apply to their
+      list.
+    - Allow the site admin to send an email message to all the list
+      admins using a mechanism similar to the Urgent: header (possibly
+      by addressing it to mailman at site.dom).
+
+Other Usability Improvments
+    - A better strategy is needed for sub-lists and super-lists,
+      including dealing with the resulting password reminders and
+      authorization to modify the sub & superlists.
+    - Add a limit on the number of posts from any one individual
+      within a period of time (1 post per day, 10 per week, etc).
+      Also, limits on mailbacks, infos, etc.
+
+Mailcmd interface
+    - Provide an email interface to all administrative commands
+    - Allow email unsubs from matching address to unsubscribe,
+      possibly adding an "allow open unsubscribes" option to control
+      this.  Also, adding a confirmation with click-thru confirmation
+      to resubscribe.
+    - For email subscribes, keep an audit of where requests are coming
+      from, and send the original request headers in the confirmation
+      message.  Helps track down subscribe bombs.
+    - Investigate Majordomo2's email admin capabilities.
+    - Support the `which' command.
+
+Portability & architecture
+    - Use a real transactional database for all information, and allow
+      various bits of information to come from different sources (a
+      relational database, ZODB, LDAP, etc)
+    - Member profiles
+    - Allow lists of the same name in two different virtual domains
+    - Should be able to gather statistics, such as deliveries/day,
+      performance, number of subscribers over time, etc.
+    - Implement something like Roundup's nosy lists, maybe even
+      integrate with Roundup.
+    - Split Mailman into libraries so, e.g. the delivery part could be
+      used by other projects.
+
+Bounce handling
+    - Add more patterns for bounce handling (never ending)
+    - Send mail to people who are being removed without their knowledge
+      (even though they're likely not to get it).
+
+Pipermail + Archiving mechanism
+    - Search engine for archives
+    - Provide downloadable tar.gz's of the html archives
+    - sort by date should go most-recent to oldest
+    - allow list owner to edit archive messages
+    - optional form front-end to public interfaces as a filter to
+      address harvesters.
+    - In general the whole Pipermail subsystem needs a good rewrite.
+    - Write an API between Mailman and the archiver so that message
+      footers can contain the URL to the archived message.
+
+Code cleanup
+    - Turn all remaining string exceptions into class exceptions
+    - Unit and system test suite! (ongoing)
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/UPGRADING (from rev 708, branches/upstream/UPGRADING)
===================================================================
--- trunk/UPGRADING	                        (rev 0)
+++ trunk/UPGRADING	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,397 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+
+UPGRADING FROM PREVIOUS VERSIONS
+
+    For the most part, upgrading Mailman entails installing the latest version
+    over the existing version.  Usually, you can unpack the new release, run
+    'configure' with the same options you used in your previous install, and
+    then do a 'make install'.  However, there are some changes that may need
+    to be taken care of manually.
+
+    What you need to do depends on the version you are using and the version
+    you are upgrading to.  In all cases, you should first turn off your mail
+    and web access to your Mailman installation.  You're essentially upgrading
+    a database, and it's usually a good idea to make sure the database cannot
+    be modified in the middle of the upgrade.
+
+    My recommendations are:
+
+    - Turn off your incoming mail daemon.  Most remote smtp servers will
+      simply queue up messages destined for your domain if port 25 is shut
+      off.
+
+    - Temporarily disable web access to Mailman.  You can do this by either
+      turning off your web server temporarily, or by setting up a temporary
+      redirect to a "service unavailable" page for the Mailman URLs.  Refer to
+      your web server documentation for details.
+
+
+UPGRADING FROM 2.1.4 to 2.1.5
+
+    In Mailman 2.1.5, some significant changes have been made to the file
+    formats for qfiles and the pendings database.  All care has been taken to
+    make sure the upgrades happen automatically and smoothly, but you should
+    double check and, for the ultra-paranoid, make backups of your Mailman
+    site before you upgrade.  BE SURE TO TURN OFF MAILMAN AS DESCRIBED ABOVE
+    BEFORE YOU UPGRADE.
+
+    Specifically, in MM2.1.4 every message in the queues was represented by
+    two files, a .msg or .pck file containing the email message, and a .db
+    file containing metadata about the message.  In MM2.1.5 this has been made
+    more efficient by using only one file (with a .pck extension) for both the
+    message and metadata.  This should make MM2.1.5 half as hostile to the
+    file system.
+
+    The bin/upgrade script, which is run automatically when you upgrade,
+    should convert all the old style qfiles to the new style qfiles.  Note
+    that this could take a long time if you have a lot of files in your qfiles
+    subdirectories.  Pay particular attention to files you might have in
+    qfiles/shunt; these will get upgraded too, although files in qfiles/bad
+    will not.
+
+    In MM2.1.4, the database file containing pending actions (i.e
+    subscriptions, unsubscriptions, message holds, etc.) was shared globally
+    among all mailing lists.  In MM2.1.5, each list now has its own pending
+    database file.  All care has been taken to properly split pending actions
+    from the global to the list-specific files, but it's possible there are
+    bugs here.  Best practice is to clear all pending actions before you
+    upgrade, although this is not always possible.
+
+
+UPGRADING FROM 2.0.x to 2.1
+
+    When you upgrade from Mailman 2.0.x to Mailman 2.1, you should double
+    check that your moderation and privacy options are still set the way you
+    want them.  The Mailman options dealing with moderation and privacy have
+    changed significantly, to make them easier to understand and control.
+    Ever effort was taken to translate the old configuration variables to the
+    new configuration variables, but because the old semantics were so
+    complex, it is possible your settings may not have been correctly
+    translated.
+
+    Check especially the values for (in Privacy -> Sender Filters)
+    default_member_moderation, generic_nonmember_action, and
+    accept_these_nonmembers.  Also check the moderation flag on member
+    accounts in the Membership Management screen.
+
+    In Mailman 2.1, the qrunner subsystem has been completely
+    rewritten.  You no longer start qrunner from cron!  Instead, there
+    is a bin/mailmanctl script which is used to start, stop, and
+    restart mail delivery.  This script is appropriate to use as a
+    Unix init script.  Be sure to update your crontab with the new
+    cron/crontab.in file.
+
+    NOTE: It is very important that if you are upgrading from a
+    pre-MM2.1alpha2 system to a post-MM2.1alpha2 system that you let
+    the old qrunner process clear any and all messages sitting in the
+    qfiles/ directory *BEFORE* you upgrade.  Otherwise after the
+    upgrade, those messages will not get delivered, and there is no
+    easy way to upgrade those pending messages.
+
+    NOTE: When upgrading to Mailman 2.1, you will need to regenerate
+    your aliases files.  There have been many changes to the alias
+    names, the programs they map to, and the name of the wrapper
+    script.  See the Mailman Installation Manual for details of making
+    Mailman work with your mail server.
+
+    To regenerate your aliases, use the bin/genaliases script.
+
+    IMPORTANT: The encryption algorithm for list admin passwords has
+    changed which means that after upgrading from 2.0.x to 2.1.x, list
+    passwords will have to be reset.  There is a new bin/change_pw tool
+    to help with this.
+
+    Mailman 2.1 introduces multilingual (a.k.a. internationalization
+    or i18n) support.  Previously only one language per list was
+    supported, and it was assumed that this language would be English.
+    The upgrade script for Mailman 2.1 creates a subdirectory `en'
+    inside each lists/<listname> directory.  It then copies all the
+    .txt and .html files from lists/<listname> into
+    lists/<listname>/en.
+
+    If you have modified those templates to contain non-English text,
+    you will have to manually rename the en subdirectories to the
+    language code for the language of your templates.  Mailman's
+    upgrade script should handle cleaning up any templates which are
+    duplicates of the defaults, but you'll want to double check this
+    manually.
+
+    If you are running a MM2.0.x system with non-standard patches
+    applied, you might have some other problems with your upgrade.
+    Here are some instances we know about:
+
+    - If you've applied patch #413752 (coerce to plaintext), then your
+      upgrade will not go smoothly.  Take a look at patch #651406 for
+      an unofficial solution.
+
+      http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=413752
+      http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=651406
+
+
+UPGRADING INDIVIDUAL LISTS
+
+    If you're nervous about upgrading all of your lists to 2.1 in one
+    go, you can move them and upgrade them one at a time.  Start by
+    doing a clean Mailman 2.1 installation in an empty directory --
+    call it $MM21.  (I'll assume your Mailman 2.0 installation is in
+    $MM20.)
+
+    Doing this means you'll have co-habiting Mailman 2.0 and 2.1
+    installations for a while, until you have moved all of your lists
+    to Mailman 2.1.  Depending on your MTA and web server, this could
+    be transparent and painless, or it could be an ongoing headache.
+
+    If you use Apache with mod_rewrite, then it's fairly
+    straightforward to set things up so that both Mailman 2.0 and 2.1
+    inhabit the /mailman and /pipermail URL-space of your server; this
+    makes the transition almost transparent to list admins and
+    subscribers.  See below for details.
+
+    Now, for each list that you want to move, you'll have to
+
+      * Shut down your MTA.
+
+        If you have a lot of outgoing list traffic, you might need to
+        leave your MTA up but only let it accept connections from
+        127.0.0.1 (localhost), so Mailman 2.0 can flush its queue.
+        How to do this is MTA-dependent; for Exim, you can set
+        "local_interfaces = 127.0.0.1" and "kill -HUP" the Exim
+        daemon.
+
+      * Shut down your web server.  For a more professional look, or
+        if you want to allow people to keep accessing the rest of your
+        web site, you could make your web server respond to all
+        /mailman/ URLs with a "temporarily unavailable" message.
+
+        How to do this is web server-dependent; with Apache and
+        mod_rewrite, this does the trick:
+
+          RewriteRule ^/mailman/.* /var/www/unavailable.html [L]
+
+        (Of course, you'll have to supply your own
+        /var/www/unavailable.html.)
+
+      * Force Mailman 2.0 to process its queue:
+
+          python -S $MM20/cron/qrunner
+
+        (This is only necessary if there are any files in $MM20/qfiles;
+        if you need to do this, make sure you left your MTA listening to
+        127.0.0.1.)
+
+      * Move the list:
+
+          cd $MM20
+          mv -i lists/foo-list $MM21/lists
+          mv -i archives/private/foo-list $MM21/archives/private
+          mv -i archives/private/foo-list.mbox $MM21/archives/private
+          rm archives/public/foo-list
+          rm archives/public/foo-list.mbox
+          cd $MM21
+          bin/withlist -l -r fix_url mylist
+
+        (The fix_url step will not be necessary if your Mailman 2.0
+        and 2.1 installations will be sharing the same URL-space.)
+
+      * Edit your web server config so the list's URLs continue to
+        work.  There are two possible approaches here; the simpler way
+        is to setup a new slice of URL-space that will be used by your
+        Mailman 2.1 installation, eg. /mailman-21:
+        With Apache and mod_rewrite:
+
+          RewriteRule /mailman/(.*)/(foo-list.*) /mailman-21/$1/$2 [R=temp]
+
+        (The [R=temp] assumes that "/mailman-21/" is a temporary URL,
+        and you'll move all your lists to "/mailman/" when the
+        transition to Mailman 2.1 is complete.)
+
+        If you don't want to expose ugly temporary URLs like
+        "/mailman-21" to the world, it's only slightly more work to make
+        Mailman 2.0 and 2.1 share the same slices of URL-space.  Here's
+        how to do it with Apache and mod_rewrite:
+
+          RewriteRule ^/mailman/(.*)/(foo-list.*) \
+                      $MM21/cgi-bin/$1/$2 \
+                      [T=application/x-httpd-cgi]
+
+        Not only is this more aesthetically pleasing, it's faster -- no
+        redirects.
+
+        In either case, you'll want to rewrite the list's archive URLs
+        to Mailman 2.1's archive:
+
+          RewriteRule ^/pipermail/(foo-list.*) $MM21/archives/public/$1
+
+      * Restart your web server (or disable the "temporarily
+        unavailable" stuff).
+
+      * Restart your MTA (or make it listen to more than just
+        127.0.0.1).
+
+
+UPGRADING FROM 2.0 to 2.0.x (where x >= 1)
+
+    Nothing much more than running "make install" (after upgrading)
+    should be necessary.
+
+
+UPGRADING FROM 2.0 beta to 2.0 final
+
+    You MUST re-run configure; running config.status is not sufficient
+    due to some recent changes in the autoconf scripts.  You can do a
+    head of config.status if you don't remember the options you
+    originally ran configure with.
+
+    The cron jobs for Mailman 2.0 final have changed considerably,
+    including the frequency with which they run.  You should reload
+    misc/crontab.in for the `mailman' user to get the right settings.
+    See the INSTALL file for details.
+
+    FAILURE TO DO THIS WILL RESULT IN A LESS THAN OPTIMALLY FUNCTIONAL
+    MAILMAN INSTALLATION.
+
+
+UPGRADING FROM 1.x to 2.x
+
+    In addition to the instructions above, I highly recommend that you
+    make sure your Mailman queue is cleared /before/ upgrading.
+
+    Mailman version 1.x had a cron script called run_queue which was
+    part of its bulk mailer.  With Mailman 2.x there is no default
+    bulk mailer (it lets the MTA handle this), and it is currently
+    unknown what the effects of upgrading are on the run_queue script,
+    but I'll bet it's not good. :)
+
+    The way to make sure that your Mailman queue is empty is to look
+    in your $prefix/data directory.  If you see any files that start
+    with "mm_q." you've still got messages waiting on the queue.  You
+    can run $prefix/cron/run_queue by hand until the queue is cleared.
+    Multiple invocations of this script won't help though; they lock
+    each other out.  Also, be warned that clearing the queue can take
+    a while and may cause a large load on your system (two reasons why
+    all this stuff has been redesigned in 2.x :).
+
+    You do not need to run "make update" if you are upgrading from
+    version 1.0 or 1.1 to version 2.0, since this is now run
+    automatically when you do a "make install".  However you should
+    modify your crontab entries to execute cron/qrunner instead of
+    cron/run_queue.  You can also safely remove the file
+    $prefix/cron/run_queue.
+
+    If you are upgrading from a pre-1.0 beta, you need to follow the
+    instructions below.
+
+
+UPGRADING FROM PRE-1.0 to 2.x
+
+    You need to do a few extra things to make sure that the file
+    system layout for the early 1.0 betas is upgraded to the 1.x
+    configuration.  There are two ways to do this.
+
+    First, from the source directory, after you've done a "make
+    install" you can run "make update".  "make update" creates a file
+    named "update.log" in the top level of the source distribution.
+    If the script that updates the Mailman filesystem encounters
+    something that is not resolvable, it will log info about this to
+    "update.log".  This is worth checking after the upgrade completes.
+
+    You can also just change to the installation directory (i.e. $prefix)
+    and run bin/update.  This is the same as above except that the
+    update.log file is not generated.
+
+    Check your crontab entry.  Remove any runs of obsolete scripts, in
+    particular cron/upvolumes_yearly, cron/upvolumes_monthly, or
+    cron/archive.
+
+
+WHAT "MAKE UPDATE" DOES
+
+    Below is an annotated listing of the things that "make update"
+    does.  Hopefully, this will help resolve any problems you are
+    having.
+
+    Note that it can't hurt to run "make update" each time you
+    upgrade, but if you're running version 1.0 or newer, it won't help
+    much either!
+
+    - To upgrade to 1.0b10, you will need to copy
+      templates/options.html to lists/<listname>/options.html for each
+      mailing list you have.  However, if you have edited the
+      options.html file, say from the Web interface, you will have to
+      merge these changes in manually.
+
+    - The upgrade to 1.0b7 included the removal of
+      Mailman/smtplib.py{,c} since Mailman now uses the default Python
+      1.5.2 version of smtplib.
+
+    - Archiving files are moved around as part of integrating
+      Pipermail into Mailman, as of 1.0b6.  In particular,
+
+      1) if a list has only a private mbox archive
+      $prefix/archives/private/<listname> is moved to
+      $prefix/archives/private/<listname>.mbox/<listname>
+
+      2) if a list has only a public mbox archive
+      $prefix/archives/public/<listname> is moved to
+      $prefix/archives/private/<listname>.mbox/<listname>
+
+      and a symlink is made that points
+      $prefix/archives/public/<listname>.mbox to
+      $prefix/archives/private/<listname>.mbox/<listname>
+
+      3) if a list has both private and public mbox archives,
+      make update picks one of the above 2 configurations based on
+      whether or not the list currently is archived publicly.  It then
+      renames the other mbox to mbox.preb6.
+
+      4) if a list used recent CVS sources, where archives were placed in
+      $prefix/public_html/archives, then these are moved to
+      $prefix/archives/private/<listname> and a symlink is made from
+      $prefix/archives/public/<listname> to that spot if the list's
+      archives are public.  Also, a permissions-related security
+      problem is removed.
+
+      To integrate mbox archives of old lists, log in as user `mailman'
+      and run $prefix/bin/arch <listname> <path-to-mbox-archive>.
+
+      Also, by default, beta6 does both mbox and html based archiving,
+      but you can configure Mailman to do one, both, or neither.
+      Please see $prefix/Mailman/Defaults.py for details.
+
+      There was a short period of time when the CVS sources archiving
+      code was not organized into its own package.  The pickled
+      articles in the archives that were placed into archives during
+      this period stored the path to the module HyperArch, but that
+      module has moved.  You can quick fix this by running
+
+      ln -s $prefix/Mailman/Archiver/HyperArch.py \
+              $prefix/Mailman/HyperArch.py
+
+    - If upgrading from version 1.0b4 or earlier, "make update" moves
+      list-specific templates.  For each list,
+      $prefix/templates/<listname>/* is moved to $prefix/lists/<listname>.
+      Please reference the generic templates in $prefix/templates to see
+      if any variables have changed (There shouldn't be many, only
+      options.html was updated from b5 to b6).
+
+      For really old versions of Mailman, you may not even have
+      <listname> subdirectories in $prefix/templates!  In this case
+      you will need to manually copy some files into your new list
+      directories.  Here's an example shell command that will do the
+      trick:
+
+      cp templates/{archives,handle_opts,listinfo,roster,subscribe}.html lists/<listname>
+
+    - Some modules that existed in previous versions, but that have
+      been replaced with newer (differently named) modules, are
+      removed.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+End:

Copied: trunk/configure (from rev 708, branches/upstream/configure)
===================================================================
--- trunk/configure	                        (rev 0)
+++ trunk/configure	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,6207 @@
+#! /bin/sh
+# From configure.in Revision: 8122 .
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.63.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+
+  if test $as_have_required = yes &&	 (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  case $as_dir in
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	   done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+	 # Try only shells that exist, to save several forks.
+	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		{ ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+	       as_have_required=yes
+	       if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+	done
+	export CONFIG_SHELL
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell bug-autoconf at gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="src/common.h"
+ac_default_prefix=/usr/local/mailman
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+SCRIPTS
+EGREP
+GREP
+CPP
+URLHOST
+MAILHOST
+CGIEXT
+CGI_GROUP
+MAIL_GROUP
+MAILMAN_GROUP
+MAILMAN_USER
+VAR_PREFIX
+OPT
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+TRUE
+SET_MAKE
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+KOCODECSPKG
+JACODECSPKG
+EMAILPKG
+PYTHON
+with_python
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_python
+with_gcc
+with_var_prefix
+with_permcheck
+with_username
+with_groupname
+with_mail_gid
+with_cgi_gid
+with_cgi_ext
+with_mailhost
+with_urlhost
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)	ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+   { (exit 1); exit 1; }; }
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+   { (exit 1); exit 1; }; } ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
+   { (exit 1); exit 1; }; }
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-python                specify path to Python interpreter
+  --without-gcc               never use gcc
+  --with-var-prefix     directory for mutable data /var/mailman
+  --without-permcheck  skip the check for target directory permissions
+  --with-username      specify a user name other than \"mailman\"
+  --with-groupname     specify a group name other than \"mailman\"
+  --with-mail-gid      group name mail programs run as
+  --with-cgi-gid       group name CGI programs run as
+  --with-cgi-ext       specify extension for CGI programs (include dot)
+  --with-mailhost      specify the hostname part for outgoing email
+  --with-urlhost       specify the hostname part of urls
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.63
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.63.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  $as_echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test -r "$ac_site_file"; then
+    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+# /usr/local/mailman is the default installation directory
+
+
+
+# Check for Python!  Better be found on $PATH
+{ $as_echo "$as_me:$LINENO: checking for --with-python" >&5
+$as_echo_n "checking for --with-python... " >&6; }
+
+# Check whether --with-python was given.
+if test "${with_python+set}" = set; then
+  withval=$with_python;
+fi
+
+case "$with_python" in
+    "") ans="no";;
+    *)  ans="$with_python"
+esac
+{ $as_echo "$as_me:$LINENO: result: $ans" >&5
+$as_echo "$ans" >&6; }
+
+if test -z "$with_python"
+then
+        # Extract the first word of "python", so it can be a program name with args.
+set dummy python; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_with_python+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  case $with_python in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_with_python="$with_python" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_with_python="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_with_python" && ac_cv_path_with_python="/usr/local/bin/python"
+  ;;
+esac
+fi
+with_python=$ac_cv_path_with_python
+if test -n "$with_python"; then
+  { $as_echo "$as_me:$LINENO: result: $with_python" >&5
+$as_echo "$with_python" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+
+{ $as_echo "$as_me:$LINENO: checking Python interpreter" >&5
+$as_echo_n "checking Python interpreter... " >&6; }
+if test ! -x $with_python
+then
+    { { $as_echo "$as_me:$LINENO: error:
+
+***** No Python interpreter found!
+***** Try including the configure option
+***** --with-python=/path/to/python/interpreter" >&5
+$as_echo "$as_me: error:
+
+***** No Python interpreter found!
+***** Try including the configure option
+***** --with-python=/path/to/python/interpreter" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+PYTHON=$with_python
+{ $as_echo "$as_me:$LINENO: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+
+# See if Python is new enough.
+{ $as_echo "$as_me:$LINENO: checking Python version" >&5
+$as_echo_n "checking Python version... " >&6; }
+
+cat > conftest.py <<EOF
+import sys
+try:
+    v = sys.hexversion
+except AttributeError:
+    v = 0
+if v >= 0x2040000:
+    s = sys.version.split()[0]
+else:
+    s = ""
+fp = open("conftest.out", "w")
+fp.write("%s\n" % s)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+version=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test -z "$version"
+then
+    { { $as_echo "$as_me:$LINENO: error:
+
+***** $PYTHON is too old (or broken)
+***** Python 2.4 or newer is required" >&5
+$as_echo "$as_me: error:
+
+***** $PYTHON is too old (or broken)
+***** Python 2.4 or newer is required" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+{ $as_echo "$as_me:$LINENO: result: $version" >&5
+$as_echo "$version" >&6; }
+
+# Check the email package version.
+{ $as_echo "$as_me:$LINENO: checking Python's email package" >&5
+$as_echo_n "checking Python's email package... " >&6; }
+
+cat > conftest.py <<EOF
+import sys
+try:
+    import email
+except ImportError:
+    res = "not ok"
+else:
+    provided = (2, 5, 8)
+    version = tuple(int(v) for v in email.__version__.split('.'))
+    if provided > version:
+        res = "not ok"
+    else:
+        res = "ok"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+needemailpkg=`cat conftest.out`
+rm -f conftest.out conftest.py
+
+# Should we rely on Python's own email package or use the pre-packaged version?
+
+if test "$needemailpkg" = "ok"
+then
+    EMAILPKG=""
+else
+    EMAILPKG=email-2.5.8
+fi
+{ $as_echo "$as_me:$LINENO: result: $needemailpkg" >&5
+$as_echo "$needemailpkg" >&6; }
+
+# Check Japanese codecs.
+{ $as_echo "$as_me:$LINENO: checking Japanese codecs" >&5
+$as_echo_n "checking Japanese codecs... " >&6; }
+
+cat > conftest.py <<EOF
+try:
+    unicode('OK', 'iso-2022-jp')
+except LookupError:
+    res = "not ok"
+else:
+    res = "ok"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+needjacodecs=`cat conftest.out`
+rm -f conftest.out conftest.py
+
+# Does Python have Japanese codecs or do we need the pre-packaged version?
+
+if test "$needjacodecs" = "ok"
+then
+    JACODECSPKG=""
+else
+    JACODECSPKG=JapaneseCodecs-1.4.11
+fi
+{ $as_echo "$as_me:$LINENO: result: $needjacodecs" >&5
+$as_echo "$needjacodecs" >&6; }
+
+# Check Korean codecs.
+{ $as_echo "$as_me:$LINENO: checking Korean codecs" >&5
+$as_echo_n "checking Korean codecs... " >&6; }
+
+cat > conftest.py <<EOF
+try:
+    unicode('OK', 'euc-kr')
+except LookupError:
+    res = "not ok"
+else:
+    res = "ok"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+needkocodecs=`cat conftest.out`
+rm -f conftest.out conftest.py
+
+# Does Python have Korean codecs or do we need the pre-packaged version?
+
+if test "$needkocodecs" = "ok"
+then
+    KOCODECSPKG=""
+else
+    KOCODECSPKG=KoreanCodecs-2.0.5
+fi
+{ $as_echo "$as_me:$LINENO: result: $needkocodecs" >&5
+$as_echo "$needkocodecs" >&6; }
+
+# Make sure distutils is available.  Some Linux Python packages split
+# distutils into the "-devel" package, so they need both.
+{ $as_echo "$as_me:$LINENO: checking that Python has a working distutils" >&5
+$as_echo_n "checking that Python has a working distutils... " >&6; }
+
+cat > conftest.py <<EOF
+try:
+    import distutils.errors
+    import distutils.sysconfig
+except ImportError:
+    res = "no"
+else:
+    try:
+        distutils.sysconfig.get_config_vars()
+    except distutils.errors.DistutilsPlatformError:
+        res = "no"
+    else:
+        # some RedHat packages put distutils in python, but the C headers
+        # are in python-devel so check for headers too.
+        import os.path
+        pdothpath = distutils.sysconfig.get_config_var('CONFINCLUDEPY')
+        if os.path.isfile(os.path.join(pdothpath, "Python.h")):
+            res = "yes"
+        else:
+            res = "no"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+havedistutils=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$havedistutils" != "yes"
+then
+    { { $as_echo "$as_me:$LINENO: error:
+
+***** Distutils is not available or is incomplete for $PYTHON
+***** If you installed Python from RPM (or other package manager)
+***** be sure to install the -devel package, or install Python
+***** from source.  See sec. 15.1 of the Installation Manual for
+***** details" >&5
+$as_echo "$as_me: error:
+
+***** Distutils is not available or is incomplete for $PYTHON
+***** If you installed Python from RPM (or other package manager)
+***** be sure to install the -devel package, or install Python
+***** from source.  See sec. 15.1 of the Installation Manual for
+***** details" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+{ $as_echo "$as_me:$LINENO: result: $havedistutils" >&5
+$as_echo "$havedistutils" >&6; }
+
+# Checks for programs.
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+# Extract the first word of "true", so it can be a program name with args.
+set dummy true; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_TRUE+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  case $TRUE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TRUE="$TRUE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/bin:/usr/bin"
+for as_dir in $as_dummy
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TRUE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_TRUE" && ac_cv_path_TRUE="true"
+  ;;
+esac
+fi
+TRUE=$ac_cv_path_TRUE
+if test -n "$TRUE"; then
+  { $as_echo "$as_me:$LINENO: result: $TRUE" >&5
+$as_echo "$TRUE" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+# Find compiler, allow alternatives to gcc
+{ $as_echo "$as_me:$LINENO: checking for --without-gcc" >&5
+$as_echo_n "checking for --without-gcc... " >&6; }
+
+# Check whether --with-gcc was given.
+if test "${with_gcc+set}" = set; then
+  withval=$with_gcc;
+        case $withval in
+        no)     CC=cc
+                without_gcc=yes;;
+        yes)    CC=gcc
+                without_gcc=no;;
+        *)      CC=$withval
+                without_gcc=$withval;;
+        esac
+else
+  without_gcc=no;
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $without_gcc" >&5
+$as_echo "$without_gcc" >&6; }
+
+# If the user switches compilers, we can't believe the cache
+if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
+then
+  { { $as_echo "$as_me:$LINENO: error: cached CC is different -- throw away $cache_file
+(it is also a good idea to do 'make clean' before compiling)" >&5
+$as_echo "$as_me: error: cached CC is different -- throw away $cache_file
+(it is also a good idea to do 'make clean' before compiling)" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Optimizer/debugger flags passed between Makefiles
+
+if test -z "$OPT"
+then
+        case $GCC in
+        yes)
+                case $ac_cv_prog_cc_g in
+                yes)    OPT="-g -O2";;
+                *)      OPT="-O2";;
+                esac
+                ;;
+        *)      OPT="-O";;
+        esac
+fi
+
+# We better be able to execute interpreters
+{ $as_echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5
+$as_echo_n "checking whether #! works in shell scripts... " >&6; }
+if test "${ac_cv_sys_interpreter+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  echo '#! /bin/cat
+exit 69
+' >conftest
+chmod u+x conftest
+(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1)
+if test $? -ne 69; then
+   ac_cv_sys_interpreter=yes
+else
+   ac_cv_sys_interpreter=no
+fi
+rm -f conftest
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5
+$as_echo "$ac_cv_sys_interpreter" >&6; }
+interpval=$ac_cv_sys_interpreter
+
+if test "$ac_cv_sys_interpreter" != "yes"
+then
+    { { $as_echo "$as_me:$LINENO: error:
+
+***** Cannot execute interpreter scripts?
+***** Are you sure you system doesn't support this?" >&5
+$as_echo "$as_me: error:
+
+***** Cannot execute interpreter scripts?
+***** Are you sure you system doesn't support this?" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+# Check for an alternate data directory, separate from installation dir.
+default_var_prefix="/var/mailman"
+
+{ $as_echo "$as_me:$LINENO: checking for --with-var-prefix" >&5
+$as_echo_n "checking for --with-var-prefix... " >&6; }
+
+# Check whether --with-var-prefix was given.
+if test "${with_var_prefix+set}" = set; then
+  withval=$with_var_prefix;
+fi
+
+case "$with_var_prefix" in
+        yes)    VAR_PREFIX="$default_var_prefix"; ans=$VAR_PREFIX;;
+        ""|no)  VAR_PREFIX="$prefix"; ans="no";;
+        *)      VAR_PREFIX="$with_var_prefix"; ans=$VAR_PREFIX;
+esac
+{ $as_echo "$as_me:$LINENO: result: $ans" >&5
+$as_echo "$ans" >&6; }
+
+{ $as_echo "$as_me:$LINENO: checking for --with-permcheck" >&5
+$as_echo_n "checking for --with-permcheck... " >&6; }
+
+# Check whether --with-permcheck was given.
+if test "${with_permcheck+set}" = set; then
+  withval=$with_permcheck;
+fi
+
+if test -z "$with_permcheck"
+then
+        with_permcheck="yes"
+fi
+{ $as_echo "$as_me:$LINENO: result: $with_permcheck" >&5
+$as_echo "$with_permcheck" >&6; }
+# Now make sure that $prefix is set up correctly.  It must be group
+# owned by the target group, it must have the group sticky bit set, and
+# it must be a+rx
+if test "$VAR_PREFIX" = "NONE"
+then
+    VAR_PREFIX=$ac_default_prefix
+    prefixcheck=$ac_default_prefix
+else
+    prefixcheck=$VAR_PREFIX
+fi
+
+# new macro for finding group names
+
+
+
+# new macro for finding UIDs
+
+
+# Check for some other uid to use than `mailman'
+{ $as_echo "$as_me:$LINENO: checking for --with-username" >&5
+$as_echo_n "checking for --with-username... " >&6; }
+
+# Check whether --with-username was given.
+if test "${with_username+set}" = set; then
+  withval=$with_username;
+fi
+
+
+if test -z "$with_username"
+then
+        with_username="mailman"
+fi
+USERNAME=$with_username
+{ $as_echo "$as_me:$LINENO: result: $USERNAME" >&5
+$as_echo "$USERNAME" >&6; }
+
+# User `mailman' must exist
+
+{ $as_echo "$as_me:$LINENO: checking for user name \"$USERNAME\"" >&5
+$as_echo_n "checking for user name \"$USERNAME\"... " >&6; }
+
+# MAILMAN_USER == variable name
+# $USERNAME == user id to check for
+
+
+if test -z "$MAILMAN_USER"
+then
+    cat > conftest.py <<EOF
+import pwd
+uid = ''
+for user in "$USERNAME".split():
+    try:
+        try:
+            uname = pwd.getpwuid(int(user))[0]
+            break
+        except ValueError:
+            uname = pwd.getpwnam(user)[0]
+            break
+    except KeyError:
+        uname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % uname)
+fp.close()
+EOF
+    $PYTHON conftest.py
+    MAILMAN_USER=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$MAILMAN_USER"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    { { $as_echo "$as_me:$LINENO: error:
+***** No \"$USERNAME\" user found!
+***** Your system must have a \"$USERNAME\" user defined
+***** (usually in your /etc/passwd file).  Please see the INSTALL
+***** file for details." >&5
+$as_echo "$as_me: error:
+***** No \"$USERNAME\" user found!
+***** Your system must have a \"$USERNAME\" user defined
+***** (usually in your /etc/passwd file).  Please see the INSTALL
+***** file for details." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: okay" >&5
+$as_echo "okay" >&6; }
+
+
+# Check for some other gid to use than `mailman'
+{ $as_echo "$as_me:$LINENO: checking for --with-groupname" >&5
+$as_echo_n "checking for --with-groupname... " >&6; }
+
+# Check whether --with-groupname was given.
+if test "${with_groupname+set}" = set; then
+  withval=$with_groupname;
+fi
+
+
+if test -z "$with_groupname"
+then
+        with_groupname="mailman"
+fi
+GROUPNAME=$with_groupname
+{ $as_echo "$as_me:$LINENO: result: $GROUPNAME" >&5
+$as_echo "$GROUPNAME" >&6; }
+
+
+# Target group must exist
+
+{ $as_echo "$as_me:$LINENO: checking for group name \"$GROUPNAME\"" >&5
+$as_echo_n "checking for group name \"$GROUPNAME\"... " >&6; }
+
+# MAILMAN_GROUP == variable name
+# $GROUPNAME == user id to check for
+
+
+if test -z "$MAILMAN_GROUP"
+then
+    cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$GROUPNAME".split():
+    try:
+        try:
+            gname = grp.getgrgid(int(group))[0]
+            break
+        except ValueError:
+            gname = grp.getgrnam(group)[0]
+            break
+    except KeyError:
+        gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+    $PYTHON conftest.py
+    MAILMAN_GROUP=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$MAILMAN_GROUP"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    { { $as_echo "$as_me:$LINENO: error:
+***** No \"$GROUPNAME\" group found!
+***** Your system must have a \"$GROUPNAME\" group defined
+***** (usually in your /etc/group file).  Please see the INSTALL
+***** file for details." >&5
+$as_echo "$as_me: error:
+***** No \"$GROUPNAME\" group found!
+***** Your system must have a \"$GROUPNAME\" group defined
+***** (usually in your /etc/group file).  Please see the INSTALL
+***** file for details." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: okay" >&5
+$as_echo "okay" >&6; }
+
+
+{ $as_echo "$as_me:$LINENO: checking permissions on $prefixcheck" >&5
+$as_echo_n "checking permissions on $prefixcheck... " >&6; }
+
+cat > conftest.py <<EOF
+import os, grp
+from stat import *
+prefix = "$prefixcheck"
+groupname = "$GROUPNAME"
+mailmangroup = "$MAILMAN_GROUP"
+try:
+    mailmangid = grp.getgrnam(mailmangroup)[2]
+except KeyError:
+    mailmangid = -1
+problems = []
+try: statdata = os.stat(prefix)
+except OSError:
+    problems.append("Directory doesn't exist: " + prefix)
+else:
+    mode = statdata[ST_MODE]
+    gid = statdata[ST_GID]
+    if mailmangid <> gid:
+        problems.append("Directory must be owned by group " +
+                        groupname + ": " + prefix)
+    if (mode & S_ISGID) <> S_ISGID:
+        problems.append("Set-gid bit must be set for directory: " + prefix)
+    perms = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
+    if (mode & perms) <> perms:
+        problems.append("Permissions should be at least 02775: " + prefix)
+if not problems:
+    msg = "okay\n"
+else:
+    msg = '***** ' + '\n***** '.join(problems) + '\n'
+fp = open("conftest.out", "w")
+fp.write(msg)
+fp.close()
+EOF
+
+$PYTHON conftest.py
+status=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$with_permcheck" = "yes"
+then
+    if test "$status" != "okay"
+    then
+        { { $as_echo "$as_me:$LINENO: error:
+***** Installation directory $prefixcheck is not configured properly!
+$status" >&5
+$as_echo "$as_me: error:
+***** Installation directory $prefixcheck is not configured properly!
+$status" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+else
+    status="skipped"
+fi
+{ $as_echo "$as_me:$LINENO: result: $status" >&5
+$as_echo "$status" >&6; }
+
+
+# Now find the UIDs and GIDs
+# Support --with-mail-gid and --with-cgi-gid
+{ $as_echo "$as_me:$LINENO: checking for mail wrapper group; i.e. --with-mail-gid" >&5
+$as_echo_n "checking for mail wrapper group; i.e. --with-mail-gid... " >&6; }
+
+# Check whether --with-mail-gid was given.
+if test "${with_mail_gid+set}" = set; then
+  withval=$with_mail_gid;
+fi
+
+if test -z "$with_mail_gid"
+then
+    with_mail_gid="mailman other mail daemon"
+fi
+
+# MAIL_GROUP == variable name
+# $with_mail_gid == user id to check for
+
+
+if test -z "$MAIL_GROUP"
+then
+    cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$with_mail_gid".split():
+    try:
+        try:
+            gname = grp.getgrgid(int(group))[0]
+            break
+        except ValueError:
+            gname = grp.getgrnam(group)[0]
+            break
+    except KeyError:
+        gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+    $PYTHON conftest.py
+    MAIL_GROUP=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$MAIL_GROUP"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    { { $as_echo "$as_me:$LINENO: error:
+***** No group name \"$with_mail_gid\" found for the mail wrapper program.
+***** This is the group that your mail server will use to run Mailman's
+***** programs.  You should specify an existing group with the
+***** --with-mail-gid configure option, or use --without-permcheck to
+***** skip this verification step.  See also your mail server's documentation,
+***** and Mailman's INSTALL file for details" >&5
+$as_echo "$as_me: error:
+***** No group name \"$with_mail_gid\" found for the mail wrapper program.
+***** This is the group that your mail server will use to run Mailman's
+***** programs.  You should specify an existing group with the
+***** --with-mail-gid configure option, or use --without-permcheck to
+***** skip this verification step.  See also your mail server's documentation,
+***** and Mailman's INSTALL file for details" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    MAIL_GROUP=$with_mail_gid
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $MAIL_GROUP" >&5
+$as_echo "$MAIL_GROUP" >&6; }
+
+
+{ $as_echo "$as_me:$LINENO: checking for CGI wrapper group; i.e. --with-cgi-gid" >&5
+$as_echo_n "checking for CGI wrapper group; i.e. --with-cgi-gid... " >&6; }
+
+# Check whether --with-cgi-gid was given.
+if test "${with_cgi_gid+set}" = set; then
+  withval=$with_cgi_gid;
+fi
+
+if test -z "$with_cgi_gid"
+then
+    with_cgi_gid="www www-data nobody"
+fi
+
+
+# CGI_GROUP == variable name
+# $with_cgi_gid == user id to check for
+
+
+if test -z "$CGI_GROUP"
+then
+    cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$with_cgi_gid".split():
+    try:
+        try:
+            gname = grp.getgrgid(int(group))[0]
+            break
+        except ValueError:
+            gname = grp.getgrnam(group)[0]
+            break
+    except KeyError:
+        gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+    $PYTHON conftest.py
+    CGI_GROUP=`cat conftest.out`
+fi
+
+rm -f conftest.out conftest.py
+if test -z "$CGI_GROUP"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    { { $as_echo "$as_me:$LINENO: error:
+***** No group name \"$with_cgi_gid\" found for the CGI wrapper program.
+***** This is the group that your web server will use to run Mailman's
+***** programs.  You should specify an existing group with the
+***** --with-cgi-gid configure option, or use --without-permcheck to
+***** skip this verification step.  See also your web server's documentation,
+***** and Mailman's INSTALL file for details" >&5
+$as_echo "$as_me: error:
+***** No group name \"$with_cgi_gid\" found for the CGI wrapper program.
+***** This is the group that your web server will use to run Mailman's
+***** programs.  You should specify an existing group with the
+***** --with-cgi-gid configure option, or use --without-permcheck to
+***** skip this verification step.  See also your web server's documentation,
+***** and Mailman's INSTALL file for details" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    CGI_GROUP=$with_cgi_gid
+  fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $CGI_GROUP" >&5
+$as_echo "$CGI_GROUP" >&6; }
+
+
+# Check for CGI extensions, required by some Web servers
+
+{ $as_echo "$as_me:$LINENO: checking for CGI extensions" >&5
+$as_echo_n "checking for CGI extensions... " >&6; }
+
+# Check whether --with-cgi-ext was given.
+if test "${with_cgi_ext+set}" = set; then
+  withval=$with_cgi_ext;
+fi
+
+if test -z "$with_cgi_ext"
+then
+        CGIEXT=''
+        with_cgi_ext='no'
+else
+        CGIEXT=$with_cgi_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $with_cgi_ext" >&5
+$as_echo "$with_cgi_ext" >&6; }
+
+
+# figure out the default mail hostname and url host component
+
+{ $as_echo "$as_me:$LINENO: checking for --with-mailhost" >&5
+$as_echo_n "checking for --with-mailhost... " >&6; }
+
+# Check whether --with-mailhost was given.
+if test "${with_mailhost+set}" = set; then
+  withval=$with_mailhost;
+fi
+
+if test -z "$with_mailhost"
+then
+        MAILHOST=''
+        with_mailhost='no'
+else
+        MAILHOST=$with_mailhost
+fi
+{ $as_echo "$as_me:$LINENO: result: $with_mailhost" >&5
+$as_echo "$with_mailhost" >&6; }
+
+
+{ $as_echo "$as_me:$LINENO: checking for --with-urlhost" >&5
+$as_echo_n "checking for --with-urlhost... " >&6; }
+
+# Check whether --with-urlhost was given.
+if test "${with_urlhost+set}" = set; then
+  withval=$with_urlhost;
+fi
+
+if test -z "$with_urlhost"
+then
+        URLHOST=''
+        with_urlhost='no'
+else
+        URLHOST=$with_urlhost
+fi
+{ $as_echo "$as_me:$LINENO: result: $with_urlhost" >&5
+$as_echo "$with_urlhost" >&6; }
+
+
+
+cat > conftest.py <<EOF
+# python
+from socket import *
+fqdn = getfqdn()
+fp = open('conftest.out', 'w')
+print >> fp, fqdn
+print >> fp, fqdn
+fp.close()
+EOF
+$PYTHON conftest.py
+
+{ $as_echo "$as_me:$LINENO: checking for default mail host name" >&5
+$as_echo_n "checking for default mail host name... " >&6; }
+if test -z "$MAILHOST"
+then
+    MAILHOST=`sed q conftest.out`
+fi
+{ $as_echo "$as_me:$LINENO: result: $MAILHOST" >&5
+$as_echo "$MAILHOST" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for default URL host component" >&5
+$as_echo_n "checking for default URL host component... " >&6; }
+if test -z "$URLHOST"
+then
+    URLHOST=`sed -n '$p' conftest.out`
+fi
+{ $as_echo "$as_me:$LINENO: result: $URLHOST" >&5
+$as_echo "$URLHOST" >&6; }
+rm -f conftest.out conftest.py
+
+# Checks for libraries.
+
+
+
+
+for ac_func in strerror setregid syslog
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  eval "$as_ac_var=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+if test $ac_cv_func_syslog = no; then
+  # syslog is not in the default libraries.  See if it's in some other.
+  # Additionally, for at least SCO OpenServer, syslog() is #defined to
+  # one of several _real_ functions in syslog.h, so we need to do the test
+  # with the appropriate include.
+  for lib in bsd socket inet; do
+    { $as_echo "$as_me:$LINENO: checking for syslog in -l$lib" >&5
+$as_echo_n "checking for syslog in -l$lib... " >&6; }
+    Mailman_LIBS_save="$LIBS"; LIBS="$LIBS -l$lib"
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <syslog.h>
+int
+main ()
+{
+syslog(LOG_DEBUG, "Just a test...");
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+      cat >>confdefs.h <<\_ACEOF
+#define HAVE_SYSLOG 1
+_ACEOF
+
+      break
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	{ $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+      LIBS="$Mailman_LIBS_save"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+    unset Mailman_LIBS_save
+  done
+fi
+
+# Checks for header files.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_stdc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval "$as_ac_Header=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in syslog.h
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if test "${ac_cv_type_uid_t+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "uid_t" >/dev/null 2>&1; then
+  ac_cv_type_uid_t=yes
+else
+  ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define uid_t int
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define gid_t int
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5
+$as_echo_n "checking type of array argument to getgroups... " >&6; }
+if test "${ac_cv_type_getgroups+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_type_getgroups=cross
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Thanks to Mike Rendell for this test.  */
+$ac_includes_default
+#define NGID 256
+#undef MAX
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
+
+int
+main ()
+{
+  gid_t gidset[NGID];
+  int i, n;
+  union { gid_t gval; long int lval; }  val;
+
+  val.lval = -1;
+  for (i = 0; i < NGID; i++)
+    gidset[i] = val.gval;
+  n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
+		 gidset);
+  /* Exit non-zero if getgroups seems to require an array of ints.  This
+     happens when gid_t is short int but getgroups modifies an array
+     of ints.  */
+  return n > 0 && gidset[n] != val.gval;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_getgroups=gid_t
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_type_getgroups=int
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+if test $ac_cv_type_getgroups = cross; then
+        cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <unistd.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then
+  ac_cv_type_getgroups=gid_t
+else
+  ac_cv_type_getgroups=int
+fi
+rm -f conftest*
+
+fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5
+$as_echo "$ac_cv_type_getgroups" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define GETGROUPS_T $ac_cv_type_getgroups
+_ACEOF
+
+
+
+# Checks for library functions.
+
+for ac_func in vsnprintf
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  eval "$as_ac_var=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+SCRIPTS="build/bin/add_members:bin/add_members \
+build/bin/arch:bin/arch \
+build/bin/change_pw:bin/change_pw \
+build/bin/check_db:bin/check_db \
+build/bin/check_perms:bin/check_perms \
+build/bin/cleanarch:bin/cleanarch \
+build/bin/clone_member:bin/clone_member \
+build/bin/config_list:bin/config_list \
+build/bin/convert.py:bin/convert.py \
+build/bin/discard:bin/discard \
+build/bin/dumpdb:bin/dumpdb \
+build/bin/export.py:bin/export.py \
+build/bin/find_member:bin/find_member \
+build/bin/fix_url.py:bin/fix_url.py \
+build/bin/genaliases:bin/genaliases \
+build/bin/inject:bin/inject \
+build/bin/list_admins:bin/list_admins \
+build/bin/list_lists:bin/list_lists \
+build/bin/list_members:bin/list_members \
+build/bin/list_owners:bin/list_owners \
+build/bin/mailmanctl:bin/mailmanctl \
+build/bin/mmsitepass:bin/mmsitepass \
+build/bin/msgfmt.py:bin/msgfmt.py \
+build/bin/newlist:bin/newlist \
+build/bin/pygettext.py:bin/pygettext.py \
+build/bin/qrunner:bin/qrunner \
+build/bin/remove_members:bin/remove_members \
+build/bin/reset_pw.py:bin/reset_pw.py \
+build/bin/rmlist:bin/rmlist \
+build/bin/show_qfiles:bin/show_qfiles \
+build/bin/sync_members:bin/sync_members \
+build/bin/transcheck:bin/transcheck \
+build/bin/unshunt:bin/unshunt \
+build/bin/update:bin/update \
+build/bin/version:bin/version \
+build/bin/withlist:bin/withlist \
+build/bin/b4b5-archfix:bin/b4b5-archfix \
+build/bin/rb-archfix:bin/rb-archfix \
+build/contrib/check_perms_grsecurity.py:contrib/check_perms_grsecurity.py \
+build/contrib/qmail-to-mailman.py:contrib/qmail-to-mailman.py \
+build/contrib/rotatelogs.py:contrib/rotatelogs.py \
+build/cron/bumpdigests:cron/bumpdigests \
+build/cron/checkdbs:cron/checkdbs \
+build/cron/cull_bad_shunt:cron/cull_bad_shunt \
+build/cron/disabled:cron/disabled \
+build/cron/gate_news:cron/gate_news \
+build/cron/mailpasswds:cron/mailpasswds \
+build/cron/nightly_gzip:cron/nightly_gzip \
+build/cron/senddigests:cron/senddigests \
+"
+
+
+
+# These directories are temporary directories to store macro-expanded
+# scripts.  They're removed on a make distclean, so we make them here.
+mkdir -p build/bin build/contrib build/cron
+
+ac_config_files="$ac_config_files misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist src/Makefile misc/Makefile bin/Makefile Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile Mailman/Archiver/Makefile Mailman/Commands/Makefile Mailman/Handlers/Makefile Mailman/Bouncers/Makefile Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile templates/Makefile cron/Makefile scripts/Makefile messages/Makefile cron/crontab.in misc/mailman Makefile tests/Makefile tests/bounces/Makefile tests/msgs/Makefile $SCRIPTS"
+
+ac_config_commands="$ac_config_commands default"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+	g
+	s/^\n//
+	s/\n/ /g
+	p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.63.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTION]... [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf at gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.63,
+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h |  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { $as_echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "misc/paths.py") CONFIG_FILES="$CONFIG_FILES misc/paths.py" ;;
+    "Mailman/Defaults.py") CONFIG_FILES="$CONFIG_FILES Mailman/Defaults.py" ;;
+    "Mailman/mm_cfg.py.dist") CONFIG_FILES="$CONFIG_FILES Mailman/mm_cfg.py.dist" ;;
+    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+    "misc/Makefile") CONFIG_FILES="$CONFIG_FILES misc/Makefile" ;;
+    "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;;
+    "Mailman/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Makefile" ;;
+    "Mailman/Cgi/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Cgi/Makefile" ;;
+    "Mailman/Logging/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Logging/Makefile" ;;
+    "Mailman/Archiver/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Archiver/Makefile" ;;
+    "Mailman/Commands/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Commands/Makefile" ;;
+    "Mailman/Handlers/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Handlers/Makefile" ;;
+    "Mailman/Bouncers/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Bouncers/Makefile" ;;
+    "Mailman/Queue/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Queue/Makefile" ;;
+    "Mailman/MTA/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/MTA/Makefile" ;;
+    "Mailman/Gui/Makefile") CONFIG_FILES="$CONFIG_FILES Mailman/Gui/Makefile" ;;
+    "templates/Makefile") CONFIG_FILES="$CONFIG_FILES templates/Makefile" ;;
+    "cron/Makefile") CONFIG_FILES="$CONFIG_FILES cron/Makefile" ;;
+    "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
+    "messages/Makefile") CONFIG_FILES="$CONFIG_FILES messages/Makefile" ;;
+    "cron/crontab.in") CONFIG_FILES="$CONFIG_FILES cron/crontab.in" ;;
+    "misc/mailman") CONFIG_FILES="$CONFIG_FILES misc/mailman" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+    "tests/bounces/Makefile") CONFIG_FILES="$CONFIG_FILES tests/bounces/Makefile" ;;
+    "tests/msgs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/msgs/Makefile" ;;
+    "$SCRIPTS") CONFIG_FILES="$CONFIG_FILES $SCRIPTS" ;;
+    "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+
+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} ||
+{
+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr='
+'
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+   { (exit 1); exit 1; }; }
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[	 ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X "  :F $CONFIG_FILES      :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      ac_file_inputs="$ac_file_inputs '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; } ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+   { (exit 1); exit 1; }; }; }
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+ ;;
+
+
+  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "default":C) echo "configuration completed at" `date` ;;
+
+  esac
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+# Make sure all the build scripts are executable.
+chmod -R +x build
+
+# Test for the Chinese codecs.
+


Property changes on: trunk/configure
___________________________________________________________________
Added: svn:executable
   + *

Copied: trunk/configure.in (from rev 708, branches/upstream/configure.in)
===================================================================
--- trunk/configure.in	                        (rev 0)
+++ trunk/configure.in	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,754 @@
+# Copyright (C) 1998-2008 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.
+
+dnl Process this file with autoconf to produce a configure script.
+AC_REVISION($Revision: 8122 $)
+AC_PREREQ(2.0)
+AC_INIT(src/common.h)
+
+
+# /usr/local/mailman is the default installation directory
+AC_PREFIX_DEFAULT(/usr/local/mailman)
+
+
+# Check for Python!  Better be found on $PATH
+AC_MSG_CHECKING(for --with-python)
+AC_ARG_WITH(python, dnl
+[  --with-python                specify path to Python interpreter])
+case "$with_python" in
+    "") ans="no";;
+    *)  ans="$with_python"
+esac
+AC_MSG_RESULT($ans)
+
+if test -z "$with_python"
+then
+        AC_PATH_PROG(with_python, python, /usr/local/bin/python)
+fi
+
+AC_MSG_CHECKING(Python interpreter)
+if test ! -x $with_python
+then
+    AC_MSG_ERROR([
+
+***** No Python interpreter found!
+***** Try including the configure option
+***** --with-python=/path/to/python/interpreter])
+fi
+AC_SUBST(PYTHON)
+PYTHON=$with_python
+AC_MSG_RESULT($PYTHON)
+
+# See if Python is new enough.
+AC_MSG_CHECKING(Python version)
+changequote(,)
+cat > conftest.py <<EOF
+import sys
+try:
+    v = sys.hexversion
+except AttributeError:
+    v = 0
+if v >= 0x2040000:
+    s = sys.version.split()[0]
+else:
+    s = ""
+fp = open("conftest.out", "w")
+fp.write("%s\n" % s)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+version=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test -z "$version"
+then
+    AC_MSG_ERROR([
+
+***** $PYTHON is too old (or broken)
+***** Python 2.4 or newer is required])
+fi
+AC_MSG_RESULT($version)
+
+# Check the email package version.
+AC_MSG_CHECKING(Python's email package)
+changequote(,)
+cat > conftest.py <<EOF
+import sys
+try:
+    import email
+except ImportError:
+    res = "not ok"
+else:
+    provided = (2, 5, 8)
+    version = tuple(int(v) for v in email.__version__.split('.'))
+    if provided > version:
+        res = "not ok"
+    else:
+        res = "ok"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+needemailpkg=`cat conftest.out`
+rm -f conftest.out conftest.py
+
+# Should we rely on Python's own email package or use the pre-packaged version?
+AC_SUBST(EMAILPKG)
+if test "$needemailpkg" = "ok"
+then
+    EMAILPKG=""
+else
+    EMAILPKG=email-2.5.8
+fi
+AC_MSG_RESULT($needemailpkg)
+
+# Check Japanese codecs.
+AC_MSG_CHECKING(Japanese codecs)
+changequote(,)
+cat > conftest.py <<EOF
+try:
+    unicode('OK', 'iso-2022-jp')
+except LookupError:
+    res = "not ok"
+else:
+    res = "ok"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+needjacodecs=`cat conftest.out`
+rm -f conftest.out conftest.py
+
+# Does Python have Japanese codecs or do we need the pre-packaged version?
+AC_SUBST(JACODECSPKG)
+if test "$needjacodecs" = "ok"
+then
+    JACODECSPKG=""
+else
+    JACODECSPKG=JapaneseCodecs-1.4.11
+fi
+AC_MSG_RESULT($needjacodecs)
+
+# Check Korean codecs.
+AC_MSG_CHECKING(Korean codecs)
+changequote(,)
+cat > conftest.py <<EOF
+try:
+    unicode('OK', 'euc-kr')
+except LookupError:
+    res = "not ok"
+else:
+    res = "ok"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+needkocodecs=`cat conftest.out`
+rm -f conftest.out conftest.py
+
+# Does Python have Korean codecs or do we need the pre-packaged version?
+AC_SUBST(KOCODECSPKG)
+if test "$needkocodecs" = "ok"
+then
+    KOCODECSPKG=""
+else
+    KOCODECSPKG=KoreanCodecs-2.0.5
+fi
+AC_MSG_RESULT($needkocodecs)
+
+# Make sure distutils is available.  Some Linux Python packages split
+# distutils into the "-devel" package, so they need both.
+AC_MSG_CHECKING(that Python has a working distutils)
+changequote(,)
+cat > conftest.py <<EOF
+try:
+    import distutils.errors
+    import distutils.sysconfig
+except ImportError:
+    res = "no"
+else:
+    try:
+        distutils.sysconfig.get_config_vars()
+    except distutils.errors.DistutilsPlatformError:
+        res = "no"
+    else:
+        # some RedHat packages put distutils in python, but the C headers
+        # are in python-devel so check for headers too.
+        import os.path
+        pdothpath = distutils.sysconfig.get_config_var('CONFINCLUDEPY')
+        if os.path.isfile(os.path.join(pdothpath, "Python.h")):
+            res = "yes"
+        else:
+            res = "no"
+fp = open("conftest.out", "w")
+fp.write("%s\n" % res)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+havedistutils=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$havedistutils" != "yes"
+then
+    AC_MSG_ERROR([
+
+***** Distutils is not available or is incomplete for $PYTHON
+***** If you installed Python from RPM (or other package manager)
+***** be sure to install the -devel package, or install Python
+***** from source.  See sec. 15.1 of the Installation Manual for
+***** details])
+fi
+AC_MSG_RESULT($havedistutils)
+
+# Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PATH_PROG(TRUE, true, true, $PATH:/bin:/usr/bin)
+
+# Find compiler, allow alternatives to gcc
+AC_MSG_CHECKING(for --without-gcc)
+AC_ARG_WITH(gcc, [  --without-gcc               never use gcc], [
+        case $withval in
+        no)     CC=cc
+                without_gcc=yes;;
+        yes)    CC=gcc
+                without_gcc=no;;
+        *)      CC=$withval
+                without_gcc=$withval;;
+        esac], without_gcc=no;)
+AC_MSG_RESULT($without_gcc)
+
+# If the user switches compilers, we can't believe the cache
+if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
+then
+  AC_ERROR(cached CC is different -- throw away $cache_file
+(it is also a good idea to do 'make clean' before compiling))
+fi
+
+AC_PROG_CC
+
+
+# Optimizer/debugger flags passed between Makefiles
+AC_SUBST(OPT)
+if test -z "$OPT"
+then
+        case $GCC in
+        yes)
+                case $ac_cv_prog_cc_g in
+                yes)    OPT="-g -O2";;
+                *)      OPT="-O2";;
+                esac
+                ;;
+        *)      OPT="-O";;
+        esac
+fi
+
+# We better be able to execute interpreters
+AC_SYS_INTERPRETER
+if test "$ac_cv_sys_interpreter" != "yes"
+then
+    AC_MSG_ERROR([
+
+***** Cannot execute interpreter scripts?
+***** Are you sure you system doesn't support this?])
+fi
+
+
+# Check for an alternate data directory, separate from installation dir.
+default_var_prefix="/var/mailman"
+AC_SUBST(VAR_PREFIX)
+AC_MSG_CHECKING(for --with-var-prefix)
+AC_ARG_WITH(var-prefix, dnl
+[  --with-var-prefix     directory for mutable data [/var/mailman]])
+case "$with_var_prefix" in
+        yes)    VAR_PREFIX="$default_var_prefix"; ans=$VAR_PREFIX;;
+        ""|no)  VAR_PREFIX="$prefix"; ans="no";;
+        *)      VAR_PREFIX="$with_var_prefix"; ans=$VAR_PREFIX;
+esac
+AC_MSG_RESULT($ans)
+
+AC_MSG_CHECKING(for --with-permcheck)
+AC_ARG_WITH(permcheck, dnl
+[  --without-permcheck  skip the check for target directory permissions])
+if test -z "$with_permcheck"
+then
+        with_permcheck="yes"
+fi
+AC_MSG_RESULT($with_permcheck)
+# Now make sure that $prefix is set up correctly.  It must be group
+# owned by the target group, it must have the group sticky bit set, and
+# it must be a+rx
+if test "$VAR_PREFIX" = "NONE"
+then
+    VAR_PREFIX=$ac_default_prefix
+    prefixcheck=$ac_default_prefix
+else
+    prefixcheck=$VAR_PREFIX
+fi
+
+# new macro for finding group names
+AC_DEFUN([MM_FIND_GROUP_NAME], [
+# $1 == variable name
+# $2 == user id to check for
+AC_SUBST($1)
+changequote(,)
+if test -z "$$1"
+then
+    cat > conftest.py <<EOF
+import grp
+gid = ''
+for group in "$2".split():
+    try:
+        try:
+            gname = grp.getgrgid(int(group))[0]
+            break
+        except ValueError:
+            gname = grp.getgrnam(group)[0]
+            break
+    except KeyError:
+        gname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % gname)
+fp.close()
+EOF
+    $PYTHON conftest.py
+    $1=`cat conftest.out`
+fi
+changequote([, ])
+rm -f conftest.out conftest.py])
+
+
+# new macro for finding UIDs
+AC_DEFUN([MM_FIND_USER_NAME], [
+# $1 == variable name
+# $2 == user id to check for
+AC_SUBST($1)
+changequote(,)
+if test -z "$$1"
+then
+    cat > conftest.py <<EOF
+import pwd
+uid = ''
+for user in "$2".split():
+    try:
+        try:
+            uname = pwd.getpwuid(int(user))[0]
+            break
+        except ValueError:
+            uname = pwd.getpwnam(user)[0]
+            break
+    except KeyError:
+        uname = ''
+fp = open("conftest.out", "w")
+fp.write("%s\n" % uname)
+fp.close()
+EOF
+    $PYTHON conftest.py
+    $1=`cat conftest.out`
+fi
+changequote([, ])
+rm -f conftest.out conftest.py])
+
+# Check for some other uid to use than `mailman'
+AC_MSG_CHECKING(for --with-username)
+AC_ARG_WITH(username, dnl
+[  --with-username      specify a user name other than \"mailman\"])
+
+if test -z "$with_username"
+then
+        with_username="mailman"
+fi
+USERNAME=$with_username
+AC_MSG_RESULT($USERNAME)
+
+# User `mailman' must exist
+AC_SUBST(MAILMAN_USER)
+AC_MSG_CHECKING(for user name \"$USERNAME\")
+MM_FIND_USER_NAME(MAILMAN_USER, $USERNAME)
+if test -z "$MAILMAN_USER"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    AC_MSG_ERROR([
+***** No \"$USERNAME\" user found!
+***** Your system must have a \"$USERNAME\" user defined
+***** (usually in your /etc/passwd file).  Please see the INSTALL
+***** file for details.])
+  fi
+fi
+AC_MSG_RESULT(okay)
+
+
+# Check for some other gid to use than `mailman'
+AC_MSG_CHECKING(for --with-groupname)
+AC_ARG_WITH(groupname, dnl
+[  --with-groupname     specify a group name other than \"mailman\"])
+
+if test -z "$with_groupname"
+then
+        with_groupname="mailman"
+fi
+GROUPNAME=$with_groupname
+AC_MSG_RESULT($GROUPNAME)
+
+
+# Target group must exist
+AC_SUBST(MAILMAN_GROUP)
+AC_MSG_CHECKING(for group name \"$GROUPNAME\")
+MM_FIND_GROUP_NAME(MAILMAN_GROUP, $GROUPNAME)
+if test -z "$MAILMAN_GROUP"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    AC_MSG_ERROR([
+***** No \"$GROUPNAME\" group found!
+***** Your system must have a \"$GROUPNAME\" group defined
+***** (usually in your /etc/group file).  Please see the INSTALL
+***** file for details.])
+  fi
+fi
+AC_MSG_RESULT(okay)
+
+
+AC_MSG_CHECKING(permissions on $prefixcheck)
+changequote(,)
+cat > conftest.py <<EOF
+import os, grp
+from stat import *
+prefix = "$prefixcheck"
+groupname = "$GROUPNAME"
+mailmangroup = "$MAILMAN_GROUP"
+try:
+    mailmangid = grp.getgrnam(mailmangroup)[2]
+except KeyError:
+    mailmangid = -1
+problems = []
+try: statdata = os.stat(prefix)
+except OSError:
+    problems.append("Directory doesn't exist: " + prefix)
+else:
+    mode = statdata[ST_MODE]
+    gid = statdata[ST_GID]
+    if mailmangid <> gid:
+        problems.append("Directory must be owned by group " +
+                        groupname + ": " + prefix)
+    if (mode & S_ISGID) <> S_ISGID:
+        problems.append("Set-gid bit must be set for directory: " + prefix)
+    perms = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
+    if (mode & perms) <> perms:
+        problems.append("Permissions should be at least 02775: " + prefix)
+if not problems:
+    msg = "okay\n"
+else:
+    msg = '***** ' + '\n***** '.join(problems) + '\n'
+fp = open("conftest.out", "w")
+fp.write(msg)
+fp.close()
+EOF
+changequote([, ])
+$PYTHON conftest.py
+status=`cat conftest.out`
+rm -f conftest.out conftest.py
+if test "$with_permcheck" = "yes"
+then
+    if test "$status" != "okay"
+    then
+        AC_MSG_ERROR([
+***** Installation directory $prefixcheck is not configured properly!
+$status])
+    fi
+else
+    status="skipped"
+fi
+AC_MSG_RESULT($status)
+
+
+# Now find the UIDs and GIDs
+# Support --with-mail-gid and --with-cgi-gid
+AC_MSG_CHECKING(for mail wrapper group; i.e. --with-mail-gid)
+AC_ARG_WITH(mail-gid, dnl
+[  --with-mail-gid      group name mail programs run as])
+if test -z "$with_mail_gid"
+then
+    with_mail_gid="mailman other mail daemon"
+fi
+MM_FIND_GROUP_NAME(MAIL_GROUP, $with_mail_gid)
+if test -z "$MAIL_GROUP"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    AC_MSG_ERROR([
+***** No group name \"$with_mail_gid\" found for the mail wrapper program.
+***** This is the group that your mail server will use to run Mailman's
+***** programs.  You should specify an existing group with the
+***** --with-mail-gid configure option, or use --without-permcheck to
+***** skip this verification step.  See also your mail server's documentation,
+***** and Mailman's INSTALL file for details])
+  else
+    MAIL_GROUP=$with_mail_gid
+  fi
+fi
+AC_MSG_RESULT($MAIL_GROUP)
+
+
+AC_MSG_CHECKING(for CGI wrapper group; i.e. --with-cgi-gid)
+AC_ARG_WITH(cgi-gid, dnl
+[  --with-cgi-gid       group name CGI programs run as])
+if test -z "$with_cgi_gid"
+then
+    with_cgi_gid="www www-data nobody"
+fi
+
+MM_FIND_GROUP_NAME(CGI_GROUP, $with_cgi_gid)
+if test -z "$CGI_GROUP"
+then
+  if test "$with_permcheck" = "yes"
+  then
+    AC_MSG_ERROR([
+***** No group name \"$with_cgi_gid\" found for the CGI wrapper program.
+***** This is the group that your web server will use to run Mailman's
+***** programs.  You should specify an existing group with the
+***** --with-cgi-gid configure option, or use --without-permcheck to
+***** skip this verification step.  See also your web server's documentation,
+***** and Mailman's INSTALL file for details])
+  else
+    CGI_GROUP=$with_cgi_gid
+  fi
+fi
+AC_MSG_RESULT($CGI_GROUP)
+
+
+# Check for CGI extensions, required by some Web servers
+AC_SUBST(CGIEXT)
+AC_MSG_CHECKING(for CGI extensions)
+AC_ARG_WITH(cgi-ext, dnl
+[  --with-cgi-ext       specify extension for CGI programs (include dot)])
+if test -z "$with_cgi_ext"
+then
+        CGIEXT=''
+        with_cgi_ext='no'
+else
+        CGIEXT=$with_cgi_ext
+fi
+AC_MSG_RESULT($with_cgi_ext)
+
+
+# figure out the default mail hostname and url host component
+AC_SUBST(MAILHOST)
+AC_MSG_CHECKING(for --with-mailhost)
+AC_ARG_WITH(mailhost, dnl
+[  --with-mailhost      specify the hostname part for outgoing email])
+if test -z "$with_mailhost"
+then
+        MAILHOST=''
+        with_mailhost='no'
+else
+        MAILHOST=$with_mailhost
+fi
+AC_MSG_RESULT($with_mailhost)
+
+AC_SUBST(URLHOST)
+AC_MSG_CHECKING(for --with-urlhost)
+AC_ARG_WITH(urlhost, dnl
+[  --with-urlhost       specify the hostname part of urls])
+if test -z "$with_urlhost"
+then
+        URLHOST=''
+        with_urlhost='no'
+else
+        URLHOST=$with_urlhost
+fi
+AC_MSG_RESULT($with_urlhost)
+
+
+changequote(,)
+cat > conftest.py <<EOF
+# python
+from socket import *
+fqdn = getfqdn()
+fp = open('conftest.out', 'w')
+print >> fp, fqdn
+print >> fp, fqdn
+fp.close()
+EOF
+$PYTHON conftest.py
+changequote([, ])
+AC_MSG_CHECKING(for default mail host name)
+if test -z "$MAILHOST"
+then
+    MAILHOST=`sed q conftest.out`
+fi
+AC_MSG_RESULT($MAILHOST)
+AC_MSG_CHECKING(for default URL host component)
+if test -z "$URLHOST"
+then
+    URLHOST=`sed -n '$p' conftest.out`
+fi
+AC_MSG_RESULT($URLHOST)
+rm -f conftest.out conftest.py
+
+# Checks for libraries.
+AC_CHECK_FUNCS(strerror setregid syslog)
+if test $ac_cv_func_syslog = no; then
+  # syslog is not in the default libraries.  See if it's in some other.
+  # Additionally, for at least SCO OpenServer, syslog() is #defined to
+  # one of several _real_ functions in syslog.h, so we need to do the test
+  # with the appropriate include.
+  for lib in bsd socket inet; do
+    AC_MSG_CHECKING(for syslog in -l$lib)
+    Mailman_LIBS_save="$LIBS"; LIBS="$LIBS -l$lib"
+    AC_TRY_LINK([#include <syslog.h>],
+                [syslog(LOG_DEBUG, "Just a test...");],
+                [AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_SYSLOG)
+      break],
+                [AC_MSG_RESULT(no)
+      LIBS="$Mailman_LIBS_save"])
+    unset Mailman_LIBS_save
+  done
+fi
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(syslog.h)
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_UID_T
+AC_TYPE_GETGROUPS
+
+# Checks for library functions.
+AC_CHECK_FUNCS(vsnprintf)
+
+dnl Expand PYTHON path in the scripts, output into build/scriptname
+
+AC_DEFUN([MM_SCRIPTS], [dnl
+bin/add_members \
+bin/arch \
+bin/change_pw \
+bin/check_db \
+bin/check_perms \
+bin/cleanarch \
+bin/clone_member \
+bin/config_list \
+bin/convert.py \
+bin/discard \
+bin/dumpdb \
+bin/export.py \
+bin/find_member \
+bin/fix_url.py \
+bin/genaliases \
+bin/inject \
+bin/list_admins \
+bin/list_lists \
+bin/list_members \
+bin/list_owners \
+bin/mailmanctl \
+bin/mmsitepass \
+bin/msgfmt.py \
+bin/newlist \
+bin/pygettext.py \
+bin/qrunner \
+bin/remove_members \
+bin/reset_pw.py \
+bin/rmlist \
+bin/show_qfiles \
+bin/sync_members \
+bin/transcheck \
+bin/unshunt \
+bin/update \
+bin/version \
+bin/withlist \
+bin/b4b5-archfix \
+bin/rb-archfix \
+contrib/check_perms_grsecurity.py \
+contrib/qmail-to-mailman.py \
+contrib/rotatelogs.py \
+cron/bumpdigests \
+cron/checkdbs \
+cron/cull_bad_shunt \
+cron/disabled \
+cron/gate_news \
+cron/mailpasswds \
+cron/nightly_gzip \
+cron/senddigests \
+])
+
+dnl Please make sure to leave a space at the end of the last entry.
+dnl (This is so we don't have to use [a-z/] style character classes
+dnl in the regexp below and mess with m4 quoting, which is not fun.)
+
+dnl This regexp munges each line in MM_SCRIPTS, replacing:
+dnl   path/script \
+dnl with:
+dnl   build/path/script:path/script \
+dnl so that we can macro-expand variables in scripts without using
+dnl script.in filenames, outputting the new files in build/ .
+
+SCRIPTS="patsubst(MM_SCRIPTS, \(.+\) \(\\?\), build/\1:\1 \2)"
+
+AC_SUBST(SCRIPTS)
+
+# These directories are temporary directories to store macro-expanded
+# scripts.  They're removed on a make distclean, so we make them here.
+mkdir -p build/bin build/contrib build/cron
+
+dnl Output everything
+AC_OUTPUT([misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist
+           src/Makefile misc/Makefile bin/Makefile
+           Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile
+           Mailman/Archiver/Makefile Mailman/Commands/Makefile
+           Mailman/Handlers/Makefile Mailman/Bouncers/Makefile
+           Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile
+           templates/Makefile cron/Makefile scripts/Makefile messages/Makefile
+           cron/crontab.in misc/mailman Makefile
+           tests/Makefile tests/bounces/Makefile tests/msgs/Makefile
+           $SCRIPTS],
+        echo "configuration completed at" `date`)
+
+# Make sure all the build scripts are executable.
+chmod -R +x build
+
+# Test for the Chinese codecs.
+dnl AC_MSG_CHECKING(for Python Chinese Unicode codecs)
+dnl cat > conftest.py <<EOF
+dnl try:
+dnl   unicode("abc", "big5-tw")
+dnl   print "found"
+dnl except LookupError:
+dnl   print "not found"
+dnl EOF
+dnl chinese=`$PYTHON conftest.py 2>/dev/null`
+dnl rm -f conftest.py
+dnl AC_MSG_RESULT($chinese)
+dnl if test "x$chinese" != "xfound"
+dnl then
+dnl     AC_MSG_WARN([
+
+dnl ***** Python Unicode codecs for Chinese not found.
+dnl ***** Chinese emails generated by or manipulated in Mailman will not
+dnl ***** be sent in the correct encoding and may be unreadable.
+dnl ***** Please uncompress and install the Chinese codecs from:
+dnl ***** http://sourceforge.net/projects/python-codecs/
+dnl *****
+dnl ***** Note: Everything else will work just fine.
+dnl ])
+dnl fi

Copied: trunk/gnu-COPYING-GPL (from rev 708, branches/upstream/gnu-COPYING-GPL)
===================================================================
--- trunk/gnu-COPYING-GPL	                        (rev 0)
+++ trunk/gnu-COPYING-GPL	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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 St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.

Copied: trunk/install-sh (from rev 708, branches/upstream/install-sh)
===================================================================
--- trunk/install-sh	                        (rev 0)
+++ trunk/install-sh	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,250 @@
+#! /bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd="$cpprog"
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd="$stripprog"
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  if [ x"$src" = x ]
+	    then
+		src=$1
+	    else
+		# this colon is to work around a 386BSD /bin/sh bug
+		:
+		dst=$1
+	    fi
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+	echo "install:	no input file specified"
+	exit 1
+else
+	true
+fi
+
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+	
+	if [ -d $dst ]; then
+		instcmd=:
+	else
+		instcmd=mkdir
+	fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+	if [ -f $src -o -d $src ]
+	then
+		true
+	else
+		echo "install:  $src does not exist"
+		exit 1
+	fi
+	
+	if [ x"$dst" = x ]
+	then
+		echo "install:	no destination specified"
+		exit 1
+	else
+		true
+	fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+	if [ -d $dst ]
+	then
+		dst="$dst"/`basename $src`
+	else
+		true
+	fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='	
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+	pathcomp="${pathcomp}${1}"
+	shift
+
+	if [ ! -d "${pathcomp}" ] ;
+        then
+		$mkdirprog "${pathcomp}"
+	else
+		true
+	fi
+
+	pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd $dst &&
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+	if [ x"$transformarg" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		dstfile=`basename $dst $transformbasename | 
+			sed $transformarg`$transformbasename
+	fi
+
+# don't allow the sed command to completely eliminate the filename
+
+	if [ x"$dstfile" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		true
+	fi
+
+# Make a temp file name in the proper directory.
+
+	dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+	$doit $instcmd $src $dsttmp &&
+
+	trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+	$doit $rmcmd -f $dstdir/$dstfile &&
+	$doit $mvcmd $dsttmp $dstdir/$dstfile 
+
+fi &&
+
+
+exit 0


Property changes on: trunk/install-sh
___________________________________________________________________
Added: svn:executable
   + *

Copied: trunk/mkinstalldirs (from rev 708, branches/upstream/mkinstalldirs)
===================================================================
--- trunk/mkinstalldirs	                        (rev 0)
+++ trunk/mkinstalldirs	2012-03-27 13:08:24 UTC (rev 709)
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman at prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs 2858 2000-12-07 16:53:23Z bwarsaw $
+
+errstatus=0
+
+for file
+do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp" 1>&2
+
+        mkdir "$pathcomp" || lasterr=$?
+
+        if test ! -d "$pathcomp"; then
+  	  errstatus=$lasterr
+        fi
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here


Property changes on: trunk/mkinstalldirs
___________________________________________________________________
Added: svn:executable
   + *




More information about the Pkg-mailman-hackers mailing list