Wed, 17 Dec 2008 15:03:09 +0100
Correct active configuration testing to allow service to start.
1 ##
2 ## mailman.spec -- OpenPKG RPM Package Specification
3 ## Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/>
4 ##
5 ## Permission to use, copy, modify, and distribute this software for
6 ## any purpose with or without fee is hereby granted, provided that
7 ## the above copyright notice and this permission notice appear in all
8 ## copies.
9 ##
10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE.
22 ##
24 # package information
25 Name: mailman
26 Summary: Mailing List Management System
27 URL: http://www.list.org/
28 Vendor: John Viega et al.
29 Packager: OpenPKG Foundation e.V.
30 Distribution: OpenPKG Community
31 Class: EVAL
32 Group: Mail
33 License: GPL
34 Version: 2.1.11
35 Release: 20081218
37 # list of sources
38 Source0: http://switch.dl.sourceforge.net/mailman/mailman-%{version}.tgz
39 Source1: manpages.tar.gz
40 Source2: mailman-sendmail.m4
41 Source3: mailman-apache.conf
42 Source4: rc.mailman
43 Patch0: mailman.patch
45 # build information
46 Prefix: %{l_prefix}
47 BuildRoot: %{l_buildroot}
48 BuildPreReq: OpenPKG, openpkg >= 20060823, python
49 PreReq: OpenPKG, openpkg >= 20060823, python, MTA
50 AutoReq: no
51 AutoReqProv: no
53 %description
54 Mailman is software to help manage email discussion lists, much
55 like Majordomo and Smartmail. Unlike most similar products, Mailman
56 gives each mailing list a webpage, and allows users to subscribe,
57 unsubscribe, etc. over the Web. Even the list manager can administer
58 his or her list entirely from the Web. Mailman also integrates most
59 things people want to do with mailing lists, including archiving,
60 mail/news gateways, and so on.
62 %track
63 prog mailman = {
64 version = %{version}
65 url = http://prdownloads.sourceforge.net/mailman/
66 regex = mailman-(\d+\.\d+\.\d+)\.tgz
67 }
69 %prep
70 %setup -q
71 %setup -q -D -T -a 1
72 %patch -p0
74 %build
75 # configure package
76 CC="%{l_cc}" \
77 CFLAGS="%{l_cflags -O}" \
78 CPPFLAGS="%{l_cppflags}" \
79 LDFLAGS="%{l_ldflags}" \
80 ./configure \
81 --prefix=%{l_prefix}/libexec/mailman \
82 --exec-prefix=%{l_prefix}/libexec/mailman \
83 --sysconfdir=%{l_prefix}/etc/mailman \
84 --with-var-prefix=%{l_prefix}/var/mailman \
85 --with-username=%{l_nusr} \
86 --with-groupname=%{l_mgrp} \
87 --with-cgi-gid=%{l_ngrp} \
88 --with-mail-gid=%{l_mgrp} \
89 --with-cgi-ext="" \
90 --with-urlhost="localhost" \
91 --with-mailhost="localhost" \
92 --without-permcheck \
93 --enable-static
95 # build package
96 %{l_make} %{l_mflags}
98 %install
99 # install package
100 rm -rf $RPM_BUILD_ROOT
101 %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT DIRSETGID=true
103 # create additional directories
104 %{l_shtool} mkdir -f -p -m 755 \
105 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
106 $RPM_BUILD_ROOT%{l_prefix}/etc/mailman \
107 $RPM_BUILD_ROOT%{l_prefix}/man/man8
109 # strip down installation tree
110 rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/tests
112 # install Sendmail mailer handler
113 %{l_shtool} install -c -m 755 \
114 -e 's;#!/usr/local/bin/perl;#!%{l_prefix}/bin/perl;' \
115 -e 's;/home/mailman/mail/mailman;%{l_prefix}/libexec/mailman/mail/mailman;' \
116 -e 's;/home/mailman/lists;%{l_prefix}/var/mailman/lists;' \
117 -e 's;/usr/lib/sendmail;%{l_prefix}/sbin/sendmail;' \
118 contrib/mm-handler \
119 $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/mail/mailman-sendmail
121 # install Apache and Sendmail configurations
122 %{l_shtool} install -c -m 644 %{l_value -s -a} \
123 %{SOURCE mailman-sendmail.m4} %{SOURCE mailman-apache.conf} \
124 $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/
126 # install manual pages
127 %{l_shtool} install -c -m 644 \
128 man8/*.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/
130 # post-adjust default configuration
131 mv $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py \
132 $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg
133 ln -s %{l_prefix}/etc/mailman/mailman.cfg \
134 $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py
135 ( echo ""
136 echo "DEFAULT_EMAIL_HOST = 'host.example.com'"
137 echo "DEFAULT_URL_HOST = 'host.example.com'"
138 echo "IMAGE_LOGOS = '/mailman/icons/'"
139 echo "PUBLIC_ARCHIVE_URL = '/mailman/pipermail/%%(listname)s'"
140 echo "MAILMAN_USER = '%{l_nusr}'"
141 echo "MAILMAN_GROUP = '%{l_mgrp}'"
142 echo "DEFAULT_SERVER_LANGUAGE = 'en'"
143 echo "VERP_PASSWORD_REMINDERS = 1"
144 echo "VERP_PERSONALIZED_DELIVERIES = 1"
145 echo "VERP_CONFIRMATIONS = 1"
146 echo "VERP_DELIVERY_INTERVAL = 1"
147 echo ""
148 echo "# For available options and their descriptions see:"
149 echo "# %{l_prefix}/libexec/mailman/Mailman/Defaults.py"
150 echo ""
151 ) >>$RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg
153 # install run-command script
154 %{l_shtool} install -c -m 755 %{l_value -s -a} \
155 %{SOURCE rc.mailman} ${RPM_BUILD_ROOT}%{l_prefix}/etc/rc.d/
157 # determine installation files
158 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
159 %{l_files_std} \
160 '%dir %attr(2700,%{l_nusr},%{l_mgrp}) %{l_prefix}/libexec/mailman/mail/mailman-sendmail' \
161 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman' \
162 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs' \
163 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/spam' \
164 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/qfiles' \
165 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/locks' \
166 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/lists' \
167 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives' \
168 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives/*' \
169 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/data' \
170 '%config %attr(0640,%{l_nusr},%{l_mgrp}) %{l_prefix}/etc/mailman/mailman.cfg' \
171 '%config %{l_prefix}/etc/mailman/*'
173 %files -f files
175 %clean
176 rm -rf $RPM_BUILD_ROOT
178 %post
179 # add hook to MTA configuration
180 if [ $1 -eq 1 ]; then
181 aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
182 update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
183 if [ ".$aliases_file" != . ]; then
184 ( echo "mailman: postmaster"
185 echo "mailman-owner: postmaster"
186 ) |\
187 $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
188 -a -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
189 fi
190 if [ ".$update_command" != . ]; then
191 eval $update_command
192 fi
193 fi
195 # after upgrade, restart service
196 [ $1 -eq 2 ] || exit 0
197 $RPM_INSTALL_PREFIX/libexec/mailman/bin/update
198 eval `%{l_rc} mailman status 2>/dev/null`
199 [ ".$mailman_active" = .yes ] && %{l_rc} mailman restart
200 exit 0
202 %preun
203 # before erase, stop service (and remove files)
204 [ $1 -eq 0 ] || exit 0
205 rm -f $RPM_INSTALL_PREFIX/libexec/mailman/bin/paths.pyc >/dev/null 2>&1 || true
206 rm -f $RPM_INSTALL_PREFIX/libexec/mailman/cron/paths.pyc >/dev/null 2>&1 || true
207 rm -f $RPM_INSTALL_PREFIX/libexec/mailman/scripts/paths.pyc >/dev/null 2>&1 || true
208 %{l_rc} mailman stop 2>/dev/null
209 exit 0
211 %postun
212 # remove hook from MTA configuration
213 [ $1 -eq 0 ] || exit 0
214 aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
215 update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
216 if [ ".$aliases_file" != . ]; then
217 $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
218 -r -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
219 fi
220 if [ ".$update_command" != . ]; then
221 eval $update_command
222 fi