~ubuntu-branches/ubuntu/hoary/mailman/hoary-security

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2004-10-11 02:02:43 UTC
  • Revision ID: james.westby@ubuntu.com-20041011020243-ukiishnhlkmsoh21
Tags: upstream-2.1.5
ImportĀ upstreamĀ versionĀ 2.1.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Mailman - The GNU Mailing List Management System
 
2
Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
 
3
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
 
4
 
 
5
Here is a history of user visible changes to Mailman.
 
6
 
 
7
2.1.5 (15-May-2004)
 
8
 
 
9
    - The admindb page has a checkbox that allows you to discard all held
 
10
      messages that are marked Defer.  On heavy lists with lots of spam holds,
 
11
      this makes clearing them much faster.
 
12
 
 
13
    - The qrunner system has changed to use only one file per message.
 
14
      However the configuration variable METADATA_FORMAT has been removed, and
 
15
      support for SAVE_MSGS_AS_PICKLES has been changed.  The latter no longer
 
16
      writes messages as plain text.  Instead, they are stored as pickles of
 
17
      plain strings, using the text pickle format.  This still makes them
 
18
      non-binary files readable and editable by humans.
 
19
 
 
20
      bin/dumpdb also works differently.  It will print out the entire pickle
 
21
      file (with more verbosity) and if used with 'python -i', it binds msg to
 
22
      a list of all objects found in the pickle file.
 
23
 
 
24
      Removed from Defaults.py: PENDINGDB_LOCK_TIMEOUT,
 
25
      PENDINGDB_LOCK_ATTEMPTS, METAFMT_MARSHAL, METAFMT_BSDDB_NATIVE,
 
26
      METAFMT_ASCII, METADATA_FORMAT
 
27
 
 
28
    - The bounce processor has been redesigned so that now when an address's
 
29
      bounce score reaches the threshold, that address will be sent a probe
 
30
      message.  Only if the probe bounces will the address be disabled.  The
 
31
      score is reset to zero when the probe is sent.  Also, bounce events are
 
32
      now kept in an event file instead of in memory.  This should help
 
33
      contain the bloat of the BounceRunner.
 
34
 
 
35
      New supporting variables in Defaults.py: VERP_PROBE_FORMAT,
 
36
      VERP_PROBE_REGEXP
 
37
 
 
38
      REGISTER_BOUNCES_EVERY is promoted to a Defaults.py variable.
 
39
 
 
40
    - The pending database has been changed from a global pickle file, to a
 
41
      unique pickle file per mailing list.
 
42
 
 
43
    - The 'request' database file has changed from a marshal, to the more
 
44
      secure pickle format.
 
45
 
 
46
    - Disallow multiple password retrievals.
 
47
 
 
48
    - SF patch #810675 which adds a "Discard all messages marked Defer" button
 
49
      for faster admindb maintenance.
 
50
 
 
51
    - The email package is updated to version 2.5.5.
 
52
 
 
53
    - New language: Turkish.
 
54
 
 
55
    - Bugs and patches: 869644, 869647 (NotAMemberError for old cookie data),
 
56
      878087 (bug in Slovenian catalog), 899263 (ignore duplicate pending
 
57
      ids), 810675 (discard all defers button)
 
58
 
 
59
2.1.4 (31-Dec-2003)
 
60
 
 
61
    - Close some cross-site scripting vulnerabilities in the admin pages
 
62
      (CAN-2003-0965).
 
63
 
 
64
    - New languages: Catalan, Croatian, Romanian, Slovenian.
 
65
 
 
66
    - New mm_cfg.py/Defaults.py variable PUBLIC_MBOX which allows the site
 
67
      administrator to disable public access to all the raw list mbox files
 
68
      (this is not a per-list configuration).
 
69
 
 
70
    - Expanded header filter rules under Privacy -> Spam Filters.  Now you can
 
71
      specify regular expression matches against any header, with specific
 
72
      actions tied to those matches.
 
73
 
 
74
    - Rework the SMTP error handling in SMTPDirect.py to avoid scoring bounces
 
75
      for all recipients when a permanent error code is returned by the mail
 
76
      server (e.g. because of content restrictions).
 
77
 
 
78
    - Promoted SYNC_AFTER_WRITE to a Default.py/mm_cfg.py variable and
 
79
      make it control syncing on the config.pck file.  Also, we always flush
 
80
      and sync message files.
 
81
 
 
82
    - Reduce archive bloat by not storing the HTML body of Article objects in
 
83
      the Pipermail database.  A new script bin/rb-archfix was added to clean
 
84
      up older archives.
 
85
 
 
86
    - Proper RFC quoting for List-ID descriptions.
 
87
 
 
88
    - PKGDIR can be passed to the make command in order to specify a different
 
89
      directory to unpack the distutils packages in misc.  (SF bug 784700).
 
90
 
 
91
    - Improved logging of the origin of subscription requests.
 
92
 
 
93
    - Bugs and patches: 832748 (unsubscribe_policy ignored for unsub button on
 
94
      member login page), 846681 (bounce disabled cookie was always out of
 
95
      date), 835870 (check VIRTUAL_HOST_OVERVIEW on through the web list
 
96
      creation), 835036 (global address change when the new address is already
 
97
      a member of one of the lists), 833384 (incorrect admin password on a
 
98
      hold message confirmation attachment would discard the message), 835012
 
99
      (fix permission on empty archive index), 816410 (confirmation page
 
100
      consistency), 834486 (catch empty charsets in the scrubber), 777444 (set
 
101
      the process's supplemental groups if possible), 860135 (ignore
 
102
      DiscardMessage exceptions during digest scrubbing), 828811 (reduce
 
103
      process size for list and admin overviews), 864674/864676 (problems
 
104
      accessing private archives and rosters with admin password), 865661
 
105
      (Tokio Kikuchi's i18n patches), 862906 (unicode prefix leak in admindb),
 
106
      841445 (setting new_member_options via config_list), n/a (fixed email
 
107
      command 'set delivery')
 
108
 
 
109
2.1.3 (28-Sep-2003)
 
110
 
 
111
    Performance, Reliability, Security
 
112
 
 
113
        - Closed a cross-site scripting exploit in the create cgi script.
 
114
 
 
115
        - Improvements in the performance of the bounce processor.
 
116
          Now, instead of processing each bounce immediately (which
 
117
          can cause severe lock contention), bounce events are queued.
 
118
          Every 15 minutes by default, the queued bounce events are
 
119
          processed en masse, on a list-per-list basis, so that each
 
120
          list only needs to be locked once.
 
121
 
 
122
        - When some or all of a message's recipients have temporary
 
123
          delivery failures, the message is moved to a "retry" queue.
 
124
          This queue wakes up occasionally and moves the file back to
 
125
          the outgoing queue for attempted redelivery.  This should
 
126
          fix most observed OutgoingRunner 100% cpu consumption,
 
127
          especially for bounces to local recipients when using the
 
128
          Postfix MTA.
 
129
 
 
130
        - Optional support for fsync()'ing qfile data after writing.
 
131
          Under some catastrophic system failures (e.g. power lose),
 
132
          it would be possible to lose messages because the data
 
133
          wasn't sync'd to disk.  By setting SYNC_AFTER_WRITE to True
 
134
          in Mailman/Queue/Switchboard.py, you can force Mailman to
 
135
          fsync() queue files after flushing them.  The benefits are
 
136
          debatable for most operating environments, and you must
 
137
          ensure that your Python has the os.fsync() function defined
 
138
          before enabling this feature (it isn't, even on all
 
139
          Unix-like operating systems).
 
140
 
 
141
    Internationalization
 
142
 
 
143
        - New languages Ukrainian, Serbian, Danish, Euskara/Basque.
 
144
 
 
145
        - Fixes to template lookup.  Lists with local overriding
 
146
          templates would find the wrong template.
 
147
 
 
148
        - .mo files (for internationalization) are now generated at
 
149
          build time instead of coming as part of the source
 
150
          distribution.
 
151
 
 
152
    Documentation
 
153
 
 
154
        - A first draft of member documentation by Terri Oda.  There
 
155
          is also a Japanese translation of this manual by Ikeda Soji.
 
156
 
 
157
    Archiver / Pipermail
 
158
 
 
159
        - In the configuration variables PUBLIC_EXTERNAL_ARCHIVER, and
 
160
          PRIVATE_EXTERNAL_ARCHIVER, %(hostname)s has been added to
 
161
          the list of allowable substitution variables.
 
162
 
 
163
        - The timezone is now taken into account when figuring the
 
164
          posting date for an article.
 
165
 
 
166
    Scripts / Cron
 
167
 
 
168
        - Fixes to cron/disabled for NotAMemberError crashes.
 
169
 
 
170
        - New script bin/show_qfiles which prints the contents of .pck
 
171
          message files.  New script bin/discard which can be used to
 
172
          mass discard held messages.
 
173
 
 
174
        - Fixes to cron/mailpasswds to account for old password-less
 
175
          subscriptions.
 
176
 
 
177
        - bin/list_members has grown two new options: --invalid/-i
 
178
          prints only the addresses in the member database that are
 
179
          invalid (which could have snuck in via old releases);
 
180
          --unicode/-u prints addresses which are stored as Unicode
 
181
          objects instead of as normal strings.
 
182
 
 
183
    Miscellaneous
 
184
 
 
185
        - Fixes to problems in some configurations where Python wouldn't
 
186
          be able to find its standard library.
 
187
 
 
188
        - Fixes to the digest which could cause MIME-losing missing
 
189
          newlines when parts are scrubbed via the content filters.
 
190
 
 
191
        - In the News/Mail gateway admin page, the configuration variable
 
192
          nntp_host can now be a name:port pair.
 
193
 
 
194
        - When messages are pulled from NNTP, the member moderation checks
 
195
          are short-circuited.
 
196
 
 
197
        - email 2.5.4 is included.  This fixes an RFC 2231 bug, among
 
198
          possibly others.
 
199
 
 
200
        - Fixed some extra spaces that could appear in the List-ID header.
 
201
 
 
202
        - Fixes to ensure that invalid email addresses can't be invited.
 
203
 
 
204
        - WEB_LINK_COLOR in Defaults.py/mm_cfg.py should now work.
 
205
 
 
206
        - Fixes so that shunted message file names actually match
 
207
          those logged in log/errors.
 
208
 
 
209
        - An improved pending action cookie generation algorithm has
 
210
          been added.
 
211
 
 
212
        - Fixes to the DSN bounce detector.
 
213
 
 
214
        - The usual additional u/i, internationalization, unicode, and
 
215
          other miscellaneous fixes.
 
216
 
 
217
2.1.2 (22-Apr-2003)
 
218
 
 
219
    - New languages Portuguese (Portugal) and Polish.
 
220
 
 
221
    - Many convenient constants have been added to the Defaults.py
 
222
      module to (hopefully) make it more readable.
 
223
 
 
224
    - Email addresses which contain 8-bit characters in them are now
 
225
      rejected and won't be subscribed.  This is not the same as 8-bit
 
226
      characters in the realname, which is still allowed.
 
227
 
 
228
    - The X-Originating-Email header is removed for anonymous lists.
 
229
      Hotmail apparently adds this header.
 
230
 
 
231
    - When running make to build Mailman, you can specify $DESTDIR to
 
232
      the install target to specify an alternative location for
 
233
      installation, without influencing the paths stored in
 
234
      e.g. Defaults.py.  This is useful to package managers.
 
235
 
 
236
    - New Defaults.py variable DELIVERY_RETRY_WAIT which controls how
 
237
      long the outgoing qrunner will wait before it retries a
 
238
      tempfailure delivery.
 
239
 
 
240
    - The semantics for the extend.py hook to MailList objects has
 
241
      changed slightly.  The hook is now called before attempting to
 
242
      lock and load the database.
 
243
 
 
244
    - Mailman now uses the email package version 2.5.1
 
245
 
 
246
    - bin/transcheck now checks for double-%'s
 
247
 
 
248
    - bin/genaliases grew a -q / --quiet flag
 
249
 
 
250
    - cron/checkdbs grew a -h / --help option.
 
251
 
 
252
    - The -c / --change-msg option has been removed from bin/add_members
 
253
 
 
254
    - bin/msgfmt.py has been added, taken from Python 2.3's Tools/i18n
 
255
      directory.  The various .mo files are now no longer distributed
 
256
      with Mailman.  They are generated at build time instead.
 
257
 
 
258
    - A new file misc/sitelist.cfg which can be used with
 
259
      bin/config_list provides a small number of recommended settings
 
260
      for your site list.  Be sure to read it over before applying!
 
261
      sitelist.cfg is installed into the data directory.
 
262
 
 
263
    - Many bug fixes, including these SourceForge bugs closed and
 
264
      patches applied: 677668, 690448, 700538, 700537, 673294, 683906,
 
265
      671294, 522080, 521124, 534297, 699900, 697321, 695526, 703941,
 
266
      658261, 710678, 707608, 671303, 717096, 694912, 707624, 716755,
 
267
      661138, 716754, 716702, 667167, 725369, 726415
 
268
 
 
269
 
 
270
2.1.1 (08-Feb-2003)
 
271
 
 
272
    Lots of bug fixes and language updates.  Also:
 
273
 
 
274
    - Closed a cross-site scripting vulnerability in the user options page.
 
275
 
 
276
    - Restore the ability to control which headers show up in messages
 
277
      included in plaintext and MIME digests.  See the variables
 
278
      PLAIN_DIGEST_KEEP_HEADERS and MIME_DIGEST_KEEP_HEADERS in
 
279
      Defaults.py.
 
280
 
 
281
    - Messages included in the plaintext digests are now sent through
 
282
      the scrubber to remove (and archive) attachments.  Otherwise,
 
283
      attachments would screw up plaintext digests.  MIME digests
 
284
      include the attachments inline.
 
285
 
 
286
2.1 final (30-Dec-2002)
 
287
 
 
288
    Last minute bug fixes and language updates.
 
289
 
 
290
2.1 rc 1 (24-Dec-2002)
 
291
 
 
292
    Bug fixes and language updates.  Also,
 
293
 
 
294
    - Lithuanian support has been added.
 
295
 
 
296
    - bin/remove_members grew --nouserack and --noadminack switches
 
297
 
 
298
    - configure now honors --srcdir
 
299
 
 
300
2.1 beta 6 (09-Dec-2002)
 
301
 
 
302
    Lots and lots of bug fixes, and translation updates.  Also,
 
303
 
 
304
    - ARCHIVER_OBSCURES_EMAILADDRS is now set to true by default.
 
305
 
 
306
    - QRUNNER_SAVE_BAD_MESSAGES is now set to true by default.
 
307
 
 
308
    - Bounce messages which were recognized, but in which no member
 
309
      addresses were found are no longer forwarded to the list
 
310
      administrator.
 
311
 
 
312
    - bin/arch grew a --wipe option which first removes the entire old
 
313
      archive before regenerating the new one.
 
314
 
 
315
    - bin/mailmanctl -u now prints a warning that permission problems
 
316
      could appear, such as when trying to delete a list through the
 
317
      web that has some archives in it.
 
318
 
 
319
    - bin/remove_members grew --nouserack/-n and -noadminack/-N options.
 
320
 
 
321
    - A new script bin/list_owners has been added for printing out
 
322
      list owners and moderators.
 
323
 
 
324
    - Dates in the web version of archived messages are now relative
 
325
      to the local timezone, and include the timezone names, when
 
326
      available.
 
327
 
 
328
2.1 beta 5 (19-Nov-2002)
 
329
 
 
330
    As is typical for a late beta release, this one includes the usual
 
331
    bug fixes, tweaks, and massive new features (just kidding).
 
332
 
 
333
    IMPORTANT: If you are using Pipermail, and you have any archives
 
334
    that were created or added to in 2.1b4, you will need to run
 
335
    bin/b4b5-archfix, followed by bin/check_perms to fix some serious
 
336
    performance problems.  From you install directory, run
 
337
    "bin/b4b5-archfix --help" for details.
 
338
 
 
339
    - The personalization options have been tweaked to provide more
 
340
      control over mail header and decoration personalizations.  In
 
341
      2.1b4, when personalization was enabled, the To and Cc headers
 
342
      were always overwritten.  But that's usually not appropriate for
 
343
      anything but announce lists, so now these headers aren't changed
 
344
      unless "Full personalization" is enabled.
 
345
 
 
346
    - You now need to go to the General category to enable emergency
 
347
      moderation.
 
348
 
 
349
    - The order of the hold modules in the GLOBAL_PIPELINE has
 
350
      changed, again.  Now Moderate comes before Hold.
 
351
 
 
352
    - Estonian language support has been added.
 
353
 
 
354
    - All posted messages should now get decorated with headers and
 
355
      footers in a MIME-safe way.  Previously, some MIME type messages
 
356
      didn't get decorated at all.
 
357
 
 
358
    - bin/arch grew a -q/--quiet option
 
359
 
 
360
    - bin/list_lists grew a -b/--bare option
 
361
 
 
362
2.1 beta 4 (26-Oct-2002)
 
363
 
 
364
    The usual assortment of bug fixes and language updates, some u/i
 
365
    tweaks, as well as the following:
 
366
 
 
367
    - Configuring / building / installing
 
368
        o Tightened up some configure checks; it will now bark loudly
 
369
          if you don't have the Python distutils package available
 
370
          (some Linux distros only include distutils in their "devel"
 
371
          packages).
 
372
 
 
373
        o Mailman's username/group security assertions are now done by
 
374
          symbolic name instead of numeric id.  This provides a level
 
375
          of indirection that makes it much easier to move or package
 
376
          Mailman.  --with-mail-gid and --with-cgi-gid are retained,
 
377
          but they control the group names used instead.
 
378
 
 
379
    - Command line scripts
 
380
        o A new script, bin/transcheck that language teams can use to
 
381
          check their .po files.
 
382
 
 
383
        o bin/list_members grew a --fullnames/-f option to print the
 
384
          full names along with the addresses.
 
385
 
 
386
        o cron/senddigests grew --help/-h and --listname/-l options.
 
387
 
 
388
        o bin/fix_url.py grew some command line options to support moving
 
389
          a list to a specific virtual domain.
 
390
 
 
391
    - Pipermail / archiving
 
392
        o Reworked the directory layout for archive attachments to be
 
393
          less susceptible to inode overload.  Attachments are now
 
394
          placed in
 
395
 
 
396
          archives/private/<listname>/attachments/<YYYYMMDD>/<msgidhash>
 
397
 
 
398
        o Internationalization support in the archiver has been improved.
 
399
 
 
400
    - Internationalization
 
401
        o New languages: Swedish.
 
402
 
 
403
    - Mail handling
 
404
        o Content filtering now has a pass_mime_type variable, which
 
405
          is a whitelist of MIME types to allow in postings.  See the
 
406
          details of the variable in the Content Filtering category
 
407
          for more information.
 
408
 
 
409
        o If a member has enabled their DontReceiveDuplicates option,
 
410
          we'll also strip their addresses from the Cc headers in the
 
411
          copy of the message sent to the list.  This helps keep the
 
412
          Cc lines from growing astronomically.
 
413
 
 
414
        o Bounce messages are now forwarded to the list administrators
 
415
          both if they are unrecognized, and if no list member's
 
416
          address could be extracted.
 
417
 
 
418
        o Content filtering now has a filter_action variable which
 
419
          controls what happens when a message matches the content
 
420
          filter rules.  The default is still to discard the message.
 
421
 
 
422
        o When searching for an Approve/Approved header, the first
 
423
          non-whitespace line of the body of the message is also
 
424
          checked, if the body has a MIME type of text/plain.
 
425
 
 
426
        o If a list is personalized, and the list's posting address is
 
427
          not included in a Reply-To header, the posting address is
 
428
          copied into a Cc header, otherwise there was no (easy) way a
 
429
          recipient could reply back to the list.
 
430
 
 
431
        o Added a MS Exchange bounce recognizer.
 
432
 
 
433
        o New configuration variable news_moderation which allows the
 
434
          mail->news gateway to properly post to moderated newsgroups.
 
435
 
 
436
        o Messages sent to a list's owners now comes from the site
 
437
          list to prevent mail loops when list owners or moderators
 
438
          having bouncing addresses.
 
439
 
 
440
    - Miscellaneous
 
441
        o mailanctl prevents runaway restarts by imposing a maximum
 
442
          restart value (defaulting to 10) for restarting the
 
443
          qrunners.  If you hit this limit, do "mailmanctl stop"
 
444
          followed by "mailmanctl start".
 
445
 
 
446
        o The Membership Management page's search feature now includes
 
447
          searching on members real names.
 
448
 
 
449
        o The start of a manual for list administrators is given in
 
450
          Python HOWTO format (LaTeX).  It's in doc/mailman-admin.tex
 
451
          but it still needs lots of fleshing out.
 
452
 
 
453
        o More protections against creating a list with an invalid name.
 
454
 
 
455
2.1 beta 3 (09-Aug-2002)
 
456
 
 
457
    The usual assortment of bug fixes and language updates.
 
458
 
 
459
    - New languages: Dutch, Portuguese (Brazil)
 
460
 
 
461
    - New configure script options: --with-mailhost, --with-urlhost,
 
462
      --without-permcheck.  See ./configure --help for details.
 
463
 
 
464
    - The encoding of Subject: prefixes is controlled by a new list
 
465
      option encode_ascii_prefixes.  This is useful for languages with
 
466
      character sets other than us-ascii.  See the Languages admin
 
467
      page for details.
 
468
 
 
469
    - A new list option news_prefix_subject_too controls whether
 
470
      postings gated from mail to news should have the subject prefix
 
471
      added to their Subject: header.
 
472
 
 
473
    - The algorithm for upgrading the moderation controls for a
 
474
      Mailman 2.0.x list has changed.  The change should be
 
475
      transparent, but you'll want to double check the moderation
 
476
      controls after upgrading from MM2.0.x.  This should have no
 
477
      effect for upgrades from a previous MM2.1 beta.
 
478
 
 
479
      See the UPGRADING file for details.
 
480
 
 
481
    - On the Mass Subscribe admin page, a text box has been added so
 
482
      that the admin can add a custom message to be prepended to the
 
483
      welcome/invite notification.
 
484
 
 
485
    - On the admindb page, a link is included to more easily reload
 
486
      the page.
 
487
 
 
488
    - The Sendmail.py delivery module is sabotaged so that it can't be
 
489
      used naively.  You need to read the comments in the file and
 
490
      edit the code to use this unsafe module.
 
491
 
 
492
    - When a member sends a `help' command to the request address,
 
493
      the url to their options page is included in the response.
 
494
 
 
495
    - Autoresponses, -request command responses, and posting hold
 
496
      notifications are inhibited for any message that has a
 
497
      Precedence: {bulk|list|junk} header.  This is to avoid mail
 
498
      loops between email 'bots.  If the original message has an
 
499
      X-Ack: yes header, the response is sent.
 
500
 
 
501
      Responses are also limited to a maximum number per day, as
 
502
      defined in the site variable MAX_AUTORESPONSES_PER_DAY.  This is
 
503
      another guard against 'bot loops, and it defaults to 10.
 
504
 
 
505
    - When a Reply-To: header is munged to include both the original
 
506
      and the list address, the list address is always added last.
 
507
 
 
508
    - The cron/mailpasswds script has grown a -l/--listname option.
 
509
 
 
510
    - The cron/disabled script has grown options to send out
 
511
      notifications for reasons other than bounce-disabled.  It has
 
512
      also grown a -f/--force option.  See cron/disabled --help for
 
513
      details.
 
514
 
 
515
    - The bin/dumpdb script has grown a -n/--noprint option.
 
516
 
 
517
    - An experimental new mechanism for processing incoming messages
 
518
      has been added.  If you can configure your MTA to do qmail-style
 
519
      Maildir delivery, Mailman now has a MaildirRunner qrunner.  This
 
520
      may turn out to be much more efficient and scalable, but for
 
521
      MM2.1, it will not be officially supported.  See Defaults.py.in
 
522
      and Mailman/Queue/MaildirRunner.py for details.
 
523
 
 
524
2.1 beta 2 (05-May-2002)
 
525
 
 
526
    Lots of bug fixing, and the following new features and changes:
 
527
 
 
528
    - A "de-mime" content filter feature has been added.  This
 
529
      oft-requested feature allows you to specify MIME types that
 
530
      Mailman should strip off of any messages before they're posted
 
531
      to the list.  You can also optionally convert text/html to
 
532
      text/plain (by default, through lynx if it's available).
 
533
 
 
534
    - Changes to the way the RFC 2919 and 2369 headers (i.e. the
 
535
      List-*: headers) are added:
 
536
          o List-Id: is always added
 
537
          o List-Post:, List-Help:, List-Subscribe:,
 
538
            List-Unsubscribe:, and List-Archive: are only added to
 
539
            posting messages.
 
540
          o X-List-Administrivia: is only added to messages Mailman
 
541
            creates and sends out of its own accord.
 
542
 
 
543
      Also, if the site administrator allows it, list owners can
 
544
      suppress the addition of all the List-*: headers.  List owners
 
545
      can also separately suppress the List-Post: header for
 
546
      announce-only lists.
 
547
 
 
548
    - A new framework for email commands has been added.  This allows
 
549
      you to easily add, delete, or change the email commands that
 
550
      Mailman understands, on a per-site, per-list, or even per-user
 
551
      basis.
 
552
 
 
553
    - Users can now change their digest delivery type from MIME to
 
554
      plain text globally, for all lists they are subscribed to.
 
555
 
 
556
    - No language select pulldowns are shown if the list only supports
 
557
      one language.
 
558
 
 
559
    - More mylist-admin eradication.
 
560
 
 
561
    - Several performance improvements in the bounce qrunner, one of
 
562
      which is to make it run only once per minute instead of once per
 
563
      second.
 
564
 
 
565
    - Korean language support as been added.
 
566
 
 
567
    - Gatewaying from news -> mail uses its connections to the nntpd
 
568
      more efficiently.
 
569
 
 
570
    - In bin/add_members, -n/--non-digest-members-file command line
 
571
      switch is deprecated in favor of -r/--regular-members-file.
 
572
 
 
573
    - bin/sync_members grew a -g/--goodbye-msg switch.
 
574
 
 
575
2.1 beta 1 (16-Mar-2002)
 
576
 
 
577
    In addition to the usual bug fixes, performance improvements, and
 
578
    GUI changes, here are the highlights:
 
579
 
 
580
    - MIME and other message handling
 
581
        o More robustness against badly MIME encapsulated messages: if
 
582
          a MessageParseError is raised during the initial parse, the
 
583
          message can either be discarded or saved in qfiles/bad,
 
584
          depending on the value of the new configuration variable
 
585
          QRUNNER_SAVE_BAD_MESSAGES.
 
586
 
 
587
        o There is a new per-user option that can be used to avoid
 
588
          receipt of extra copies, when a member of the list is also
 
589
          explicitly CC'd.
 
590
 
 
591
        o Always add an RFC 2822 Date: header if missing, since not
 
592
          all MTAs insert one automatically.
 
593
 
 
594
        o The Sender: and Errors-To: headers are no longer added to
 
595
          outgoing messages.
 
596
 
 
597
        o Headers and footers are always added by concatenation, if
 
598
          the message is not MIME and if the list's charset is a
 
599
          superset of us-ascii.
 
600
 
 
601
    - List administration
 
602
        o An `invitation' feature has been added.  This is selectable
 
603
          as a radio button on the mass subscribe page.  When
 
604
          selected, users are invited to join instead of immediately
 
605
          joined, i.e. they get a confirmation message.
 
606
 
 
607
        o You can now enable and disable list owner notifications for
 
608
          disabled-due-to-bouncing and removal-due-to-bouncing
 
609
          actions.  The site config variables
 
610
          DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE and
 
611
          DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL control the default
 
612
          behavior.
 
613
 
 
614
        o List owners can now decide whether they receive unrecognized
 
615
          bounce messages or not (i.e. messages that the bounce
 
616
          processor doesn't recognize).  Site admins can set the
 
617
          default value for this flag with the config variable
 
618
          DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER.
 
619
 
 
620
        o The admindb summary page gives the option of clearing the
 
621
          moderation flag of members who are on quarantined.
 
622
 
 
623
        o The action to take when a moderated member posts to a list
 
624
          is now configurable.  The message can either be held,
 
625
          rejected (bounced), or discarded.  If the message is
 
626
          rejected, a rejection notice string can be given.
 
627
 
 
628
        o In the General admin page, you can now set the default value
 
629
          for five per-user flags: concealing the user's email
 
630
          address, acknowledging posts sent by the user, copy
 
631
          suppression, not-me-too selection, and the default digest
 
632
          type.  Site admins can set the default bit field with the
 
633
          new DEFAULT_NEW_MEMBER_OPTIONS variable.
 
634
 
 
635
        o A new "Emergency brake" feature for turning on moderation of
 
636
          all list postings.  This is useful for when flamewars break
 
637
          out, and the list needs a cooling off period.  Messages
 
638
          containing an Approved: header with the list owner password
 
639
          are still allowed through, as are messages approved through
 
640
          the admindb interface.
 
641
 
 
642
        o When a moderated message is approved for the list, add an
 
643
          X-Mailman-Approved-At: header which contains the timestamp
 
644
          of the approval action (changed from X-Moderated: with a
 
645
          different format).
 
646
 
 
647
        o Lists can now be converted to using a less error prone
 
648
          mechanism for variable substitution syntax in headers and
 
649
          footers.  Instead of %(var)s strings, you'd use $var
 
650
          strings.  You must use "bin/withlist -r convert" to enable
 
651
          this.
 
652
 
 
653
        o When moderating held messages, the header text box and the
 
654
          message excerpt text box are now both read-only.
 
655
 
 
656
        o You can't delete the site list through the web.
 
657
 
 
658
        o When creating new lists through the web, you have the option
 
659
          of setting the "default member moderation" flag.
 
660
 
 
661
    - Security and privacy
 
662
        o New feature: banned subscription addresses.  Privacy
 
663
          options/subscription rules now have an additional list box
 
664
          which can contain addresses or regular expressions.
 
665
          Subscription requests from any matching address are
 
666
          automatically rejected.
 
667
 
 
668
        o Membership tests which compare message headers against list
 
669
          rosters are now more robust.  They now check, by default
 
670
          these header in order: From:, unixfrom, Reply-To:, Sender:.
 
671
          If any match, then the membership test succeeds.
 
672
 
 
673
        o ALLOW_SITE_ADMIN_COOKIES is a new configuration variable
 
674
          which says whether to allow AuthSiteAdmin cookies or not.
 
675
          Normally, when a list administrator logs into a list with
 
676
          the site password, they are issued a cookie that only allows
 
677
          them to do administration for this one list.  By setting
 
678
          ALLOW_SITE_ADMIN_COOKIES to 1, the user only needs to
 
679
          authenticate to one list with the site password, and they
 
680
          can administer any mailing list.
 
681
 
 
682
          I'm not sure this feature is wise, so the default value for
 
683
          ALLOW_SITE_ADMIN_COOKIES is 0.
 
684
 
 
685
        o Marc MERLIN's new recipes for secure Linuxes have been
 
686
          updated.
 
687
 
 
688
        o DEFAULT_PRIVATE_ROSTER now defaults to 1.
 
689
 
 
690
        o Passwords are no longer included in the confirmation pages.
 
691
 
 
692
    - Internationalization
 
693
        o With the approval of Tamito KAJIYAMA, the Japanese codecs
 
694
          for Python are now included automatically, so you don't need
 
695
          to download and install these separate.  It is installed in
 
696
          a Mailman-specific place so it won't affect your larger
 
697
          Python installation.
 
698
 
 
699
        o The configure script will produce a warning if the Chinese
 
700
          codes are not installed.  This is not a fatal error.
 
701
 
 
702
        o Russian templates and catalogs have been added.
 
703
 
 
704
        o Finnish templates and catalogs have been added.
 
705
 
 
706
    - Scripts and utilities
 
707
        o New program bin/unshunt to safely move shunted messages back
 
708
          into the appropriate processing queue.
 
709
 
 
710
        o New program bin/inject for sending a plaintext message into
 
711
          the incoming queue from the command line.
 
712
 
 
713
        o New cron script cron/disabled for periodically culling the
 
714
          disabled membership.
 
715
 
 
716
        o bin/list_members has grown some new command line switches
 
717
          for filtering on different criteria (digest mode, disable
 
718
          mode, etc.)
 
719
 
 
720
        o bin/remove_members has grown the --fromall switch.
 
721
 
 
722
        o You can now do a bin/rmlist -a to remove an archive even
 
723
          after the list has been deleted.
 
724
 
 
725
        o bin/update removes the $prefix/Mailman/pythonlib directory.
 
726
 
 
727
        o bin/withlist grows a --all/-a flag so the --run/-r option
 
728
          can be applied to all the mailing lists.  Also, interactive
 
729
          mode is now the default if -r isn't used.  You don't need to
 
730
          run this script as "python -i bin/withlist" anymore.
 
731
 
 
732
        o There is a new script contrib/majordomo2mailman.pl which
 
733
          should ease the transition from Majordomo to Mailman.
 
734
 
 
735
    - MTA integration
 
736
        o Postfix integration has been made much more robust, but now
 
737
          you have to set POSTFIX_ALIAS_CMD and POSTFIX_MAP_CMD to
 
738
          point to the postalias and postmap commands respectively.
 
739
 
 
740
        o VERP-ish delivery has been made much more efficient by
 
741
          eliminating extra disk copies of messages for each recipient
 
742
          of a VERP delivery.  It has also been made more robust in
 
743
          the face of failures during chunk delivery.  This required a
 
744
          rewrite of SMTPDirect.py and one casualty of that rewrite
 
745
          was the experimental threaded delivery.  It is no longer
 
746
          supported (but /might/ be resurrected if there's enough
 
747
          demand -- or a contributed patch :).
 
748
 
 
749
        o A new site config variable SMTP_MAX_SESSIONS_PER_CONNECTION
 
750
          specifies how many consecutive SMTP sessions will be
 
751
          conducted down the same socket connection.  Some MTAs have a
 
752
          limit on this.
 
753
 
 
754
        o Support for VERP-ing confirmation messages.  These are less
 
755
          error prone since the Subject: header doesn't need to be
 
756
          retained, and they allow a more user friendly (and i18n'd)
 
757
          Subject: header.  VERP_CONFIRM_FORMAT, VERP_CONFIRM_REGEXP,
 
758
          and VERP_CONFIRMATIONS control this feature (only supported
 
759
          for invitation confirmations currently, but will be expanded
 
760
          to the other confirmations).
 
761
 
 
762
        o Several new list-centric addresses have been added:
 
763
          -subscribe and -unsubscribe are synonyms for -join and
 
764
          -leave, respectively.  Also -confirm has been added to
 
765
          support VERP'd confirmations.
 
766
 
 
767
    - Archiver
 
768
        o There's now a default page for the Pipermail archive link
 
769
          for when no messages have yet been posted to the list.
 
770
 
 
771
        o Just the mere presence of an X-No-Archive: is enough to
 
772
          inhibit archiving for this message; the value of the header
 
773
          is now ignored.
 
774
 
 
775
    - Configuring, building, installing
 
776
        o Mailman now has a new favicon, donated by Terry Oda.  Not
 
777
          all web pages are linked to the favicon yet though.
 
778
 
 
779
        o The add-on email package is now distributed and installed
 
780
          automatically, so you don't need to do this.  It is
 
781
          installed in a Mailman-specific place so it won't affect
 
782
          your larger Python installation.
 
783
 
 
784
        o The default value of VERP_REGEXP has changed.
 
785
 
 
786
        o New site configuration variables BADQUEUE_DIR and
 
787
          QRUNNER_SAVE_BAD_MESSAGES which describe where to save
 
788
          messages which are not properly MIME encoded.
 
789
 
 
790
        o configure should be more POSIX-ly conformant.
 
791
 
 
792
        o The Mailman/pythonlib directory has been removed, but a new
 
793
          $prefix/pythonlib directory has been added.
 
794
 
 
795
        o Regression tests are now installed.
 
796
 
 
797
        o The second argument to add_virtual() calls in mm_cfg.py are
 
798
          now optional.
 
799
 
 
800
        o DEFAULT_FIRST_STRIP_REPLY_TO now defaults to 0.
 
801
 
 
802
        o Site administrators can edit the Mailman/Site.py file to
 
803
          customize some filesystem layout policies.
 
804
 
 
805
 
 
806
2.1 alpha 4 (31-Dec-2001)
 
807
 
 
808
    - The administrative requests database page (admindb) has been
 
809
      redesigned for better usability when there are lots of held
 
810
      postings.  Changes include:
 
811
        o A summary page which groups held messages by sender email
 
812
          address.  On this page you can dispose of all the sender's
 
813
          messages in one action.  You can also view the details of
 
814
          all the sender's messages, or the details of a single
 
815
          message.  You can also add the sender to one of the list's
 
816
          sender filters.
 
817
 
 
818
        o A details page where you can view all messages, just those
 
819
          for a particular sender, or just a single held message.
 
820
          This details page is laid out the same as the old admindb
 
821
          page.
 
822
 
 
823
        o The instructions have been shorted on the summary and
 
824
          details page, with links to more detailed explanations.
 
825
 
 
826
    - Bounce processing
 
827
        o Mailman now keeps track of the reason a member's delivery
 
828
          has been disabled: explicitly by the administrator,
 
829
          explicitly by the user, by the system due to excessive
 
830
          bounces, or for (legacy) unknown reasons.
 
831
 
 
832
        o A new bounce processing algorithm has been implemented (we
 
833
          might actually understand this one ;).  When an address
 
834
          starts bouncing, the member gets a "bounce score".  Hard
 
835
          (fatal) bounces score 1.0, while soft (transient) bounces
 
836
          score 0.5.
 
837
 
 
838
          List administrators can specify a bounce threshold above
 
839
          which a member gets disabled.  They can also specify a time
 
840
          interval after which, if no bounces are received from the
 
841
          member, the member's bounce score is considered stale and is
 
842
          thrown away.
 
843
 
 
844
        o A new cron script, cron/disabled, periodically sends
 
845
          notifications to members who are bounce disabled.  After a
 
846
          certain number of warnings the member is deleted from the
 
847
          list.  List administrators can control both the number of
 
848
          notifications and the amount of time between notifications.
 
849
 
 
850
          Notifications include a confirmation cookie that the member
 
851
          can use to re-enable their subscription, via email or web.
 
852
 
 
853
        o New configuration variables to support the bounce processing
 
854
          are DEFAULT_BOUNCE_SCORE_THRESHOLD,
 
855
          DEFAULT_BOUNCE_INFO_STALE_AFTER,
 
856
          DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS,
 
857
          DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL.
 
858
 
 
859
    - Privacy and security
 
860
        o Sender filters can now be regular expressions.  If a line
 
861
          starts with ^ it is taken as a (raw string) regular
 
862
          expression, otherwise it is a literal email address.
 
863
 
 
864
        o Fixes in 2.0.8 ported forward: prevent cross-site scripting
 
865
          exploits.
 
866
 
 
867
    - Mail delivery
 
868
        o Aliases have all been changed so that there's more
 
869
          consistency between the alias a message gets delivered to,
 
870
          and the script & queue runner that handles the message.
 
871
 
 
872
          I've also renamed the mail wrapper script to `mailman' from
 
873
          `wrapper' to avoid collisions with other MLM's.  You /will/
 
874
          need to regenerate your alias files with bin/genaliases, and
 
875
          you may need to update your smrsh (Sendmail) configs.a
 
876
 
 
877
          Bounces always go to listname-bounces now, since
 
878
          administration has been separated from bounce processing.
 
879
          listname-admin is obsolete.
 
880
 
 
881
        o VERP support!  This greatly improves the accuracy of bounce
 
882
          detection.  Configuration variables which control this feature
 
883
          include VERP_DELIVERY_INTERVAL, VERP_PERSONALIZED_DELIVERIES,
 
884
          VERP_PASSWORD_REMINDERS, VERP_REGEXP, and VERP_FORMAT.  The
 
885
          latter two must be tuned to your MTA.
 
886
 
 
887
        o A new alias mailman-loop@dom.ain is added which directs all
 
888
          output to the file $prefix/data/owner-bounces.mbox.  This is
 
889
          used when sending messages to the site list owners, as the
 
890
          final fallback for bouncing messages.
 
891
 
 
892
        o New configuration variable POSTFIX_STYLE_VIRTUAL_DOMAINS
 
893
          which should be set if you are using the Postfix MTA and
 
894
          want Mailman to play nice with Postfix-style virtual
 
895
          domains.
 
896
 
 
897
    - Miscellaneous
 
898
        o Better interoperability with Python 2.2.
 
899
 
 
900
        o MailList objects now record the date (in seconds since
 
901
          epoch) that they were created.  This is in a hidden
 
902
          attribute `created_at'.
 
903
 
 
904
        o bin/qrunner grows a -s/--subproc switch which is usually
 
905
          used only when it's started from mailmanctl.
 
906
 
 
907
        o bin/newlist grows a -l/--language option so that the list's
 
908
          preferred language can be set from the command line.
 
909
 
 
910
        o cron changes: admin reminders go out at 8am local time instead
 
911
          of 10pm local time.
 
912
 
 
913
    - Pipermail archiver
 
914
        o MIME attachments are scrubbed out into separate files which
 
915
          can be viewed by following a link in the original article.
 
916
          Article contains an indication of the size of the
 
917
          attachment, its type, and other useful information.
 
918
 
 
919
        o New script bin/cleanarch which can be used to `clean' an
 
920
          .mbox archive file by fixing unescaped embedded Unix From_
 
921
          lines.
 
922
 
 
923
        o New configuration variable ARCHIVE_SCRUBBER in
 
924
          Defaults.py.in which names the module that Pipermail should
 
925
          use to scrub articles of MIME attachments.
 
926
 
 
927
        o New configuration variable ARCHIVE_HTML_SANITIZER which
 
928
          describes how the scrubber should handle text/html
 
929
          attachments.
 
930
 
 
931
        o PUBLIC_ARCHIVE_URL has change its semantics.  It is now an
 
932
          absolute url, with the hostname and listname parts
 
933
          interpolated into it on a per-list basis.
 
934
 
 
935
        o Pipermail should now provide the proper character set in the
 
936
          Content-Type: header for archived articles.
 
937
 
 
938
    - Internationalization
 
939
        o Czech translations by Dan Ohnesorg.
 
940
 
 
941
        o The Hungarian charset has be fixed to be iso-8859-2.
 
942
 
 
943
        o The member options login page now has a language selection
 
944
          widget.
 
945
 
 
946
    - Building, configuration
 
947
        o email-0.96 package is required (see the misc directory).
 
948
 
 
949
        o New recipes for integrating Mailman and Sendmail,
 
950
          contributed by David Champion.
 
951
 
 
952
 
 
953
2.1 alpha 3 (22-Oct-2001)
 
954
 
 
955
    - Realname support
 
956
        o Mailman now tracks a member's Real Name in addition to their
 
957
          email address.
 
958
 
 
959
        o List members can now supply their Real Names when
 
960
          subscribing via the web.  Their Real Names are parsed from
 
961
          any thru-email subscriptions.
 
962
 
 
963
        o Members can change their Real Names on their options page,
 
964
          and admins can change members' Real Names on the membership
 
965
          pages.  Mass subscribing accepts "email@dom.ain (Real Name)"
 
966
          and "Real Name <email@dom.ain>" entries, for both
 
967
          in-text-box and file-upload mass subscriptions.
 
968
 
 
969
    - Filtering and Privacy
 
970
        o Reply-To: munging has been enhanced to allow a wider range
 
971
          of list policies.  You can now pre-strip any Reply-To:
 
972
          headers before adding list-specific ones (i.e. you can
 
973
          override or extend existing Reply-To: headers).  If
 
974
          stripping, the old headers are no longer saved on
 
975
          X-Reply-To:
 
976
 
 
977
        o New sender moderation rules.  The old `posters',
 
978
          `member_only_posting', `moderated' and `forbidden_posters'
 
979
          options have been removed in favor of a new moderation
 
980
          scheme.  Each member has a personal moderation bit, and
 
981
          non-member postings can be automatically accepted, held for
 
982
          approval, rejected (bounced) or discarded.
 
983
 
 
984
        o When membership rosters are private, responses to
 
985
          subscription (and other) requests are made more generic so
 
986
          that these processes can't be covertly mined for hidden
 
987
          addresses.  If a subscription request comes in for a user
 
988
          who is already subscribed, the user is notified of potential
 
989
          membership mining.
 
990
 
 
991
        o When a held message is approved via the admindb page, an
 
992
          X-Moderated: header is added to the message.
 
993
 
 
994
        o List admins can now set an unsubscribe policy which requires
 
995
          them to approve of member unsubscriptions.
 
996
 
 
997
    - Web U/I
 
998
        o All web confirmations now require a two-click procedure,
 
999
          where the first click gives them a page that allows them to
 
1000
          confirm or cancel their subscription.  It is bad form for an
 
1001
          email click (HTTP GET) to have side effects.
 
1002
 
 
1003
        o Lots of improvements for clarity.
 
1004
 
 
1005
        o The Privacy category has grown three subcategories.
 
1006
 
 
1007
        o The General options page as a number of subsection headers.
 
1008
 
 
1009
        o The Passwords and Languages categories are now on separate
 
1010
          admin pages.
 
1011
 
 
1012
        o The admin subcategories are now formated as two columns in
 
1013
          the top and bottom legends.
 
1014
 
 
1015
        o When creating a list through the web, you can now specify
 
1016
          the initial list of supported languages.
 
1017
 
 
1018
        o The U/I for unsubscribing a member on the admin's membership
 
1019
          page should be more intuitive now.
 
1020
 
 
1021
        o There is now a separate configuration option for whether the
 
1022
          goodbye_msg is sent when a member is unsubscribed.
 
1023
 
 
1024
    - Performance
 
1025
        o misc/mailman is a Unix init script, appropriate for
 
1026
          /etc/init.d, and containing chkconfig hooks for systems that
 
1027
          support it.
 
1028
 
 
1029
        o bin/mailmanctl has been rewritten; the `restart' command
 
1030
          actually works now.  It now also accepts -s, -q, and -u
 
1031
          options.
 
1032
 
 
1033
        o bin/qrunner has been rewritten too; it can serve the role of
 
1034
          the old cron/qrunner script for those who want classic
 
1035
          cron-invoked mail delivery.
 
1036
 
 
1037
        o Internally, messages are now stored in the qfiles directory
 
1038
          primarily as pickles.  List configuration databases are now
 
1039
          stored as pickles too (i.e. config.pck).  bin/dumpdb knows
 
1040
          how to display both pickles and marshals.
 
1041
 
 
1042
    - Mail delivery
 
1043
        o If a user's message is held for approval, they are sent a
 
1044
          notification message containing a confirmation cookie.  They
 
1045
          can use this confirmation cookie to cancel their own
 
1046
          postings (if they haven't already been approved).
 
1047
 
 
1048
        o When held messages are forwarded to an explicit address
 
1049
          using the admindb page, it is done so  in a message/rfc822
 
1050
          encapsulation.
 
1051
 
 
1052
        o When a message is first held for approval, the notification
 
1053
          sent to the list admin is a 3-part multipart/mixed.  The
 
1054
          first part holds the notification message, the second part
 
1055
          hold the original message, and the third part hold a cookie
 
1056
          confirmation message, to which the admin can respond to
 
1057
          approve or discard the message via email.
 
1058
 
 
1059
        o In the mail->news gateway, you can define mail headers that
 
1060
          must be modified or deleted before the message can be posted
 
1061
          to the nntp server.
 
1062
 
 
1063
        o The list admin can send an immediate urgent message to the
 
1064
          entire list membership, bypassing digest delivery.  This is
 
1065
          done by adding an Urgent: header with the list password.
 
1066
          Urgent messages with an invalid password are rejected.
 
1067
 
 
1068
        o Lists can now optionally personalize email messages, if the
 
1069
          site admin allows it.  Personalized messages mean that the
 
1070
          To: header includes the recipient's address instead of the
 
1071
          list's address, and header and footer messages can contain
 
1072
          user-specific information.  Note that only regular
 
1073
          deliveries can currently be personalized.
 
1074
 
 
1075
        o Message that come from Usenet but that have broken MIME
 
1076
          boundaries are ignored.
 
1077
 
 
1078
        o If the site administrator agrees, list owners have the
 
1079
          ability to disable RFC 2369 List-* headers.
 
1080
 
 
1081
        o There is now an API for an external process to post a
 
1082
          message to a list.  This posting process can also specify an
 
1083
          explicit list of recipients, in effect turning the mailing
 
1084
          list into a "virtual list" with a fluid membership.  See
 
1085
          Mailman/Post.py for details.
 
1086
 
 
1087
    - Building/testing/configuration
 
1088
        o mimelib is no longer required, but you must install the
 
1089
          email package (see the tarball in the misc directory).
 
1090
 
 
1091
        o An (as yet) incomplete test suite has been added.  Don't try
 
1092
          running it in a production environment!
 
1093
 
 
1094
        o Better virtual host support by adding a mapping from the
 
1095
          host name given in cgi's HTTP_HOST/SERVER_NAME variable to
 
1096
          the email host used in list addresses.  (E.g. www.python.org
 
1097
          maps to @python.org).
 
1098
 
 
1099
        o Specifying urls to external public archivers is more
 
1100
          flexible.
 
1101
 
 
1102
        o The filters/ subdirectory has been removed.
 
1103
 
 
1104
        o There is now a `site list' which is a mailing list that must
 
1105
          be created first, and from which all password reminders
 
1106
          appear to come from.  It is recommended that this list be
 
1107
          called "mailman@your.site".
 
1108
 
 
1109
        o bin/move_list is no longer necessary (see the FAQ for
 
1110
          detailed instructions on renaming a list).
 
1111
 
 
1112
        o A new script bin/fix_url.py can be used with bin/withlist to
 
1113
          change a list's web_page_url configuration variable (since
 
1114
          it is no longer modifiable through the web).
 
1115
 
 
1116
    - Internationalization
 
1117
        o Support for German, Hungarian, Italian, Japanese, and
 
1118
          Norwegian have been added.
 
1119
 
 
1120
    - Miscellaneous
 
1121
        o Lots of new bounce detectors.  Bounce detectors can now
 
1122
          discard temporary bounce messages by returning a special
 
1123
          Stop value.
 
1124
 
 
1125
        o bin/withlist now sports a -q/--quiet flag.
 
1126
 
 
1127
        o bin/add_members has a new -a/--admin-notify flag which can
 
1128
          be used to inhibit list owner notification for each
 
1129
          subscription.
 
1130
 
 
1131
    - Membership Adaptors
 
1132
        o Internally, mailing list memberships are accessed through a
 
1133
          MemberAdaptor interface.  This would allow for integrating
 
1134
          membership databases with external sources (e.g. Zope or
 
1135
          LDAP), although the only MemberAdaptor currently implemented
 
1136
          is a "classic" adaptor which stores the membership
 
1137
          information on the MailList object.
 
1138
 
 
1139
        o There's a new pipeline handler module called FileRecips.py
 
1140
          which could be used to get all regular delivery mailing list
 
1141
          recipients from a Sendmail-style :include: file (see List
 
1142
          Extensibility bullet below).
 
1143
 
 
1144
          This work was sponsored by Control.com
 
1145
 
 
1146
    - List Extensibility
 
1147
        o A framework has been added which can be used to specialize
 
1148
          and extend specific mailing lists.  If there is a file
 
1149
          called lists/<yourlist>/extend.py, it is execfile()'d after
 
1150
          the MailList object is instantiated.  The file should
 
1151
          contain a function extend() which will be called with the
 
1152
          MailList instance.  This function can do all sorts of deep
 
1153
          things, like modify the handler pipeline just for this list,
 
1154
          or even strip out particular admin GUI elements (see below).
 
1155
 
 
1156
        o All the admin page GUI elements are now separate
 
1157
          components.  This provides greater flexibility for list
 
1158
          customization.  Also, each GUI element will be given an
 
1159
          opportunity to handle admin CGI form data.
 
1160
 
 
1161
          This work was sponsored by Control.com
 
1162
 
 
1163
    - Topic Filters
 
1164
        o A new feature has been added called "Topic Filters".  A list
 
1165
          administrator can create topics, which are essentially
 
1166
          regular expression matches against Subject: and Keyword:
 
1167
          headers (including such pseudo-headers if they appear in the
 
1168
          first few lines of the body of a message).
 
1169
 
 
1170
          List members can then `subscribe' to various topics, which
 
1171
          allows them to filter out any messages that don't match a
 
1172
          topic, or to filter out any message that does match a
 
1173
          topic.  This can be useful for high volume lists where not
 
1174
          everyone will be interested in every message.
 
1175
 
 
1176
          This work was sponsored by Control.com
 
1177
 
 
1178
2.1 alpha 2 (11-Jul-2001)
 
1179
 
 
1180
    - Building
 
1181
        o mimelib 0.4 is now required.  Get it from
 
1182
          http://mimelib.sf.net.  If you've installed an earlier
 
1183
          version of mimelib, you must upgrade.
 
1184
 
 
1185
        o /usr/local/mailman is now the default installation
 
1186
          directory.  Use configure's --prefix switch to change it
 
1187
          back to the default (/home/mailman) or any other
 
1188
          installation directory of your choice.
 
1189
 
 
1190
    - Security
 
1191
        o Better definition of authentication domains.  The following
 
1192
          roles have been defined: user, list-admin, list-moderator,
 
1193
          creator, site-admin.
 
1194
 
 
1195
        o There is now a separate role of "list moderator", which has
 
1196
          access to the pending requests (admindb) page, but not the
 
1197
          list configuration pages.
 
1198
 
 
1199
        o Subscription confirmations can now be performed via email or
 
1200
          via URL.  When a subscription is received, a unique (sha)
 
1201
          confirm URL is generated in the confirmation message.
 
1202
          Simply visiting this URL completes the subscription process.
 
1203
 
 
1204
        o In a similar manner, removal requests (via web or email
 
1205
          command) no longer require the password.  If the correct
 
1206
          password is given, the removal is performed immediately.  If
 
1207
          no password is given, then a confirmation message is
 
1208
          generated.
 
1209
 
 
1210
    - Internationalization
 
1211
        o More I18N patches.  The basic infrastructure should now be
 
1212
          working correctly.  Spanish templates and catalogs are
 
1213
          included, and English, French, Hungarian, and Big5 templates
 
1214
          are included.
 
1215
 
 
1216
        o Cascading specializations and internationalization of
 
1217
          templates.  Templates are now search for in the following
 
1218
          order: list-specific location, domain-specific location,
 
1219
          site-wide location, global defaults.  Each search location
 
1220
          is further qualified by the language being displayed.  This
 
1221
          means that you only need to change the templates that are
 
1222
          different from the global defaults.
 
1223
 
 
1224
          Templates renamed: admlogin.txt => admlogin.html
 
1225
          Templates added: private.html
 
1226
 
 
1227
    - Web UI
 
1228
        o Redesigned the user options page.  It now sits behind an
 
1229
          authentication so user options cannot be viewed without the
 
1230
          proper password.  The other advantage is that the user's
 
1231
          password need not be entered on the options page to
 
1232
          unsubscribe or change option values.  The login screen also
 
1233
          provides for password mail-back, and unsubscription w/
 
1234
          confirmation.
 
1235
 
 
1236
          Other new features accessible from the user options page
 
1237
          include: ability to change email address (with confirmation)
 
1238
          both per-list and globally for all list on virtual domain;
 
1239
          global membership password changing; global mail delivery
 
1240
          disable/enable; ability to suppress password reminders both
 
1241
          per-list and globally; logout button.
 
1242
 
 
1243
          [Note: the handle_opts cgi has gone away]
 
1244
 
 
1245
        o Color schemes for non-template based web pages can be defined
 
1246
          via mm_cfg.
 
1247
 
 
1248
        o Redesign of the membership management page.  The page is now
 
1249
          split into three subcategories (Membership List, Mass
 
1250
          Subscription, and Mass Removal).  The Membership List
 
1251
          subcategory now supports searching for member addresses by
 
1252
          regular expression, and if necessary, it groups member
 
1253
          addresses first alphabetically, and then by chunks.
 
1254
 
 
1255
          Mass Subscription and Mass Removal now support file upload,
 
1256
          with one address per line.
 
1257
 
 
1258
        o Hyperlinks from the logos in the footers have been removed.
 
1259
          The sponsors got too much "unsubscribe me!" spam from
 
1260
          desperate user of Mailman at other sites.
 
1261
 
 
1262
        o New buttons on the digest admin page to send a digest
 
1263
          immediately (if it's non-empty), to start a new digest
 
1264
          volume with the next digest, and to select the interval with
 
1265
          which to automatically start a new digest volume (yearly,
 
1266
          monthly, quarterly, weekly, daily).
 
1267
 
 
1268
          DEFAULT_DIGEST_VOLUME_FREQUENCY is a new configuration
 
1269
          variable, initially set to give a new digest volume monthly.
 
1270
 
 
1271
        o Through-the-web list creation and removal, using a separate
 
1272
          site-wide authentication role called the "list creator and
 
1273
          destroyer" or simply "list creator".  If the configuration
 
1274
          variable OWNERS_CAN_DELETE_THEIR_OWN_LISTS is set to 1 (by
 
1275
          default, it's 0), then list admins can delete their own
 
1276
          lists.
 
1277
 
 
1278
          This feature requires an adaptor for the particular MTA
 
1279
          you're using.  An adaptor for Postfix is included, as is a
 
1280
          dumb adaptor that just emails mailman@yoursite with the
 
1281
          necessary Sendmail style /etc/alias file changes.  Some MTAs
 
1282
          like Exim can be configured to automatically recognize new
 
1283
          lists.  The adaptor is selected via the MTA option in
 
1284
          mm_cfg.py
 
1285
 
 
1286
    - Email UI
 
1287
        o In email commands, "join" is a synonym for
 
1288
          "subscribe". "remove" and "leave" are synonyms for
 
1289
          "unsubscribe".  New robot addresses are support to make
 
1290
          subscribing and unsubscribing much easier:
 
1291
 
 
1292
          mylist-join@mysite
 
1293
          mylist-leave@mysite
 
1294
 
 
1295
        o Confirmation messages have a shortened Subject: header,
 
1296
          containing just the word "confirm" and the confirmation
 
1297
          cookie.  This should help for MUAs that like to wrap long
 
1298
          Subject: lines, messing up confirmation.
 
1299
 
 
1300
        o Mailman now recognizes an Urgent: header, which, if it
 
1301
          contains the list moderator or list administrator password,
 
1302
          forces the message to be delivered immediately to all
 
1303
          members (i.e. both regular and digest members).  The message
 
1304
          is also placed in the digest.  If the password is incorrect,
 
1305
          the message will be bounced back to the sender.
 
1306
 
 
1307
    - Performance
 
1308
        o Refinements to the new qrunner subsystem which preserves
 
1309
          FIFO order of messages.
 
1310
 
 
1311
        o The qrunner is no longer started from cron.  It is started
 
1312
          by a Un*x init-style script called bin/mailmanctl (see
 
1313
          below).  cron/qrunner has been removed.
 
1314
 
 
1315
    - Command line scripts
 
1316
        o bin/mailmanctl script added, which is used to start, stop,
 
1317
          and restart the qrunner daemon.
 
1318
 
 
1319
        o bin/qrunner script added which allows a single sub-qrunner
 
1320
          to run once through its processing loop.
 
1321
 
 
1322
        o bin/change_pw script added (eases mass changing of list
 
1323
          passwords).
 
1324
 
 
1325
        o bin/update grows a -f switch to force an update.
 
1326
 
 
1327
        o bin/newlang renamed to bin/addlang; bin/rmlang removed.
 
1328
 
 
1329
        o bin/mmsitepass has grown a -c option to set the list
 
1330
          creator's password.  The site-wide `create' web page is
 
1331
          linked to from the admin overview page.
 
1332
 
 
1333
        o bin/newlist's -o option is removed.  This script also grows
 
1334
          a way of spelling the creation of a list in a specific
 
1335
          virtual domain.
 
1336
 
 
1337
        o The `auto' script has been removed.
 
1338
 
 
1339
        o bin/dumpdb has grown -m/--marshal and -p/--pickle options.
 
1340
 
 
1341
        o bin/list_admins can be used to print the owners of a mailing list.
 
1342
 
 
1343
        o bin/genaliases regenerates from scratch the aliases and
 
1344
          aliases.db file for the Postfix MTA.
 
1345
 
 
1346
    - Archiver
 
1347
        o New archiver date clobbering option, which allows dates to
 
1348
          only be clobber if they are outrageously out-of-date
 
1349
          (default setting is 15 days on either side of received
 
1350
          timestamp).  New configuration variables:
 
1351
 
 
1352
          ARCHIVER_CLOBBER_DATE_POLICY
 
1353
          ARCHIVER_ALLOWABLE_SANE_DATE_SKEW
 
1354
 
 
1355
          The archived copy of messages grows an X-List-Received-Date:
 
1356
          header indicating the time the message was received by
 
1357
          Mailman.
 
1358
 
 
1359
        o PRIVATE_ARCHIVE_URL configuration variable is removed (this
 
1360
          can be calculated on the fly, and removing it actually makes
 
1361
          site configuration easier).
 
1362
 
 
1363
    - Miscellaneous
 
1364
        o Several new README's have been added.
 
1365
 
 
1366
        o Most syslog entries for the qrunner have been redirected to
 
1367
          logs/error.
 
1368
 
 
1369
        o On SIGHUP, qrunner will re-open all its log files and
 
1370
          restart all child processes.  See "bin/mailmanctl restart".
 
1371
 
 
1372
    - Patches and bug fixes
 
1373
        o SF patches and bug fixes applied: 420396, 424389, 227694,
 
1374
          426002, 401372 (partial), 401452.
 
1375
 
 
1376
        o Fixes in 2.0.5 ported forward:
 
1377
            Fix a lock stagnation problem that can result when the
 
1378
            user hits the `stop' button on their browser during a
 
1379
            write operation that can take a long time (e.g. hitting
 
1380
            the membership management admin page).
 
1381
 
 
1382
        o Fixes in 2.0.4 ported forward:
 
1383
            Python 2.1 compatibility release.  There were a few
 
1384
            questionable constructs and uses of deprecated modules
 
1385
            that caused annoying warnings when used with Python 2.1.
 
1386
            This release quiets those warnings.
 
1387
 
 
1388
        o Fixes in 2.0.3 ported forward:
 
1389
            Bug fix release.  There was a small typo in 2.0.2 in
 
1390
            ListAdmin.py for approving an already subscribed member
 
1391
            (thanks Thomas!).  Also, an update to the OpenWall
 
1392
            security workaround (contrib/securelinux_fix.py) was
 
1393
            included.  Thanks to Marc Merlin.
 
1394
 
 
1395
2.1 alpha 1 (04-Mar-2001)
 
1396
 
 
1397
    - Python 2.0 or newer required.  Also required is `mimelib' a new
 
1398
      library for handling MIME documents.  This will be bundled in
 
1399
      future releases, but for now, you must download and install it
 
1400
      (using Python's distutils) from
 
1401
 
 
1402
      http://barry.wooz.org/software/Code/mimelib-0.2.tar.gz
 
1403
 
 
1404
      You need mimelib 0.2 or better.
 
1405
 
 
1406
    - Redesigned qrunner subsystem.  Now there are multiple message
 
1407
      queues, and considerable flexibility in file formats for
 
1408
      integration with external systems.  The current crop of queues
 
1409
      include:
 
1410
 
 
1411
      archive -- for posting messages to an archiver
 
1412
      commands -- for incoming email commands and bounces
 
1413
      in -- for list-destined incoming email
 
1414
      news -- for messages outgoing to a nntp server
 
1415
      out -- for messages outgoing to a smtp server
 
1416
      shunt -- for messages that trigger unexpected exceptions in Mailman
 
1417
      virgin -- for messages that are generated by Mailman
 
1418
 
 
1419
      cron/qrunner is now a long running script that forks off
 
1420
      sub-runners for each of the above queues.  qrunner still plays
 
1421
      nice with cron, but it is expected to be started by init at some
 
1422
      point in the future.  Some support exists for parallel
 
1423
      processing of messages in the queues.
 
1424
 
 
1425
    - Support for internationalization support merged in.  Original
 
1426
      work done by Juan Carlos Rey Anaya and Victoriano Giralt.  I've
 
1427
      tested about 90% of the web side, 50% of the email, and 50% of
 
1428
      the command line / cron scripts.
 
1429
 
 
1430
      New scripts: bin/newlang, bin/rmlang
 
1431
 
 
1432
    - New delivery script `auto' for automatic integration with the
 
1433
      Postfix MTA.
 
1434
 
 
1435
    - A bunch of new bounce detectors.
 
1436
 
 
1437
    Changes ported from Mailman 2.0.2 and 2.0.1:
 
1438
 
 
1439
    - A fix for a potential privacy exploit where a clever list
 
1440
      administrator could gain access to user passwords.  This doesn't
 
1441
      allow them to do much more harm to the user then they normally
 
1442
      could, but they still shouldn't have access to the passwords.
 
1443
 
 
1444
    - In the admindb page, don't complain when approving a
 
1445
      subscription of someone who's already on the list (SF bug
 
1446
      #222409 - Thomas Wouters).
 
1447
 
 
1448
      Also, quote for HTML the Subject: text printed for held
 
1449
      messages, otherwise messages with e.g. "Subject: </table>" could
 
1450
      royally screw page formatting.
 
1451
 
 
1452
    - Docstring fix bin/newlist to remove mention of "immediate"
 
1453
      argument (Thomas Wouters).
 
1454
 
 
1455
    - Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
 
1456
      Thomas Wouters).
 
1457
 
 
1458
    - Bug fix release, namely fixes a buglet in bin/withlist affecting
 
1459
      the -l and -r flags; also a problem that can cause qrunner to
 
1460
      stop processing mail after disk-full events (SourceForge bug
 
1461
      127199).
 
1462
 
 
1463
2.0 final (21-Nov-2000)
 
1464
 
 
1465
    No changes from rc3.
 
1466
 
 
1467
2.0 release candidate 3 (16-Nov-2000)
 
1468
 
 
1469
    - By popular demand, Reply-To: munging policy is now to always
 
1470
      override any Reply-To: header in the original message, if
 
1471
      reply_goes_to_list is set to "This list" or "Explicit Address"
 
1472
 
 
1473
    - bin/newlist given -q/--quiet flag instead of the <immediate>
 
1474
      positional argument
 
1475
 
 
1476
    - Hopefully last fix to DEFAULT_URL not ending in a slash
 
1477
      sensitivity
 
1478
 
 
1479
    - 2.0rc2 buglets fixed:
 
1480
        o newlist argument parsing
 
1481
        o updating with unlocked lists
 
1482
        o HyperArch.py traceback when there's no
 
1483
          Content-Transfer-Encoding: header
 
1484
 
 
1485
    - SourceForge bugs fixed:
 
1486
        122358 (qmail-to-mailman.py listname case folding)
 
1487
 
 
1488
    - SourceForge patches applied:
 
1489
        102373 (qmail-to-mailman.py listname case folding)
 
1490
 
 
1491
2.0 release candidate 2 (10-Nov-2000)
 
1492
 
 
1493
    - Documentation updates: start at admin/www/index.html
 
1494
 
 
1495
    - bin/withlist accepts additional command line arguments when used
 
1496
      with the --run flag; bin/mmsitepass and bin/newlist accept
 
1497
      -h/--help flags
 
1498
 
 
1499
    - bin/newlist has a -o/--output flag to append /etc/aliases
 
1500
      suggestions to a specified file
 
1501
 
 
1502
    - SourceForge bugs fixed:
 
1503
        116615 (README.BSD update), 117015 (duplicate messages on
 
1504
        moderated posts), 117548 (exception in HyperArch.py), 117682
 
1505
        (typos), 121185 (vsnprintf signature), 121591 and 122017
 
1506
        (bogus link after web unsubscribe), 121811 (`subscribe' in
 
1507
        Subject: doesn't get archived)
 
1508
 
 
1509
    - SourceForge patches applied:
 
1510
        101812 (securelinux_fix.py contrib), 102097 (fix for bug
 
1511
        117548), 102211 (additional args for withlist), 102268 (case
 
1512
        insensitive Content-Transfer-Encoding:)
 
1513
 
 
1514
2.0 release candidate 1 (23-Oct-2000)
 
1515
 
 
1516
    - Bug fixes and security patches.
 
1517
 
 
1518
    - Better html rendition of articles in non us-ascii charsets
 
1519
      (Jeremy Hylton).  See VERBATIM_ENCODING variable in
 
1520
      Defaults.py.in for customization.
 
1521
 
 
1522
2.0 beta 6 (22-Sep-2000)
 
1523
 
 
1524
    - Building
 
1525
        o Tested with Python 1.5.2, Python 1.6, and Python 2.0 beta 1.
 
1526
          Conducted on RH Linux 6.1 only, but should work
 
1527
          cross-platform.
 
1528
 
 
1529
        o Configure now accepts --with-username, --with-groupname,
 
1530
          --with-var-prefix flags.  See `configure --help' or the
 
1531
          INSTALL file for details.
 
1532
 
 
1533
        o Setting the CFLAGS environment variable before invoking
 
1534
          configure now works.
 
1535
 
 
1536
        o The icons are now copied into $prefix/icons at install time.
 
1537
          Patch by David Champion.
 
1538
 
 
1539
    - Standards
 
1540
        o Compliance with RFC 2369 (List-*: headers).  Patch by
 
1541
          Darrell Fuhriman.  List-ID: header is kept for historical
 
1542
          reasons.
 
1543
 
 
1544
        o Fixes by Jeremy Hylton to Pipermail in support of non-ASCII
 
1545
          charsets, based on the Content-Type: and encoded-words in
 
1546
          the original message.  Mail headers are now decoded as per
 
1547
          RFC 2047.
 
1548
 
 
1549
        o Many more bounce formats are detected: Microsoft's SMTPSVC,
 
1550
          Compuserve, GroupWise, SMTP32, and the more generic
 
1551
          SimpleMatch (which catches lots of similar but slightly
 
1552
          different formats).
 
1553
 
 
1554
    - Defaults
 
1555
        o Email addresses can now be obscured in Pipermail archives by
 
1556
          setting mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS to 1 (obscuring
 
1557
          is turned off by default).  Patch provided by Chris Snell.
 
1558
 
 
1559
        o The default NNTP host can now be set by editing
 
1560
          mm_cfg.DEFAULT_NNTP_HOST.  Patch by David Champion.
 
1561
 
 
1562
        o The default archiving mode (public/private) can now be set
 
1563
          by editing mm_cfg.DEFAULT_ARCHIVE.  Patch by Ted Cabeen.
 
1564
 
 
1565
    - Web UI
 
1566
        o The variable details pages in the administrators interface
 
1567
          is now `live', i.e. there's a submit button on the details
 
1568
          page.
 
1569
 
 
1570
        o A link to the administrative interface is placed in the
 
1571
          footer of the general user pages (authentication still
 
1572
          required, of course!)
 
1573
 
 
1574
        o The user options change results page has a link back to the
 
1575
          user's main page.
 
1576
 
 
1577
        o In the admindb page (for dealing with held postings), the
 
1578
          default forward address is now listname-owner instead of
 
1579
          listname-admin.  This avoids bounce detection on the
 
1580
          forwarded message.
 
1581
 
 
1582
    - Miscellaneous
 
1583
        o Fixed config.db corruption problem when disk-full errors are
 
1584
          encountered.
 
1585
 
 
1586
        o Command line scripts accept list names case-insensitively.
 
1587
 
 
1588
        o bin/remove_members takes a -a flag to remove all members of
 
1589
          a list in one fell swoop.
 
1590
 
 
1591
        o List admin passwords must be non-empty.
 
1592
 
 
1593
        o Mailman generated passwords are slightly more mnemonic, and
 
1594
          shouldn't have confusing character selections (i.e. `i'
 
1595
          only, but no `1' or `l').
 
1596
 
 
1597
        o Crossposting to two gated mailing lists should be fixed.
 
1598
 
 
1599
        o Many other bug fixes and minor web UI improvements.
 
1600
 
 
1601
2.0 beta 5 (01-Aug-2000)
 
1602
 
 
1603
    - Bug fix release.  This includes a fix for a small security hole
 
1604
      which could be exploited to gain mailman group access by a local
 
1605
      user (not a mail or web user).
 
1606
 
 
1607
    - As part of the fix for the "cookie reauthorization" bug, only
 
1608
      session cookies are used now.  This means that administrative
 
1609
      and private archive cookies expire only when the browser session
 
1610
      is quit, however an explicit "Logout" button has been added.
 
1611
 
 
1612
2.0 beta 4 (06-Jul-2000)
 
1613
 
 
1614
    - Bug fix release.
 
1615
 
 
1616
2.0 beta 3 (29-Jun-2000)
 
1617
 
 
1618
    - Delivery mechanism (qrunner) refined to support immediate
 
1619
      queuing, queuing directly from MTA, and queuing on any error
 
1620
      along the delivery pipeline.  This means 1) that huge lists
 
1621
      can't time out the MTA's program delivery channel; 2) it is much
 
1622
      harder to completely lose messages; 3) eventually, qrunner will
 
1623
      be elaborated to meter delivery to the MTA so as not to swamp
 
1624
      it.  The tradeoff is in more disk I/O since every message coming
 
1625
      into the system (and most that are generated by the system) live
 
1626
      on disk for some part of their journey through Mailman.
 
1627
 
 
1628
      For now, see the Default.py variables QRUNNER_PROCESS_LIFETIME
 
1629
      and QRUNNER_MAX_MESSAGES for primitive resource management.
 
1630
 
 
1631
      The API to the pipeline handler modules has changed.  See
 
1632
      Mailman/Handlers/HandlerAPI.py for details.
 
1633
 
 
1634
    - Revamped admindb web page: held messages are split into headers
 
1635
      and bodies so they are easier to vette; admins can now also
 
1636
      preserve a held message (for spam evidence gathering) or forward
 
1637
      the message to a specified email address; disposition of held
 
1638
      messages can be deferred; held messages have a more context
 
1639
      meaningful default rejection message.
 
1640
 
 
1641
    - Change to the semantics for `acceptable_aliases' list
 
1642
      configuration variable, based on suggestions by Harald Meland.
 
1643
 
 
1644
    - New mm_cfg.py variables NNTP_USERNAME and NNTP_PASSWORD can be
 
1645
      set on a site-wide basis if connection to your nntpd requires
 
1646
      authentication.
 
1647
 
 
1648
    - The list attribute `num_spawns' has been removed.  The mm_cfg.py
 
1649
      variables MAX_SPAWNS, and DEFAULT_NUM_SPAWNS removed too.
 
1650
 
 
1651
    - LIST_LOCK_LIFETIME cranked to 5 hours and LIST_LOCK_TIMEOUT
 
1652
      shortened to 10 seconds.  QRUNNER_LOCK_LIFETIME cranked up to 10
 
1653
      hours.  This should decrease the changes for bogus and harmful
 
1654
      lock breaking.
 
1655
 
 
1656
    - Resent-to: is now one of the headers checked for explicit
 
1657
      destinations.
 
1658
 
 
1659
    - Tons more bounce formats are recognized.  The API to the bounce
 
1660
      modules has changed.
 
1661
 
 
1662
    - A rewritten LockFile module which should fix most (hopefully all)
 
1663
      bugs in the locking machinery.  Many improvements suggested by
 
1664
      Thomas Wouters and Harald Meland.
 
1665
 
 
1666
    - Experimental support (disabled by default) for delivering SMTP
 
1667
      chunks to the MTA via multiple threads.  Your Python executable
 
1668
      must have been compiled with thread support enabled, and you
 
1669
      must set MAX_DELIVERY_THREADS in mm_cfg.py.  Note that this may
 
1670
      not improve your overall system performance.
 
1671
 
 
1672
    - Some changes and additions to scripts: bin/find_member now
 
1673
      supports a -w/--owner flag to match regexps against mailing list
 
1674
      owners; bin/find_member now supports multiple regexps;
 
1675
      cron/gate_news command line option changes; new script
 
1676
      bin/dumbdb for debugging purposes; bin/clone_member can now also
 
1677
      remove the old address and change change the list owner
 
1678
      addresses.
 
1679
 
 
1680
    - The News/Mail gateway admin page has a button that lets you do
 
1681
      an explicit catchup of the newsgroup.
 
1682
 
 
1683
    - The CVS repository has been moved out to SourceForge.  For more
 
1684
      information, see the project summary at
 
1685
 
 
1686
      http://sourceforge.net/project/?group_id=103
 
1687
 
 
1688
    - Lots 'o bug fixes and some performance improvements.
 
1689
 
 
1690
2.0 beta 2 (07-Apr-2000)
 
1691
 
 
1692
    - Rewritten gate_news cron script which should be more efficient
 
1693
      and avoid race and locking problems.  Each list now maintains
 
1694
      its own watermark, and when you use the admin CGI script to turn
 
1695
      on gating from Usenet->mail, an automatic mass catch up is done
 
1696
      to avoid flooding the mailing list.  cron/gate_news's command
 
1697
      line interface has also changed.  See its docstring for
 
1698
      details.
 
1699
 
 
1700
    - A new cron script called qrunner has been added to retry message
 
1701
      deliveries that fail because of temporary smtpd problems.
 
1702
 
 
1703
    - New command line script called bin/list_lists which does exactly
 
1704
      that: lists all the mailing lists on the system (much like the
 
1705
      listinfo CGI does).
 
1706
 
 
1707
    - bin/withlist is now directly executable, however if you want to
 
1708
      use python -i, you must still explicitly invoke it.
 
1709
      bin/withlist also now cleans up after itself by unlocking any
 
1710
      locked lists.  It does NOT save any dirty lists though - you
 
1711
      must do this explicitly.
 
1712
 
 
1713
    - $prefix permissions (and all subdirs) must now be 02775.
 
1714
      bin/check_perms has been updated to fix all the subdir
 
1715
      permissions.
 
1716
 
 
1717
    - "make update" (a.k.a. bin/update) is run automatically when you
 
1718
      do a "make install"
 
1719
 
 
1720
    - The CGI driver script now puts information about the Python
 
1721
      environment into the logs/error file (but not the diagnostic web
 
1722
      page).
 
1723
 
 
1724
    - Bug fixes and some performance improvements
 
1725
 
 
1726
2.0 beta 1 (19-Mar-2000)
 
1727
 
 
1728
    - Python 1.5.2 (or newer) is now required.
 
1729
 
 
1730
    - A new bundled auto-responder has been added.  You can now
 
1731
      configure an autoresponse text for each list's primary
 
1732
      addresses:
 
1733
 
 
1734
        listname@yourhost.com -- the general posting address
 
1735
        listname-request@...  -- the automated "request bot" address
 
1736
        listname-admin@...    -- the human administrator address
 
1737
 
 
1738
    - The standard UI now includes three logos at the bottom of the
 
1739
      page: Dragon's Mailman logo, the Python Powered logo, and the
 
1740
      GNU logo.  All point to their respective home pages.
 
1741
 
 
1742
    - It is now possible to set the Reply-To: field on lists to an
 
1743
      arbitrary address.  NOTE: Reply-To: munging is generally
 
1744
      considered harmful!  However for some read-only lists, it is
 
1745
      useful to direct replies to a parallel discussion list.
 
1746
 
 
1747
    - There is a new message delivery architecture which uses a
 
1748
      pipeline processor for incoming and internally generated
 
1749
      messages.  Mailman no longer contains a bundled bulk-mailer;
 
1750
      instead message delivery is handled completely by the MTA.  Most
 
1751
      MTAs give a high enough priority to connections from the
 
1752
      localhost that mail will not be lost because of system load, but
 
1753
      this is not guaranteed (or handled) by Mailman currently.  Be
 
1754
      careful also if your smtpd is on a different host than the
 
1755
      Mailman host.  In practice, mail lossage has not be observed.
 
1756
 
 
1757
      For this reason cron/run_queue is no longer needed (see the
 
1758
      UPGRADING file for details).
 
1759
 
 
1760
      Also, you can choose whether you want direct smtp delivery, or
 
1761
      delivery via the command line to a sendmail-compatible daemon.
 
1762
      You can also easily add your own delivery module.  See
 
1763
      Mailman/Defaults.py for details.
 
1764
 
 
1765
    - A similar pipeline architecture for the parsing of bounce
 
1766
      messages has been added.  Most common bounce formats are now
 
1767
      handled, including Qmail, Postfix, and DSN.  It is now much
 
1768
      easier to add new bounce detectors.
 
1769
 
 
1770
    - The approval pending architecture has also been revamped.
 
1771
      Subscription requests and message posts waiting for admin
 
1772
      approval are no longer kept in the config.db file, but in a
 
1773
      separate requests.db file instead.
 
1774
 
 
1775
    - Finally made consistent the use of Sender:/From:/From_ in the
 
1776
      matching of headers for such things as member-post-only.  Now,
 
1777
      if USE_ENVELOPE_SENDER is true, Sender: will always be chosen
 
1778
      over From:, however the default has been changed to
 
1779
      USE_ENVELOPE_SENDER false so that From: is always chosen over
 
1780
      Sender:.  In both cases, if no header is found, From_ (i.e. the
 
1781
      envelope sender is used).  Note that the variable is now
 
1782
      misnamed!  Most people want From: matching anyway and any are
 
1783
      easily spoofable.
 
1784
 
 
1785
    - New scripts bin/move_list, bin/config_list
 
1786
 
 
1787
    - cron/upvolumes_yearly, cron/upvolumes_monthly, cron/archive,
 
1788
      cron/run_queue all removed.  Edit your crontab if you used these
 
1789
      scripts.  Other scripts removed: contact_transport, deliver,
 
1790
      dumb_deliver.
 
1791
 
 
1792
    - Several web UI improvements, especially in the admin page.
 
1793
 
 
1794
    - Remove X-pmrqc: headers to prevent return reciepts for Pegasus
 
1795
      mail users.
 
1796
 
 
1797
    - Security patch when using external archivers.
 
1798
 
 
1799
    - Honor "X-Archive: No" header by not putting this message in the
 
1800
      archive.
 
1801
 
 
1802
    - Changes to the log file format.
 
1803
 
 
1804
    - The usual bug fixes.
 
1805
 
 
1806
1.1 (05-Nov-1999)
 
1807
 
 
1808
    - All GIFs removed.  See http://www.gnu.org/philosophy/gif.html
 
1809
      for the reason why.
 
1810
 
 
1811
    - Improvements to the Pipermail archiver which make things faster.
 
1812
      Primary change is that the .txt files are not gzipped on every
 
1813
      posted message.  Instead, use the new cron script `nightly_gzip'
 
1814
      to gzip the .txt file in batches (this means that the .txt file
 
1815
      will lag behind the on-line archives a little).
 
1816
 
 
1817
    - From the C drivers programs, Python is invoked with the -S
 
1818
      option.  This tells Python to avoid importing the site module,
 
1819
      which can improve start up time of the Python process
 
1820
      considerably.  Note that the command line script invocation has
 
1821
      not been changed.
 
1822
 
 
1823
    - New configuration variables PUBLIC_EXTERNAL_ARCHIVER and
 
1824
      PRIVATE_EXTERNAL_ARCHIVER which can contain a shell command
 
1825
      string for os.popen().  This can be used to invoke an external
 
1826
      archiver instead of the bundled Pipermail archiver.  See
 
1827
      Defaults.py for details.
 
1828
 
 
1829
    - new script `bin/find_member' which can be used to search for a
 
1830
      member by regular expression.
 
1831
 
 
1832
    - More child processes are reaped, which should eliminate most
 
1833
      occurrences of zombie processes.
 
1834
 
 
1835
    - A few small miscellaneous bug fixes (including PR#99, PR#107)
 
1836
      and improvements to the file locking algorithms.
 
1837
 
 
1838
1.0 (30-Jul-1999)
 
1839
 
 
1840
    - Configure script now allows $PREFIX (by default /home/mailman)
 
1841
      to be permissions 02755.  Also, configure now tests for
 
1842
      vsnprintf()
 
1843
 
 
1844
    - Workaround, taken from GNU screen, for systems missing
 
1845
      vsnprintf()
 
1846
 
 
1847
    - Return-Receipt-To: and Disposition-Notification-To: headers are
 
1848
      always removed from posted messages (they can be used to troll
 
1849
      for list membership).
 
1850
 
 
1851
    - Workaround for MSIE4.01 (and possibly other versions) bug in the
 
1852
      handling of cookies.
 
1853
 
 
1854
    - A small collection of other bug fixes.
 
1855
 
 
1856
1.0rc3 (10-Jul-1999)
 
1857
 
 
1858
    - new script bin/check_perms which checks (and optionally fixes)
 
1859
      the permissions and group ownerships of the files in your
 
1860
      Mailman installation.
 
1861
 
 
1862
    - Removed a bottleneck in the archiving code that was causing
 
1863
      performance problems on highly loaded servers.
 
1864
 
 
1865
    - The code that saves a list's state and configuration database
 
1866
      has been made more robust.
 
1867
 
 
1868
    - Additional exception handlers have been added in several places
 
1869
      to alleviate problems with Mailman bombing out when it really
 
1870
      would be better to print/log a helpful message.
 
1871
 
 
1872
    - The "password" mail command will now mail back the sender's
 
1873
      subscription password when given with no arguments.
 
1874
 
 
1875
    - The embarrassing subject-prefixing bug present in rc2 has been
 
1876
      fixed.
 
1877
 
 
1878
    - A small (but nice :) collection of other squashed bugs.
 
1879
 
 
1880
1.0rc2 (14-Jun-1999)
 
1881
 
 
1882
    - A security flaw in the CGI cookie mechanisms was discovered --
 
1883
      the Mailman-issued cookies were easily spoofable, implying that
 
1884
      e.g. admin access to all Mailman lists via the web interface
 
1885
      could be compromised.  This flaw has now been fixed.
 
1886
 
 
1887
    - Handling of SMTP errors has been improved.
 
1888
 
 
1889
    - Both "Mass Subscription" via web admin interface and
 
1890
      bin/add_members have been greatly sped up.
 
1891
 
 
1892
    - autoconf check for syslog has been revamped, and is now verified
 
1893
      to work on SCO OpenServer 5.  If syslog can't be found, the C
 
1894
      wrappers will compile, but without any syslog calls.
 
1895
 
 
1896
    - Various other bug fixes.
 
1897
 
 
1898
1.0rc1 (04-May-1999)
 
1899
 
 
1900
    - There is a new Mailman logo, contributed by The Dragon De
 
1901
      Monsyne.  Please read the INSTALL file for information about
 
1902
      installing the logo in a place your Web server can find it.
 
1903
 
 
1904
    - USE_ENVELOPE_SENDER is now set to 0 by default.  Turning this on
 
1905
      caused problems for too many users; lists restricted to
 
1906
      member-only posts were not matching the addresses correctly.
 
1907
 
 
1908
    - A revamped bin/withlist to be a little more useful.
 
1909
 
 
1910
    - A revamped cron/mailpasswds which groups users by virtual hosts.
 
1911
 
 
1912
    - The usual assortment of bug fixes.
 
1913
 
 
1914
1.0b11 (03-Apr-1999)
 
1915
 
 
1916
    - Bug fixes and improvements for case preservation of subscribed
 
1917
      addresses.  The DATA_FILE_VERSION has been bumped to 14.
 
1918
 
 
1919
    - New script bin/withlist, useful for interactive debugging.
 
1920
 
 
1921
1.0b10 (26-Mar-1999)
 
1922
 
 
1923
    - New script bin/sync_members which can be used to synchronize a
 
1924
      list's membership against a flat (e.g. sendmail :include: style)
 
1925
      file.
 
1926
 
 
1927
    - bin/add_members and bin/remove_members now accept addresses on
 
1928
      the command line with `-' as the value for the -d and -n
 
1929
      options.
 
1930
 
 
1931
    - Added variable USE_ENVELOPE_SENDER to Defaults.py for site-wide
 
1932
      configuration of address matching scheme.  With this variable
 
1933
      set to true, the envelope sender (e.g. Unix "From_" header) is
 
1934
      used to match addresses, otherwise the From: header is used.
 
1935
      Envelope sender matching seems not to work on many systems.
 
1936
      This variable is currently defaulted to 1, but may change to 0
 
1937
      for the final release.
 
1938
 
 
1939
    - Reorganization of the membership management admin page.  Also
 
1940
      member addresses are linked to their options page.  Only the
 
1941
      `General' category has the admin password change form.
 
1942
 
 
1943
    - Major reorganization of email command handling and responses.
 
1944
      `notmetoo' is the preferred email command instead of `norcv',
 
1945
      although the latter is still accepted as an argument.  If more
 
1946
      than 5 errors are found in the message, command processing is
 
1947
      halted.
 
1948
 
 
1949
    - User options page now shows the user their case-preserved
 
1950
      subscribed address as well.
 
1951
 
 
1952
    - The usual assortment of bug fixes.
 
1953
 
 
1954
1.0b9 (01-Mar-1999)
 
1955
 
 
1956
    - New bin scripts: clone_member, list_members, add_members (a
 
1957
      consolidation of convertlist and populate_new_list which have
 
1958
      been removed).
 
1959
 
 
1960
    - Two new readmes have been added: README.LINUX and README.QMAIL
 
1961
 
 
1962
    - New configure option --with-cgi-ext which can be used if your
 
1963
      Web server requires extensions on CGI scripts.  The extension
 
1964
      must include a dot (e.g. --with-cgi-ext=".cgi").
 
1965
 
 
1966
    - Many bug fixes, including the setgid problem that was causing
 
1967
      mail to be lost on some versions of Linux.
 
1968
 
 
1969
1.0b8 (14-Jan-1999)
 
1970
 
 
1971
     - Bug fixes and workarounds for certain Linuxes.
 
1972
 
 
1973
     - Illegal addresses are no longer allowed to be subscribed, from
 
1974
       any interface.
 
1975
 
 
1976
1.0b7 (31-Dec-1998)
 
1977
 
 
1978
     - Many, many bug fixes.  Some performance improvements for large
 
1979
       lists.  Some improvements in the Web interfaces.  Some security
 
1980
       improvements.  Improved compatibility with Python 1.5.
 
1981
 
 
1982
     - bin/convert_list and bin/populate_new_list have been replaced
 
1983
       by bin/add_members.
 
1984
 
 
1985
     - Admins can now get notification on subscriptions and
 
1986
       unsubscriptions.  Posts are now logged.
 
1987
 
 
1988
     - The username portion of email addresses are now case-preserved
 
1989
       for delivery purposes.  All other address comparisions are
 
1990
       case-insensitive.
 
1991
 
 
1992
     - New default SMTP_MAX_RCPTS that limits the number of "RCPT TO"
 
1993
       SMTP commands that can be given for a single message.  Most
 
1994
       MTAs have some hard limit.
 
1995
 
 
1996
     - "Precedence: bulk" header and "List-id:" header are now added
 
1997
       to all outgoing messages.  The latter is not added if the
 
1998
       message already has a "List-id:" header.  See RFC 2046 and
 
1999
       draft-chandhok-listid-02 for details.
 
2000
 
 
2001
     - The standard (as of Python 1.5.2) smtplib.py is now used.
 
2002
 
 
2003
     - The install process now compiles all the .py files in the
 
2004
       installation.
 
2005
 
 
2006
     - Versions of the Mailman papers given at IPC7 and LISA-98 are
 
2007
       now included.
 
2008
 
 
2009
1.0b6 (07-Nov-1998)
 
2010
 
 
2011
     - Archiving is (finally) back in.
 
2012
 
 
2013
     - Administrivia filter added.
 
2014
 
 
2015
     - Mail queue mechanism revamped with better concurrency control.
 
2016
 
 
2017
     - For recipients that have estmp MTAs, set delivery notification
 
2018
       status so that only delivery failure notices are sent out,
 
2019
       inhibiting 4 hour and N day warning notices.
 
2020
 
 
2021
     - Now expire old unconfirmed subscription requests, rather than
 
2022
       keeping them forever.
 
2023
 
 
2024
     - Added proposed standard List-Id: header, and our own
 
2025
       X-MailmanVersion header.
 
2026
 
 
2027
     - Prevent havoc from attempts to subscribe a list to itself.  (!)
 
2028
 
 
2029
     - Refine mail command processing to prevent loops.
 
2030
 
 
2031
     - Pending subscription DB redone with better locking and cleaner
 
2032
       interface.
 
2033
 
 
2034
     - posters functionality expanded.
 
2035
 
 
2036
     - Subscription policy more flexible, sensible, and
 
2037
       site-configurable.
 
2038
 
 
2039
     - Various and sundry bug fixes.
 
2040
 
 
2041
1.0b5 (27-Jul-1998)
 
2042
 
 
2043
    - New file locking that should be portable and work w/ NFS.
 
2044
 
 
2045
    - Better use of packages.
 
2046
 
 
2047
    - Better error logging and reporting.
 
2048
 
 
2049
    - Less startup overhead.
 
2050
 
 
2051
    - Various and sundry bug fixes.
 
2052
 
 
2053
 
 
2054
1.0b4 (03-Jun-1998)
 
2055
 
 
2056
    - A configure script for easy installation (Barry Warsaw)
 
2057
 
 
2058
    - The ability to install Mailman to locations other than
 
2059
      /home/mailman (Barry Warsaw)
 
2060
 
 
2061
    - Use cookies on the admin pages (also hides admin pages from
 
2062
      others) (Scott Cotton)
 
2063
 
 
2064
    - Subscription requests send a request for confirmation, which may
 
2065
      be done by simply replying to the message (Scott Cotton)
 
2066
 
 
2067
    - Facilities for gating mail to a newsgroup, and for gating a
 
2068
      newsgroup to a mailing list (John Viega)
 
2069
 
 
2070
    - Contact the SMTP port instead of calling sendmail (primarily for
 
2071
      portability) (John Viega)
 
2072
 
 
2073
    - Changed all links on web pages to relative links where appropriate.
 
2074
      (John Viega)
 
2075
 
 
2076
    - Use MD5 if crypt is not available (John Viega)
 
2077
 
 
2078
    - Lots of fixing up of bounce handling (Ken Manheimer)
 
2079
 
 
2080
    - General UI polishing (Ken Manheimer)
 
2081
 
 
2082
    - mm_html: Make it prominent when the user's delivery is disabled
 
2083
      on his option page. (Ken Manheimer)
 
2084
 
 
2085
    - mallist:DeleteMember() Delete the option setings if any. (Ken
 
2086
      Manheimer)
 
2087
 
 
2088
1.0b3 (03-May-1998)
 
2089
 
 
2090
    - mm_message:Deliverer.DeliverToList() added missing newline
 
2091
      between the headers and message body.  Without it, any sequence
 
2092
      of initial body lines that _looked_ like headers ("Sir: Please
 
2093
      excuse my impertinence, but") got treated like headers.
 
2094
 
 
2095
    - Fixed typo which broke subscription acknowledgement message
 
2096
      (thanks to janne sinkonen for pointing this out promptly after
 
2097
      release).  (Anyone who applied my intermediate patch will
 
2098
      probably see this one trigger patch'es reversed-patch
 
2099
      detector...)
 
2100
 
 
2101
    - Fixed cgi-wrapper.c so it doesn't segfault when invoked with
 
2102
      improper uid or gid, and generally wrappers are cleaned up a
 
2103
      bit.
 
2104
 
 
2105
    - Prevented delivery-failure notices for misdirected subscribe-
 
2106
      confirmation requests from bouncing back to the -request addr,
 
2107
      and then being treated as failing requests.
 
2108
 
 
2109
      Implemented two measures.  Set the reply-to for the
 
2110
      confirmation- request to the -request addr, and the sender to be
 
2111
      the list admin.  This way, bounces go to list admin instead of
 
2112
      to -request addr.  (Using the errors-to header wasn't
 
2113
      sufficient.  Thanks, barry, for pointing out the use of sender
 
2114
      here.)  Second, ignore any mailcommands coming from postmaster
 
2115
      or non-login system type accounts (mailer-daemon, daemon,
 
2116
      postoffice, etc.)
 
2117
 
 
2118
    - Reenabled admin setting of web_page_url - crucial for having
 
2119
      lists use alternate names of a host that occupies multiple
 
2120
      addresses.
 
2121
 
 
2122
    - Fixed and refined admin-options help mechanism.  Top-level visit
 
2123
      to general-category (where the "general" isn't in the URL) was
 
2124
      broken.  New help presentation shows the same row that shows on
 
2125
      the actual options page.
 
2126
 
 
2127
    - cron/crontab.in crontab template had wrong name for senddigests.
 
2128
 
 
2129
    - Default digest format setting, as distributed, is now non-MIME,
 
2130
      on urging of reasoned voices asserting that there are still
 
2131
      enough bad MIME implementations in the world to be a nuisance to
 
2132
      too many users if MIME is the default.  Sigh.
 
2133
 
 
2134
    - MIME digests now preserve the structure of MIME postings,
 
2135
      keeping attachments as attachments, etc.  They also are more
 
2136
      structured in general.
 
2137
 
 
2138
    - Added README instructions explaining how to determine the right
 
2139
      UID and GID settings for the wrapper executables, and improved
 
2140
      some of the explanations about exploratory interaction
 
2141
      w/mailman.
 
2142
 
 
2143
    - Removed the constraint that subscribers have their domain
 
2144
      included in a static list in the code.  We might want to
 
2145
      eventually reincorporate the check for the sake of a warning
 
2146
      message, to give a heads up to the subscriber, but try delivery
 
2147
      anyway...
 
2148
 
 
2149
    - Added missing titles to error docs.
 
2150
 
 
2151
    - Improved several help details, including particularly explaining
 
2152
      better how real_name setting is used.
 
2153
 
 
2154
    - Strengthened admonition against setting reply_goes_to_list.
 
2155
 
 
2156
    - Added X-BeenThere header to postings for the sake of prevention
 
2157
      of external mail loops.
 
2158
 
 
2159
    - Improved handling of bounced messages to better recognize
 
2160
      members address, and prevent duplicate attempts to react (which
 
2161
      could cause superfluous notices to administrator).
 
2162
 
 
2163
    - Added __delitem__ method to mm_message.OutgoingMessage, to fix
 
2164
      the intermediate patch posted just before this one.
 
2165
 
 
2166
    - Using keyword substitution format for more message text (ie,
 
2167
      "substituting %(such)s into text" % {'such': "something"}) to
 
2168
      make the substitutions less fragile and, presumably, easier to
 
2169
      debug.
 
2170
 
 
2171
    - Removed hardwired (and failure-prone) /tmp file logging from
 
2172
      answer.majordomo_mail, and generally spiffed up following janne
 
2173
      sinkkonen's lead.
 
2174
 
 
2175
1.0b2 (13-Apr-1998)
 
2176
1.0b1 (09-Apr-1998)
 
2177
 
 
2178
  Web pages much more polished
 
2179
   - Better organized, text more finely crafted
 
2180
   - Easier, more refined layout
 
2181
   - List info and admin interface overviews, enumerate all public lists
 
2182
     (via, e.g., http://www.python.org/mailman/listinfo - sans the
 
2183
     specific list)
 
2184
   - Admin interface broken into sections, with help elaboration for
 
2185
     complicated configuration options
 
2186
 
 
2187
  Mailing List Archives
 
2188
   - Integrated with a newer, *much* improved, external pipermail - to be
 
2189
     found at http://starship.skyport.net/crew/amk/maintained/pipermail.html
 
2190
   - Private archives protected with mailing list members passwords,
 
2191
     cookie-fied.
 
2192
 
 
2193
  Spam prevention
 
2194
   - New spam prevention measures catch most if not all spam without
 
2195
     operator intervention or general constraints on who can post to
 
2196
     list:
 
2197
       require_explicit_destination option imposes hold of any postings
 
2198
       that do not have the list name in any of the to or cc header
 
2199
       destination addresses.  This catches the vast majority of random
 
2200
       spam.
 
2201
     Other options (forbidden_posters, bounce_matching_headers) provide
 
2202
     for filtering of known transgressors.
 
2203
   - Option obscure_addresses (default on) causes mailing list subscriber
 
2204
     lists on the web to be slightly mangled so they're not directly
 
2205
     recognizable as email address by web spiders, which might be
 
2206
     seeking targets for spammers.
 
2207
 
 
2208
  Site configuration arrangement organized - in mailman/mailman/modules:
 
2209
   - When installing, create a mailman/modules/mm_cfg.py (if there's not
 
2210
     one already there), using mm_cfg.py.dist as a template.
 
2211
     mm_default.py contains the distributed defaults, including
 
2212
     descriptions of the values.  mm_cfg.py does a 'from mm_defaults.py
 
2213
     import *' to get the distributed defaults.  Include settings in
 
2214
     mm_cfg.py for any values in mm_defaults.py that need to be
 
2215
     customized for your site, after the 'from .. import *'.
 
2216
   See mm_cfg.py.dist for more details.
 
2217
 
 
2218
  Logging
 
2219
   - Major operations (subscription, admin approval, bounce,
 
2220
     digestification, cgi script failure tracebacks) logged in files
 
2221
     using a reliable mechanism
 
2222
   - Wrapper executables log authentication complaints via syslog
 
2223
 
 
2224
  Wrappers
 
2225
   - All cgi-script wrapper executables combined in a single source,
 
2226
     easier to configure.  (Mail and aliases wrappers separate.)
 
2227
 
 
2228
  List structure version migration
 
2229
   - Provision for automatic update of list structures when moving to a
 
2230
     new version of the system.  See modules/versions.py.
 
2231
 
 
2232
  Code cleaning
 
2233
   - Many more module docstrings, __version__ settings, more function
 
2234
     docstrings.
 
2235
   - Most unqualified exception catches have been replaced with more
 
2236
     finely targeted catches, to avoid concealing bugs.
 
2237
   - Lotsa long lines wrapped (pet peeve:).
 
2238
 
 
2239
  Random details (not complete, sorry):
 
2240
   - make archival frequency a list option
 
2241
   - Option for daily digest dispatch, in addition to size threshhold
 
2242
   - make sure users only get one periodic password notifcation message for
 
2243
     all the lists they're on (repaired 1.0b1.1 varying-case mistake)
 
2244
   - Fix rmlist sans-argument bug causing deletion of all lists!
 
2245
   - doubled generated random passwords to four letters
 
2246
   - Cleaned lots and lots of notices
 
2247
   - Lots and lots of html page cleanup, including table-of-contents, etc
 
2248
   - Admin options sections - don't do the "if so" if the ensuing list
 
2249
     is empty
 
2250
   - Prevent list subject-prefix cascade
 
2251
   - Sources under CVS
 
2252
   - Various spam filters - implicit-destination, header-field
 
2253
   - Adjusted permissions for group access
 
2254
   - Prevent redundant subscription from redundant vetted requests
 
2255
   - Instituted centralize, robustish logging
 
2256
   - Wrapper sources use syslog for logging (john viega)
 
2257
   - Sorting of users done on presentation, not in list.
 
2258
   - Edit options - give an error for non-existent users, not an options page.
 
2259
   - Bounce handling - offer 'disable' option, instead of remove, and
 
2260
     never remove without notifying admin
 
2261
   - Moved subscribers off of listinfo (and made private lists visible
 
2262
     modulo authentication)
 
2263
   - Parameterize default digest headers and footers and create some
 
2264
   - Put titles on cgi result pages that do not get titles (all?)
 
2265
   - Option for immediate admin notifcation via email of pending
 
2266
     requests, as well as periodic
 
2267
   - Admin options web-page help
 
2268
   - Enabled grouped and cascading lists despite implicit-name constraint
 
2269
   - Changed subscribers list so it has its own script (roster)
 
2270
   - Welcome pages: http://www.python.org/mailman/{admin,listinfo}/
 
2271
 
 
2272
0.95 (25-Jan-1997)
 
2273
  - Fixed a bug in sending out digests added when adding disable mime option.
 
2274
  - Added an option to not notify about bounced posts.
 
2275
  - Added hook for pre-posting filters.  These could be used to
 
2276
    auto-strip signatures.  I'm using the feature to auto-strip footers
 
2277
    that are auto-generated by mail received from another mailing list.
 
2278
 
 
2279
0.94 (22-Jan-1997)
 
2280
  - Made admin password work ubiquitously in place of a user password.
 
2281
  - Added an interface for getting / setting user options.
 
2282
  - Added user option to disable mime digests (digested people only)
 
2283
  - Added user option to not receive your own posts (nondigested people only)
 
2284
  - Added user option to ack posts
 
2285
  - Added user option to disable list delivery to their box.
 
2286
  - Added web interface to user options
 
2287
  - Config number of sendmail spawns on a per-list basis
 
2288
  - Fixed extra space at beginning of each message in digests...
 
2289
  - Handled comma separated emails in bounce messages...
 
2290
  - Added a FindUser() function to MailList.  Used it where appropriate.
 
2291
  - Added mail interface to setting list options.
 
2292
  - Added name links to the templates options page
 
2293
  - Added an option so people can hide their names from the subscription list.
 
2294
  - Added an answer_majordomo_mail script for people switching...
 
2295
 
 
2296
0.93 (18/20-Jan-1997)
 
2297
  -  When delivering to list, don't call sendmail directly.  Write to a file,
 
2298
     and then run the new deliver script, which forks and exits in the parent
 
2299
     immediately to avoid hanging when delivering mail for large lists, so that
 
2300
     large lists don't spend a lot of time locked.
 
2301
  -  GetSender() no longer assumes that you don't have an owner-xxx address.
 
2302
  -  Fixed unsubscribing via mail.
 
2303
  -  Made subscribe via mail generate a password if you don't supply one.
 
2304
  -  Added an option to clobber the date in the archives to the date the list
 
2305
     resent the post, so that the archive doesn't get mail from people sending
 
2306
      bad dates clumped up at the beginning or end.
 
2307
  -  Added automatic error message processing as an option.  Currently
 
2308
     logging to /tmp/bounce.log
 
2309
  -  Changed archive to take a list as an argument, (the old way was broken)
 
2310
  -  Remove (ignore) spaces in email addresses
 
2311
  -  Allow user passwords to be case insensitive.
 
2312
  -  Removed the cleanup script since it was now redundant.
 
2313
  -  Fixed archives if there were no archives.
 
2314
  -  Added a Lock() call to Load() and Create().  This fixes the
 
2315
     problem of loading then locking.
 
2316
  -  Removed all occurances of Lock() except for the ones in mailing
 
2317
     list since creating a list
 
2318
     now implicitly locks it.
 
2319
  -  Quote single periods in message text.
 
2320
  - Made bounce system handle digest users fairly.
 
2321
 
 
2322
0.92 (13/16-Jan-1997)
 
2323
  -  Added Lock and Unlock methods to list to ensure each operation is atomic
 
2324
  -  Added a cmd that rms all files of a mailing list (but not the aliases)
 
2325
  -  Fixed subscribing an unknown user@localhost (confirm this)
 
2326
  -  Changed the sender to list-admin@... to ensure we avoid mail loops.
 
2327
  -  check to make sure there are msgs to archive before calling pipermail.
 
2328
  -  started using this w/ real mailing lists.
 
2329
  -  Added a cron script that scours the maillog for User/Host unknown errs
 
2330
  -  Sort membership lists
 
2331
  -  Always display digest_is_default option
 
2332
  -  Don't slam the TO list unless you're sending a digest.
 
2333
  -  When making digest summaries, if missing sender name, use their email.
 
2334
  -  Hacked in some protection against crappy dates in pipermail.py
 
2335
  -  Made it so archive/digest volumes can go up monthly for large large lists.
 
2336
  -  Number digest messages
 
2337
  -  Add headers/footers to each message in digest for braindead mailers
 
2338
  -  I removed some forgotten debug statements that caused server errors
 
2339
         when a CGI script sent mail.
 
2340
  -  Removed loose_matches flag, since everything used it.
 
2341
  -  Fixed a problem in pipermail if there was no From line.
 
2342
  -  In upvolume_ scripts, remove INDEX files as we leave a volume.
 
2343
  -  Threw a couple of scripts in bin for generating archives from majordomo's
 
2344
     digest-archives.  I wouldn't recommend them for the layman, though, they
 
2345
     were meant to do a job quickly, not to be usable.
 
2346
 
 
2347
0.91 (23-Dec-1996)
 
2348
  -  broke code into mixins for managability
 
2349
  -  tag parsing instead of lots of gsubs
 
2350
  -  tweaked pipermail (see comments on pipermail header)
 
2351
  -  templates are now on a per-list basis as intended.
 
2352
  -  request over web that your password be emailed to you.
 
2353
  -  option so that web subscriptions require email confirmation.
 
2354
  -  wrote a first pass at an admin interface to configurable variables.
 
2355
  -  made digests mime-compliant.
 
2356
  -  added a FakeFile class that simulates enough of a file object on a
 
2357
        string of text to fool rfc822.Message in non-seek mode.
 
2358
  -  changed OutgoingMessage not to require its args in constructor.
 
2359
  -  added an admin request DB interface.
 
2360
  -  clearly separated the internal name from the real name.
 
2361
  -  replaced lots of ugly, redundant code w/ nice code.
 
2362
        (added Get...Email() interfaces, GetScriptURL, etc...)
 
2363
  -  Wrote a lot of pretty html formatting functions / classes.
 
2364
  -  Fleshed out the newlist command a lot.  It now mails the new list
 
2365
        admin, and auto-updates the aliases file.
 
2366
  -  Made multiple owners acceptable.
 
2367
  -  Non-advertised lists, closed lists, max header length, max msg length
 
2368
  -  Allowed editing templates from list admin pages.
 
2369
  -  You can get to your info page from the web even if the list is closed.
 
2370
 
 
2371
 
 
2372
Local Variables:
 
2373
mode: indented-text
 
2374
indent-tabs-mode: nil
 
2375
End: