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: |