/[smecontribs]/rpms/mailman/contribs7/mailman.INSTALL.REDHAT.in
ViewVC logotype

Contents of /rpms/mailman/contribs7/mailman.INSTALL.REDHAT.in

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Tue Nov 25 16:20:13 2008 UTC (16 years ago) by slords
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -0 lines
Restore

1 This file contains instructions for how to complete the installation
2 of mailman after you have installed the Red Hat mailman RPM. There are
3 certain items you will need to manually configure as the RPM is not
4 capable of doing every installation and confirguration task.
5
6 First, you should note that the RPM has installed mailman in the
7 following directory:
8 @prefix@
9 You may want to examine this directory to find additional mailman
10 documentation, or other mailman files.
11
12 IMPORTANT NOTE FOR USERS UPGRADING FROM A PREVIOUS RED HAT MAILMAN
13 INSTALLATION OR THOSE FAMILAR WITH "STANDARD MAILMAN INSTALLATIONS"
14
15 Earlier Red Hat mailman rpms installed all of the mailman files under
16 /var/mailman. This did not conform to the Filesystem Hierarchy
17 Standard (FHS) and created security violations when SELinux is
18 enabled. As of mailman-2.1.5-21 the following directory and file
19 changes occurred:
20
21 variable data (e.g. lists) is in @VAR_PREFIX@, library code,
22 executables, and scripts are located in @prefix@, lock files are in
23 @LOCK_DIR@, the pid file is in @PID_DIR@, qfiles are in @QUEUE_DIR@,
24 and configuration files have been moved to the new @CONFIG_DIR@.
25
26 If you previously had mailman installed and have edited files in
27 /var/mailman (e.g. configuration) you will need to move those changes
28 to their new locations.
29
30 A script has been provided to aid in the task of migrating your
31 mailman datafiles, it is contrib/migrate-fhs, run with -h for help
32 information.
33
34 The mapping of old locations to new locations is as follows:
35
36 Directory Mapping:
37 /var/mailman --> /var/lib/mailman
38 /var/mailman/Mailman --> /usr/lib/mailman/Mailman
39 /var/mailman/archives --> /var/lib/mailman/archives
40 /var/mailman/bin --> /usr/lib/mailman/bin
41 /var/mailman/cgi-bin --> /usr/lib/mailman/cgi-bin
42 /var/mailman/cron --> /usr/lib/mailman/cron
43 /var/mailman/data --> /var/lib/mailman/data
44 /var/mailman/lists --> /var/lib/mailman/lists
45 /var/mailman/locks --> /var/lock/mailman
46 /var/mailman/logs --> /var/log/mailman
47 /var/mailman/mail --> /usr/lib/mailman/mail
48 /var/mailman/messages --> /usr/lib/mailman/messages
49 /var/mailman/pythonlib --> /usr/lib/mailman/pythonlib
50 /var/mailman/qfiles --> /var/spool/mailman
51 /var/spool/mailman/qfiles --> /var/spool/mailman
52 /var/mailman/scripts --> /usr/lib/mailman/scripts
53 /var/mailman/spam --> /var/lib/mailman/spam
54 /var/mailman/templates --> /usr/lib/mailman/templates
55 /var/mailman/tests --> /usr/lib/mailman/tests
56
57 File Mapping:
58 /var/mailman/data/adm.pw --> /etc/mailman/adm.pw
59 /var/mailman/data/creator.pw --> /etc/mailman/creator.pw
60 /var/mailman/data/aliases --> /etc/mailman/aliases
61 /var/mailman/data/virtual-mailman --> /etc/mailman/virtual-mailman
62 /var/mailman/data/sitelist.cfg --> /etc/mailman/sitelist.cfg
63 /var/mailman/data/master-qrunner.pid --> /var/run/mailman/master-qrunner.pid
64
65 Discussion of directory and file relocation:
66
67 Two new directories were created and three existing directories which
68 were hardcoded are now configurable.
69
70 PID_DIR is used to hold the process id and is new because FHS wants
71 pid files to be located in /var/run. The FHS says when there is only a
72 single pid file it should be located in /var/run/<name>.pid, and when
73 there are multiple pid's files they should be located together in a
74 subdirectory, /var/run/<name>/. Currently mailman only has a single
75 pid file, but it does have multiple processes (qrunners). Also SELinux
76 security policy is easier to write if processes are segregated into
77 individual subdirectories. Therefore we elected to place the mailman
78 pid file in its own subdirectory, there is some debate if this is 100%
79 FHS compliant because there is only currently a single pid file, but
80 this gives us greater future flexibility and is in the spirit of FHS.
81
82 CONFIG_DIR is used to hold the site configuration files. FHS wants
83 configuration files stored in /etc/mailman. Previously configuration
84 files were mixed in with data files in DATA_DIR and with the run-time
85 code (e.g. Mailman/mm_cfg.py). CONFIG_DIR continues to exist but is
86 now restricted to data files (e.g. python pickle files). The password
87 files, alias files, and .cfg (e.g. sitelist.cfg) files have been moved
88 to CONFIG_DIR. mm_cfg.py which is the primary mailman configuration
89 file was presented a bit of a dilemma. In theory it should be located
90 in /etc/mailman, however it is executable code which argues it should
91 be located with the other executable files, it has traditionally lived
92 in $PREFIX/Mailman and experienced mailman admins will expect to find
93 it there. Modifying all the mm_cfg import statements and paths.py was
94 believed to be too invasive a change, and technically its part of the
95 "Mailman" package and moving it would take it out of the package
96 (although currently I don't think that presents any known
97 issues). Instead a compromise approach was adopted, mm_cfg.py is
98 symbolically linked into the /etc/mailman directory pointing to
99 $PREFIX/Mailman/mm_cfg.py. Thus mm_cfg.py "appears" in the
100 configuration directory but retains its traditional location, this was
101 deemed a reasonable compromise for the mailman 2.1.x timeframe.
102
103 sitelist.cfg has a symbolic link in its old location in the DATA_DIR
104 pointing to its new location in the CONFIG_DIR.
105
106 New Directories (can be specified as parameter to configure):
107
108 CONFIG_DIR: default=$VAR_PREFIX/data FHS=/etc/mailman
109 PID_DIR default=$VAR_PREFIX/data FHS=/var/run/mailman
110
111 Existing directories that can now be specified as parameter to configure:
112
113 LOCK_DIR: default=$VAR_PREFIX/locks FHS=/var/lock/mailman
114 LOG_DIR: default=$VAR_PREFIX/logs FHS=/var/log/mailman
115 QUEUE_DIR default=$VAR_PREFIX/qfiles FHS=/var/spool/mailman
116
117 You can find addition documentation in the
118 @DOC_DIR@/README.* files and/or
119 @prefix@/README.* files.
120
121 Mailman is an open source project and full documentation, current
122 sources, patches, etc. can be found at the following official mailman
123 web sites:
124
125 http://www.gnu.org/software/mailman/mailman.html
126 http://www.list.org
127
128 1. Final installation instructions:
129
130 Congratulations! You've installed the Mailman software. To get
131 everything running you need to hook Mailman up to both your web
132 server and your mail system.
133
134 - If you plan on running your MTA and web server on different
135 machines, sharing Mailman installations via NFS, be sure that
136 the clocks on those two machines are synchronized closely. You
137 might take a look at the file Mailman/LockFile.py; the constant
138 CLOCK_SLOP helps the locking mechanism compensate for clock skew
139 in this type of environment.
140
141 - Configure your web server. The RPM has made the assumption you
142 are running the apache web server (httpd). The RPM has installed
143 a mailman config file (@HTTPD_CONF_FILE@) in @HTTPD_CONF_DIR@.
144 You should edit the file to set your domain, see the
145 instructions in the config file.
146
147 Now restart your web server so the new settings take effect:
148
149 % /sbin/service httpd restart
150
151 - Create the site password using:
152
153 % @prefix@/bin/mmsitepass <your-site-password>
154
155 This password can be used anywhere that individual user or
156 mailing list administrator passwords are required, giving the
157 mailman site administrator the ability to adjust these things
158 when necessary.
159
160 You may also want to create a password for the site-wide "list
161 creator" role (someone other than the site administrator who as
162 privileges to create and remove lists through the web). Use the
163 -c option to mmsitepass to set this.
164
165 - Set the values for DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST in
166 @prefix@/Mailman/mm_cfg.py file if the fqdn of the host you are
167 running mailman on is not the email and url host you need to use.
168
169 - Update Mailman list files to new verson by running:
170 @prefix@/bin/update
171
172 Users upgrading from previous releases of this package may need
173 to move their data or adjust the configuration files to point to
174 the locations where their data is.
175
176 - Create a "site-wide" mailing list (Note: this must be done
177 before starting the mailman daemon). This is the one that
178 password reminders will appear to come from. Usually this
179 should be the "mailman" mailing list, but if you need to change
180 this, be sure to change the MAILMAN_SITE_LIST variable in
181 mm_cfg.py (see below).
182
183 % @prefix@/bin/newlist mailman
184
185 Follow the prompts, and see the README file for more
186 information.
187
188 - Start the Mailman qrunner daemon
189
190 As of mailman version 2.1 mailman requires a service (daemon) to be
191 run for mailman to operate. RedHat does not ship RPM's that enable
192 services as part of package installation. You will need to enable
193 the mailman service if you want mailman to run.
194
195 To enable the mailman service after package installation you may run
196 the "serviceconf" GUI tool, or you may do the following on the
197 command line as root.
198
199 /sbin/service mailman start
200
201 To have the mailman service automatically start at certain run
202 levels (replace the runlevel below with your desired run levels, for
203 example to start mailman at run levels 3 and 5 runlevel would be 35:
204
205 /sbin/chkconfig --level runlevel mailman on
206
207 - You should then subscribe yourself to the mailman list.
208
209
210 2. Customize Mailman
211
212 You should do these steps using the account you installed Mailman
213 under in section 2 above.
214
215 - The file @prefix@/Mailman/Defaults.py contains a number of
216 defaults for your installation. If any of these are incorrect,
217 override them in @prefix@/Mailman/mm_cfg.py.
218
219 DO NOT EDIT Defaults.py!
220
221 Note: If you have upgraded your mailman installation RPM will
222 save a copy of your previous version of mm_cfg.py in
223 mm_cfg.py.rpmsave.
224
225 See the comments in Defaults.py for details. Once a list is
226 created, editing many of these variables will have no effect.
227 At that point, you'll need to configure your lists through the
228 web admin interface or through the command line script
229 @prefix@/bin/withlist or @prefix@/bin/config_list.
230
231 Note: Do *not* change HOME_DIR or MAILMAN_DIR. These are set
232 automatically by the configure script when the RPM was created.
233
234 - Create the site password using:
235
236 % @prefix@/bin/mmsitepass <your-site-password>
237
238 This password can be used anywhere that individual user or
239 mailing list administrator passwords are required, giving the
240 mailman site administrator the ability to adjust these things
241 when necessary.
242
243 You may also want to create a password for the site-wide "list
244 creator" role (someone other than the site administrator who as
245 privileges to create and remove lists through the web). Use the
246 -c option to mmsitepass to set this.
247
248
249 3. Troubleshooting
250
251 If you encounter problems with running Mailman, first check the
252 "Common Problems" section, below. If your problem is not covered
253 there, check both the FAQ file and the online FAQ Wizard.
254 Check for errors in the mailman log files which can be found in
255
256 @LOG_DIR@
257
258 Mailman logs errors to this file:
259
260 @LOG_DIR@/error
261
262 If you encounter an error, send an error report to
263 mailman-users@python.org. Include a description of what you're
264 doing to cause the problem, and the relevant lines from your
265 syslog. Also include information on your operating system, which
266 version of Python you're using, and which version of Mailman
267 you're installing.
268
269
270 4. Common Problems
271
272 Problem: All Mailman web pages give a 404 File not found error.
273
274 Solution: Your web server has not been set up properly for handling
275 Mailman's cgi commands. Make sure you've:
276
277 1) Configured the web server to give permissions to
278 @prefix@/cgi-bin
279 2) Restarted the web server properly.
280
281 Consult your web server's documentation for instructions
282 on how to do these things.
283
284
285 Problem: All Mailman web pages give an "Internal Server Error".
286
287 Solution: The likely problem is that you are using the wrong GID or
288 UID for CGI scripts. Check your syslog. If you see, for
289 example, a line like:
290
291 Attempt to exec script with invalid gid 51, expected 99
292
293 You need to reinstall Mailman, and specify $CGI_GID to be 51,
294 as described in the installation instructions.
295
296
297 Problem: I send mail to the list, and get back mail saying the
298 list is not found!
299
300 Solution: You probably didn't add the necessary aliases to the system
301 alias database, given to you when you ran the newlist
302 command. If you did add them, you likely did not update
303 the alias database, or your system requires you to run
304 newaliases explicitly. Refer to section 5 above for
305 more information.
306
307
308 Problem: I send mail to the list, and get back mail saying,
309 "unknown mailer error".
310
311 Solution: The likely problem is that you are using the wrong GID or
312 UID for mail. Check your syslog. If you see, for
313 example, a line like:
314
315 Attempt to exec script with invalid gid 51, expected 99
316
317 You need to reinstall Mailman, and specify $MAIL_GID to
318 be 51, as described in the installation
319 instructions. see notes on Postfix below, as by default
320 it will create these problems on installation.
321
322
323 Problem: I use Postfix for my MTA and the mail wrapper programs
324 are logging complaints about the wrong GID.
325
326 Solution: Create a separate aliases file for Postfix in its
327 main.cf config file under the variable "alias_maps". Put
328 the file somewhere in Mailman's home directory, or
329 somewhere else where the user mailman has write access
330 to it; *as user mailman* call Postfix's "postalias" on the
331 alias file.
332
333 % postalias <the alias file>
334
335 Also as user mailman, run
336
337 % python -c'import os; print os.getgid()'
338
339 This should print out the group id that Mailman should
340 be configured to expect when the mail wrapper programs
341 are run. Call it "thegid". Rebuild Mailman with
342
343 % ./configure --with-mail-gid=thegid
344
345 See also the README.POSTFIX file for more information on
346 connecting Postfix and Mailman.
347
348
349 Problem: I send mail to the list, and get back mail saying,
350 "sh: mailman not available for sendmail programs"
351
352 Solution: Your system uses sendmail restricted shell (smrsh). You
353 need to configure smrsh by creating a symbolic link from
354 the mail wrapper (@prefix@/mail/mailman) to the directory
355 identifying executables allowed to run under smrsh.
356
357 Some common names for this directory are
358 /var/admin/sm.bin, /usr/admin/sm.bin or /etc/smrsh.
359
360 Note that on Debian Linux, the system makes
361 /usr/lib/sm.bin, which is wrong, you will need to create
362 the directory /usr/admin/sm.bin and add the link there.
363 Note further any aliases newaliases spits out will need
364 to be adjusted to point to the secure link to the
365 wrapper.
366
367
368 Problem: I messed up when I called configure. How do I clean
369 things up and re-install?
370
371 Solution: % make clean
372 % ./configure --with-the-right-options
373 % make install
374
375
376 -------------------- Other Useful Information -----------------
377
378 RPM Preserves User Modified Files
379 ---------------------------------
380
381 The rpm during installation will preserve changes you have made to
382 configuration files and templates from a previous installation. This
383 is almost always what is desired. However you may want to check for
384 the existence of files with either the .rpmsave or the .rpmnew
385 extension and verify if any of these backup files created during the
386 RPM install exist and if you are indeed using the version of the file
387 you desire.
388
389 Note: The installation directory for non-data files changed from
390 @VAR_PREFIX@ to @prefix@ in mailman-2.1.5-20. Configuration files and
391 templates that were user modified in a previous installation will need
392 to manually move those changes from the earlier @VAR_PREFIX@ to the
393 new @prefix@ installation directory.
394
395 Here are a few commands that will aid you in this process:
396
397 List any rpm backup files in the mailman installation directory:
398
399 % find @prefix@ @VAR_PREFIX@ -name '*.rpm*'
400
401 List any configuration files NOT in the mailman installation directory
402 you might miss with the above command which also have the potental for
403 backup copies. Given this short list you'll have to look for a
404 matching backup file.
405
406 % rpm -qc mailman | egrep -v '@prefix@|@VAR_PREFIX@'
407
408 When rpm preserves a user modified file it installs the newest version
409 of the file by appending the .rpmnew extension to the file name thus
410 preserving the file but making the latest version avialable. If rpm
411 replaces a user modified file the file being replaced is renamed to
412 have the .rpmsave extension. RPM only performs these backup operations
413 if the file is marked as being a configuration file in the rpm spec
414 file, it is not performed in general on all files in the package.
415
416
417 Mailman Cron Jobs:
418 ------------------
419
420 Mailman relies on the cron daemon to schedule periodic actions. These
421 are contained in a crontab file. Previous versions of the mailman RPM
422 from Red Hat created the cron jobs by running the crontab(1) command
423 during the RPM installation phase. The cron jobs are now handled
424 slightly differently. Rather than invoking crontab which loaded the
425 cron jobs into a private cron file a mailman crontab file is installed
426 into /etc/cron.d. The crontab file and the commands it runs were
427 modified from the upstream distribution so these commands would run
428 under the correct SELinux security profile.
429
430 Previously the cron jobs were installed when the RPM was
431 installed. This was less than optimal because the act of having the
432 mailman RPM installed on a system should not cause the cron jobs to
433 run. A better solution is to only run the mailman cron jobs if the
434 mailman service is enabled. This is accomplished by installing the
435 mailman crontab file in /etc/cron.d when the mailman service is
436 started by mailman init.d script (e.g. either at boot time or via
437 /sbin/service). When the mailman service is stopped the crontab file
438 is removed from /etc/cron.d. The crontab file is copied from
439 @prefix@/cron/crontab.in to /etc/cron.d/mailman. Thus if you edit the
440 cron jobs you will need to edit the master copy in @prefix@/cron
441 otherwise your edits will be lost the next time the mailman service is
442 started or restarted. To pick up any changes made to the crontab file
443 edit the master copy in @prefix@/cron and then use /sbin/service to
444 restart mailman (e.g. /sbin/service mailman restart). Some may wonder
445 why the crontab file in /etc/cron.d is not symbolically linked to the
446 master copy when the service starts and unlinked when it stops. The
447 reason is because newer versions of cron will refuse for security
448 reasons to run any crontabs which are links to other files or
449 writeable by anybody else except root.
450
451 Choosing your MTA (sendmail or postfix) on Red Hat Systems:
452 -----------------------------------------------------------
453
454 Red Hat ships two different MTA's, sendmail and postfix. Because the
455 sendmail and postfix rpms's share file names when installed the
456 conflict is accomodated by utilizing the "alternatives" mechanism
457 which manages a set of links. When one of the MTA's is selected via
458 /usr/sbin/alternatives links are established which point to the
459 correct files for that MTA. There are two ways to select your MTA:
460 The system-switch-mail package contains a GUI front end to the
461 alternatives mechanism and /usr/bin/system-switch-mail is an easy way
462 to select your MTA, or you can invoke alternatives directly like this:
463
464 % /usr/sbin/alternatives --config mta
465
466 Note: Selecting your preferred MTA is distinct from configuring the
467 MTA, you will need to consult the documentation for the MTA you
468 selected for information on how to configure it.
469
470
471 Local Variables:
472 mode: indented-text
473 indent-tabs-mode: nil
474 End:

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed