michael@7: ## michael@7: ## mailman.spec -- OpenPKG RPM Package Specification michael@7: ## Copyright (c) 2000-2008 OpenPKG Foundation e.V. michael@7: ## michael@7: ## Permission to use, copy, modify, and distribute this software for michael@7: ## any purpose with or without fee is hereby granted, provided that michael@7: ## the above copyright notice and this permission notice appear in all michael@7: ## copies. michael@7: ## michael@7: ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED michael@7: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@7: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@7: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@7: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@7: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@7: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@7: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@7: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@7: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@7: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@7: ## SUCH DAMAGE. michael@7: ## michael@7: michael@392: # MSvB FIXME: michael@392: # MSvB FIXME: Problem with logging to syslog instead of FSL... michael@392: # MSvB FIXME: michael@394: # MSvB FIXME: Sep 20 17:33:41 host.name.tld Mailman mail-wrapper: [ID 702911 mail.error] Group mismatch error. Mailman expected the mail michael@394: # MSvB FIXME: Sep 20 17:33:41 host.name.tld wrapper script to be executed as group "pfx", but michael@394: # MSvB FIXME: Sep 20 17:33:41 host.name.tld the system's mail server executed the mail script as michael@394: # MSvB FIXME: Sep 20 17:33:41 host.name.tld group "pfx-n". Try tweaking the mail server to run the michael@394: # MSvB FIXME: Sep 20 17:33:41 host.name.tld script as group "pfx", or re-run configure, michael@394: # MSvB FIXME: Sep 20 17:33:41 host.name.tld providing the command line option `--with-mail-gid=pfx-n'. michael@392: michael@7: # package information michael@7: Name: mailman michael@7: Summary: Mailing List Management System michael@7: URL: http://www.list.org/ michael@7: Vendor: John Viega et al. michael@7: Packager: OpenPKG Foundation e.V. michael@7: Distribution: OpenPKG Community michael@7: Class: EVAL michael@7: Group: Mail michael@7: License: GPL michael@371: Version: 2.1.14 michael@371: Release: 20110915 michael@7: michael@7: # list of sources michael@7: Source0: http://switch.dl.sourceforge.net/mailman/mailman-%{version}.tgz michael@7: Source1: manpages.tar.gz michael@7: Source2: mailman-sendmail.m4 michael@7: Source3: mailman-apache.conf michael@7: Source4: rc.mailman michael@7: Patch0: mailman.patch michael@7: michael@7: # build information michael@7: Prefix: %{l_prefix} michael@7: BuildRoot: %{l_buildroot} michael@185: BuildPreReq: OpenPKG, openpkg >= 20060823, python, make michael@7: PreReq: OpenPKG, openpkg >= 20060823, python, MTA michael@7: AutoReq: no michael@7: AutoReqProv: no michael@7: michael@7: %description michael@7: Mailman is software to help manage email discussion lists, much michael@7: like Majordomo and Smartmail. Unlike most similar products, Mailman michael@7: gives each mailing list a webpage, and allows users to subscribe, michael@7: unsubscribe, etc. over the Web. Even the list manager can administer michael@7: his or her list entirely from the Web. Mailman also integrates most michael@7: things people want to do with mailing lists, including archiving, michael@7: mail/news gateways, and so on. michael@7: michael@7: %track michael@7: prog mailman = { michael@7: version = %{version} michael@7: url = http://prdownloads.sourceforge.net/mailman/ michael@7: regex = mailman-(\d+\.\d+\.\d+)\.tgz michael@7: } michael@7: michael@7: %prep michael@7: %setup -q michael@7: %setup -q -D -T -a 1 michael@7: %patch -p0 michael@371: %{l_shtool} subst \ michael@371: -e 's;\(OWNERS_CAN_DELETE_THEIR_OWN_LISTS\) = No.*;\1 = Yes;' \ michael@371: Mailman/Defaults.py* michael@7: michael@7: %build michael@7: # configure package michael@7: CC="%{l_cc}" \ michael@7: CFLAGS="%{l_cflags -O}" \ michael@7: CPPFLAGS="%{l_cppflags}" \ michael@7: LDFLAGS="%{l_ldflags}" \ michael@7: ./configure \ michael@7: --prefix=%{l_prefix}/libexec/mailman \ michael@7: --exec-prefix=%{l_prefix}/libexec/mailman \ michael@7: --sysconfdir=%{l_prefix}/etc/mailman \ michael@7: --with-var-prefix=%{l_prefix}/var/mailman \ michael@7: --with-username=%{l_nusr} \ michael@185: --with-groupname=%{l_ngrp} \ michael@7: --with-cgi-gid=%{l_ngrp} \ michael@185: --with-mail-gid=%{l_ngrp} \ michael@7: --with-cgi-ext="" \ michael@7: --with-urlhost="localhost" \ michael@7: --with-mailhost="localhost" \ michael@7: --without-permcheck \ michael@7: --enable-static michael@7: michael@7: # build package michael@188: %{l_make} %{l_mflags -O} michael@7: michael@7: %install michael@7: # install package michael@7: rm -rf $RPM_BUILD_ROOT michael@7: %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT DIRSETGID=true michael@7: michael@7: # create additional directories michael@7: %{l_shtool} mkdir -f -p -m 755 \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/etc/mailman \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/man/man8 michael@7: michael@7: # strip down installation tree michael@7: rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/tests michael@7: michael@7: # install Sendmail mailer handler michael@7: %{l_shtool} install -c -m 755 \ michael@7: -e 's;#!/usr/local/bin/perl;#!%{l_prefix}/bin/perl;' \ michael@7: -e 's;/home/mailman/mail/mailman;%{l_prefix}/libexec/mailman/mail/mailman;' \ michael@7: -e 's;/home/mailman/lists;%{l_prefix}/var/mailman/lists;' \ michael@7: -e 's;/usr/lib/sendmail;%{l_prefix}/sbin/sendmail;' \ michael@7: contrib/mm-handler \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/mail/mailman-sendmail michael@7: michael@7: # install Apache and Sendmail configurations michael@7: %{l_shtool} install -c -m 644 %{l_value -s -a} \ michael@7: %{SOURCE mailman-sendmail.m4} %{SOURCE mailman-apache.conf} \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/ michael@7: michael@7: # install manual pages michael@7: %{l_shtool} install -c -m 644 \ michael@7: man8/*.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/ michael@7: michael@7: # post-adjust default configuration michael@7: mv $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg michael@7: ln -s %{l_prefix}/etc/mailman/mailman.cfg \ michael@7: $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py michael@7: ( echo "" michael@7: echo "DEFAULT_EMAIL_HOST = 'host.example.com'" michael@7: echo "DEFAULT_URL_HOST = 'host.example.com'" michael@7: echo "IMAGE_LOGOS = '/mailman/icons/'" michael@7: echo "PUBLIC_ARCHIVE_URL = '/mailman/pipermail/%%(listname)s'" michael@7: echo "MAILMAN_USER = '%{l_nusr}'" michael@186: echo "MAILMAN_GROUP = '%{l_ngrp}'" michael@7: echo "DEFAULT_SERVER_LANGUAGE = 'en'" michael@7: echo "VERP_PASSWORD_REMINDERS = 1" michael@7: echo "VERP_PERSONALIZED_DELIVERIES = 1" michael@7: echo "VERP_CONFIRMATIONS = 1" michael@7: echo "VERP_DELIVERY_INTERVAL = 1" michael@7: echo "" michael@7: echo "# For available options and their descriptions see:" michael@7: echo "# %{l_prefix}/libexec/mailman/Mailman/Defaults.py" michael@7: echo "" michael@7: ) >>$RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg michael@7: michael@7: # install run-command script michael@7: %{l_shtool} install -c -m 755 %{l_value -s -a} \ michael@7: %{SOURCE rc.mailman} ${RPM_BUILD_ROOT}%{l_prefix}/etc/rc.d/ michael@7: michael@9: # avoid root permissions on log file creation michael@56: touch ${RPM_BUILD_ROOT}%{l_prefix}/var/mailman/logs/error michael@371: touch ${RPM_BUILD_ROOT}%{l_prefix}/var/mailman/logs/fromusenet michael@9: michael@7: # determine installation files michael@7: %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ michael@7: %{l_files_std} \ michael@7: '%dir %attr(2700,%{l_nusr},%{l_mgrp}) %{l_prefix}/libexec/mailman/mail/mailman-sendmail' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs' \ michael@9: '%dir %attr(644,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs/*' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/spam' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/qfiles' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/locks' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/lists' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives/*' \ michael@7: '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/data' \ michael@7: '%config %attr(0640,%{l_nusr},%{l_mgrp}) %{l_prefix}/etc/mailman/mailman.cfg' \ michael@7: '%config %{l_prefix}/etc/mailman/*' michael@7: michael@7: %files -f files michael@7: michael@7: %clean michael@7: rm -rf $RPM_BUILD_ROOT michael@7: michael@7: %post michael@7: # add hook to MTA configuration michael@7: if [ $1 -eq 1 ]; then michael@7: aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file` michael@7: update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update` michael@7: if [ ".$aliases_file" != . ]; then michael@7: ( echo "mailman: postmaster" michael@7: echo "mailman-owner: postmaster" michael@7: ) |\ michael@7: $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ michael@7: -a -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file michael@7: fi michael@7: if [ ".$update_command" != . ]; then michael@7: eval $update_command michael@7: fi michael@7: fi michael@7: michael@7: # after upgrade, restart service michael@7: [ $1 -eq 2 ] || exit 0 michael@7: $RPM_INSTALL_PREFIX/libexec/mailman/bin/update michael@7: eval `%{l_rc} mailman status 2>/dev/null` michael@7: [ ".$mailman_active" = .yes ] && %{l_rc} mailman restart michael@7: exit 0 michael@7: michael@7: %preun michael@7: # before erase, stop service (and remove files) michael@7: [ $1 -eq 0 ] || exit 0 michael@7: rm -f $RPM_INSTALL_PREFIX/libexec/mailman/bin/paths.pyc >/dev/null 2>&1 || true michael@7: rm -f $RPM_INSTALL_PREFIX/libexec/mailman/cron/paths.pyc >/dev/null 2>&1 || true michael@7: rm -f $RPM_INSTALL_PREFIX/libexec/mailman/scripts/paths.pyc >/dev/null 2>&1 || true michael@7: %{l_rc} mailman stop 2>/dev/null michael@7: exit 0 michael@7: michael@7: %postun michael@7: # remove hook from MTA configuration michael@7: [ $1 -eq 0 ] || exit 0 michael@7: aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file` michael@7: update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update` michael@7: if [ ".$aliases_file" != . ]; then michael@7: $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ michael@7: -r -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file michael@7: fi michael@7: if [ ".$update_command" != . ]; then michael@7: eval $update_command michael@7: fi michael@7: