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

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

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


Revision 1.1 - (show annotations) (download)
Mon Feb 22 15:34:03 2021 UTC (3 years, 9 months ago) by brianr
Branch: MAIN
CVS Tags: HEAD
Initial import

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 "Using the Postfix mail server" section of
346 the mailman installation manual for more information on
347 connecting Postfix and Mailman. The manual is available
348 in several formats at /usr/share/doc/mailman-*/admin/www.
349
350
351 Problem: I send mail to the list, and get back mail saying,
352 "sh: mailman not available for sendmail programs"
353
354 Solution: Your system uses sendmail restricted shell (smrsh). You
355 need to configure smrsh by creating a symbolic link from
356 the mail wrapper (@prefix@/mail/mailman) to the directory
357 identifying executables allowed to run under smrsh.
358
359 Some common names for this directory are
360 /var/admin/sm.bin, /usr/admin/sm.bin or /etc/smrsh.
361
362 Note that on Debian Linux, the system makes
363 /usr/lib/sm.bin, which is wrong, you will need to create
364 the directory /usr/admin/sm.bin and add the link there.
365 Note further any aliases newaliases spits out will need
366 to be adjusted to point to the secure link to the
367 wrapper.
368
369
370 Problem: I messed up when I called configure. How do I clean
371 things up and re-install?
372
373 Solution: % make clean
374 % ./configure --with-the-right-options
375 % make install
376
377
378 -------------------- Other Useful Information -----------------
379
380 RPM Preserves User Modified Files
381 ---------------------------------
382
383 The rpm during installation will preserve changes you have made to
384 configuration files and templates from a previous installation. This
385 is almost always what is desired. However you may want to check for
386 the existence of files with either the .rpmsave or the .rpmnew
387 extension and verify if any of these backup files created during the
388 RPM install exist and if you are indeed using the version of the file
389 you desire.
390
391 Note: The installation directory for non-data files changed from
392 @VAR_PREFIX@ to @prefix@ in mailman-2.1.5-20. Configuration files and
393 templates that were user modified in a previous installation will need
394 to manually move those changes from the earlier @VAR_PREFIX@ to the
395 new @prefix@ installation directory.
396
397 Here are a few commands that will aid you in this process:
398
399 List any rpm backup files in the mailman installation directory:
400
401 % find @prefix@ @VAR_PREFIX@ -name '*.rpm*'
402
403 List any configuration files NOT in the mailman installation directory
404 you might miss with the above command which also have the potental for
405 backup copies. Given this short list you'll have to look for a
406 matching backup file.
407
408 % rpm -qc mailman | egrep -v '@prefix@|@VAR_PREFIX@'
409
410 When rpm preserves a user modified file it installs the newest version
411 of the file by appending the .rpmnew extension to the file name thus
412 preserving the file but making the latest version avialable. If rpm
413 replaces a user modified file the file being replaced is renamed to
414 have the .rpmsave extension. RPM only performs these backup operations
415 if the file is marked as being a configuration file in the rpm spec
416 file, it is not performed in general on all files in the package.
417
418
419 Mailman Cron Jobs:
420 ------------------
421
422 Mailman relies on the cron daemon to schedule periodic actions. These
423 are contained in a crontab file. Previous versions of the mailman RPM
424 from Red Hat created the cron jobs by running the crontab(1) command
425 during the RPM installation phase. The cron jobs are now handled
426 slightly differently. Rather than invoking crontab which loaded the
427 cron jobs into a private cron file a mailman crontab file is installed
428 into /etc/cron.d. The crontab file and the commands it runs were
429 modified from the upstream distribution so these commands would run
430 under the correct SELinux security profile.
431
432 Previously the cron jobs were installed when the RPM was
433 installed. This was less than optimal because the act of having the
434 mailman RPM installed on a system should not cause the cron jobs to
435 run. A better solution is to only run the mailman cron jobs if the
436 mailman service is enabled. This is accomplished by installing the
437 mailman crontab file in /etc/cron.d when the mailman service is
438 started by mailman init.d script (e.g. either at boot time or via
439 /sbin/service). When the mailman service is stopped the crontab file
440 is removed from /etc/cron.d. The crontab file is copied from
441 @prefix@/cron/crontab.in to /etc/cron.d/mailman. Thus if you edit the
442 cron jobs you will need to edit the master copy in @prefix@/cron
443 otherwise your edits will be lost the next time the mailman service is
444 started or restarted. To pick up any changes made to the crontab file
445 edit the master copy in @prefix@/cron and then use /sbin/service to
446 restart mailman (e.g. /sbin/service mailman restart). Some may wonder
447 why the crontab file in /etc/cron.d is not symbolically linked to the
448 master copy when the service starts and unlinked when it stops. The
449 reason is because newer versions of cron will refuse for security
450 reasons to run any crontabs which are links to other files or
451 writeable by anybody else except root.
452
453 Choosing your MTA (sendmail or postfix) on Red Hat Systems:
454 -----------------------------------------------------------
455
456 Red Hat ships two different MTA's, sendmail and postfix. Because the
457 sendmail and postfix rpms's share file names when installed the
458 conflict is accomodated by utilizing the "alternatives" mechanism
459 which manages a set of links. When one of the MTA's is selected via
460 /usr/sbin/alternatives links are established which point to the
461 correct files for that MTA. There are two ways to select your MTA:
462 The system-switch-mail package contains a GUI front end to the
463 alternatives mechanism and /usr/bin/system-switch-mail is an easy way
464 to select your MTA, or you can invoke alternatives directly like this:
465
466 % /usr/sbin/alternatives --config mta
467
468 Note: Selecting your preferred MTA is distinct from configuring the
469 MTA, you will need to consult the documentation for the MTA you
470 selected for information on how to configure it.
471
472
473 Local Variables:
474 mode: indented-text
475 indent-tabs-mode: nil
476 End:

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