diff --git a/mailman/mailman-2.1.1-2.spec b/mailman/mailman-2.1.1-2.spec new file mode 100644 index 0000000..c475ca9 --- /dev/null +++ b/mailman/mailman-2.1.1-2.spec @@ -0,0 +1,425 @@ +# These macros will not assume an apache RPM + +# The place where mailman binaries go. +%define mmdir /var/mailman + +# The place where mutable data goes. +%define varmmdir /var/mailman + +# Now, the user and group the CGIs will expect to be run under. This should +# match the user and group the web server is configured to run as. The scripts +# will error out if they are invoked by any other user. +%define cgiuser nobody +%define cgiuserid 99 +%define cgigroup nobody +%define cgigroupid 99 + +# Now, the user and group the scripts will actually execute as. +%define mmuser mail +%define mmuserid 8 +%define mmgroup mail +%define mmgroupid 12 + +# Directory/File modes & permissions +%define dirmode 2775 +%define exemode 2755 + +# Now, the groups your mail spoolers run as. Sendmail uses 'mail'(12) +# and postfix uses 'nobody'(99). +%define mailgroup "mail nobody" +%define mailgid "12 99" + +# The mail wrapper program +%define mail_wrapper mailman + +Summary: Mailing list manager with built in Web access. +Name: mailman +Version: 2.1.1 +Release: 2 +Epoch: 1 +Group: Applications/Internet +Source0: ftp://ftp.gnu.org/pub/gnu/mailman/mailman-%{version}.tgz +Source1: mm_cfg.py +Source2: mailman-README.REDHAT +Source3: httpd-mailman.conf +Source4: mailman.logrotate +Patch0: mailman-2.1-syntax-error.patch +Patch1: mailman-2.1-permissions.patch +License: GPL +URL: http://www.list.org/ +BuildRoot: %{_tmppath}/%{name}-root +Prereq: shadow-utils, /usr/bin/crontab, /sbin/chkconfig, /sbin/service +Requires: mktemp +Packager: Troy Engel + +%description +Mailman is software to help manage email discussion lists, much like +Majordomo and Smartmail. Unlike most similar products, Mailman gives +each mailing list a webpage, and allows users to subscribe, +unsubscribe, etc. over the Web. Even the list manager can administer +his or her list entirely from the Web. Mailman also integrates most +things people want to do with mailing lists, including archiving, mail +<-> news gateways, and so on. + +When the package has finished installing, you will need to: + +* Run %{mmdir}/bin/mmsitepass to set the mailman administrator password. + +* Edit %{mmdir}/Mailman/mm_cfg.py to configure Mailman for your site. + +* update Mailman list files to new verson by running: %{mmdir}/bin/update + +* install the %{mmdir}/cron/crontab.in contents to your mail user crontab + + +* As of mailman version 2.1 mailman requires a service (daemon) to be + run for mailman to operate. RedHat does not ship RPM's that enable + services as part of package installation. You will need to enable + the mailman service if you want mailman to run. + + To enable the mailman service after package installation you may run + the "serviceconf" GUI tool, or you may do the following on the + command line as root. + + /sbin/service mailman start + + To have the mailman service automatically start at certain run + levels (replace the runlevel below with your desired run levels, for + example to start mailman at run levels 3 and 5 runlevel would be 35: + + /sbin/service --level runlevel mailman on + + + +Users upgrading from previous releases of this package may need to +move their data or adjust the configuration files to point to the +locations where their data is. + +%prep +%setup -q +%patch0 -p1 -b .syntax +%patch1 -p1 -b .permissions + +cp $RPM_SOURCE_DIR/mailman-README.REDHAT README.REDHAT +aclocal +autoconf + +%build + +# Override the RPM macro for older RH7.x. Not graceful, but works. +MYPYTHON=%{__python} +if [ -f /usr/bin/python2 ]; then + MYPYTHON=/usr/bin/python2 +fi + +CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS +MAILHOST=localhost.localdomain \ +URLHOST=localhost.localdomain \ +MAILMAN_UID=%{mmuserid} \ +MAILMAN_GID=%{mmgroupid} \ +MAIL_GID=%{mailgid} \ +CGI_UID=%{cgiuserid} \ +CGI_GID=%{cgigroupid} \ +./configure \ + --prefix=%{mmdir} \ + --with-var-prefix=%{varmmdir} \ + --with-python=$MYPYTHON \ + --with-username=%{mmuser} \ + --with-groupname=%{mmgroup} \ + --with-mail-gid=%{mailgroup} \ + --with-cgi-id=%{cgiuser} \ + --with-cgi-gid=%{cgigroup} \ + --with-mailhost=localhost.localdomain \ + --with-urlhost=localhost.localdomain \ + --without-permcheck +cp %{SOURCE1} Mailman/mm_cfg.py.dist +make + +%install +rm -fr $RPM_BUILD_ROOT +# Normal install. +make install prefix=$RPM_BUILD_ROOT%{mmdir} var_prefix=$RPM_BUILD_ROOT%{varmmdir} + +# Create directories we'll use for log and spool files. +install -m775 -d $RPM_BUILD_ROOT/var/log/mailman +install -m775 -d $RPM_BUILD_ROOT/var/spool/mailman/qfiles + +# Install the mailman init.d script +mkdir -p $RPM_BUILD_ROOT/etc/init.d +install $RPM_BUILD_ROOT%{mmdir}/scripts/mailman $RPM_BUILD_ROOT/etc/init.d/mailman + +# Create a link to the wrapper in /etc/smrsh to allow sendmail to run it. +mkdir -p $RPM_BUILD_ROOT/etc/smrsh +ln -s ../..%{mmdir}/mail/%{mail_wrapper} $RPM_BUILD_ROOT/etc/smrsh + +# Install a logrotate control file. +mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d +install -m644 $RPM_SOURCE_DIR/mailman.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/mailman + +# Install the httpd configuration file. +install -m755 -d $RPM_BUILD_ROOT%{mmdir}/www +install -m644 /dev/null $RPM_BUILD_ROOT%{mmdir}/www/httpd-mailman.conf +sed -e 's|@VARMMDIR@|%{varmmdir}|g' -e 's|@MMDIR@|%{mmdir}|g' \ + $RPM_SOURCE_DIR/httpd-mailman.conf > \ + $RPM_BUILD_ROOT%{mmdir}/www/httpd-mailman.conf + +# The file fblast confuses /usr/lib/rpm/find-requires because its an executable +# script file that does not have the interpreter as the first line, its not +# executable by itself so turn off its execute permissions +chmod 0644 $RPM_BUILD_ROOT/%{mmdir}/tests/fblast.py + +# Remove this, we don't want to overwrite a site's config. Address in post +rm -f $RPM_BUILD_ROOT%{mmdir}/Mailman/mm_cfg.py + +%clean +rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/files.%{name} + +%post +# Clean out any byte-compiled python modules and recompile them. +find %{mmdir} -name "*.pyc" -exec rm -f '{}' ';' +%{__python} -c 'from compileall import *; compile_dir("%{mmdir}",10,"%{mmdir}")' > /dev/null 2>&1 + +# add core aliases for the mailman subsystem +if ! grep -q "mailman-owner" /etc/aliases 2> /dev/null ; then + cat >> /etc/aliases << EOF +# mailman aliases +mailman: postmaster +mailman-owner: mailman +EOF + /usr/bin/newaliases > /dev/null 2>&1 || : +fi + +# This adds the proper /etc/rc*.d links for the script that runs the mailman qrunner daemon +chkconfig --add mailman + +# copy the default config over if needed (protect upgrades) +if [ ! -f %{mmdir}/Mailman/mm_cfg.py ]; then + cp -f %{mmdir}/Mailman/mm_cfg.py.dist %{mmdir}/Mailman/mm_cfg.py +fi + +%preun + +# if [ $1 = 0 ]' checks that this is the actual deinstallation of +# the package, as opposed to just removing the old package on upgrade. + +if [ $1 = 0 ]; then + # These statements stop the service, and remove the /etc/rc*.d links. + /sbin/service mailman stop >/dev/null 2>&1 + /sbin/chkconfig --del mailman +fi + +%postun + +if [ "$1" -ge "1" ]; then + # if [ "$1" -ge "1" ] checks that this is an upgrade of the package. + # If so, restart the service if it's running. + /sbin/service mailman restart >/dev/null 2>&1 +fi + +if [ $1 = 0 ]; then + crontab -u %{mmuser} -r + TMPFILE=`mktemp /etc/aliasesXXXXXX` + if test -n "$TMPFILE" ; then + egrep -E -v 'mailman aliases|mailman:|mailman-owner:' /etc/aliases >${TMPFILE} + mv ${TMPFILE} /etc/aliases + fi + /usr/bin/newaliases > /dev/null 2>&1 || : + # remove compiled python files + find %{mmdir} -name "*.pyc" -exec rm -f '{}' ';' +fi + +%files +%doc %attr(-,root,root) ACKNOWLEDGMENTS BUGS FAQ gnu-COPYING-GPL INSTALL NEWS README README.CONTRIB README.EXIM README-I18N.en README.LINUX README.NETSCAPE README.POSTFIX README.QMAIL README.REDHAT README.SENDMAIL README.USERAGENT TODO UPGRADING +%defattr(-,root,%{mmgroup}) +%{mmdir} +/etc/logrotate.d/mailman +/etc/smrsh/%{mail_wrapper} +%attr(2775,root,%{mmgroup}) /var/log/mailman +%attr(2775,root,%{mmgroup}) /var/spool/mailman +%attr(0755 root root) /etc/init.d/mailman + +%changelog +* Fri Mar 7 2003 Troy Engel 2.1.1-2 +- added --with-mailhost and --with-urlhost set to localhost.localdomain +- update mm_cfg.py to have DEFAULT_EMAIL_HOST and DEFAULT_URL_HOST +- add some logic to protect mm_cfg.py on upgrades (proper way would + be to mark it config/noreplace, but that would now involve building + a whole filelist) + +* Fri Mar 7 2003 Troy Engel 2.1.1-1 +- upgraded to 2.1.1 +- make webserver agnostic (leave icons in mailman dir, remove 'webserver' + dependancy, user nobody, etc). A webserver is not *required* +- change user/group to mail.mail -- exim, postfix and sendmail all seem + to use this. Using 'mailman' has caused me nothing but problems +- remove config, multimail, and xss patches +- update mm_cfg.py +- remove newaliases requirement -- MTAs like Exim don't require futzing + with /etc/aliases for each list +- move sample apache config to %{mmdir}/www/ +- check for /usr/bin/python2 and pass that to ./configure if found +- added a doc section in the filelist +- removed automatic crontab insertion, added to post-install instructions + +* Fri Jan 31 2003 John Dennis +- various small tweaks to the spec file to make installation cleaner +- use %{__python} when compiling, redirect compile output to /dev/null, +- don't run update in %post, let the user do it, remove the .pyc files in %postun, +- add setting of MAILHOST and URLHOST to localhost.localdomain, don't let +- configure set them to the build machine. + +* Mon Jan 27 2003 John Dennis +- add the cross site scripting (xss) security patch to version 2.1 + +* Fri Jan 24 2003 John Dennis +- do not start mailman service in %post + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Mon Jan 20 2003 John Dennis +- 1) remove config patch, mailmanctl was not the right file to install in init.d, +- it needed to be scripts/mailman +- 2) rename httpd-mailman.conf to mailman.conf, since the file now lives +- in httpd/conf.d directory the http prefix is redundant and inconsistent +- with the other file names in that directory. + +* Tue Jan 7 2003 John Dennis +- Bring package up to date with current upstream source, 2.1 +- Fix several install/packaging problems that were in upstream source +- Add multiple mail group functionality +- Fix syntax error in fblast.py +- Remove the forced setting of mail host and url host in mm_cfg.py + +* Tue Nov 12 2002 Tim Powers 2.0.13-4 +- remove files from $$RPM_BUILD_ROOT that we don't intent to ship + +* Thu Aug 14 2002 Nalin Dahyabhai 2.0.13-3 +- set MAILHOST and WWWHOST in case the configure script can't figure out the + local host name + +* Fri Aug 2 2002 Nalin Dahyabhai 2.0.13-2 +- rebuild + +* Fri Aug 2 2002 Nalin Dahyabhai 2.0.13-1 +- specify log files individually, per faq wizard +- update to 2.0.13 + +* Wed May 22 2002 Nalin Dahyabhai 2.0.11-1 +- update to 2.0.11 + +* Fri Apr 5 2002 Nalin Dahyabhai 2.0.9-1 +- include README.QMAIL in with the docs (#58887) +- include README.SENDMAIL and README.EXIM in with the docs +- use an included httpd.conf file instead of listing the configuration + directives in the %%description, which due to specspo magic might look + wrong sometimes (part of #51324) +- interpolate the DEFAULT_HOST_NAME value in mm.cfg into both the DEFAULT_URL + and MAILMAN_OWNER (#57987) +- move logs to /var/log/mailman, qfiles to /var/spool/mailman, rotate + logs in the log directory (#48724) +- raise exceptions when someone tries to set the admin address for a list + to that of the admin alias (#61468) + +* Thu Apr 4 2002 Nalin Dahyabhai +- fix a default permissions problem in %{_var}/mailman/archives/private, + reported by Johannes Erdfelt +- update to 2.0.9 + +* Tue Apr 2 2002 Nalin Dahyabhai +- make the symlink in /etc/smrsh relative + +* Tue Dec 11 2001 Nalin Dahyabhai 2.0.8-1 +- set FQDN and URL at build-time so that they won't be set to the host the + RPM package is built on (#59177) + +* Wed Nov 28 2001 Nalin Dahyabhai +- update to 2.0.8 + +* Sat Nov 17 2001 Florian La Roche 2.0.7-1 +- update to 2.0.7 + +* Wed Jul 25 2001 Nalin Dahyabhai 2.0.6-1 +- update to 2.0.6 + +* Mon Jun 25 2001 Nalin Dahyabhai +- code in default user/group names/IDs + +* Wed May 30 2001 Nalin Dahyabhai +- update to 2.0.5 +- change the default hostname from localhost to localhost.localdomain in the + default configuration +- chuck configuration file settings other than those dependent on the host name + (the build system's host name is not a good default) (#32337) + +* Tue Mar 13 2001 Nalin Dahyabhai +- update to 2.0.3 + +* Tue Mar 6 2001 Nalin Dahyabhai +- update to 2.0.2 + +* Wed Feb 21 2001 Nalin Dahyabhai +- patch from Barry Warsaw (via mailman-developers) to not die on + broken Content-Type: headers + +* Tue Jan 9 2001 Nalin Dahyabhai +- update to 2.0.1 + +* Wed Dec 6 2000 Nalin Dahyabhai +- update to 2.0 final release +- move the data to %{_var} + +* Fri Oct 20 2000 Nalin Dahyabhai +- update to beta 6 + +* Thu Aug 3 2000 Nalin Dahyabhai +- add note about adding FollowSymlinks so that archives work + +* Wed Aug 2 2000 Nalin Dahyabhai +- make the default owner root again so that root owns the docs +- update to 2.0beta5, which fixes a possible security vulnerability +- add smrsh symlink + +* Mon Jul 24 2000 Prospector +- rebuilt + +* Wed Jul 19 2000 Nalin Dahyabhai +- update to beta4 +- change uid/gid to apache.apache to match apache (#13593) +- properly recompile byte-compiled versions of the scripts (#13619) +- change mailman alias from root to postmaster + +* Sat Jul 1 2000 Nalin Dahyabhai +- update to beta3 +- drop bugs and arch patches (integrated into beta3) + +* Tue Jun 27 2000 Nalin Dahyabhai +- move web files to reside under %{contentdir} +- move files from /usr/share to %{_datadir} +- integrate spot-fixes from mailman lists via gnome.org + +* Mon Jun 19 2000 Nalin Dahyabhai +- rebuild for Power Tools + +* Wed May 23 2000 Nalin Dahyabhai +- Update to 2.0beta2 to pick up security fixes. +- Change equires python to list >= 1.5.2 + +* Mon Nov 8 1999 Bernhard Rosenkränzer +- 1.1 + +* Tue Sep 14 1999 Preston Brown +- 1.0 final. + +* Tue Jun 15 1999 Preston Brown +- security fix for cookies +- moved to /usr/share/mailman + +* Fri May 28 1999 Preston Brown +- fix up default values. + +* Fri May 07 1999 Preston Brown +- modifications to install scripts + +* Thu May 06 1999 Preston Brown +- initial RPM for SWS 3.0