From b132a73f15e432eaf43310fce9196ca0c0651465 Mon Sep 17 00:00:00 2001 From: <> Date: Thu, 2 Jan 2003 05:25:50 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'Release_2_1-maint'. --- admin/bin/Release.py | 229 ++++++++++++ admin/bin/faq2ht.py | 102 +++++ admin/bin/mm2do | 76 ++++ admin/www/MMGenerator.py | 110 ++++++ admin/www/Makefile | 28 ++ admin/www/admins.ht | 8 + admin/www/admins.html | 134 +++++++ admin/www/bugs.ht | 25 ++ admin/www/bugs.html | 166 +++++++++ admin/www/devs.ht | 93 +++++ admin/www/devs.html | 212 +++++++++++ admin/www/doco-links.h | 7 + admin/www/docs.ht | 66 ++++ admin/www/docs.html | 200 ++++++++++ admin/www/download-links.h | 6 + admin/www/download.ht | 38 ++ admin/www/download.html | 161 ++++++++ admin/www/faq.ht | 301 +++++++++++++++ admin/www/faq.html | 433 ++++++++++++++++++++++ admin/www/features.ht | 80 ++++ admin/www/features.html | 217 +++++++++++ admin/www/help.ht | 24 ++ admin/www/help.html | 165 +++++++++ admin/www/i18n.ht | 167 +++++++++ admin/www/i18n.html | 293 +++++++++++++++ admin/www/images/PythonPoweredSmall.png | Bin 0 -> 415 bytes admin/www/images/dragonlogo.jpg | Bin 0 -> 6150 bytes admin/www/images/logo-70.jpg | Bin 0 -> 3734 bytes admin/www/images/logo-lg.jpg | Bin 0 -> 6150 bytes admin/www/images/logo-sm.jpg | Bin 0 -> 2022 bytes admin/www/images/mailman.jpg | Bin 0 -> 28962 bytes admin/www/index.ht | 59 +++ admin/www/index.html | 204 ++++++++++ admin/www/install-links.h | 11 + admin/www/install.ht | 17 + admin/www/install.html | 140 +++++++ admin/www/inthenews.ht | 504 +++++++++++++++++++++++++ admin/www/inthenews.html | 637 ++++++++++++++++++++++++++++++++ admin/www/links.h | 9 + admin/www/lists.ht | 52 +++ admin/www/lists.html | 185 ++++++++++ admin/www/mailman.html | 146 ++++++++ admin/www/mgrs.ht | 8 + admin/www/mgrs.html | 159 ++++++++ admin/www/mirrors.ht | 12 + admin/www/mirrors.html | 145 ++++++++ admin/www/otherstuff.ht | 23 ++ admin/www/otherstuff.html | 156 ++++++++ admin/www/prev.ht | 20 + admin/www/prev.html | 153 ++++++++ admin/www/requirements.ht | 56 +++ admin/www/requirements.html | 196 ++++++++++ admin/www/site.ht | 240 ++++++++++++ admin/www/site.html | 366 ++++++++++++++++++ admin/www/todo.ht | 190 ++++++++++ admin/www/todo.html | 323 ++++++++++++++++ admin/www/users.ht | 8 + admin/www/users.html | 134 +++++++ admin/www/version.ht | 12 + admin/www/version.html | 135 +++++++ 60 files changed, 7641 insertions(+) create mode 100755 admin/bin/Release.py create mode 100755 admin/bin/faq2ht.py create mode 100755 admin/bin/mm2do create mode 100644 admin/www/MMGenerator.py create mode 100644 admin/www/Makefile create mode 100644 admin/www/admins.ht create mode 100644 admin/www/admins.html create mode 100644 admin/www/bugs.ht create mode 100644 admin/www/bugs.html create mode 100644 admin/www/devs.ht create mode 100644 admin/www/devs.html create mode 100644 admin/www/doco-links.h create mode 100644 admin/www/docs.ht create mode 100644 admin/www/docs.html create mode 100644 admin/www/download-links.h create mode 100644 admin/www/download.ht create mode 100644 admin/www/download.html create mode 100644 admin/www/faq.ht create mode 100644 admin/www/faq.html create mode 100644 admin/www/features.ht create mode 100644 admin/www/features.html create mode 100644 admin/www/help.ht create mode 100644 admin/www/help.html create mode 100644 admin/www/i18n.ht create mode 100644 admin/www/i18n.html create mode 100644 admin/www/images/PythonPoweredSmall.png create mode 100644 admin/www/images/dragonlogo.jpg create mode 100644 admin/www/images/logo-70.jpg create mode 100644 admin/www/images/logo-lg.jpg create mode 100644 admin/www/images/logo-sm.jpg create mode 100644 admin/www/images/mailman.jpg create mode 100644 admin/www/index.ht create mode 100644 admin/www/index.html create mode 100644 admin/www/install-links.h create mode 100644 admin/www/install.ht create mode 100644 admin/www/install.html create mode 100644 admin/www/inthenews.ht create mode 100644 admin/www/inthenews.html create mode 100644 admin/www/links.h create mode 100644 admin/www/lists.ht create mode 100644 admin/www/lists.html create mode 100644 admin/www/mailman.html create mode 100644 admin/www/mgrs.ht create mode 100644 admin/www/mgrs.html create mode 100644 admin/www/mirrors.ht create mode 100644 admin/www/mirrors.html create mode 100644 admin/www/otherstuff.ht create mode 100644 admin/www/otherstuff.html create mode 100644 admin/www/prev.ht create mode 100644 admin/www/prev.html create mode 100644 admin/www/requirements.ht create mode 100644 admin/www/requirements.html create mode 100644 admin/www/site.ht create mode 100644 admin/www/site.html create mode 100644 admin/www/todo.ht create mode 100644 admin/www/todo.html create mode 100644 admin/www/users.ht create mode 100644 admin/www/users.html create mode 100644 admin/www/version.ht create mode 100644 admin/www/version.html (limited to 'admin') diff --git a/admin/bin/Release.py b/admin/bin/Release.py new file mode 100755 index 00000000..227cdb5a --- /dev/null +++ b/admin/bin/Release.py @@ -0,0 +1,229 @@ +#! /usr/bin/env python +# +# Copyright (C) 1998,1999,2000,2001,2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +"""Manage releases of Mailman. + +Usage: %(program)s [options] tagname + +Where `options' are: + + --tag + -t + Tag all release files with tagname. + + --TAG + -T + Like --tag, but relocates any existing tag. See `cvs tag -F'. Only + one of --tag or --TAG can be given on the command line. + + --package + -p + create the distribution package + + --bump + -b + Bump the revision number in key files to tagname. This is done by + textual substitution. + + --help + -h + Print this help message. + + tagname is used in the various commands above. It should essentially be + the version number for the release, and is required. +""" + +import sys +import os +import errno +import re +import time +import tempfile +import getopt + +program = sys.argv[0] + +def usage(code, msg=''): + print >> sys.stderr, __doc__ % globals() + if msg: + print >> sys.stderr, msg + sys.exit(code) + + + +_releasedir = None +def releasedir(tagname=None): + global _releasedir + if not _releasedir: + tmpdir = tempfile.gettempdir() + _releasedir = os.path.join(tmpdir, 'mailman-' + tagname) + return _releasedir + + + +# CVS related commands + +def tag2rel(tagname): + return '"Release_%s"' % tagname.replace('.', '_') + +def cvsdo(cvscmd): + # I don't know why -d is suddenly required -- $CVSROOT used to work just + # fine but now (RH7.3) doesn't at all. + cmd = 'cvs -d %s %s' % (os.environ['CVSROOT'], cvscmd) + os.system(cmd) + +def tag_release(tagname, retag): + # Convert dots in tagname to underscores + relname = tag2rel(tagname) + print 'Tagging release with', relname, '...' + option = '' + if retag: + option = '-F' + cvsdo('tag %s %s' % (option, relname)) + +def checkout(tagname, tail): + print 'checking out...', + relname = tag2rel(tagname) + cvsdo('export -k kv -r %s -d %s mailman' % (relname, tail)) + os.rename('%s/doc' % tail, 'mailman-doc') + + + +def make_pkg(tagname): + dir = releasedir(tagname) + print 'Exporting release dir', dir, '...' + head, tail = os.path.split(dir) + # this can't be done from a working directory + curdir = os.getcwd() + try: + os.chdir(head) + checkout(tagname, tail) + print 'making tarball...' + relname = 'mailman-' + tagname + os.system('tar cvzf %s --exclude .cvsignore %s' % + (relname + '.tgz', relname)) + os.system('tar cvzf mailman-doc.tgz --exclude .cvsignore mailman-doc') + finally: + os.chdir(curdir) + + +VERSIONMARK = '' +DATEMARK = '' + + +def do_bump(newvers): + print 'doing bump...', + # hack some files + for file in ('index.ht', 'version.ht'): + print '%s...' % file, + fp = open(os.path.join('admin', 'www', file), 'r+') + text = fp.read() + parts = text.split(VERSIONMARK) + parts[1] = newvers + text = VERSIONMARK.join(parts) + parts = text.split(DATEMARK) + parts[1] = time.strftime('%d-%b-%Y', time.localtime(time.time())) + text = DATEMARK.join(parts) + fp.seek(0) + fp.write(text) + fp.close() + # hack the configure.in file + print 'Version.py...', + infp = open('Mailman/Version.py') + outfp = open('Mailman/Version.py.new', 'w') + matched = 0 + cre = re.compile(r'^VERSION(?P[ \t]*)=') + while 1: + line = infp.readline() + if not line: + if not matched: + print 'Error! VERSION line not found' + break + mo = cre.search(line) + if matched or not mo: + outfp.write(line) + else: + outfp.write('VERSION%s= "%s"\n' % (mo.group('ws'), newvers)) + matched = 1 + infp.close() + outfp.close() + os.rename('Mailman/Version.py.new', 'Mailman/Version.py') + + + +def main(): + try: + opts, args = getopt.getopt(sys.argv[1:], 'btTph', + ['bump', 'tag', 'TAG', 'package', 'help']) + except getopt.error, msg: + usage(1, msg) + + # required minor rev number + if len(args) <> 1: + usage(1, 'tagname argument is required') + + tagname = args[0] + + # We need a $CVSROOT + if not os.environ.get('CVSROOT'): + try: + fp = open('CVS/Root') + os.environ['CVSROOT'] = fp.read().strip() + fp.close() + except IOError, e: + if e.errno <> errno.ENOENT: raise + usage(1, 'CVSROOT is not set and could not be guessed') + print 'Using CVSROOT:', os.environ['CVSROOT'] + + # default options + tag = 0 + retag = 0 + package = 0 + bump = 0 + + for opt, arg in opts: + if opt in ('-h', '--help'): + usage(0) + elif opt in ('-t', '--tag'): + tag = 1 + elif opt in ('-T', '--TAG'): + tag = 1 + retag = 1 + elif opt in ('-p', '--package'): + package = 1 + elif opt in ('-b', '--bump'): + bump = 1 + + # very important!!! + omask = os.umask(0) + try: + if tag: + tag_release(tagname, retag) + + if package: + make_pkg(tagname) + + if bump: + do_bump(tagname) + finally: + os.umask(omask) + + + +if __name__ == '__main__': + main() diff --git a/admin/bin/faq2ht.py b/admin/bin/faq2ht.py new file mode 100755 index 00000000..29db9ea7 --- /dev/null +++ b/admin/bin/faq2ht.py @@ -0,0 +1,102 @@ +#! /usr/bin/env python + +"""Convert the plain text FAQ file to its .ht template. +""" + +import sys +import os +import re + + + +def main(): + faqfile = sys.argv[1] + fp = open(faqfile) + lines = fp.readlines() + fp.close() + + outfile = sys.argv[2] + if outfile == '-': + closep = 0 + out = sys.stdout + else: + closep = 1 + out = open(outfile, 'w') + + # skip over cruft in FAQ file + lineno = 0 + while not lines[lineno].startswith('FREQUENTLY'): + lineno += 1 + lineno += 1 + + # skip blanks + while not lines[lineno].strip(): + lineno += 1 + + # first print out standard .ht boilerplate + print >> out, '''\ +Title: Mailman Frequently Asked Questions + +See also the Mailman +FAQ Wizard for more information. + +

Mailman Frequently Asked Questions

+''' + first = 1 + question = [] + answer = [] + faq = [] + while 1: + line = lines[lineno][:-1] + + if line.startswith('Q.'): + inquestion = 1 + if not first: + faq.append((question, answer)) + question = [] + answer = [] + else: + first = 0 + elif line.startswith('A.'): + inquestion = 0 + elif line.startswith('\f'): + break + + if inquestion: + question.append(line) + else: + # watch for lists + if line.lstrip().startswith('*'): + answer.append('
  • ') + line = line.replace('*', '', 1) + # substitute <...> + line = re.sub(r'<(?P[^>]+)>', + '\g', + line) + # make links active + line = re.sub(r'(?Phttp://\S+)', + '\g', + line) + answer.append(line) + + lineno += 1 + faq.append((question, answer)) + + for question, answer in faq: + print >> out, '', + for line in question: + print >> out, line + print >> out, '
    ', + for line in answer: + if not line: + print >> out, '

    ', + else: + print >> out, line + + if closep: + out.close() + + + +if __name__ == '__main__': + main() diff --git a/admin/bin/mm2do b/admin/bin/mm2do new file mode 100755 index 00000000..661a25f4 --- /dev/null +++ b/admin/bin/mm2do @@ -0,0 +1,76 @@ +#! /usr/bin/env python +# +# Copyright (C) 1998,1999,2000,2001,2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +"""Generate the todo.ht file from the plain-text TODO file.""" + +import sys + +infp = open(sys.argv[1]) +outfp = open(sys.argv[2], 'w') + +SPACE = ' ' + +print >> outfp, 'Title: The Mailman Wishlist\n' + +def dumpsection(header, items, hasitems): + # We're looking at a header + if header: + # output the previous section + print >> outfp, '

    ', header, '

    ' + if hasitems: + print >> outfp, '
      ' + for item in items: + if item: + print >> outfp, '
    • ', SPACE.join(item) + print >> outfp, '
    ' + else: + for item in items: + print >> outfp, SPACE.join(item), '

    ' + + + +header = '' +items = [['']] +hasitems = False +inpreamble = True +while True: + line = infp.readline() + if not line or line[0] == '\f': + break + # Skip the legalese preamble + if inpreamble: + if line.strip(): + continue + else: + inpreamble = False + if not line[0].isspace(): + dumpsection(header, items, hasitems) + header = line + items = [[]] + continue + # find out what the first non-ws character on the line is + line = line.lstrip() + if line and line[0] == '-': + items.append([line[2:-1]]) + hasitems = True + else: + if not line: + continue + items[-1].append(line) + +dumpsection(header, items, hasitems) diff --git a/admin/www/MMGenerator.py b/admin/www/MMGenerator.py new file mode 100644 index 00000000..df632984 --- /dev/null +++ b/admin/www/MMGenerator.py @@ -0,0 +1,110 @@ +"""Generator for the Mailman on-line documentation. + +Requires ht2html.py, available from http://ht2html.sourceforge.net +""" + +import os +import time + +from Skeleton import Skeleton +from Sidebar import Sidebar, BLANKCELL +from Banner import Banner +from HTParser import HTParser +from LinkFixer import LinkFixer + + + +sitelinks = [ + # Row 1 + ('%(rootdir)s/index.html', 'Home'), + ('%(rootdir)s/docs.html', 'Documentation'), + ('%(rootdir)s/lists.html', 'Mailing lists'), + ('%(rootdir)s/help.html', 'Help'), + ('%(rootdir)s/download.html', 'Download'), + ('%(rootdir)s/devs.html', 'Developers'), + ] + + + +class MMGenerator(Skeleton, Sidebar, Banner): + def __init__(self, file, rootdir, relthis): + self.__body = None + root, ext = os.path.splitext(file) + html = root + '.html' + p = self.__parser = HTParser(file, 'mailman-users@python.org') + f = self.__linkfixer = LinkFixer(html, rootdir, relthis) + p.process_sidebar() + p.sidebar.append(BLANKCELL) + # massage our links + self.__d = {'rootdir': rootdir} + self.__linkfixer.massage(p.sidebar, self.__d) + # tweak + p.sidebar.append((None, + ''' SourceForge Logo''' + % self.__d)) + p.sidebar.append(BLANKCELL) + thisyear = time.localtime()[0] + copyright = self.__parser.get('copyright', '1998-%s' % thisyear) + p.sidebar.append((None, '© ' + copyright + """ +Free Software Foundation, Inc. Verbatim copying and distribution of this +entire article is permitted in any medium, provided this notice is preserved. +""")) + Sidebar.__init__(self, p.sidebar) + # + # fix up our site links, no relthis because the site links are + # relative to the root of my web pages + # + sitelink_fixer = LinkFixer(f.myurl(), rootdir) + sitelink_fixer.massage(sitelinks, self.__d, aboves=1) + Banner.__init__(self, sitelinks, cols=3) + # kludge! +## for i in range(len(p.sidebar)-1, -1, -1): +## if p.sidebar[i] == 'Email Us': +## p.sidebar[i] = 'Email me' +## break + + def get_corner(self): + rootdir = self.__linkfixer.rootdir() + return ''' +

    + +
    ''' \ + % self.__d + + def get_corner_bgcolor(self): + return 'white' + + def get_banner(self): + return Banner.get_banner(self) + + def get_title(self): + return self.__parser.get('title') + + def get_sidebar(self): + return Sidebar.get_sidebar(self) + + def get_banner_attributes(self): + return 'CELLSPACING=0 CELLPADDING=0' + + def get_body(self): + if self.__body is None: + self.__body = self.__parser.fp.read() + return self.__body + + def get_lightshade(self): + """Return lightest of 3 color scheme shade.""" + # The Mailman logo's foreground is approximately #da7074 + #return '#99997c' + #return '#a39c82' + #return '#caa08f' + return '#eecfa1' + + def get_darkshade(self): + """Return darkest of 3 color scheme shade.""" + #return '#545454' + return '#36648b' diff --git a/admin/www/Makefile b/admin/www/Makefile new file mode 100644 index 00000000..23e5eeff --- /dev/null +++ b/admin/www/Makefile @@ -0,0 +1,28 @@ +HT2HTML = $(HOME)/projects/ht2html/ht2html.py + +HTSTYLE = MMGenerator +HTALLFLAGS = -f -s $(HTSTYLE) +HTROOT = . +HTFLAGS = $(HTALLFLAGS) -r $(HTROOT) +HTRELDIR = . + +SOURCES = $(shell echo *.ht) +EXTRA_TARGETS = faq.html todo.html +TARGETS = $(filter-out *.html,$(SOURCES:%.ht=%.html)) $(EXTRA_TARGETS) +GENERATED_HTML= $(SOURCES:.ht=.html) + +.SUFFIXES: .ht .html +.ht.html: + $(HT2HTML) $(HTFLAGS) $(HTRELDIR)/$< + +all: $(TARGETS) + +faq.ht: ../../FAQ + ../bin/faq2ht.py $< $@ + +todo.ht: ../../TODO + ../bin/mm2do $< $@ + +clean: + -rm $(GENERATED_HTML) + -rm faq.ht todo.ht diff --git a/admin/www/admins.ht b/admin/www/admins.ht new file mode 100644 index 00000000..b227a8c2 --- /dev/null +++ b/admin/www/admins.ht @@ -0,0 +1,8 @@ +Title: List Manager Documentation +Links: doco-links.h + +

    List Manager Documentation

    + +

    Chris Kolar has made +available list +manager documentation for Mailman. diff --git a/admin/www/admins.html b/admin/www/admins.html new file mode 100644 index 00000000..520ea223 --- /dev/null +++ b/admin/www/admins.html @@ -0,0 +1,134 @@ + + + + + + + + + +List Manager Documentation + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    List Manager Documentation

    + +

    Chris Kolar has made +available list +manager documentation for Mailman. + +

    + diff --git a/admin/www/bugs.ht b/admin/www/bugs.ht new file mode 100644 index 00000000..b39ecd5d --- /dev/null +++ b/admin/www/bugs.ht @@ -0,0 +1,25 @@ +Title: Bugs and Patches +Other-links: +

    Exits

    +
  • Bug Tracker +
  • Patch Manager +
  • Mailman Project + +

    Bugs and Patches

    + +

    Mailman is being developed on +SourceForge. Please use the SourceForge bug tracker to +report any bugs.. If you have patches you'd like to submit, the best +place to do that is on the SourceForge patch manager. + +

    Be sure to select the right group for your bug or patch, +e.g. Mailman 2.1. Failing to do so may cause your submission +to get overlooked. It is also recommended that you email a note about +your submission to the +mailman-developers mailing list, but don't rely on just the email +to get the attention of the Mailman developers. + diff --git a/admin/www/bugs.html b/admin/www/bugs.html new file mode 100644 index 00000000..8c174924 --- /dev/null +++ b/admin/www/bugs.html @@ -0,0 +1,166 @@ + + + + + + + + + +Bugs and Patches + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Bugs and Patches

    + +

    Mailman is being developed on +SourceForge. Please use the SourceForge bug tracker to +report any bugs.. If you have patches you'd like to submit, the best +place to do that is on the SourceForge patch manager. + +

    Be sure to select the right group for your bug or patch, +e.g. Mailman 2.1. Failing to do so may cause your submission +to get overlooked. It is also recommended that you email a note about +your submission to the +mailman-developers mailing list, but don't rely on just the email +to get the attention of the Mailman developers. + + +

    + diff --git a/admin/www/devs.ht b/admin/www/devs.ht new file mode 100644 index 00000000..937a6af9 --- /dev/null +++ b/admin/www/devs.ht @@ -0,0 +1,93 @@ +Title: Mailman Developer Resources +Links: +Other-links: +

    Developer Exits

    +
  • SourceForge Project Page +
  • Mailman Wiki +
  • Mailman 3.0 Wiki +
  • mailman-developers list +
  • ZMailman + +

    Developer Resources

    + +If you're the kind of person who loves to get elbow deep in code, +there are lots of opportunities to dig into Mailman. You may want to +find a project on our Mailman +TODO list or on the +Mailman +design notes wiki. Because Wikis are intended to be +collaborative, you're free to contribute to this page in true Wiki +fashion. You will also definitely want to subscribe +to the mailman-developers mailing list. + +

    SourceForge Project Page

    + +Developers should start with the +Mailman project at +SourceForge. All patches and bugs should be submitted here so +they won't get lost, although it is also requested that you inform the +mailman-developers list about your submissions. + +

    IRC

    + +Some of the Mailman developers also occasionally hang out on the +mailman IRC channel at openprojects.net, though attendance +has been spotty lately. + + + +

    Future plans

    + +Now that Mailman 2.1 has been released, I want to start thinking about +what will be in Mailman +3.0. I intend to use the wiki for most design artifacts, and the +mailman-developers mailing list for most discussions. The items that +are high on my list (which is by no means complete or definitive) +include: + + + +Stephan Richter has let an effort called +ZMailman for integrating Zope and Mailman. I consider this a +proof of concept of some of the ideas outlined above. diff --git a/admin/www/devs.html b/admin/www/devs.html new file mode 100644 index 00000000..41d1eb3f --- /dev/null +++ b/admin/www/devs.html @@ -0,0 +1,212 @@ + + + + + + + + + +Mailman Developer Resources + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Developer Resources

    + +If you're the kind of person who loves to get elbow deep in code, +there are lots of opportunities to dig into Mailman. You may want to +find a project on our Mailman +TODO list or on the +Mailman +design notes wiki. Because Wikis are intended to be +collaborative, you're free to contribute to this page in true Wiki +fashion. You will also definitely want to subscribe +to the mailman-developers mailing list. + +

    SourceForge Project Page

    + +Developers should start with the +Mailman project at +SourceForge. All patches and bugs should be submitted here so +they won't get lost, although it is also requested that you inform the +mailman-developers list about your submissions. + +

    IRC

    + +Some of the Mailman developers also occasionally hang out on the +mailman IRC channel at openprojects.net, though attendance +has been spotty lately. + + + +

    Future plans

    + +Now that Mailman 2.1 has been released, I want to start thinking about +what will be in Mailman +3.0. I intend to use the wiki for most design artifacts, and the +mailman-developers mailing list for most discussions. The items that +are high on my list (which is by no means complete or definitive) +include: + +
      +
    • Consolidated user database -- A user should have just one +account for every mailing list they are members of at a site, and they +should be able to manage all their options through this account. +It should be possible to integrate these databases with a site's +existing user management system to reduce duplication of data and +effort. + +

    • Unified template system -- Mailman has a somewhat fractured +and inconvenient templating system, using both a homegrown HTML object +model in Python and coarse templates filled in with data at rendering +time. It can be near impossible to change the look and feel of the +administration pages, and a small change to the u/i of other pages +requires updates in all supported languages. I want to use a +templating system like +ZPT or +Quixote. +Actually, I plan to generalize the web interface so that many different +templating systems could be used, although we'll pick one to ship by +default. + +

    • A Real Database -- Mailman uses an inefficient persistency +system based on Python pickles, and every mailing list has its own +pickled state. This has several disadvantages, including poor +scalability, difficulty in doing cross-mailing list operations, and +the virtual host limitation on list names. Mailman 3.0 will use a +real database, perhaps based on +ZODB or +BerkeleyDB. Again, the goal is +to generalize the interface to the backend database so that others can +be used, but choose one and ship it by default. + +

    • Component Architecture -- Zope3's +component architecture provides some very nice organizational +tools and software development methodologies. We'll be adopting many +of these for Mailman 3.0, which will allow us to do the kinds of +templating and database generalization described above. +
    + +Stephan Richter has let an effort called +ZMailman for integrating Zope and Mailman. I consider this a +proof of concept of some of the ideas outlined above. + +
    + diff --git a/admin/www/doco-links.h b/admin/www/doco-links.h new file mode 100644 index 00000000..29ac84ba --- /dev/null +++ b/admin/www/doco-links.h @@ -0,0 +1,7 @@ + +

    Documentation

    +
  • Overview +
  • Users +
  • List Managers +
  • Site Administrators +
  • Translators diff --git a/admin/www/docs.ht b/admin/www/docs.ht new file mode 100644 index 00000000..6372be36 --- /dev/null +++ b/admin/www/docs.ht @@ -0,0 +1,66 @@ +Title: Mailman Documentation +Links: doco-links.h +Other-links: +

    Exits

    +
  • FAQ Wizard +
  • Chris Kolar's Docs +
  • Exim HOWTO + +

    Mailman Documentation

    + +On-line documentation for Mailman 2.1 is still under construction, but +is organized among the following audiences: + + + +

    Other Resources

    + +

    The Frequently Asked Questions (FAQ) is +available to answer the most common questions. See also the community +driven Mailman +FAQ Wizard. Feel free to add or correct entries in the FAQ Wizard +-- this is your resource for helping your colleagues. The password is +Mailman (yes, we use the honor system here). + +

    For issues not covered in the FAQ, please post your questions to +the Mailman-Users mailing list. + +

    Chris Kolar has made +available Mailman +documentation, primarily for list owners who are not necessarily +technical, but who own Mailman mailing lists. + +

    Nigel Metheringham has posted a +HOWTO on using Exim +and Mailman together. If you're using the +Exim mailer you should check this out. + +

    The Mailman source distribution itself +contains many README files for discussion of issues specific to +operating system, mail transport agent, or web server. diff --git a/admin/www/docs.html b/admin/www/docs.html new file mode 100644 index 00000000..35f1ffc7 --- /dev/null +++ b/admin/www/docs.html @@ -0,0 +1,200 @@ + + + + + + + + + +Mailman Documentation + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Mailman Documentation

    + +On-line documentation for Mailman 2.1 is still under construction, but +is organized among the following audiences: + +
      +
    • Users -- anybody who is a member + of a mailing list managed by Mailman. This documentation explains + how you can subscribe and unsubscribe from mailing lists, how to + change your personal options, and how to interact with other parts + of the Mailman system. + +

    • List Managers -- anybody who + is a list administrator or moderator for a mailing list. This + documentation goes into all the gory details about how to set up + your lists, what the various options mean and control, and how to + manage the membership of your mailing list. + +

    • Site Administrators -- anybody + who is setting up a Mailman site. This documentation contains all + the information about installing Mailman, integrating it with your + mail and web servers, setting list defaults, configuring virtual + domains, and enabling various options for your list + administrators. This documentation also gives some hints on how + to tune Mailman for optimal performance. + +

    • Translators -- anybody who is + contributing to internationalization support for Mailman. This + describes contact addresses for the current language champions and + tells you what you need to do if you want to contribute a new + language translation to the project (more are always welcome!). +
    + +

    Other Resources

    + +

    The Frequently Asked Questions (FAQ) is +available to answer the most common questions. See also the community +driven Mailman +FAQ Wizard. Feel free to add or correct entries in the FAQ Wizard +-- this is your resource for helping your colleagues. The password is +Mailman (yes, we use the honor system here). + +

    For issues not covered in the FAQ, please post your questions to +the Mailman-Users mailing list. + +

    Chris Kolar has made +available Mailman +documentation, primarily for list owners who are not necessarily +technical, but who own Mailman mailing lists. + +

    Nigel Metheringham has posted a +HOWTO on using Exim +and Mailman together. If you're using the +Exim mailer you should check this out. + +

    The Mailman source distribution itself +contains many README files for discussion of issues specific to +operating system, mail transport agent, or web server. + +

    + diff --git a/admin/www/download-links.h b/admin/www/download-links.h new file mode 100644 index 00000000..635a577c --- /dev/null +++ b/admin/www/download-links.h @@ -0,0 +1,6 @@ + +

    Downloading

    +
  • Downloading +
  • Latest Version +
  • Requirements +
  • Installing diff --git a/admin/www/download.ht b/admin/www/download.ht new file mode 100644 index 00000000..617b15b8 --- /dev/null +++ b/admin/www/download.ht @@ -0,0 +1,38 @@ +Title: Downloading Mailman +Links: download-links.h + +

    Downloading

    + +Mailman is available from the following sources: + + + +If you're using a command line FTP client, be sure to set the mode +to binary. Once you've downloaded the source tarball, you can +unpack it with the following commands: + +
    +
    +% cd /usr/local/src
    +% tar zxf mailman.tar.gz
    +
    +
    + +Note that the file name may have the version number in it, +e.g. mailman-2.1.tar.gz. + +

    Mailman's tarball unpacks into a directory called +mailman-xyz where xyz is the version number. +Note also that some versions of tar don't accept the +z option. In that case, you'll need to use the +gunzip program like so: + +

    +
    +% gunzip -c mailman.tar.gz | tar xf -
    +
    +
    diff --git a/admin/www/download.html b/admin/www/download.html new file mode 100644 index 00000000..3ca2be31 --- /dev/null +++ b/admin/www/download.html @@ -0,0 +1,161 @@ + + + + + + + + + +Downloading Mailman + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Downloading

    + +Mailman is available from the following sources: + + + +If you're using a command line FTP client, be sure to set the mode +to binary. Once you've downloaded the source tarball, you can +unpack it with the following commands: + +
    +
    +% cd /usr/local/src
    +% tar zxf mailman.tar.gz
    +
    +
    + +Note that the file name may have the version number in it, +e.g. mailman-2.1.tar.gz. + +

    Mailman's tarball unpacks into a directory called +mailman-xyz where xyz is the version number. +Note also that some versions of tar don't accept the +z option. In that case, you'll need to use the +gunzip program like so: + +

    +
    +% gunzip -c mailman.tar.gz | tar xf -
    +
    +
    + +
    + diff --git a/admin/www/faq.ht b/admin/www/faq.ht new file mode 100644 index 00000000..2fd281d2 --- /dev/null +++ b/admin/www/faq.ht @@ -0,0 +1,301 @@ +Title: Mailman Frequently Asked Questions + +See also the Mailman +FAQ Wizard for more information. + +

    Mailman 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. See + README.EXIM 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 variables in the mm_cfg.py + file: +

    VERP_PASSWORD_REMINDERS = 1 + VERP_PERSONALIZED_DELIVERIES = 1 + VERP_DELIVERY_INTERVAL = 1 + VERP_CONFIRMATIONS = 1 +

    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 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. See README.QMAIL + for more information. +

    Q. Still having problems? Running on GNU/Linux? + +
    A. See the README.LINUX file. +

    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 wizard entry: + http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp +

    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@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@dom.ain + oldname-request: newname-request@dom.ain + oldname-admin: newname-admin@dom.ain + oldname-owner: newname-owner@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. :) +

    \ No newline at end of file diff --git a/admin/www/faq.html b/admin/www/faq.html new file mode 100644 index 00000000..60c0ec7e --- /dev/null +++ b/admin/www/faq.html @@ -0,0 +1,433 @@ + + + + + + + + + +Mailman Frequently Asked Questions + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +See also the Mailman +FAQ Wizard for more information. + +

    Mailman 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. See + README.EXIM 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 variables in the mm_cfg.py + file: +

    VERP_PASSWORD_REMINDERS = 1 + VERP_PERSONALIZED_DELIVERIES = 1 + VERP_DELIVERY_INTERVAL = 1 + VERP_CONFIRMATIONS = 1 +

    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 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. See README.QMAIL + for more information. +

    Q. Still having problems? Running on GNU/Linux? + +
    A. See the README.LINUX file. +

    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 wizard entry: + http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.006.htp +

    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@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@dom.ain + oldname-request: newname-request@dom.ain + oldname-admin: newname-admin@dom.ain + oldname-owner: newname-owner@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. :) +

    +

  • + diff --git a/admin/www/features.ht b/admin/www/features.ht new file mode 100644 index 00000000..dca77bf9 --- /dev/null +++ b/admin/www/features.ht @@ -0,0 +1,80 @@ +Title: Mailman Features +Other-links: +

    Exits

    +
  • MHonArc + +

    Mailman Features

    + +Here's a brief description of the new features in Mailman 2.1 +The NEWS file contains a detailed summary of all new features. + + + +Here is a short summary of other features in Mailman. For details, +please see the on-line documentation. + + diff --git a/admin/www/features.html b/admin/www/features.html new file mode 100644 index 00000000..878be8de --- /dev/null +++ b/admin/www/features.html @@ -0,0 +1,217 @@ + + + + + + + + + +Mailman Features + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Mailman Features

    + +Here's a brief description of the new features in Mailman 2.1 +The NEWS file contains a detailed summary of all new features. + +
      +
    • Through-the-web list creation and removal (with automatic + support depending on the MTA) +
    • Multi-lingual support: list web pages and email notices can be in + any of nearly two dozen supported language, configurable + per-site, per-list, and per-user +
    • "Real name" support for members +
    • Much better password-less operation for simple user tasks. +
    • Support for personalized deliveries and + VERP-like message + delivery for foolproof bounce detection +
    • Emergency moderation +
    • MIME-based content filtering, with demime/stripmime like options +
    • Regular expression based topic filtering +
    • Better membership management, including searching +
    • Re-organized administrative requests pages +
    • Moderated newsgroup support +
    • A new architecture for the mail delivery subsystem, removing + the dependence on cron, for better responsiveness and + scalability +
    • New moderation and privacy controls +
    • Invitations +
    • Autoresponse governors +
    • Users can now change some of their delivery options globally, + for all lists at a site, including their password, delivery + status, real name, etc. +
    • Much better MIME and I18n support in the archiver +
    • A separate "list moderator" role has been added +
    • Urgent: header support (bypasses digests to reach all users + immediately). +
    + +Here is a short summary of other features in Mailman. For details, +please see the on-line documentation. + +
      +
    • Web based list administration for nearly all tasks, including list + configuration, moderation (post approvals), management of user + accounts. +
    • Web based subscribing and unsubscribing, and user configuration + management. Users can temporarily disable their accounts, select + digest modes, hide their email addresses from other members, etc. +
    • A customizable home page for each mailing list. +
    • Per-list privacy features, such as closed-subscriptions, private + archives, private membership rosters, and sender-based posting + rules. +
    • Configurable (per-list and per-user) delivery mode +
      • Regular (immediate) delivery +
      • MIME digest +
      • Plain (RFC + 1153) digests +
      +
    • Integrated bounce detection within an extensible framework. + Automatic disposition of bouncing addresses (disable, + unsubscribe). +
    • Integrated spam filters +
    • Built-in web-based archiving, with hooks for external archivers such as + MHonArc. +
    • Integrated Usenet gatewaying. +
    • Integrated auto-replies. +
    • Majordomo-style email based commands. +
    • Multiple list owners and moderators are possible. +
    • Support for virtual domains. +
    • Runs on GNU/Linux and most Un*x-like systems, compatible with most + web servers and browsers, and most SMTP servers. Requires Python + 2.1.3 or newer. +
    • An extensible mail delivery pipeline. +
    • High-performance mail delivery, with a scalable architecture. +
    + +
    + diff --git a/admin/www/help.ht b/admin/www/help.ht new file mode 100644 index 00000000..fa6fe4bd --- /dev/null +++ b/admin/www/help.ht @@ -0,0 +1,24 @@ +Title: Mailman Help +Other-links: +

    Help

    +
  • FAQ +
  • FAQ + Wizard (Exit) +
  • Mailing lists + +

    Help

    + +There are many resources available for those who need help with +Mailman, beyond the on-line documentation. If +you are having problems installing or configuring Mailman, or if you +have questions about what Mailman can do, you should probably start +with the FAQ, and the community driven +FAQ Wizard. + +

    Beyond that, please use the discussion +lists for asking questions. There are lots of very helpful and +knowledgeable people on the lists who can help. Probably the most +helpful will be the Listowners +mailing list and the +mailman-users mailing lists. diff --git a/admin/www/help.html b/admin/www/help.html new file mode 100644 index 00000000..e70186b2 --- /dev/null +++ b/admin/www/help.html @@ -0,0 +1,165 @@ + + + + + + + + + +Mailman Help + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Help

    + +There are many resources available for those who need help with +Mailman, beyond the on-line documentation. If +you are having problems installing or configuring Mailman, or if you +have questions about what Mailman can do, you should probably start +with the FAQ, and the community driven +FAQ Wizard. + +

    Beyond that, please use the discussion +lists for asking questions. There are lots of very helpful and +knowledgeable people on the lists who can help. Probably the most +helpful will be the Listowners +mailing list and the +mailman-users mailing lists. + +

    + diff --git a/admin/www/i18n.ht b/admin/www/i18n.ht new file mode 100644 index 00000000..b40d3393 --- /dev/null +++ b/admin/www/i18n.ht @@ -0,0 +1,167 @@ +Title: Internationalization +Links: doco-links.h + +

    Internationalization

    + +Mailman 2.1 is fully internationalized. This means you can add +translations of all the email and web templates so that your users can +interact with your mailing lists in their native language. +Internationalization is handled as follows: + + + +It must be noted that Mailman never actually translates the messages +that flow through its mailing lists. It's up to the list members to +adhere to their community's language conventions. + +

    Mailman Language Champions

    + +Each language translation has a champion who coordinates updates and +submits them to the Mailman project. If the language you are +interested is listed here, please contact the champion for details. +If your language is not listed here, or if you have general questions +about I18N Mailman, please contact the +mailman-i18n@python.org mailing list. + +

    We are investigating using the +Translation +Project for future language support. + +

    +

    Catalan
    +
    Jordi Mallach is heading + up the Catalan translation effort. + +

    Chinese Simplified (GB), and Big5
    +
    Max Yu heads up + the Simplified Chinese translation effort. Michael Fang + contributed a Big5 mailman.po file, but I've had some trouble + converting it to a .mo file with msgfmt. Assistance would be + greatly appreciated! + +

    Czech
    +
    Dan Ohnesorg heads up + the Czech translation effort, which has been assisted by + V. Stanovsky.
    + +

    Dutch
    +
    Danny Terweij and + Sander Steffann head up + the Dutch translation. + +

    Estonian
    +
    Anti Veeranna heads up the + Estonian translation effort. + +

    Finnish
    +
    Pekka Haavisto + heads up the Finnish translation effort. + +

    French
    +
    Pascal GEORGE and + Ousmane Wilane head up the + French translation effort, with a mailing list hosted by + Fil at + http://listes.rezo.net/mailman/listinfo/mailman-fr. + +

    German
    +
    Peer Heinlein is + now the German translation champion. + +

    Hungarian
    +
    Vizi Szilard + heads up the Hungarian translation effort, with + some help from Szabolcs Szigeti and + Gabor Funk. + +

    Italian
    +
    Simone Piunno is + heading up the Italian translations, with help from many others. + Simone has created an Italian mailing list for those wishing to + help: http://mailman.ferrara.linux.it/listinfo/mailman-it/ + +

    Japanese
    +
    Tokio Kikuchi maintains the + Japanized Mailman Page + and also runs a mailing list for Japanese Mailman users, for which + the archives + are publically available. + +

    Korean
    +
    song@yaimma.co.kr has + volunteered to head up the Korean translation effort.
    + +

    Lithuanian
    +
    Mantas Kriauciunas has + contributed a Lithuanian translation. + +

    Norwegian
    +
    Daniel Buchmann + heads up the Norwegian translation effort. See also his + Norwegian Mailman Page. +
    + +

    Polish
    +
    Contrary to what you might think knowing my last name, I don't + know a word of Polish. :) Fortunately, + Pawel + Kolodziejczyk, Marcin + Sochacki, and + Marcin Zaborowski + have volunteered to spearhead the Polish + translations. + +

    Portuguese
    +
    The following folks are working on the Portuguese + translations: + + They are working on both the Brazilian (pt_BR) and Portuguese (pt_PT) + translations. + +

    Russian
    +
    Mikhail Sobolev + has volunteered to head up the Russian translation effort. There + is also a Russian + Mailman list for discussion of the Russian translation. + +

    Spanish
    +
    Juan Carlos Rey Anaya heads + up the Spanish translations. + +

    Swedish
    +
    Eva Österlind + heads up the Swedish translation effort, with help from our + Norwegian champion + Daniel Buchmann. + +
    + diff --git a/admin/www/i18n.html b/admin/www/i18n.html new file mode 100644 index 00000000..55249df5 --- /dev/null +++ b/admin/www/i18n.html @@ -0,0 +1,293 @@ + + + + + + + + + +Internationalization + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Internationalization

    + +Mailman 2.1 is fully internationalized. This means you can add +translations of all the email and web templates so that your users can +interact with your mailing lists in their native language. +Internationalization is handled as follows: + +
      +
    • Each Mailman installation has a server default language. + Mailman ships with US English as the server default. + +

    • Mailman comes with many supported languages, and if your + language is on that list, it will just work. + +

    • Individual list owners can choose which languages they'd + like their mailing list to support from the suite of site-enabled + languages. The list owner can also select the list's default + language. Mailing lists can thus be monolingual (with English or + any other installed language as the default), or they can be + multilingual. + +

    • Individual users can choose what their preferred language + is, from the set of list-enabled languages. Thus, if a list is + multilingual, the user can choose which language they'd prefer + when interacting with Mailman. +
    + +It must be noted that Mailman never actually translates the messages +that flow through its mailing lists. It's up to the list members to +adhere to their community's language conventions. + +

    Mailman Language Champions

    + +Each language translation has a champion who coordinates updates and +submits them to the Mailman project. If the language you are +interested is listed here, please contact the champion for details. +If your language is not listed here, or if you have general questions +about I18N Mailman, please contact the +mailman-i18n@python.org mailing list. + +

    We are investigating using the +Translation +Project for future language support. + +

    +

    Catalan
    +
    Jordi Mallach is heading + up the Catalan translation effort. + +

    Chinese Simplified (GB), and Big5
    +
    Max Yu heads up + the Simplified Chinese translation effort. Michael Fang + contributed a Big5 mailman.po file, but I've had some trouble + converting it to a .mo file with msgfmt. Assistance would be + greatly appreciated! + +

    Czech
    +
    Dan Ohnesorg heads up + the Czech translation effort, which has been assisted by + V. Stanovsky.
    + +

    Dutch
    +
    Danny Terweij and + Sander Steffann head up + the Dutch translation. + +

    Estonian
    +
    Anti Veeranna heads up the + Estonian translation effort. + +

    Finnish
    +
    Pekka Haavisto + heads up the Finnish translation effort. + +

    French
    +
    Pascal GEORGE and + Ousmane Wilane head up the + French translation effort, with a mailing list hosted by + Fil at + http://listes.rezo.net/mailman/listinfo/mailman-fr. + +

    German
    +
    Peer Heinlein is + now the German translation champion. + +

    Hungarian
    +
    Vizi Szilard + heads up the Hungarian translation effort, with + some help from Szabolcs Szigeti and + Gabor Funk. + +

    Italian
    +
    Simone Piunno is + heading up the Italian translations, with help from many others. + Simone has created an Italian mailing list for those wishing to + help: http://mailman.ferrara.linux.it/listinfo/mailman-it/ + +

    Japanese
    +
    Tokio Kikuchi maintains the + Japanized Mailman Page + and also runs a mailing list for Japanese Mailman users, for which + the archives + are publically available. + +

    Korean
    +
    song@yaimma.co.kr has + volunteered to head up the Korean translation effort.
    + +

    Lithuanian
    +
    Mantas Kriauciunas has + contributed a Lithuanian translation. + +

    Norwegian
    +
    Daniel Buchmann + heads up the Norwegian translation effort. See also his + Norwegian Mailman Page. +
    + +

    Polish
    +
    Contrary to what you might think knowing my last name, I don't + know a word of Polish. :) Fortunately, + Pawel + Kolodziejczyk, Marcin + Sochacki, and + Marcin Zaborowski + have volunteered to spearhead the Polish + translations. + +

    Portuguese
    +
    The following folks are working on the Portuguese + translations: + + They are working on both the Brazilian (pt_BR) and Portuguese (pt_PT) + translations. + +

    Russian
    +
    Mikhail Sobolev + has volunteered to head up the Russian translation effort. There + is also a Russian + Mailman list for discussion of the Russian translation. + +

    Spanish
    +
    Juan Carlos Rey Anaya heads + up the Spanish translations. + +

    Swedish
    +
    Eva Österlind + heads up the Swedish translation effort, with help from our + Norwegian champion + Daniel Buchmann. + +
    + + +
    + diff --git a/admin/www/images/PythonPoweredSmall.png b/admin/www/images/PythonPoweredSmall.png new file mode 100644 index 00000000..081f72e8 Binary files /dev/null and b/admin/www/images/PythonPoweredSmall.png differ diff --git a/admin/www/images/dragonlogo.jpg b/admin/www/images/dragonlogo.jpg new file mode 100644 index 00000000..e184f3c6 Binary files /dev/null and b/admin/www/images/dragonlogo.jpg differ diff --git a/admin/www/images/logo-70.jpg b/admin/www/images/logo-70.jpg new file mode 100644 index 00000000..20e19389 Binary files /dev/null and b/admin/www/images/logo-70.jpg differ diff --git a/admin/www/images/logo-lg.jpg b/admin/www/images/logo-lg.jpg new file mode 100644 index 00000000..e184f3c6 Binary files /dev/null and b/admin/www/images/logo-lg.jpg differ diff --git a/admin/www/images/logo-sm.jpg b/admin/www/images/logo-sm.jpg new file mode 100644 index 00000000..94a4c011 Binary files /dev/null and b/admin/www/images/logo-sm.jpg differ diff --git a/admin/www/images/mailman.jpg b/admin/www/images/mailman.jpg new file mode 100644 index 00000000..83c3e8f2 Binary files /dev/null and b/admin/www/images/mailman.jpg differ diff --git a/admin/www/index.ht b/admin/www/index.ht new file mode 100644 index 00000000..4b97f45d --- /dev/null +++ b/admin/www/index.ht @@ -0,0 +1,59 @@ +Title: Mailman, the GNU Mailing List Manager +Other-links: +

    Exits

    +
  • SF Project Page +
  • Discussion Lists +
  • Python +
  • GNU +
  • Barry Warsaw + + +

    Mailman, the GNU Mailing List Manager

    + +Mailman is free software for managing electronic mail discussion and +e-newsletter lists. Mailman is integrated with the web, making it +easy for users to manage their accounts and for list owners to +administer their lists. Mailman supports built-in archiving, +automatic bounce processing, content filtering, digest delivery, spam +filters, and more. See the features page +for details. + +

    Mailman is free software, distributed under the +GNU General Public +License. Mailman is written in the +Python +programming language, with a little bit of C code for security. + +

    The name of this software is spelled Mailman +with a capital leading M and a lowercase second m. +It is incorrect to spell it "MailMan" (i.e. you should not use +StudlyCaps). + + +

    Current Version

    + +

    Version +2.1, +(released on +30-Dec-2002) +is the current released version of Mailman, in production at many +sites. + +

    Acknowledgements

    + +

    Mailman's lead developer is +Barry Warsaw who can be contacted +at barry@python.org. + +

    Thanks go to +Control.com for their +sponsorship of new Mailman 2.1 features such as the topic filters, +external membership sources, and "virtual" mailing lists. Also, a +huge thanks goes out to my employer Zope +Corporation for their support, as well as the +list of contributors, bug hunters, big idea people, and others +who have helped immensely with Mailman's development. diff --git a/admin/www/index.html b/admin/www/index.html new file mode 100644 index 00000000..903e9e49 --- /dev/null +++ b/admin/www/index.html @@ -0,0 +1,204 @@ + + + + + + + + + +Mailman, the GNU Mailing List Manager + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    + +

    Mailman, the GNU Mailing List Manager

    + +Mailman is free software for managing electronic mail discussion and +e-newsletter lists. Mailman is integrated with the web, making it +easy for users to manage their accounts and for list owners to +administer their lists. Mailman supports built-in archiving, +automatic bounce processing, content filtering, digest delivery, spam +filters, and more. See the features page +for details. + +

    Mailman is free software, distributed under the +GNU General Public +License. Mailman is written in the +Python +programming language, with a little bit of C code for security. + +

    The name of this software is spelled Mailman +with a capital leading M and a lowercase second m. +It is incorrect to spell it "MailMan" (i.e. you should not use +StudlyCaps). + + +

    Current Version

    + +

    Version +2.1, +(released on +30-Dec-2002) +is the current released version of Mailman, in production at many +sites. + +

    Acknowledgements

    + +

    Mailman's lead developer is +Barry Warsaw who can be contacted +at barry@python.org. + +

    Thanks go to +Control.com for their +sponsorship of new Mailman 2.1 features such as the topic filters, +external membership sources, and "virtual" mailing lists. Also, a +huge thanks goes out to my employer Zope +Corporation for their support, as well as the +list of contributors, bug hunters, big idea people, and others +who have helped immensely with Mailman's development. + +

    + diff --git a/admin/www/install-links.h b/admin/www/install-links.h new file mode 100644 index 00000000..5774631f --- /dev/null +++ b/admin/www/install-links.h @@ -0,0 +1,11 @@ + +

    Installing Mailman

    +
  • Start installing +
  • System setup +
  • Running configure +
  • Check your installation +
  • Final system setup +
  • Customize Mailman +
  • Create a test list +
  • Troubleshooting +
  • Common problems FAQ diff --git a/admin/www/install.ht b/admin/www/install.ht new file mode 100644 index 00000000..1db5cb81 --- /dev/null +++ b/admin/www/install.ht @@ -0,0 +1,17 @@ +Title: Installing Mailman +Links: download-links.h + +

    Installing Mailman

    + +For detailed installation instructions, please see the +INSTALL file in the source distribution. + + + +Be sure to read the README and UPGRADING +files in the source distribution for additional instructions, hints, +and warnings. diff --git a/admin/www/install.html b/admin/www/install.html new file mode 100644 index 00000000..3894dbba --- /dev/null +++ b/admin/www/install.html @@ -0,0 +1,140 @@ + + + + + + + + + +Installing Mailman + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Installing Mailman

    + +For detailed installation instructions, please see the +INSTALL file in the source distribution. + + + +Be sure to read the README and UPGRADING +files in the source distribution for additional instructions, hints, +and warnings. + +
    + diff --git a/admin/www/inthenews.ht b/admin/www/inthenews.ht new file mode 100644 index 00000000..f3a20348 --- /dev/null +++ b/admin/www/inthenews.ht @@ -0,0 +1,504 @@ +Title: Mailman in Use and in the News + +

    Mailman in Use and in the News

    + +Mailman was featured as the Project of the Month in the +May 2002 issue of +Linux Magazine. + +

    Mailman was featured in a cover story article in the March 1999 +issue of SunWorld (apparently no longer on-line). The article was +written by Cameron Laird and Kathryn Soraiz. + +

    Mailman was briefly mentioned in a ZDNet article on GNU/Linux. +This was picked up by MSNBC. Unfortunately, both these links also +appear to be dead now too. + +

    Below are the lists of sites using Mailman or providing list hosting +services using Mailman. If you'd like to be included in this list, +please let us know. + +

    The following sites provide mailing list hosting services using +Mailman. If you like Mailman but still don't want to install it on +your own systems, you might consider having your list hosted at one of +these sites. Inclusion in this list does not construe an +endorsement or recommendation by the Mailman development team, nor is +there any relationship between them and us, beyond their use of our +free software. Some of these services may have restrictions or fees +for use. + +

    + + +

    The following sites (in no particular order) are known to use +Mailman or Mailman technology to run their mailing lists. + +

    diff --git a/admin/www/inthenews.html b/admin/www/inthenews.html new file mode 100644 index 00000000..4ff788e5 --- /dev/null +++ b/admin/www/inthenews.html @@ -0,0 +1,637 @@ + + + + + + + + + +Mailman in Use and in the News + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Mailman in Use and in the News

    + +Mailman was featured as the Project of the Month in the +May 2002 issue of +Linux Magazine. + +

    Mailman was featured in a cover story article in the March 1999 +issue of SunWorld (apparently no longer on-line). The article was +written by Cameron Laird and Kathryn Soraiz. + +

    Mailman was briefly mentioned in a ZDNet article on GNU/Linux. +This was picked up by MSNBC. Unfortunately, both these links also +appear to be dead now too. + +

    Below are the lists of sites using Mailman or providing list hosting +services using Mailman. If you'd like to be included in this list, +please let us know. + +

    The following sites provide mailing list hosting services using +Mailman. If you like Mailman but still don't want to install it on +your own systems, you might consider having your list hosted at one of +these sites. Inclusion in this list does not construe an +endorsement or recommendation by the Mailman development team, nor is +there any relationship between them and us, beyond their use of our +free software. Some of these services may have restrictions or fees +for use. + +

    + + +

    The following sites (in no particular order) are known to use +Mailman or Mailman technology to run their mailing lists. + +

    + +
    + diff --git a/admin/www/links.h b/admin/www/links.h new file mode 100644 index 00000000..aa56a298 --- /dev/null +++ b/admin/www/links.h @@ -0,0 +1,9 @@ + +

    Overview

    +
  • Home +
  • Features +
  • Logos and Papers +
  • Mailman in Use +
  • Previous Releases +
  • Bugs and Patches +
  • Mirrors diff --git a/admin/www/lists.ht b/admin/www/lists.ht new file mode 100644 index 00000000..c9e8e563 --- /dev/null +++ b/admin/www/lists.ht @@ -0,0 +1,52 @@ +Title: Mailman mailing lists + +

    Mailman mailing lists

    + +We have several mailing lists devoted to Mailman, which also provide a +nice demonstration of Mailman! + + diff --git a/admin/www/lists.html b/admin/www/lists.html new file mode 100644 index 00000000..998d7483 --- /dev/null +++ b/admin/www/lists.html @@ -0,0 +1,185 @@ + + + + + + + + + +Mailman mailing lists + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Mailman mailing lists

    + +We have several mailing lists devoted to Mailman, which also provide a +nice demonstration of Mailman! + +
      +

    • + Mailman Users is the mailing list to subscribe to if you are + using Mailman at your site, and may have problems or questions + relating to installation, use, etc. We'll try to keep the deep + technical discussions off this list. + (archives) + +

    • Listowners + is a mailing list with a non-technical focus, specifically for + discussions from the perspective of listowners and moderators + who do not have "shell access" to the mailing list server + where the Mailman software runs. (archives) + +

    • + Mailman Announce is a read-only list that you can subscribe to + if you are only interested in release notices and other important + news. Only the core Mailman developers can post messages to this + list. + (archives) + +

    • + Mailman Developers is the mailing list to use if you are + interested in helping us develop Mailman, discuss future + directions, etc. This is the list for more in-depth technical + issues. + (archives) + +

      More information about developer resources is available + here. + +

    • + Mailman Internationalization is the list for discussing the + multi-lingual support in Mailman 2.1. Everyone who is working on + translations of Mailman should subscribe to this mailing list. + (archives) + +

    • + Mailman Checkins is an adjunct list to the publically + accessible read-only CVS repository. This list is for the + hardcore developers, or anybody else submitting patches, since we + really prefer such patches to be generated against the latest + snapshot. This is a read-only list; only the core Mailman + developers can post messages to this list. There is no archive. +
    + +
    + diff --git a/admin/www/mailman.html b/admin/www/mailman.html new file mode 100644 index 00000000..bc8b1e16 --- /dev/null +++ b/admin/www/mailman.html @@ -0,0 +1,146 @@ + + + + +Mailman - GNU Project - Free Software Foundation (FSF) + + + +

    Mailman

    + + + + [Delivered by Mailman logo]   (jpeg 6k) + +
    +

    + +

    Table of contents

    + + +

    +

    Introduction to Mailman

    +

    +Mailman is software to help manage email discussion lists, much like +Majordomo and SmartList. Unlike most similar products, Mailman gives +each mailing list a web page, and allows users to subscribe, +unsubscribe, etc. over the web. Even the list manager can administer +his or her list entirely from the web. Mailman also integrates most +things people want to do with mailing lists, including archiving, +mail-to-news gateways, integrated bounce handling, spam prevention, +email-based admin commands, direct SMTP delivery (with fast bulk +mailing), support for virtual domains, and more. + +

    +Mailman runs on most Un*x-like systems, is compatible with most web +servers and browsers, and most SMTP servers. Mailman requires +Python version 1.5 or newer. +Python is a free object-oriented scripting language. A few files are +written in C for security purposes. + +

    The manual is still only a set of READMEs provided in the Mailman +distribution. For now, more information can be found at +www.list.org. + +

    +


    +

    +

    Downloading Mailman

    +

    +Mailman can be found on +http://ftp.gnu.org/gnu/mailman/ +or one of the mirrors. +

    + +

    +


    +

    +

    Mailman Discussion +Lists

    + +

    +There are several mailing lists devoted to Mailman, which also provide +nice demonstrations of Mailman! + +

    + + +
    + + +Return to GNU's home page. +

    + +Please send FSF & GNU inquiries & questions to + +gnu@gnu.org. +There are also other ways to +contact the FSF. +

    + +Please send comments on these web pages to + +webmasters@gnu.org, +send other questions to +gnu@gnu.org. +

    +Copyright (C) 1999,2000 Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA +

    +Verbatim copying and distribution of this entire article is +permitted in any medium, provided this notice is preserved.

    +Updated: + +Last modified: Sat Oct 26 13:29:25 EDT 2002 + +


    + + diff --git a/admin/www/mgrs.ht b/admin/www/mgrs.ht new file mode 100644 index 00000000..d4358062 --- /dev/null +++ b/admin/www/mgrs.ht @@ -0,0 +1,8 @@ +Title: List Manager Documentation +Links: links.h doco-links.h + +

    List Manager Documentation

    + +

    Chris Kolar has made +available list +manager documentation for Mailman. diff --git a/admin/www/mgrs.html b/admin/www/mgrs.html new file mode 100644 index 00000000..37742b1e --- /dev/null +++ b/admin/www/mgrs.html @@ -0,0 +1,159 @@ + + + + + + + + + +List Manager Documentation + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    List Manager Documentation

    + +

    Chris Kolar has made +available list +manager documentation for Mailman. + +

    + diff --git a/admin/www/mirrors.ht b/admin/www/mirrors.ht new file mode 100644 index 00000000..7ca7c37c --- /dev/null +++ b/admin/www/mirrors.ht @@ -0,0 +1,12 @@ +Title: Mailman Web Page Mirrors + +

    Mailman Web Page Mirrors

    + +These web pages are mirrored in several locations for your +convenience. Here are the current list of mirrors: + + diff --git a/admin/www/mirrors.html b/admin/www/mirrors.html new file mode 100644 index 00000000..84c25eda --- /dev/null +++ b/admin/www/mirrors.html @@ -0,0 +1,145 @@ + + + + + + + + + +Mailman Web Page Mirrors + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Mailman Web Page Mirrors

    + +These web pages are mirrored in several locations for your +convenience. Here are the current list of mirrors: + + + +
    + diff --git a/admin/www/otherstuff.ht b/admin/www/otherstuff.ht new file mode 100644 index 00000000..b60041f7 --- /dev/null +++ b/admin/www/otherstuff.ht @@ -0,0 +1,23 @@ +Title: Mailman Logos and Papers + +

    Logos

    + +The Dragon De Monsyne created and donated two logos for Mailman which +you can use to link back to the Mailman website. + + + + + + + +
    Small Logo (110x35)
    Large Logo (247x93)
    + +

    Papers

    + +

    A number of papers and other material presented at + +the 7th International Python Conference and the 12th Usenix LISA +conference are available +here. diff --git a/admin/www/otherstuff.html b/admin/www/otherstuff.html new file mode 100644 index 00000000..47dae557 --- /dev/null +++ b/admin/www/otherstuff.html @@ -0,0 +1,156 @@ + + + + + + + + + +Mailman Logos and Papers + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Logos

    + +The Dragon De Monsyne created and donated two logos for Mailman which +you can use to link back to the Mailman website. + + + + + + + +
    Small Logo (110x35)
    Large Logo (247x93)
    + +

    Papers

    + +

    A number of papers and other material presented at + +the 7th International Python Conference and the 12th Usenix LISA +conference are available +here. + +

    + diff --git a/admin/www/prev.ht b/admin/www/prev.ht new file mode 100644 index 00000000..a48031be --- /dev/null +++ b/admin/www/prev.ht @@ -0,0 +1,20 @@ +Title: Previous Mailman Releases + +

    Previous Mailman Releases

    + +Mailman 2.0.13 is the most stable version of the 2.0 release +branch. It is in production use at thousands of sites. It should be +fairly easy to upgrade from Mailman 2.0.13 to Mailman 2.1 -- see the +documentation that comes with Mailman 2.1 for details. + +

    Mailman 2.0.13 works with any Python version from 1.5.2 to 2.3 +(still in alpha development as of this writing 26-Dec-2002). Mailman +2.1 requires at least Python 2.1.3 and works best with Python 2.2.2. +If you plan on upgrading Mailman, I first recommend that you upgrade +to Python 2.2.2, and then upgrade Mailman. + +

    There are tons of new features in +Mailman 2.1, and no new development is being done on the Mailman 2.0.x +branch. Only absolutely critical security fixes will be issued for +Mailman 2.0 -- the last one was issued on 29-Jul-2002. diff --git a/admin/www/prev.html b/admin/www/prev.html new file mode 100644 index 00000000..1fa8d465 --- /dev/null +++ b/admin/www/prev.html @@ -0,0 +1,153 @@ + + + + + + + + + +Previous Mailman Releases + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Previous Mailman Releases

    + +Mailman 2.0.13 is the most stable version of the 2.0 release +branch. It is in production use at thousands of sites. It should be +fairly easy to upgrade from Mailman 2.0.13 to Mailman 2.1 -- see the +documentation that comes with Mailman 2.1 for details. + +

    Mailman 2.0.13 works with any Python version from 1.5.2 to 2.3 +(still in alpha development as of this writing 26-Dec-2002). Mailman +2.1 requires at least Python 2.1.3 and works best with Python 2.2.2. +If you plan on upgrading Mailman, I first recommend that you upgrade +to Python 2.2.2, and then upgrade Mailman. + +

    There are tons of new features in +Mailman 2.1, and no new development is being done on the Mailman 2.0.x +branch. Only absolutely critical security fixes will be issued for +Mailman 2.0 -- the last one was issued on 29-Jul-2002. + +

    + diff --git a/admin/www/requirements.ht b/admin/www/requirements.ht new file mode 100644 index 00000000..f193ecea --- /dev/null +++ b/admin/www/requirements.ht @@ -0,0 +1,56 @@ +Title: Mailman Requirements +Links: download-links.h +Other-links: +

    SMTP servers

    +
  • Postfix +
  • Exim +
  • Sendmail +
  • Qmail +

    Other software

    +
  • Apache web server +
  • GNU C compiler + +

    Requirements

    + +

    Mailman currently runs only on GNU/Linux and any other Un*x-like +operating system, such as *BSD, Solaris, etc. It should work on +MacOSX but not earlier versions of MacOS. It probably does not work +on Windows, although it's possible you could get it running on a +Cygwin system (please let the developer +community know if you have success with this!) + +

    Before you can run Mailman, you need to make sure that +Python is installed. Mailman 2.1 +requires at least Python 2.1.3, although Python 2.2.2 is +recommended. Most GNU/Linux systems come with Python pre-installed, so +you just need to make sure you're running an up-to-date version. You +can do this by executing the following at your shell's command line: + +

    +
    +% python -V
    +Python 2.1.3
    +
    +
    + +If your Python executable doesn't understand the -V +option, it's definitely too old! + +

    You will also need an SMTP server (a.k.a. mail transport agent or +MTA) for mail delivery and reception. Mailman should work +well with any of the most popular Unix mail servers such as +Postfix, +Exim, +Sendmail and +qmail. + +

    You will also need a web server. +Apache is certainly the most +popular, is available for all Unix systems, and works great with +Mailman. + +

    To install Mailman from the sources, you will also need an ANSI C +compiler. The +GNU C compiler +gcc 2.8.1 or later is known to work well. diff --git a/admin/www/requirements.html b/admin/www/requirements.html new file mode 100644 index 00000000..1bb74e74 --- /dev/null +++ b/admin/www/requirements.html @@ -0,0 +1,196 @@ + + + + + + + + + +Mailman Requirements + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Requirements

    + +

    Mailman currently runs only on GNU/Linux and any other Un*x-like +operating system, such as *BSD, Solaris, etc. It should work on +MacOSX but not earlier versions of MacOS. It probably does not work +on Windows, although it's possible you could get it running on a +Cygwin system (please let the developer +community know if you have success with this!) + +

    Before you can run Mailman, you need to make sure that +Python is installed. Mailman 2.1 +requires at least Python 2.1.3, although Python 2.2.2 is +recommended. Most GNU/Linux systems come with Python pre-installed, so +you just need to make sure you're running an up-to-date version. You +can do this by executing the following at your shell's command line: + +

    +
    +% python -V
    +Python 2.1.3
    +
    +
    + +If your Python executable doesn't understand the -V +option, it's definitely too old! + +

    You will also need an SMTP server (a.k.a. mail transport agent or +MTA) for mail delivery and reception. Mailman should work +well with any of the most popular Unix mail servers such as +Postfix, +Exim, +Sendmail and +qmail. + +

    You will also need a web server. +Apache is certainly the most +popular, is available for all Unix systems, and works great with +Mailman. + +

    To install Mailman from the sources, you will also need an ANSI C +compiler. The +GNU C compiler +gcc 2.8.1 or later is known to work well. + +

    + diff --git a/admin/www/site.ht b/admin/www/site.ht new file mode 100644 index 00000000..abb08bd6 --- /dev/null +++ b/admin/www/site.ht @@ -0,0 +1,240 @@ +Title: Site Administrator Documentation +Links: doco-links.h + +

    Site Administrator Documentation

    + +By definition, the site administrator has shell access to the Mailman +installation, and the proper permissions for total control over +Mailman at the site. The site admin can edit the +Mailman/mm_cfg.py configuration file, and can run the +various and sundry command line scripts. + +

    Command line scripts

    + +This is a brief overview of the current crop of command line scripts +available to the site administrator in the bin directory. +For more details, run the script with the --help option, +which will print out the usage synopsis. You must run these +scripts from the bin directory in the Mailman installation location, +usually /home/mailman. + +
    +
    add_members +
    Use this script to mass add members to a mailing list. Input + files are plain text, with one address per line. Command line + options allow you to add the addresses as digest or regular + members, select whether various notification emails are sent, and + choose which list to add the members to. + +
    addlang +
    Use this to add language support to a specific list. The site + itself must have the language pack to add already installed. Note + that removing language support from a list requires you to + manually rm the lists/yourlist/lang + subdirectory. + +
    arch +
    Use this to rebuild a list's archive. This script can't be used + to modify a list's raw mbox file, but once you've edited the mbox + file some other way, you can use this script to regenerate the + HTML version of the on-line archive. + +
    change_pw +
    Use this to change the password for a specific mailing list. + +
    check_db +
    Use this script to check the integrity of a list's + config.pck and config.pck.last database + files. + +
    check_perms +
    Use this script to check, and optionally fix, the permissions of + the various files in a Mailman installation. + +
    clone_member +
    Use this script to clone an address on a particular list + into different address. This is useful when someone is changing + email addresses and wants to keep all their old configuration + options. Eventually members will be able to do their own cloning, + but for now, only the site administrator can do this. Command + line options let you remove the old address, clone addresses in + the list managers addresses, etc. + +
    config_list +
    This is a very powerful script which lets you view and modify a + list's configuration variables from the command line. E.g. you + can dump out all the list options into a plain text file (actually + a valid Python file!), complete with comments explaining each + variable. Or you can apply the configuration from such a file to + a particular list. + +

    Where this might be useful is if you wanted to change the + web_page_url attribute on every list. You could + create a file containing only the line + +

    +
    +web_page_url = 'http://www.mynewsite.com/mailman-relocated/'
    +
    +
    + + and then feed this file back to config_list for every + list on your system. config_list only sets the + list variables that it finds in the input file. + +
    digest_arch +
    This script is deprecated. + +
    dumpdb +
    This script dumps the plain text representation for any .db + database file. These files usually contain Python marshaled + dictionaries, and can be found in the qfiles + directory, the lists/listname directory, + etc. This script can also be used to print out the contents of a + pickled message file, which are stored in .pck files. + +
    find_member +
    Use this script to search all the lists, or some subset of lists, + for an address matching a regular expression. command line + options let you also search the list managers as well. + +
    genaliases +
    Use this script to regenerate the plain text and db alias + files for Postfix (if you're using Postfix as you're MTA). + +
    list_admins +
    List all the owners of a mailing list. + +
    list_lists +
    List all, or some subset of, the mailing lists in the system. + +
    list_members +
    List the members of a mailing list. Command line options let you + print just the regular or just the digest members, print the + case-preserved addresses of the members, etc. + +
    mailmanctl +
    The main qrunner control script. Use this to start, stop, and + restart the qrunner. + +
    mmsitepass +
    Use this script to set the site password, which can be used any + where in the system a list or user password can be used. + Essentially, the site password trumps any other password, so + choose wisely! + +
    move_list +
    Use this script when you move Mailman to a new installation location. + +
    newlist +
    Use this script to create new mailing lists. + +
    qrunner +
    Use this to run a single qrunner once (for debugging). + +
    remove_members +
    Use this list to remove members from a mailing list. + +
    rmlist +
    Use this script to remove a mailing list. By default, a list's + archives are not removed unless the --archives option + is given. + +
    sync_members +
    Use this to synchronize mailing lists in a list's database with a + plain text file of addresses, similar to what is used for + add_members. In a sense, this script combines the + functionality of add_members and + remove_members. Any addresses in the file that are + not present in the list roster are added, and any addresses in the + roster that are not present in the file are removed. + +

    Command line options let you send various notification emails, + preview the changes, etc. + +

    update +
    Don't use this script manually; it is used as part of the + installation and upgrade procedures. + +
    version +
    Prints the Mailman version number. + +
    withlist +
    This is the most powerful and flexible script in Mailman. With it + you can do all manner of programmatic changes to mailing lists, or + look at and interactively inspect almost any aspect of Mailman. + By default, you run this using Python's interactive prompt, like + so: + +
    +
    +% cd /home/mailman
    +% python -i bin/withlist mylist
    +Loading list: mylist (unlocked)
    +>>> 
    +
    +
    + + Here you see that you're left at the Python prompt after the list + has been loaded and instantiated. Note that without the + --lock option, the list is not locked. List must be + locked if you plan to make modifications to any attributes (and + they must be explicitly saved, as withlist does not + automatically save changes to list objects). + +

    At the prompt, the global object m is the instantiated + list object. It's a Python instance so you can do all the normal + things to it, view or change attributes, or make method calls on + it. + +

    Have a look also at the --run option, which lets + you put your programmatic changes into a Python module (file) and + run that module over any mailing list you want. This makes + withlist essentially a framework for easily adding + your own list-specific command line scripts. +

    + +

    Cron scripts

    + +Mailman comes with a number of scripts that are typically only run by +cron. However, it is generally okay for the site administrator to run +these scripts manually, say to force a sending of accumulated digests, +or to mail out member passwords, etc. You generally run these by +invoking the Python executable on them, like so: + +
    +
    +% cd /home/mailman
    +% python -S cron/senddigests
    +
    +
    + +The -S option is an optimization and (minor) security +recommendation; it inhibits Python's implicit import site +on initialization. Not all of these scripts support the +--help option. Here is a brief description of what the +cron scripts do: + +
    +
    bumpdigests +
    Bumps the digest volume numbers for the specified lists. + Resets the issue number to 1. + +
    checkdbs +
    Checks for ending list requests (posts and subscriptions) and + mails the list manager if there are any. + +
    gate_news +
    Polls the NNTP servers for messages and forwards any new messages + to their mailing list gateways. + +
    mailpasswds +
    Sends the password reminder emails to all users and all mailing lists. + +
    nightly_gzip +
    Regenerates the Pipermail gzip'd flat archive files. + +
    senddigests +
    Sends all accumulated digests. + +
    diff --git a/admin/www/site.html b/admin/www/site.html new file mode 100644 index 00000000..d27461ba --- /dev/null +++ b/admin/www/site.html @@ -0,0 +1,366 @@ + + + + + + + + + +Site Administrator Documentation + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Site Administrator Documentation

    + +By definition, the site administrator has shell access to the Mailman +installation, and the proper permissions for total control over +Mailman at the site. The site admin can edit the +Mailman/mm_cfg.py configuration file, and can run the +various and sundry command line scripts. + +

    Command line scripts

    + +This is a brief overview of the current crop of command line scripts +available to the site administrator in the bin directory. +For more details, run the script with the --help option, +which will print out the usage synopsis. You must run these +scripts from the bin directory in the Mailman installation location, +usually /home/mailman. + +
    +
    add_members +
    Use this script to mass add members to a mailing list. Input + files are plain text, with one address per line. Command line + options allow you to add the addresses as digest or regular + members, select whether various notification emails are sent, and + choose which list to add the members to. + +
    addlang +
    Use this to add language support to a specific list. The site + itself must have the language pack to add already installed. Note + that removing language support from a list requires you to + manually rm the lists/yourlist/lang + subdirectory. + +
    arch +
    Use this to rebuild a list's archive. This script can't be used + to modify a list's raw mbox file, but once you've edited the mbox + file some other way, you can use this script to regenerate the + HTML version of the on-line archive. + +
    change_pw +
    Use this to change the password for a specific mailing list. + +
    check_db +
    Use this script to check the integrity of a list's + config.pck and config.pck.last database + files. + +
    check_perms +
    Use this script to check, and optionally fix, the permissions of + the various files in a Mailman installation. + +
    clone_member +
    Use this script to clone an address on a particular list + into different address. This is useful when someone is changing + email addresses and wants to keep all their old configuration + options. Eventually members will be able to do their own cloning, + but for now, only the site administrator can do this. Command + line options let you remove the old address, clone addresses in + the list managers addresses, etc. + +
    config_list +
    This is a very powerful script which lets you view and modify a + list's configuration variables from the command line. E.g. you + can dump out all the list options into a plain text file (actually + a valid Python file!), complete with comments explaining each + variable. Or you can apply the configuration from such a file to + a particular list. + +

    Where this might be useful is if you wanted to change the + web_page_url attribute on every list. You could + create a file containing only the line + +

    +
    +web_page_url = 'http://www.mynewsite.com/mailman-relocated/'
    +
    +
    + + and then feed this file back to config_list for every + list on your system. config_list only sets the + list variables that it finds in the input file. + +
    digest_arch +
    This script is deprecated. + +
    dumpdb +
    This script dumps the plain text representation for any .db + database file. These files usually contain Python marshaled + dictionaries, and can be found in the qfiles + directory, the lists/listname directory, + etc. This script can also be used to print out the contents of a + pickled message file, which are stored in .pck files. + +
    find_member +
    Use this script to search all the lists, or some subset of lists, + for an address matching a regular expression. command line + options let you also search the list managers as well. + +
    genaliases +
    Use this script to regenerate the plain text and db alias + files for Postfix (if you're using Postfix as you're MTA). + +
    list_admins +
    List all the owners of a mailing list. + +
    list_lists +
    List all, or some subset of, the mailing lists in the system. + +
    list_members +
    List the members of a mailing list. Command line options let you + print just the regular or just the digest members, print the + case-preserved addresses of the members, etc. + +
    mailmanctl +
    The main qrunner control script. Use this to start, stop, and + restart the qrunner. + +
    mmsitepass +
    Use this script to set the site password, which can be used any + where in the system a list or user password can be used. + Essentially, the site password trumps any other password, so + choose wisely! + +
    move_list +
    Use this script when you move Mailman to a new installation location. + +
    newlist +
    Use this script to create new mailing lists. + +
    qrunner +
    Use this to run a single qrunner once (for debugging). + +
    remove_members +
    Use this list to remove members from a mailing list. + +
    rmlist +
    Use this script to remove a mailing list. By default, a list's + archives are not removed unless the --archives option + is given. + +
    sync_members +
    Use this to synchronize mailing lists in a list's database with a + plain text file of addresses, similar to what is used for + add_members. In a sense, this script combines the + functionality of add_members and + remove_members. Any addresses in the file that are + not present in the list roster are added, and any addresses in the + roster that are not present in the file are removed. + +

    Command line options let you send various notification emails, + preview the changes, etc. + +

    update +
    Don't use this script manually; it is used as part of the + installation and upgrade procedures. + +
    version +
    Prints the Mailman version number. + +
    withlist +
    This is the most powerful and flexible script in Mailman. With it + you can do all manner of programmatic changes to mailing lists, or + look at and interactively inspect almost any aspect of Mailman. + By default, you run this using Python's interactive prompt, like + so: + +
    +
    +% cd /home/mailman
    +% python -i bin/withlist mylist
    +Loading list: mylist (unlocked)
    +>>> 
    +
    +
    + + Here you see that you're left at the Python prompt after the list + has been loaded and instantiated. Note that without the + --lock option, the list is not locked. List must be + locked if you plan to make modifications to any attributes (and + they must be explicitly saved, as withlist does not + automatically save changes to list objects). + +

    At the prompt, the global object m is the instantiated + list object. It's a Python instance so you can do all the normal + things to it, view or change attributes, or make method calls on + it. + +

    Have a look also at the --run option, which lets + you put your programmatic changes into a Python module (file) and + run that module over any mailing list you want. This makes + withlist essentially a framework for easily adding + your own list-specific command line scripts. +

    + +

    Cron scripts

    + +Mailman comes with a number of scripts that are typically only run by +cron. However, it is generally okay for the site administrator to run +these scripts manually, say to force a sending of accumulated digests, +or to mail out member passwords, etc. You generally run these by +invoking the Python executable on them, like so: + +
    +
    +% cd /home/mailman
    +% python -S cron/senddigests
    +
    +
    + +The -S option is an optimization and (minor) security +recommendation; it inhibits Python's implicit import site +on initialization. Not all of these scripts support the +--help option. Here is a brief description of what the +cron scripts do: + +
    +
    bumpdigests +
    Bumps the digest volume numbers for the specified lists. + Resets the issue number to 1. + +
    checkdbs +
    Checks for ending list requests (posts and subscriptions) and + mails the list manager if there are any. + +
    gate_news +
    Polls the NNTP servers for messages and forwards any new messages + to their mailing list gateways. + +
    mailpasswds +
    Sends the password reminder emails to all users and all mailing lists. + +
    nightly_gzip +
    Regenerates the Pipermail gzip'd flat archive files. + +
    senddigests +
    Sends all accumulated digests. + +
    + +
    + diff --git a/admin/www/todo.ht b/admin/www/todo.ht new file mode 100644 index 00000000..c6901ee3 --- /dev/null +++ b/admin/www/todo.ht @@ -0,0 +1,190 @@ +Title: The Mailman Wishlist + +

    +

    The Mailman Wishlist +

    +

    +

    (Last Update: $Date: 2002-12-27 03:36:46 +0000 (Fri, 27 Dec 2002) $) +

    +Here's the wish list for future versions of Mailman. Many new + features have been added to Mailman 2.1, so what's left will + probably end up in a Mailman 3.0. + Please also see the Mailman design notes wiki at + http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/FrontPage +

    +

    Email Handling +

    + +

    Documentation +

    + +

    General Web UI +

    + +

    List Administration +

    + +

    List Membership +

    + +

    Site Administration +

    + +

    Other Usability Improvments +

    + +

    Mailcmd interface +

    + +

    Portability & architecture +

    + +

    Bounce handling +

    + +

    Pipermail + Archiving mechanism +

    + +

    Code cleanup +

    + diff --git a/admin/www/todo.html b/admin/www/todo.html new file mode 100644 index 00000000..f681af12 --- /dev/null +++ b/admin/www/todo.html @@ -0,0 +1,323 @@ + + + + + + + + + +The Mailman Wishlist + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    +

    The Mailman Wishlist +

    +

    +

    (Last Update: $Date: 2002-12-27 03:36:46 +0000 (Fri, 27 Dec 2002) $) +

    +Here's the wish list for future versions of Mailman. Many new + features have been added to Mailman 2.1, so what's left will + probably end up in a Mailman 3.0. + Please also see the Mailman design notes wiki at + http://www.zope.org/Members/bwarsaw/MailmanDesignNotes/FrontPage +

    +

    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@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@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) +
    + +
    + diff --git a/admin/www/users.ht b/admin/www/users.ht new file mode 100644 index 00000000..56267675 --- /dev/null +++ b/admin/www/users.ht @@ -0,0 +1,8 @@ +Title: User Documentation +Links: doco-links.h + +

    User Documentation

    + +

    Chris Kolar has made +available a Mailman +user guide for end-users interacting with a Mailman system. diff --git a/admin/www/users.html b/admin/www/users.html new file mode 100644 index 00000000..5ce2508d --- /dev/null +++ b/admin/www/users.html @@ -0,0 +1,134 @@ + + + + + + + + + +User Documentation + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    User Documentation

    + +

    Chris Kolar has made +available a Mailman +user guide for end-users interacting with a Mailman system. + +

    + diff --git a/admin/www/version.ht b/admin/www/version.ht new file mode 100644 index 00000000..1774bf79 --- /dev/null +++ b/admin/www/version.ht @@ -0,0 +1,12 @@ +Title: Current Mailman Version +Links: download-links.h + +

    Current Mailman Version

    + +

    Version +(2.1, +released on +30-Dec-2002) +is the latest stable release. See also information on +previous version if you're not yet ready to +upgrade. diff --git a/admin/www/version.html b/admin/www/version.html new file mode 100644 index 00000000..17f168a3 --- /dev/null +++ b/admin/www/version.html @@ -0,0 +1,135 @@ + + + + + + + + + +Current Mailman Version + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
      
      
    +

    Current Mailman Version

    + +

    Version +(2.1, +released on +30-Dec-2002) +is the latest stable release. See also information on +previous version if you're not yet ready to +upgrade. + +

    + -- cgit v1.2.3