Sun, 05 Aug 2012 11:31:36 +0200
Solve problem leading to 'GLib must be build with -march=i486 or later.'
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 # MSvB FIXME:
25 # MSvB FIXME: Problem with logging to syslog instead of FSL...
26 # MSvB FIXME:
27 # MSvB FIXME: Sep 20 17:33:41 host.name.tld Mailman mail-wrapper: [ID 702911 mail.error] Group mismatch error. Mailman expected the mail
28 # MSvB FIXME: Sep 20 17:33:41 host.name.tld wrapper script to be executed as group "pfx", but
29 # MSvB FIXME: Sep 20 17:33:41 host.name.tld the system's mail server executed the mail script as
30 # MSvB FIXME: Sep 20 17:33:41 host.name.tld group "pfx-n". Try tweaking the mail server to run the
31 # MSvB FIXME: Sep 20 17:33:41 host.name.tld script as group "pfx", or re-run configure,
32 # MSvB FIXME: Sep 20 17:33:41 host.name.tld providing the command line option `--with-mail-gid=pfx-n'.
34 # package information
35 Name: mailman
36 Summary: Mailing List Management System
37 URL: http://www.list.org/
38 Vendor: John Viega et al.
39 Packager: OpenPKG Foundation e.V.
40 Distribution: OpenPKG Community
41 Class: EVAL
42 Group: Mail
43 License: GPL
44 Version: 2.1.14
45 Release: 20110915
47 # list of sources
48 Source0: http://switch.dl.sourceforge.net/mailman/mailman-%{version}.tgz
49 Source1: manpages.tar.gz
50 Source2: mailman-sendmail.m4
51 Source3: mailman-apache.conf
52 Source4: rc.mailman
53 Patch0: mailman.patch
55 # build information
56 Prefix: %{l_prefix}
57 BuildRoot: %{l_buildroot}
58 BuildPreReq: OpenPKG, openpkg >= 20060823, python, make
59 PreReq: OpenPKG, openpkg >= 20060823, python, MTA
60 AutoReq: no
61 AutoReqProv: no
63 %description
64 Mailman is software to help manage email discussion lists, much
65 like Majordomo and Smartmail. Unlike most similar products, Mailman
66 gives each mailing list a webpage, and allows users to subscribe,
67 unsubscribe, etc. over the Web. Even the list manager can administer
68 his or her list entirely from the Web. Mailman also integrates most
69 things people want to do with mailing lists, including archiving,
70 mail/news gateways, and so on.
72 %track
73 prog mailman = {
74 version = %{version}
75 url = http://prdownloads.sourceforge.net/mailman/
76 regex = mailman-(\d+\.\d+\.\d+)\.tgz
77 }
79 %prep
80 %setup -q
81 %setup -q -D -T -a 1
82 %patch -p0
83 %{l_shtool} subst \
84 -e 's;\(OWNERS_CAN_DELETE_THEIR_OWN_LISTS\) = No.*;\1 = Yes;' \
85 Mailman/Defaults.py*
87 %build
88 # configure package
89 CC="%{l_cc}" \
90 CFLAGS="%{l_cflags -O}" \
91 CPPFLAGS="%{l_cppflags}" \
92 LDFLAGS="%{l_ldflags}" \
93 ./configure \
94 --prefix=%{l_prefix}/libexec/mailman \
95 --exec-prefix=%{l_prefix}/libexec/mailman \
96 --sysconfdir=%{l_prefix}/etc/mailman \
97 --with-var-prefix=%{l_prefix}/var/mailman \
98 --with-username=%{l_nusr} \
99 --with-groupname=%{l_ngrp} \
100 --with-cgi-gid=%{l_ngrp} \
101 --with-mail-gid=%{l_ngrp} \
102 --with-cgi-ext="" \
103 --with-urlhost="localhost" \
104 --with-mailhost="localhost" \
105 --without-permcheck \
106 --enable-static
108 # build package
109 %{l_make} %{l_mflags -O}
111 %install
112 # install package
113 rm -rf $RPM_BUILD_ROOT
114 %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT DIRSETGID=true
116 # create additional directories
117 %{l_shtool} mkdir -f -p -m 755 \
118 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
119 $RPM_BUILD_ROOT%{l_prefix}/etc/mailman \
120 $RPM_BUILD_ROOT%{l_prefix}/man/man8
122 # strip down installation tree
123 rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/tests
125 # install Sendmail mailer handler
126 %{l_shtool} install -c -m 755 \
127 -e 's;#!/usr/local/bin/perl;#!%{l_prefix}/bin/perl;' \
128 -e 's;/home/mailman/mail/mailman;%{l_prefix}/libexec/mailman/mail/mailman;' \
129 -e 's;/home/mailman/lists;%{l_prefix}/var/mailman/lists;' \
130 -e 's;/usr/lib/sendmail;%{l_prefix}/sbin/sendmail;' \
131 contrib/mm-handler \
132 $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/mail/mailman-sendmail
134 # install Apache and Sendmail configurations
135 %{l_shtool} install -c -m 644 %{l_value -s -a} \
136 %{SOURCE mailman-sendmail.m4} %{SOURCE mailman-apache.conf} \
137 $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/
139 # install manual pages
140 %{l_shtool} install -c -m 644 \
141 man8/*.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/
143 # post-adjust default configuration
144 mv $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py \
145 $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg
146 ln -s %{l_prefix}/etc/mailman/mailman.cfg \
147 $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py
148 ( echo ""
149 echo "DEFAULT_EMAIL_HOST = 'host.example.com'"
150 echo "DEFAULT_URL_HOST = 'host.example.com'"
151 echo "IMAGE_LOGOS = '/mailman/icons/'"
152 echo "PUBLIC_ARCHIVE_URL = '/mailman/pipermail/%%(listname)s'"
153 echo "MAILMAN_USER = '%{l_nusr}'"
154 echo "MAILMAN_GROUP = '%{l_ngrp}'"
155 echo "DEFAULT_SERVER_LANGUAGE = 'en'"
156 echo "VERP_PASSWORD_REMINDERS = 1"
157 echo "VERP_PERSONALIZED_DELIVERIES = 1"
158 echo "VERP_CONFIRMATIONS = 1"
159 echo "VERP_DELIVERY_INTERVAL = 1"
160 echo ""
161 echo "# For available options and their descriptions see:"
162 echo "# %{l_prefix}/libexec/mailman/Mailman/Defaults.py"
163 echo ""
164 ) >>$RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg
166 # install run-command script
167 %{l_shtool} install -c -m 755 %{l_value -s -a} \
168 %{SOURCE rc.mailman} ${RPM_BUILD_ROOT}%{l_prefix}/etc/rc.d/
170 # avoid root permissions on log file creation
171 touch ${RPM_BUILD_ROOT}%{l_prefix}/var/mailman/logs/error
172 touch ${RPM_BUILD_ROOT}%{l_prefix}/var/mailman/logs/fromusenet
174 # determine installation files
175 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
176 %{l_files_std} \
177 '%dir %attr(2700,%{l_nusr},%{l_mgrp}) %{l_prefix}/libexec/mailman/mail/mailman-sendmail' \
178 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman' \
179 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs' \
180 '%dir %attr(644,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs/*' \
181 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/spam' \
182 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/qfiles' \
183 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/locks' \
184 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/lists' \
185 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives' \
186 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives/*' \
187 '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/data' \
188 '%config %attr(0640,%{l_nusr},%{l_mgrp}) %{l_prefix}/etc/mailman/mailman.cfg' \
189 '%config %{l_prefix}/etc/mailman/*'
191 %files -f files
193 %clean
194 rm -rf $RPM_BUILD_ROOT
196 %post
197 # add hook to MTA configuration
198 if [ $1 -eq 1 ]; then
199 aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
200 update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
201 if [ ".$aliases_file" != . ]; then
202 ( echo "mailman: postmaster"
203 echo "mailman-owner: postmaster"
204 ) |\
205 $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
206 -a -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
207 fi
208 if [ ".$update_command" != . ]; then
209 eval $update_command
210 fi
211 fi
213 # after upgrade, restart service
214 [ $1 -eq 2 ] || exit 0
215 $RPM_INSTALL_PREFIX/libexec/mailman/bin/update
216 eval `%{l_rc} mailman status 2>/dev/null`
217 [ ".$mailman_active" = .yes ] && %{l_rc} mailman restart
218 exit 0
220 %preun
221 # before erase, stop service (and remove files)
222 [ $1 -eq 0 ] || exit 0
223 rm -f $RPM_INSTALL_PREFIX/libexec/mailman/bin/paths.pyc >/dev/null 2>&1 || true
224 rm -f $RPM_INSTALL_PREFIX/libexec/mailman/cron/paths.pyc >/dev/null 2>&1 || true
225 rm -f $RPM_INSTALL_PREFIX/libexec/mailman/scripts/paths.pyc >/dev/null 2>&1 || true
226 %{l_rc} mailman stop 2>/dev/null
227 exit 0
229 %postun
230 # remove hook from MTA configuration
231 [ $1 -eq 0 ] || exit 0
232 aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
233 update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
234 if [ ".$aliases_file" != . ]; then
235 $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
236 -r -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
237 fi
238 if [ ".$update_command" != . ]; then
239 eval $update_command
240 fi