~pydotorg/mailman/production21

1 by
This commit was manufactured by cvs2svn to create branch
1
Mailman - The GNU Mailing List Management System
1179.32.32 by Mark Sapiro
Bump copyright dates.
2
Copyright (C) 1998-2018 by the Free Software Foundation, Inc.
749 by tkikuchi
FSF office has moved to 51 Franklin Street.
3
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
1 by
This commit was manufactured by cvs2svn to create branch
4
5
6
UPGRADING FROM PREVIOUS VERSIONS
7
426 by bwarsaw
Clarify some upgrading issues.
8
    For the most part, upgrading Mailman entails installing the latest version
9
    over the existing version.  Usually, you can unpack the new release, run
10
    'configure' with the same options you used in your previous install, and
11
    then do a 'make install'.  However, there are some changes that may need
12
    to be taken care of manually.
1 by
This commit was manufactured by cvs2svn to create branch
13
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
14
    What you need to do depends on the version you are using and the version
15
    you are upgrading to.  In all cases, you should first turn off your mail
16
    and web access to your Mailman installation.  You're essentially upgrading
17
    a database, and it's usually a good idea to make sure the database cannot
18
    be modified in the middle of the upgrade.
1 by
This commit was manufactured by cvs2svn to create branch
19
426 by bwarsaw
Clarify some upgrading issues.
20
    My recommendations are:
1 by
This commit was manufactured by cvs2svn to create branch
21
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
22
    - Turn off your incoming mail daemon.  Most remote smtp servers will
23
      simply queue up messages destined for your domain if port 25 is shut
24
      off.
25
26
    - Temporarily disable web access to Mailman.  You can do this by either
27
      turning off your web server temporarily, or by setting up a temporary
28
      redirect to a "service unavailable" page for the Mailman URLs.  Refer to
29
      your web server documentation for details.
30
31
1179.1.315 by Mark Sapiro
Added note on UPGRADING PYTHON to UPGRADING document.
32
UPGRADING PYTHON
33
34
    If you are replacing Python with a newer version in the same location,
35
    you don't need to do anything special for Mailman.
36
37
    If you are installing a Python upgrade to be used by Mailman along side
38
    an existing Python, you will need to configure Mailman with the
39
    --with-python option to point to your new Python and you will need to
40
    check Mailman's crontab and any /etc/init.d/ script and manually fix any
41
    python commands as needed.
42
43
1179.1.318 by Mark Sapiro
Added mention of the 2.1.18 dnspython dependency to the UPGRADING document.
44
UPGRADING FROM 2.1.5+ to 2.1.18+
45
46
    Mailman 2.1.18 introduced a new Python dependency to support the
47
    dmarc_moderation_action feature. This requires that the dnspython package
48
    be available in the configured Python.  ./configure will quit with an
49
    error message if it doesn't find dnspython.  The package can be downloaded
50
    from <http://www.dnspython.org/> or from the CheeseShop
51
    <https://pypi.python.org/pypi/dnspython/> or installed with pip.
52
53
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
54
UPGRADING FROM 2.1.4 to 2.1.5
55
56
    In Mailman 2.1.5, some significant changes have been made to the file
57
    formats for qfiles and the pendings database.  All care has been taken to
58
    make sure the upgrades happen automatically and smoothly, but you should
59
    double check and, for the ultra-paranoid, make backups of your Mailman
60
    site before you upgrade.  BE SURE TO TURN OFF MAILMAN AS DESCRIBED ABOVE
61
    BEFORE YOU UPGRADE.
62
1052.1.3 by A.M. Kuchling
Small grammar fixes; update reference to README.<mta> files
63
    Specifically, in MM2.1.4 every message in the queues was represented by
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
64
    two files, a .msg or .pck file containing the email message, and a .db
65
    file containing metadata about the message.  In MM2.1.5 this has been made
66
    more efficient by using only one file (with a .pck extension) for both the
67
    message and metadata.  This should make MM2.1.5 half as hostile to the
68
    file system.
69
1179.1.179 by Mark Sapiro
Fixed a typo in the UPGRADING doc - bin/upgrade -> bin/update.
70
    The bin/update script, which is run automatically when you upgrade,
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
71
    should convert all the old style qfiles to the new style qfiles.  Note
72
    that this could take a long time if you have a lot of files in your qfiles
73
    subdirectories.  Pay particular attention to files you might have in
74
    qfiles/shunt; these will get upgraded too, although files in qfiles/bad
75
    will not.
76
77
    In MM2.1.4, the database file containing pending actions (i.e
78
    subscriptions, unsubscriptions, message holds, etc.) was shared globally
79
    among all mailing lists.  In MM2.1.5, each list now has its own pending
80
    database file.  All care has been taken to properly split pending actions
81
    from the global to the list-specific files, but it's possible there are
82
    bugs here.  Best practice is to clear all pending actions before you
83
    upgrade, although this is not always possible.
1 by
This commit was manufactured by cvs2svn to create branch
84
85
86
UPGRADING FROM 2.0.x to 2.1
87
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
88
    When you upgrade from Mailman 2.0.x to Mailman 2.1, you should double
89
    check that your moderation and privacy options are still set the way you
90
    want them.  The Mailman options dealing with moderation and privacy have
91
    changed significantly, to make them easier to understand and control.
92
    Ever effort was taken to translate the old configuration variables to the
93
    new configuration variables, but because the old semantics were so
94
    complex, it is possible your settings may not have been correctly
95
    translated.
96
97
    Check especially the values for (in Privacy -> Sender Filters)
98
    default_member_moderation, generic_nonmember_action, and
1052.1.3 by A.M. Kuchling
Small grammar fixes; update reference to README.<mta> files
99
    accept_these_nonmembers.  Also check the moderation flag on member
417 by bwarsaw
Notes on upgrading from 2.1.4 to 2.1.5.
100
    accounts in the Membership Management screen.
101
1 by
This commit was manufactured by cvs2svn to create branch
102
    In Mailman 2.1, the qrunner subsystem has been completely
103
    rewritten.  You no longer start qrunner from cron!  Instead, there
104
    is a bin/mailmanctl script which is used to start, stop, and
105
    restart mail delivery.  This script is appropriate to use as a
106
    Unix init script.  Be sure to update your crontab with the new
107
    cron/crontab.in file.
108
109
    NOTE: It is very important that if you are upgrading from a
110
    pre-MM2.1alpha2 system to a post-MM2.1alpha2 system that you let
111
    the old qrunner process clear any and all messages sitting in the
112
    qfiles/ directory *BEFORE* you upgrade.  Otherwise after the
1052.1.3 by A.M. Kuchling
Small grammar fixes; update reference to README.<mta> files
113
    upgrade, those messages will not get delivered, and there is no
114
    easy way to upgrade those pending messages.
1 by
This commit was manufactured by cvs2svn to create branch
115
89 by bwarsaw
Backporting from the HEAD -- top level files
116
    NOTE: When upgrading to Mailman 2.1, you will need to regenerate
117
    your aliases files.  There have been many changes to the alias
118
    names, the programs they map to, and the name of the wrapper
1052.1.3 by A.M. Kuchling
Small grammar fixes; update reference to README.<mta> files
119
    script.  See the Mailman Installation Manual for details of making
120
    Mailman work with your mail server.
1 by
This commit was manufactured by cvs2svn to create branch
121
122
    To regenerate your aliases, use the bin/genaliases script.
123
1059 by Mark Sapiro
Updated Version.py for 2.1.10b4.
124
    IMPORTANT: The encryption algorithm for list admin passwords has
125
    changed which means that after upgrading from 2.0.x to 2.1.x, list
126
    passwords will have to be reset.  There is a new bin/change_pw tool
127
    to help with this.
128
1 by
This commit was manufactured by cvs2svn to create branch
129
    Mailman 2.1 introduces multilingual (a.k.a. internationalization
130
    or i18n) support.  Previously only one language per list was
131
    supported, and it was assumed that this language would be English.
132
    The upgrade script for Mailman 2.1 creates a subdirectory `en'
133
    inside each lists/<listname> directory.  It then copies all the
134
    .txt and .html files from lists/<listname> into
135
    lists/<listname>/en.
136
137
    If you have modified those templates to contain non-English text,
138
    you will have to manually rename the en subdirectories to the
139
    language code for the language of your templates.  Mailman's
140
    upgrade script should handle cleaning up any templates which are
141
    duplicates of the defaults, but you'll want to double check this
142
    manually.
143
144
    If you are running a MM2.0.x system with non-standard patches
145
    applied, you might have some other problems with your upgrade.
146
    Here are some instances we know about:
147
148
    - If you've applied patch #413752 (coerce to plaintext), then your
1052.1.3 by A.M. Kuchling
Small grammar fixes; update reference to README.<mta> files
149
      upgrade will not go smoothly.  Take a look at patch #651406 for
1 by
This commit was manufactured by cvs2svn to create branch
150
      an unofficial solution.
151
152
      http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=413752
153
      http://sf.net/tracker/?group_id=103&atid=300103&func=detail&aid=651406
154
155
156
UPGRADING INDIVIDUAL LISTS
157
158
    If you're nervous about upgrading all of your lists to 2.1 in one
159
    go, you can move them and upgrade them one at a time.  Start by
160
    doing a clean Mailman 2.1 installation in an empty directory --
161
    call it $MM21.  (I'll assume your Mailman 2.0 installation is in
162
    $MM20.)
163
164
    Doing this means you'll have co-habiting Mailman 2.0 and 2.1
165
    installations for a while, until you have moved all of your lists
166
    to Mailman 2.1.  Depending on your MTA and web server, this could
167
    be transparent and painless, or it could be an ongoing headache.
168
169
    If you use Apache with mod_rewrite, then it's fairly
170
    straightforward to set things up so that both Mailman 2.0 and 2.1
171
    inhabit the /mailman and /pipermail URL-space of your server; this
172
    makes the transition almost transparent to list admins and
173
    subscribers.  See below for details.
174
175
    Now, for each list that you want to move, you'll have to
176
177
      * Shut down your MTA.
178
179
        If you have a lot of outgoing list traffic, you might need to
180
        leave your MTA up but only let it accept connections from
181
        127.0.0.1 (localhost), so Mailman 2.0 can flush its queue.
182
        How to do this is MTA-dependent; for Exim, you can set
183
        "local_interfaces = 127.0.0.1" and "kill -HUP" the Exim
184
        daemon.
185
186
      * Shut down your web server.  For a more professional look, or
187
        if you want to allow people to keep accessing the rest of your
188
        web site, you could make your web server respond to all
189
        /mailman/ URLs with a "temporarily unavailable" message.
190
191
        How to do this is web server-dependent; with Apache and
192
        mod_rewrite, this does the trick:
193
194
          RewriteRule ^/mailman/.* /var/www/unavailable.html [L]
195
196
        (Of course, you'll have to supply your own
197
        /var/www/unavailable.html.)
198
199
      * Force Mailman 2.0 to process its queue:
200
201
          python -S $MM20/cron/qrunner
202
203
        (This is only necessary if there are any files in $MM20/qfiles;
204
        if you need to do this, make sure you left your MTA listening to
205
        127.0.0.1.)
206
207
      * Move the list:
208
209
          cd $MM20
210
          mv -i lists/foo-list $MM21/lists
211
          mv -i archives/private/foo-list $MM21/archives/private
212
          mv -i archives/private/foo-list.mbox $MM21/archives/private
213
          rm archives/public/foo-list
214
          rm archives/public/foo-list.mbox
215
          cd $MM21
216
          bin/withlist -l -r fix_url mylist
217
218
        (The fix_url step will not be necessary if your Mailman 2.0
219
        and 2.1 installations will be sharing the same URL-space.)
220
221
      * Edit your web server config so the list's URLs continue to
222
        work.  There are two possible approaches here; the simpler way
223
        is to setup a new slice of URL-space that will be used by your
224
        Mailman 2.1 installation, eg. /mailman-21:
225
        With Apache and mod_rewrite:
226
227
          RewriteRule /mailman/(.*)/(foo-list.*) /mailman-21/$1/$2 [R=temp]
228
229
        (The [R=temp] assumes that "/mailman-21/" is a temporary URL,
230
        and you'll move all your lists to "/mailman/" when the
231
        transition to Mailman 2.1 is complete.)
232
233
        If you don't want to expose ugly temporary URLs like
234
        "/mailman-21" to the world, it's only slightly more work to make
235
        Mailman 2.0 and 2.1 share the same slices of URL-space.  Here's
236
        how to do it with Apache and mod_rewrite:
237
238
          RewriteRule ^/mailman/(.*)/(foo-list.*) \
239
                      $MM21/cgi-bin/$1/$2 \
240
                      [T=application/x-httpd-cgi]
241
242
        Not only is this more aesthetically pleasing, it's faster -- no
243
        redirects.
244
245
        In either case, you'll want to rewrite the list's archive URLs
246
        to Mailman 2.1's archive:
247
248
          RewriteRule ^/pipermail/(foo-list.*) $MM21/archives/public/$1
249
250
      * Restart your web server (or disable the "temporarily
251
        unavailable" stuff).
252
253
      * Restart your MTA (or make it listen to more than just
254
        127.0.0.1).
255
256
257
UPGRADING FROM 2.0 to 2.0.x (where x >= 1)
258
259
    Nothing much more than running "make install" (after upgrading)
260
    should be necessary.
261
262
263
UPGRADING FROM 2.0 beta to 2.0 final
264
265
    You MUST re-run configure; running config.status is not sufficient
266
    due to some recent changes in the autoconf scripts.  You can do a
267
    head of config.status if you don't remember the options you
268
    originally ran configure with.
269
270
    The cron jobs for Mailman 2.0 final have changed considerably,
271
    including the frequency with which they run.  You should reload
272
    misc/crontab.in for the `mailman' user to get the right settings.
273
    See the INSTALL file for details.
274
275
    FAILURE TO DO THIS WILL RESULT IN A LESS THAN OPTIMALLY FUNCTIONAL
276
    MAILMAN INSTALLATION.
277
278
279
UPGRADING FROM 1.x to 2.x
280
281
    In addition to the instructions above, I highly recommend that you
282
    make sure your Mailman queue is cleared /before/ upgrading.
283
284
    Mailman version 1.x had a cron script called run_queue which was
285
    part of its bulk mailer.  With Mailman 2.x there is no default
286
    bulk mailer (it lets the MTA handle this), and it is currently
287
    unknown what the effects of upgrading are on the run_queue script,
288
    but I'll bet it's not good. :)
289
290
    The way to make sure that your Mailman queue is empty is to look
291
    in your $prefix/data directory.  If you see any files that start
292
    with "mm_q." you've still got messages waiting on the queue.  You
293
    can run $prefix/cron/run_queue by hand until the queue is cleared.
294
    Multiple invocations of this script won't help though; they lock
295
    each other out.  Also, be warned that clearing the queue can take
296
    a while and may cause a large load on your system (two reasons why
297
    all this stuff has been redesigned in 2.x :).
298
299
    You do not need to run "make update" if you are upgrading from
300
    version 1.0 or 1.1 to version 2.0, since this is now run
301
    automatically when you do a "make install".  However you should
302
    modify your crontab entries to execute cron/qrunner instead of
303
    cron/run_queue.  You can also safely remove the file
304
    $prefix/cron/run_queue.
305
306
    If you are upgrading from a pre-1.0 beta, you need to follow the
307
    instructions below.
308
309
310
UPGRADING FROM PRE-1.0 to 2.x
311
312
    You need to do a few extra things to make sure that the file
313
    system layout for the early 1.0 betas is upgraded to the 1.x
314
    configuration.  There are two ways to do this.
315
316
    First, from the source directory, after you've done a "make
317
    install" you can run "make update".  "make update" creates a file
318
    named "update.log" in the top level of the source distribution.
319
    If the script that updates the Mailman filesystem encounters
320
    something that is not resolvable, it will log info about this to
321
    "update.log".  This is worth checking after the upgrade completes.
322
323
    You can also just change to the installation directory (i.e. $prefix)
324
    and run bin/update.  This is the same as above except that the
325
    update.log file is not generated.
326
327
    Check your crontab entry.  Remove any runs of obsolete scripts, in
328
    particular cron/upvolumes_yearly, cron/upvolumes_monthly, or
329
    cron/archive.
330
331
332
WHAT "MAKE UPDATE" DOES
333
334
    Below is an annotated listing of the things that "make update"
335
    does.  Hopefully, this will help resolve any problems you are
336
    having.
337
338
    Note that it can't hurt to run "make update" each time you
339
    upgrade, but if you're running version 1.0 or newer, it won't help
340
    much either!
341
342
    - To upgrade to 1.0b10, you will need to copy
343
      templates/options.html to lists/<listname>/options.html for each
344
      mailing list you have.  However, if you have edited the
345
      options.html file, say from the Web interface, you will have to
346
      merge these changes in manually.
347
348
    - The upgrade to 1.0b7 included the removal of
349
      Mailman/smtplib.py{,c} since Mailman now uses the default Python
350
      1.5.2 version of smtplib.
351
352
    - Archiving files are moved around as part of integrating
353
      Pipermail into Mailman, as of 1.0b6.  In particular,
354
355
      1) if a list has only a private mbox archive
356
      $prefix/archives/private/<listname> is moved to
357
      $prefix/archives/private/<listname>.mbox/<listname>
358
359
      2) if a list has only a public mbox archive
360
      $prefix/archives/public/<listname> is moved to
361
      $prefix/archives/private/<listname>.mbox/<listname>
362
363
      and a symlink is made that points
364
      $prefix/archives/public/<listname>.mbox to
365
      $prefix/archives/private/<listname>.mbox/<listname>
366
367
      3) if a list has both private and public mbox archives,
368
      make update picks one of the above 2 configurations based on
369
      whether or not the list currently is archived publicly.  It then
370
      renames the other mbox to mbox.preb6.
371
372
      4) if a list used recent CVS sources, where archives were placed in
373
      $prefix/public_html/archives, then these are moved to
374
      $prefix/archives/private/<listname> and a symlink is made from
375
      $prefix/archives/public/<listname> to that spot if the list's
376
      archives are public.  Also, a permissions-related security
377
      problem is removed.
378
379
      To integrate mbox archives of old lists, log in as user `mailman'
380
      and run $prefix/bin/arch <listname> <path-to-mbox-archive>.
381
382
      Also, by default, beta6 does both mbox and html based archiving,
383
      but you can configure Mailman to do one, both, or neither.
384
      Please see $prefix/Mailman/Defaults.py for details.
385
386
      There was a short period of time when the CVS sources archiving
387
      code was not organized into its own package.  The pickled
388
      articles in the archives that were placed into archives during
389
      this period stored the path to the module HyperArch, but that
390
      module has moved.  You can quick fix this by running
391
392
      ln -s $prefix/Mailman/Archiver/HyperArch.py \
393
              $prefix/Mailman/HyperArch.py
394
395
    - If upgrading from version 1.0b4 or earlier, "make update" moves
396
      list-specific templates.  For each list,
397
      $prefix/templates/<listname>/* is moved to $prefix/lists/<listname>.
398
      Please reference the generic templates in $prefix/templates to see
399
      if any variables have changed (There shouldn't be many, only
400
      options.html was updated from b5 to b6).
401
402
      For really old versions of Mailman, you may not even have
403
      <listname> subdirectories in $prefix/templates!  In this case
404
      you will need to manually copy some files into your new list
405
      directories.  Here's an example shell command that will do the
406
      trick:
407
408
      cp templates/{archives,handle_opts,listinfo,roster,subscribe}.html lists/<listname>
409
410
    - Some modules that existed in previous versions, but that have
411
      been replaced with newer (differently named) modules, are
412
      removed.
413
414
415

416
Local Variables:
417
mode: indented-text
418
indent-tabs-mode: nil
419
End: