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

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

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


Revision 1.1 - (hide 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 brianr 1.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