[Mailman-Developers] FHS installation changes
Bob Puff at NLE
bob at nleaudio.com
Tue Oct 19 06:20:20 CEST 2004
John makes some really valid points here. While it is a bit more of a change, FHS compatibility
does make sense. Is this something that we can consider for future 2.1.x releases?
Bob
John Dennis wrote:
> Overview:
> ---------
>
> Earlier I wrote about our (Red Hat's) desire to make mailman be FHS
> compliant, in part to allow mailman to fall under the protection of
> SELinux security policy which is file and directory based and as a
> consequence much easier to author when packages install into canonical
> locations (e.g. FHS).
>
> Previously we had installed all of mailman under /var/mailman
> (prefix=var_prefix=/var/mailman) and I had proposed a much simpler
> change of just setting prefix=/usr/lib/mailman. This took care of the
> majority of SELinux issues and limited the scope of changes. There was
> a concern that sites and administrators who were familiar either with
> our RPM, the upstream package, or were working with an existing
> installation would run afoul of the location changes and keeping them
> to absolute minimum was advantageous. However a few folks in private
> email pointed out that if changes were going to occur its best to do
> it all at once and not piecemeal, in other words endure the pain once.
>
> Thus I embarked on an exercise to make everything FHS compliant. There
> are two reasons I'm addressing the developer community here:
>
> 1) I want to apprise you of the exact changes, their rational, provide
> a patch against 2.1.5 and solicit review.
>
> 2) Test the results.
>
> Description:
> ------------
>
> Currently the configuration allows for partitioning the mailman
> installation between two installation roots, prefix for non-modifiable
> files and var_prefix for variable data. This is a great start and
> covers 90% of the installation, but there remains a small set of items
> which even in this scheme are not FHS compliant, in summary:
>
> 1) config files located under /etc
>
> 2) pid file located under /var/run
>
> 3) queue files located under /var/spool
>
> 4) lock files located /var/lock
>
> 5) log files located under /var/log
>
> I think one could characterize the competing installation philosophies
> as follows:
>
> Mailman not knowing what type of system its going to be installed on
> elects to group all of its files together (makes perfect sense). FHS
> on the other hand says most packages share common traits and we group
> by functional component thus spreading out package installations
> across a diverse set of directories.
>
> Implementation:
> ---------------
>
> I discovered I had to add some new directories to configure and alter
> some of the *_DIR variables in Defaults.py.in so they pick up their
> values from configure. My strategy was to allow configure when run
> without providing any other parameters to produce the exact same set
> of installation defaults as previously existed so unless you specify a
> different installation mapping a user won't see any change.
>
> Configure added:
>
> --with_lock_dir
> --with_log_dir
> --with_config_dir
> --with_data_dir
> --with_pid_dir
> --with_queue_dir
>
> I also modified bin/check_perms so it was aware of the new directory
> specifications. The patch also made a few non FHS fixes to the install
> target of the Makefiles, some generic issues were discovered when
> testing check_perms. Those changes included: setting SETGID on the root
> prefix and var_prefix directories, check_perms demands all
> directories, including the roots are SETGID. The messages Makefile was
> creating a two level directory hierarchy but only setting SETGID on
> the child. Some of the "make install" logic seemed to depend on the
> property that new child directories created under a parent that was
> SETGID inherits the SETGID property. To the best of my understanding
> this is true only on Linux and Solaris and not generally portable. I
> replaced the use of the local mkinstalldirs (and subsequent chmod g+s)
> with what I believe is much more standard "install -d" and with the
> SETGID as part of the mode. All directories are created this way,
> nothing depends on inheritance. I also removed some ancient Makefile
> cruft that is no longer in use, variables no longer initialized by
> configure, etc. (just confusing, accidents waiting to happen if
> someone thought it was valid).
>
> Issues:
> -------
>
> Most of the changes were isolated to whole directories and were well
> defined. Only the contents of DATA_DIR required splitting its contents
> across more than one directory. DATA_DIR contained both pickle files
> created during processing and what would be characterized as
> configuration files (e.g. password files, MTA alias
> files. sitelist.cfg). A new directory CONFIG_DIR was created (in FHS
> its /etc/mailman) to hold what has traditionally been in /etc
> (e.g. configuration, passwords, aliases, etc). The other things that
> were in DATA_DIR was left there.
>
> The mailman configuration file presented the biggest challenge and the
> one exception to FHS. The culprit is mm_cfg.py. This is really
> mailman's configuration file and it should be located in CONFIG_DIR
> (/etc/mailman). But there were several major problems with moving that
> file there.
>
> 1) It's executable python code, not a text file containing
> configuration parameters. Executable code should be in a "lib" or
> "bin" location. Why is this an issue? Because SELinux pays very
> close attention to who can execute and with precise control over a
> host of run time operations, its often based on directory
> location. But most importantly config files have to be editable,
> security properties transit when modified and new files pick up
> security properties of the directory that contains the file. We do
> not want any file created (or modified) in a configuration
> directory to pick up security permissions granting execution
> rights or for that matter any other run time security permissions.
>
> 2) The import of mm_cfg and its directory (Mailman) is all through the
> code, it would be very invasive to change. If mm_cfg continues to be
> executable python code as opposed to a text file then paths.py
> would have to be altered to prepend /etc/mailman to the import
> path, another significant security violation.
>
> 3) Any experienced mailman admin will know that mm_cfg.py is located
> with the rest of the mailman executable code under $prefix/Mailman
> and will expect to find this critical file there.
>
> I concluded for the above reasons that mm_cfg.py in the 2.1.x
> time frame was best handled as an FHS exception. Our rpm does however
> create a symbolic link from /etc/mailman/mm_cfg.py to
> $prefix/Mailman/mm_cfg.py so that it "appears" in configuration
> directory. This will prepare admins to start looking for mm_cfg along
> with the other configuration files. Note that security policies do not
> transit across links therefore there are no security policy issues
> with the sym link in /etc/mailman. Hopefully in MM 3.0 the
> configuration file will be textural which will eliminate the security
> policy issue. Also note that sitelist.cfg was completely moved to
> /etc/mailman as that is not executed, but rather "evaluated" (I think
> evaluation in /etc is fine, but I'm not 100% positive :-).
>
> Request for testing:
> --------------------
>
> I have created RPM's with the changes outlined above and documented
> below, you may obtain them here:
>
> ftp://people.redhat.com/jdennis/mailman-2.1.5-26.i386.rpm
> ftp://people.redhat.com/jdennis/mailman-2.1.5-26.src.rpm
>
> I have tested the new rpm and have not found any problems. The
> modified check_perms does not report any problems. But I'm well aware
> my testing is limited and my comprehension of mailman is limited, it
> is inevitable something has been missed that only wider testing will
> reveal and I would appreciate that testing by experts. These changes
> are slated to appear in our Fedora Core 3 release which is closing in
> a couple of days in preparation for release. Testing prior to that
> close would be appreciated. Note that with Fedora Core 3 SELinux will
> be enabled by default in "targeted mode". This means that SELinux
> policy will be applied to key system services only, mail and hence
> mailman is one of those key system services. Ideally any testing
> should be done from "rawhide" with the 2.1.5-26 version of mailman and
> the new matching SELinux security policy, but I would be perfectly
> happy for any testing of the basic rpm even if its not running under
> targeted security policy.
>
> Patch File:
> -----------
>
> Attached is the patch made against a virgin 2.1.5 tarball with the
> changes outlined above.
>
>
> User / Admin Documentation:
> ---------------------------
>
> The following is what I prepared for our installation documentation
> which can be found in /usr/share/doc/mailman-*
>
>
>
> IMPORTANT NOTE FOR USERS UPGRADING FROM A PREVIOUS RED HAT MAILMAN
> INSTALLATION OR THOSE FAMILIAR WITH "STANDARD MAILMAN INSTALLATIONS"
>
> Earlier Red Hat mailman rpms installed all of the mailman files under
> /var/mailman. This did not conform to the Filesystem Hierarchy
> Standard (FHS) and created security violations when SELinux is
> enabled. As of mailman-2.1.5-21 the following directory and file
> changes occurred:
>
> variable data (e.g. lists) is in /var/lib/mailman, library code,
> executables, and scripts are located in /usr/lib/mailman, lock files are in
> /var/lock/mailman, the pid file is in /var/run/mailman, qfiles are in /var/spool/mailman,
> and configuration files have been moved to the new /etc/mailman
>
> If you previously had mailman installed and have edited files in
> /var/mailman (e.g. configuration) you will need to move those changes
> to their new locations.
>
> The mapping of old locations to new locations is as follows:
>
> Directory Mapping:
> /var/mailman --> /var/lib/mailman
> /var/mailman/Mailman --> /usr/lib/mailman/Mailman
> /var/mailman/archives --> /var/lib/mailman/archives
> /var/mailman/bin --> /usr/lib/mailman/bin
> /var/mailman/cgi-bin --> /usr/lib/mailman/cgi-bin
> /var/mailman/cron --> /usr/lib/mailman/cron
> /var/mailman/data --> /var/lib/mailman/data
> /var/mailman/lists --> /var/lib/mailman/lists
> /var/mailman/locks --> /var/lock/mailman
> /var/mailman/logs --> /var/log/mailman
> /var/mailman/mail --> /usr/lib/mailman/mail
> /var/mailman/messages --> /usr/lib/mailman/messages
> /var/mailman/pythonlib --> /usr/lib/mailman/pythonlib
> /var/mailman/qfiles --> /var/spool/mailman
> /var/spool/mailman/qfiles --> /var/spool/mailman
> /var/mailman/scripts --> /usr/lib/mailman/scripts
> /var/mailman/spam --> /var/lib/mailman/spam
> /var/mailman/templates --> /usr/lib/mailman/templates
> /var/mailman/tests --> /usr/lib/mailman/tests
>
> File Mapping:
> /var/mailman/data/adm.pw --> /etc/mailman/adm.pw
> /var/mailman/data/creator.pw --> /etc/mailman/creator.pw
> /var/mailman/data/aliases --> /etc/mailman/aliases
> /var/mailman/data/virtual-mailman --> /etc/mailman/virtual-mailman
> /var/mailman/data/sitelist.cfg --> /etc/mailman/sitelist.cfg
> /var/mailman/data/master-qrunner.pid --> /var/run/mailman/master-qrunner.pid
>
> Discussion of directory and file relocation:
>
> Two new directories were created and three existing directories which
> were hardcoded are now configurable.
>
> PID_DIR is used to hold the process id and is new because FHS wants
> pid files to be located in /var/run. The FHS says when there is only a
> single pid file it should be located in /var/run/<name>.pid, and when
> there are multiple pid's files they should be located together in a
> subdirectory, /var/run/<name>/. Currently mailman only has a single
> pid file, but it does have multiple processes (qrunners). Also SELinux
> security policy is easier to write if processes are segregated into
> individual subdirectories. Therefore we elected to place the mailman
> pid file in its own subdirectory, there is some debate if this is 100%
> FHS compliant because there is only currently a single pid file, but
> this gives us greater future flexibility and is in the spirit of FHS.
>
> CONFIG_DIR is used to hold the site configuration files. FHS wants
> configuration files stored in /etc/mailman. Previously configuration
> files were mixed in with data files in DATA_DIR and with the run-time
> code (e.g. Mailman/mm_cfg.py). CONFIG_DIR continues to exist but is
> now restricted to data files (e.g. python pickle files). The password
> files, alias files, and .cfg (e.g. sitelist.cfg) files have been moved
> to CONFIG_DIR. mm_cfg.py which is the primary mailman configuration
> file was presented a bit of a dilemma. In theory it should be located
> in /etc/mailman, however it is executable code which argues it should
> be located with the other executable files, it has traditionally lived
> in $PREFIX/Mailman and experienced mailman admins will expect to find
> it there. Modifying all the mm_cfg import statements and paths.py was
> believed to be too invasive a change, and technically its part of the
> "Mailman" package and moving it would take it out of the package
> (although currently I don't think that presents any known
> issues). Instead a compromise approach was adopted, mm_cfg.py is
> symbolically linked into the /etc/mailman directory pointing to
> $PREFIX/Mailman/mm_cfg.py. Thus mm_cfg.py "appears" in the
> configuration directory but retains its traditional location, this was
> deemed a reasonable compromise for the mailman 2.1.x timeframe.
>
> sitelist.cfg has a symbolic link in its old location in the DATA_DIR
> pointing to its new location in the CONFIG_DIR.
>
> New Directories (can be specified as parameter to configure):
>
> CONFIG_DIR: default=$VAR_PREFIX/data FHS=/etc/mailman
> PID_DIR default=$VAR_PREFIX/data FHS=/var/run/mailman
>
> Existing directories that can now be specified as parameter to configure:
>
> LOCK_DIR: default=$VAR_PREFIX/locks FHS=/var/lock/mailman
> LOG_DIR: default=$VAR_PREFIX/logs FHS=/var/log/mailman
> QUEUE_DIR default=$VAR_PREFIX/qfiles FHS=/var/spool/mailman
>
>
>
>
> ------------------------------------------------------------------------
>
> Only in mailman-2.1.5.FHS: autom4te.cache
> diff -r -u mailman-2.1.5.orig/bin/check_perms mailman-2.1.5.FHS/bin/check_perms
> --- mailman-2.1.5.orig/bin/check_perms 2003-03-31 15:07:55.000000000 -0500
> +++ mailman-2.1.5.FHS/bin/check_perms 2004-10-08 16:05:09.000000000 -0400
> @@ -164,7 +164,8 @@
> print _('checking mode for %(prefix)s')
> dirs = {}
> for d in (mm_cfg.PREFIX, mm_cfg.EXEC_PREFIX, mm_cfg.VAR_PREFIX,
> - mm_cfg.LOG_DIR):
> + mm_cfg.CONFIG_DIR, mm_cfg.DATA_DIR, mm_cfg.LOCK_DIR,
> + mm_cfg.LOG_DIR, mm_cfg.QUEUE_DIR, mm_cfg.PID_DIR):
> dirs[d] = True
> for d in dirs.keys():
> try:
> Only in mailman-2.1.5.FHS/bin: check_perms~
> Only in mailman-2.1.5.FHS: config.log
> Only in mailman-2.1.5.FHS: configure
> diff -r -u mailman-2.1.5.orig/configure.in mailman-2.1.5.FHS/configure.in
> --- mailman-2.1.5.orig/configure.in 2003-12-24 12:11:48.000000000 -0500
> +++ mailman-2.1.5.FHS/configure.in 2004-09-30 16:13:56.000000000 -0400
> @@ -180,7 +180,7 @@
> AC_SUBST(VAR_PREFIX)
> AC_MSG_CHECKING(for --with-var-prefix)
> AC_ARG_WITH(var-prefix, dnl
> -[ --with-var-prefix directory for mutable data [/var/mailman]])
> +[ --with-var-prefix directory for mutable data [/var/mailman]])
> case "$with_var_prefix" in
> yes) VAR_PREFIX="$default_var_prefix"; ans=$VAR_PREFIX;;
> ""|no) VAR_PREFIX="$prefix"; ans="no";;
> @@ -207,6 +207,61 @@
> prefixcheck=$VAR_PREFIX
> fi
>
> +# Get the configuration file directory
> +AC_SUBST(CONFIG_DIR)
> +AC_MSG_CHECKING(for --with-config-dir)
> +AC_ARG_WITH(config-dir, dnl
> +[ --with-config-dir specify directory for configuration data other than [VAR_]PREFIX/data])
> +case "$with_config_dir" in
> + yes|no|"") CONFIG_DIR="$VAR_PREFIX/data";;
> + *) CONFIG_DIR=$with_config_dir;;
> +esac
> +AC_MSG_RESULT($CONFIG_DIR)
> +
> +# Get the lock directory
> +AC_SUBST(LOCK_DIR)
> +AC_MSG_CHECKING(for --with-lock-dir)
> +AC_ARG_WITH(lock-dir, dnl
> +[ --with-lock-dir specify directory for lock files other than [VAR_]PREFIX/locks])
> +case "$with_lock_dir" in
> + yes|no|"") LOCK_DIR="$VAR_PREFIX/locks";;
> + *) LOCK_DIR=$with_lock_dir;;
> +esac
> +AC_MSG_RESULT($LOCK_DIR)
> +
> +# Get the log directory
> +AC_SUBST(LOG_DIR)
> +AC_MSG_CHECKING(for --with-log-dir)
> +AC_ARG_WITH(log-dir, dnl
> +[ --with-log-dir specify directory for log files other than [VAR_]PREFIX/logs])
> +case "$with_log_dir" in
> + yes|no|"") LOG_DIR="$VAR_PREFIX/logs";;
> + *) LOG_DIR=$with_log_dir;;
> +esac
> +AC_MSG_RESULT($LOG_DIR)
> +
> +# Get the pid directory
> +AC_SUBST(PID_DIR)
> +AC_MSG_CHECKING(for --with-pid-dir)
> +AC_ARG_WITH(pid-dir, dnl
> +[ --with-pid-dir specify directory for the pid file other than [VAR_]PREFIX/data])
> +case "$with_pid_dir" in
> + yes|no|"") PID_DIR="$VAR_PREFIX/data";;
> + *) PID_DIR=$with_pid_dir;;
> +esac
> +AC_MSG_RESULT($PID_DIR)
> +
> +# Get the queue directory
> +AC_SUBST(QUEUE_DIR)
> +AC_MSG_CHECKING(for --with-queue-dir)
> +AC_ARG_WITH(queue-dir, dnl
> +[ --with-queue-dir specify directory for queue files other than [VAR_]PREFIX/qfiles])
> +case "$with_queue_dir" in
> + yes|no|"") QUEUE_DIR="$VAR_PREFIX/qfiles";;
> + *) QUEUE_DIR=$with_queue_dir;;
> +esac
> +AC_MSG_RESULT($QUEUE_DIR)
> +
> # new macro for finding group names
> AC_DEFUN(MM_FIND_GROUP_NAME, [
> # $1 == variable name
> @@ -619,7 +674,7 @@
> templates/Makefile cron/Makefile scripts/Makefile messages/Makefile
> cron/crontab.in misc/mailman Makefile
> tests/Makefile tests/bounces/Makefile tests/msgs/Makefile
> - $SCRIPTS],
> + $SCRIPTS ],
> echo "configuration completed at" `date`)
>
> # Make sure all the build scripts are executable.
> Only in mailman-2.1.5.FHS: configure.in~
> diff -r -u mailman-2.1.5.orig/Mailman/Defaults.py.in mailman-2.1.5.FHS/Mailman/Defaults.py.in
> --- mailman-2.1.5.orig/Mailman/Defaults.py.in 2004-04-24 22:30:03.000000000 -0400
> +++ mailman-2.1.5.FHS/Mailman/Defaults.py.in 2004-10-08 14:38:57.000000000 -0400
> @@ -1198,9 +1198,11 @@
>
> # Useful directories
> LIST_DATA_DIR = os.path.join(VAR_PREFIX, 'lists')
> -LOG_DIR = os.path.join(VAR_PREFIX, 'logs')
> -LOCK_DIR = os.path.join(VAR_PREFIX, 'locks')
> +LOG_DIR = '@LOG_DIR@'
> +LOCK_DIR = '@LOCK_DIR@'
> +CONFIG_DIR = '@CONFIG_DIR@'
> DATA_DIR = os.path.join(VAR_PREFIX, 'data')
> +PID_DIR = '@PID_DIR@'
> SPAM_DIR = os.path.join(VAR_PREFIX, 'spam')
> WRAPPER_DIR = os.path.join(EXEC_PREFIX, 'mail')
> BIN_DIR = os.path.join(PREFIX, 'bin')
> @@ -1211,7 +1213,7 @@
> PRIVATE_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'private')
>
> # Directories used by the qrunner subsystem
> -QUEUE_DIR = os.path.join(VAR_PREFIX, 'qfiles')
> +QUEUE_DIR = '@QUEUE_DIR@'
> INQUEUE_DIR = os.path.join(QUEUE_DIR, 'in')
> OUTQUEUE_DIR = os.path.join(QUEUE_DIR, 'out')
> CMDQUEUE_DIR = os.path.join(QUEUE_DIR, 'commands')
> @@ -1225,9 +1227,9 @@
> MAILDIR_DIR = os.path.join(QUEUE_DIR, 'maildir')
>
> # Other useful files
> -PIDFILE = os.path.join(DATA_DIR, 'master-qrunner.pid')
> -SITE_PW_FILE = os.path.join(DATA_DIR, 'adm.pw')
> -LISTCREATOR_PW_FILE = os.path.join(DATA_DIR, 'creator.pw')
> +PIDFILE = os.path.join(PID_DIR, 'master-qrunner.pid')
> +SITE_PW_FILE = os.path.join(CONFIG_DIR, 'adm.pw')
> +LISTCREATOR_PW_FILE = os.path.join(CONFIG_DIR, 'creator.pw')
>
> # Import a bunch of version numbers
> from Version import *
> Only in mailman-2.1.5.FHS/Mailman: Defaults.py.in~
> diff -r -u mailman-2.1.5.orig/Mailman/MTA/Postfix.py mailman-2.1.5.FHS/Mailman/MTA/Postfix.py
> --- mailman-2.1.5.orig/Mailman/MTA/Postfix.py 2003-03-31 16:49:43.000000000 -0500
> +++ mailman-2.1.5.FHS/Mailman/MTA/Postfix.py 2004-10-08 16:02:20.000000000 -0400
> @@ -32,8 +32,8 @@
> from Mailman.Logging.Syslog import syslog
>
> LOCKFILE = os.path.join(mm_cfg.LOCK_DIR, 'creator')
> -ALIASFILE = os.path.join(mm_cfg.DATA_DIR, 'aliases')
> -VIRTFILE = os.path.join(mm_cfg.DATA_DIR, 'virtual-mailman')
> +ALIASFILE = os.path.join(mm_cfg.CONFIG_DIR, 'aliases')
> +VIRTFILE = os.path.join(mm_cfg.CONFIG_DIR, 'virtual-mailman')
>
> try:
> True, False
> Only in mailman-2.1.5.FHS/Mailman/MTA: Postfix.py~
> Only in mailman-2.1.5.orig: mailman-FHS.patch
> diff -r -u mailman-2.1.5.orig/Makefile.in mailman-2.1.5.FHS/Makefile.in
> --- mailman-2.1.5.orig/Makefile.in 2003-03-31 14:26:57.000000000 -0500
> +++ mailman-2.1.5.FHS/Makefile.in 2004-10-15 16:48:17.000000000 -0400
> @@ -28,6 +28,11 @@
> prefix= @prefix@
> exec_prefix= @exec_prefix@
> var_prefix= @VAR_PREFIX@
> +configdir= @CONFIG_DIR@
> +lockdir= @LOCK_DIR@
> +logdir= @LOG_DIR@
> +piddir= @PID_DIR@
> +queuedir= @QUEUE_DIR@
> DESTDIR=
>
> CC= @CC@
> @@ -41,8 +46,12 @@
> OPT= @OPT@
> CFLAGS= @CFLAGS@ $(OPT) $(DEFS)
>
> +FHS_DIRS= \
> + ${configdir} ${lockdir} ${logdir} ${piddir} ${queuedir}
> +
> +
> VAR_DIRS= \
> - logs archives lists locks data spam qfiles \
> + archives lists data spam \
> archives/private archives/public
>
> ARCH_INDEP_DIRS= \
> @@ -96,6 +105,15 @@
> else true; \
> fi; \
> done
> + @for d in $(FHS_DIRS); \
> + do \
> + dir=$(DESTDIR)/$$d; \
> + if test ! -d $$dir; then \
> + echo "Creating directory $$dir"; \
> + $(INSTALL) -d -m $(DIRMODE) $$dir; \
> + else true; \
> + fi; \
> + done
> chmod o-r $(DESTDIR)$(var_prefix)/archives/private
> @for d in $(ARCH_INDEP_DIRS); \
> do \
> Only in mailman-2.1.5.FHS: Makefile.in~
> Only in mailman-2.1.5.FHS/messages: Makefile.in~
> diff -r -u mailman-2.1.5.orig/misc/mailman.in mailman-2.1.5.FHS/misc/mailman.in
> --- mailman-2.1.5.orig/misc/mailman.in 2003-09-25 18:13:26.000000000 -0400
> +++ mailman-2.1.5.FHS/misc/mailman.in 2004-10-06 16:15:28.000000000 -0400
> @@ -24,13 +24,13 @@
> # On Debian, type "update-rc.d mailman defaults"
> # On RedHat, and derivatives, install with "chkconfig --add mailman"
> #
> -# chkconfig: 2345 98 12
> +# chkconfig: - 98 12
> # description: Mailman is the GNU Mailing List Manager, a program that \
> # manages electronic mail discussion groups. For more \
> # on GNU Mailman see http://www.list.org
> # processname: mailmanctl
> # config: @prefix@/Mailman/mm_cfg.py
> -# pidfile: @prefix@/data/master-qrunner.pid
> +# pidfile: @PID_DIR@/master-qrunner.pid
>
> PYTHON=@PYTHON@
> MAILMANHOME=@prefix@
> Only in mailman-2.1.5.FHS/misc: mailman.in~
> diff -r -u mailman-2.1.5.orig/misc/Makefile.in mailman-2.1.5.FHS/misc/Makefile.in
> --- mailman-2.1.5.orig/misc/Makefile.in 2004-05-13 23:34:34.000000000 -0400
> +++ mailman-2.1.5.FHS/misc/Makefile.in 2004-10-13 14:00:19.000000000 -0400
> @@ -26,6 +26,12 @@
> prefix= @prefix@
> exec_prefix= @exec_prefix@
> var_prefix= @VAR_PREFIX@
> +configdir= @CONFIG_DIR@
> +lockdir= @LOCK_DIR@
> +logdir= @LOG_DIR@
> +piddir= @PID_DIR@
> +queuedir= @QUEUE_DIR@
> +MAILMAN_GROUP= @MAILMAN_GROUP@
> DESTDIR=
>
> CC= @CC@
> @@ -84,7 +90,7 @@
> $(INSTALL) -m $(FILEMODE) paths.py $$dir; \
> done
> $(INSTALL) -m $(EXEMODE) mailman $(DESTDIR)$(SCRIPTSDIR)
> - $(INSTALL) -m $(FILEMODE) sitelist.cfg $(DESTDIR)$(DATADIR)
> + $(INSTALL) -m $(FILEMODE) sitelist.cfg $(DESTDIR)$(configdir)
>
> install-packages:
> for p in $(PACKAGES); \
> Only in mailman-2.1.5.FHS/misc: Makefile.in~
> Only in mailman-2.1.5.FHS/templates: Makefile.in~
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Mailman-Developers mailing list
> Mailman-Developers at python.org
> http://mail.python.org/mailman/listinfo/mailman-developers
> Unsubscribe: http://mail.python.org/mailman/options/mailman-developers/bob%40nleaudio.com
More information about the Mailman-Developers
mailing list