]> git.pld-linux.org Git - packages/mailman.git/blame - mailman.spec
- apache 1 compatible
[packages/mailman.git] / mailman.spec
CommitLineData
59a9a5be
JB
1# TODO:
2# - are *.po files (beside *.mo) needed in binary package?
e03ec2d4 3Summary: The GNU Mailing List Management System
a444548f
ER
4Summary(es.UTF-8): El Sistema de Mantenimiento de listas de GNU
5Summary(pl.UTF-8): System Zarządzania Listami Pocztowymi GNU
6Summary(pt_BR.UTF-8): O Sistema de Manutenção de listas da GNU
e03ec2d4 7Name: mailman
b6ae2c16 8Version: 2.1.9
1c8b69ec 9Release: 3
02cf0d64 10Epoch: 5
6db16968 11License: GPL v2+
71786abb 12Group: Applications/System
9db31966 13Source0: http://dl.sourceforge.net/mailman/%{name}-%{version}.tgz
b6ae2c16 14# Source0-md5: dd51472470f9eafb04f64da372444835
55198b62 15Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-man-pages.tar.bz2
cfa9db27 16# Source1-md5: 6b55f9f8051c76961b84a12ed17fc14f
b74a500a 17Source2: %{name}.conf
4f307f1a 18Source3: %{name}.init
45822e50 19Source4: %{name}.sysconfig
1f1f1e51 20Source5: %{name}.logrotate
e24574a5
TO
21# Need to check if it's still useful
22#Patch0: %{name}-xss.patch
d7156e9e 23Patch1: %{name}-MM_FIND_GROUP_NAME.patch
1c8b69ec
JR
24Patch2: %{name}-dont-send-broken-reminder-ugly-hack.patch
25Patch3: %{name}-mailmanctl-status.patch
26Patch4: %{name}-cron.patch
27Patch5: %{name}-python-compile.patch
28Patch6: %{name}-build.patch
29Patch7: %{name}-FHS.patch
611deac8 30URL: http://www.list.org/
42215f42 31BuildRequires: autoconf
c227cd5a 32BuildRequires: automake
42215f42
JB
33BuildRequires: python >= 2.1
34BuildRequires: python-devel
d366fa4f 35BuildRequires: rpmbuild(macros) >= 1.268
1ca365d2
JB
36Requires(post): /bin/hostname
37Requires(post): grep
d366fa4f
ER
38Requires(post,preun): /sbin/chkconfig
39Requires(postun): /usr/sbin/groupdel
40Requires(postun): /usr/sbin/userdel
1ca365d2
JB
41Requires(postun): fileutils
42Requires(postun): grep
d366fa4f
ER
43Requires(pre): /bin/id
44Requires(pre): /usr/bin/getgid
45Requires(pre): /usr/sbin/groupadd
46Requires(pre): /usr/sbin/useradd
4bc957f5 47Requires: /sbin/chkconfig
18e8047c 48Requires: crondaemon
d366fa4f 49Requires: rc-scripts
18e8047c 50Requires: smtpdaemon
5de7fff6 51Requires: webapps
28503e33 52Requires: webserver
d366fa4f 53%pyrequires_eq python-modules
283de5b9 54Provides: group(mailman)
55Provides: user(mailman)
944f8d92 56Conflicts: logrotate < 3.7-4
e03ec2d4
AM
57BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
58
ff7c645e 59%define _queuedir /var/spool/%{name}
ad258e55
PG
60%define _lockdir /var/lock/%{name}
61%define _logdir /var/log/%{name}
f242975b 62%define _logarchdir /var/log/archive/%{name}
ad258e55
PG
63%define _piddir /var/run/%{name}
64
5de7fff6
JR
65%define _webapps /etc/webapps
66%define _webapp %{name}
67%define _sysconfdir %{_webapps}/%{_webapp}
ad258e55 68
e03ec2d4 69%description
71786abb 70Mailman -- The GNU Mailing List Management System -- is a mailing list
71management system written mostly in Python. Features:
72- most standard mailing list features, including: moderation, mail
73 based commands, digests, etc...
74- an extensive Web interface, customizable on a per-list basis,
75- web based list administration interface for *all* admin-type tasks
76- automatic Web based hypermail-style archives (using pipermail or
77 other external archiver), including provisions for private archives
78- integrated mail list to newsgroup gatewaying
79- integrated newsgroup to mail list gatewaying (polling-based... if
80 you have access to the nntp server, you should be able to easily do
0433634b 81 non-polling based news->mail list gatewaying; email viega@list.org
82 (I'd like to help get that going and come up with instructions)
71786abb 83- smart bounce detection and correction
84- integrated fast bulk mailing
85- smart spam protection
86- extensible logging
87- multiple list owners and moderators are possible
88- optional MIME-compliant digests,
89- nice about which machine you subscribed from if you're from the
90 right domain,
91
c7fea9f2
JR
92%description -l es.UTF-8
93Mailman -- El sistema de manutención de listas de discusión de la
0433634b 94licencia GNU.
95
c7fea9f2
JR
96%description -l pl.UTF-8
97Mailman -- System Zarządzania Listami Pocztowymi GNU -- został
98napisany głównie w Pythonie. Jego możliwości to:
99- standardowe możliwości: moderowanie, komendy przesyłane pocztą,
71786abb 100 digesty itp,
c7fea9f2
JR
101- interfejs WWW konfigurowalny dla każdej listy,
102- automatyczny system archiwizowania (z użyciem pipermaila lub innego
103 zewnętrznego archiwizera) włączając w to odpowiednie zarządzanie
71786abb 104 prywatnymi archiwami,
105- bramki mail <-> news,
c7fea9f2 106- doskonały system wykrywania odbić i korekcji odbitej poczty,
71786abb 107- system ochrony przed spamem,
108- rozszerzone logowanie,
c7fea9f2 109- listy mogą być własnością wielu osób oraz moderatorów może być
71786abb 110 kilku.
e03ec2d4 111
c7fea9f2
JR
112%description -l pt_BR.UTF-8
113O Mailman -- O sistema de gerenciamento de listas de discussão do GNU
114-- é um sistema de gerenciamento de listas de discussão escrito em sua
115maior parte em Python. Características:
0433634b 116
c7fea9f2
JR
117- Maioria das características de lista de discussão padrão, incluindo:
118 moderação, comandos baseados em e-mail, compiladores (digests),
0d521289 119 etc...
c7fea9f2
JR
120- Uma interface extensiva da Web, personalizável lista a lista.
121- Interface de administração de lista baseada na Web para *todas* as
0433634b 122 tarefas de tipo de admin.
c7fea9f2
JR
123- Arquivos automáticos de estilo hypermail baseado na Web (usando
124 pipermail ou outros arquivadores externos), incluindo provisões para
0433634b 125 arquivos privados.
c7fea9f2
JR
126- Lista de e-mails integrada ao gateway de grupo de notícias.
127- Grupo de notícias integrado ao gateway de lista de e-mail (baseado
128 em consulta... se você tiver acesso ao servidor nntp, deve ser fácil
129 conseguir efetuar notícias baseadas em não-consulta->gateway de
0d521289 130 lista de e-mails; envie um e-mail a viega@list.org, eu gostaria de
c7fea9f2
JR
131 ajudar a manter isto e aparecer com instruções).
132- Detecção e correção inteligente de mensagens retornadas.
133- Envio de e-mail em massa rápido e integrado.
134- Proteção inteligente contra spam.
135- Registro ampliável.
136- São possíveis múltiplos donos e moderadores de lista.
137- Compiladores (digests) opcionais compatíveis com MIME.
138- Informa a partir de qual máquina você se inscreveu, caso esteja no
139 domínio correto.
0433634b 140
e03ec2d4 141%prep
4987a9c4 142%setup -q
e24574a5 143#patch0 -p1
d7156e9e 144%patch1 -p1
951d18f3 145%patch2 -p1
ad258e55 146%patch3 -p1
7fca4a12 147%patch4 -p1
33bf8c3c 148%patch5 -p1
ad258e55
PG
149%patch6 -p1
150%patch7 -p1
e03ec2d4
AM
151
152%build
47b79953 153%{__aclocal}
52cf35d9 154%{__autoconf}
838e4fb7 155
e03ec2d4 156%configure \
9ddb2c4a 157 --prefix=%{_libdir}/%{name} \
9db31966 158 --exec-prefix=%{_libdir}/%{name} \
9ddb2c4a 159 --with-var-prefix=/var/lib/%{name} \
5de7fff6 160 --with-config-dir=%{_sysconfdir} \
ad258e55
PG
161 --with-lock-dir=%{_lockdir} \
162 --with-log-dir=%{_logdir} \
163 --with-pid-dir=%{_piddir} \
ff7c645e 164 --with-queue-dir=%{_queuedir} \
e03ec2d4
AM
165 --with-username=%{name} \
166 --with-groupname=%{name} \
d7156e9e
AM
167 --with-mail-gid='mailman' \
168 --with-cgi-gid='http' \
28503e33 169 --with-mailhost=localhost.localdomain \
ad258e55 170 --with-urlhost=localhost.localdomain \
d366fa4f 171 --without-permcheck
e03ec2d4
AM
172%{__make}
173
ad258e55
PG
174#%{__make} -C misc
175
e03ec2d4
AM
176%install
177rm -rf $RPM_BUILD_ROOT
9ddb2c4a
JR
178install -d $RPM_BUILD_ROOT{/etc/{cron.d,logrotate.d,rc.d/init.d,sysconfig,smrsh},%{_mandir}} \
179 $RPM_BUILD_ROOT{%{_sysconfdir},%{_logarchdir}}
e03ec2d4 180
9ddb2c4a 181PYTHONPATH=$RPM_BUILD_ROOT%{_libdir}/%{name}:$RPM_BUILD_ROOT%{_libdir}/%{name}/pythonlib/
2dd74da3 182export PYTHONPATH
183
7ef4b69f 184%{__make} doinstall \
9ddb2c4a 185 DESTDIR=$RPM_BUILD_ROOT
ad258e55
PG
186
187%{__make} install-packages -C misc \
9ddb2c4a 188 DESTDIR=$RPM_BUILD_ROOT
e03ec2d4 189
55198b62 190bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
191
bfa57404 192sed 's#/usr#mailman /usr#' cron/crontab.in > $RPM_BUILD_ROOT/etc/cron.d/%{name}
ef0fd010
JR
193sed -e 's#/usr/lib/mailman#%{_libdir}/mailman#g' %{SOURCE2} \
194 > $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
31cccda6
ER
195sed -e 's#/usr/lib/mailman#%{_libdir}/mailman#g' %{SOURCE2} \
196 > $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
ef0fd010
JR
197sed -e 's#/usr/lib/mailman#%{_libdir}/mailman#g' %{SOURCE3} \
198 > $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
f4510b16 199install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
1f1f1e51 200install %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
4f307f1a 201
9ddb2c4a
JR
202mv $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py $RPM_BUILD_ROOT%{_sysconfdir}
203ln -s %{_sysconfdir}/mm_cfg.py $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py
204
d9cb6a7a 205ln -s %{_sysconfdir}/sitelist.cfg $RPM_BUILD_ROOT%{_var}/lib/mailman/data/sitelist.cfg
4ee42131 206
5de7fff6 207cat >> $RPM_BUILD_ROOT%{_sysconfdir}/mm_cfg.py << EOF
d7156e9e
AM
208DEFAULT_EMAIL_HOST = 'YOUR.HOST.NAME.HERE'
209DEFAULT_URL_HOST = 'YOUR.HOST.NAME.HERE'
210IMAGE_LOGOS = '/mailman/icons/'
211PUBLIC_ARCHIVE_URL = '/mailman/pipermail/%%(listname)s'
212MAILMAN_GROUP = '%{name}'
213MAILMAN_USER = '%{name}'
214#DEFAULT_SERVER_LANGUAGE = 'pl'
215
216# For available options and their descriptions see:
9ddb2c4a 217# %{_libdir}/%{name}/Mailman/Defaults.py
d7156e9e
AM
218EOF
219
ad258e55 220# Create a link to the wrapper in /etc/smrsh to allow sendmail to run it.
9db31966 221ln -s %{_libdir}/%{name}/mail/%{name} $RPM_BUILD_ROOT/etc/smrsh
ad258e55 222
39f4ef46
AM
223# regenerate pyc files with proper paths
224find $RPM_BUILD_ROOT -name '*.pyc' -exec rm "{}" ";"
225%py_comp $RPM_BUILD_ROOT
226
e03ec2d4
AM
227%clean
228rm -rf $RPM_BUILD_ROOT
229
838e4fb7 230%pre
45b15c94 231%groupadd -g 94 mailman
9ddb2c4a 232%useradd -u 94 -d %{_var}/lib/%{name} -s /bin/false -c "GNU Mailing List Manager" -g mailman mailman
1941810d 233
838e4fb7 234%post
6fe860f9 235if [ "$1" = "1" ]; then
d366fa4f 236 %service -q crond restart
18e8047c 237fi
64ccbf62 238%{_libdir}/mailman/bin/update
2f132763 239/sbin/chkconfig --add mailman
d366fa4f
ER
240if [ -f /var/lock/subsys/mailman ] && [ -d /var/spool/mailman/data ]; then
241 ln -sf %{_sysconfdir}/sitelist.cfg /var/spool/mailman/data/sitelist.cfg
4f307f1a 242fi
d366fa4f 243%service mailman restart "mailman qrunner daemon"
4f307f1a
TO
244
245%preun
246if [ "$1" = "0" ]; then
d366fa4f 247 %service mailman stop
4f307f1a
TO
248 /sbin/chkconfig --del mailman
249fi
838e4fb7 250
251%postun
252if [ "$1" = "0" ]; then
283de5b9 253 %userremove mailman
254 %groupremove mailman
d366fa4f 255 %service -q crond restart
838e4fb7 256fi
257
711ebd43 258%triggerin -- apache1 < 1.3.37-3, apache1-base
31cccda6
ER
259%webapp_register apache %{_webapp}
260
711ebd43 261%triggerun -- apache1 < 1.3.37-3, apache1-base
31cccda6
ER
262%webapp_unregister apache %{_webapp}
263
b97eb9ba 264%triggerin -- apache < 2.2.0, apache-base
5de7fff6
JR
265%webapp_register httpd %{_webapp}
266
b97eb9ba 267%triggerun -- apache < 2.2.0, apache-base
5de7fff6
JR
268%webapp_unregister httpd %{_webapp}
269
3ba6587c 270%triggerpostun -- mailman < 1:2.1.7-2.1
bfa57404 271if [ -f /var/spool/cron/%{name} ]; then
0c77cb1a 272 crontab -u %{name} -r
bfa57404
TO
273fi
274
9ddb2c4a
JR
275if [ -f /var/lock/subsys/mailman ]; then
276 ln -sf %{_sysconfdir}/sitelist.cfg /var/spool/mailman/data/sitelist.cfg
d366fa4f 277 /sbin/service mailman stop 1>&2
9ddb2c4a
JR
278 stopped=true
279fi
280
5de7fff6
JR
281# rescue app configs.
282for i in mm_cfg.py sitelist.cfg; do
283 if [ -f /etc/%{name}/$i.rpmsave ]; then
284 mv -f %{_sysconfdir}/$i{,.rpmnew}
285 mv -f /etc/%{name}/$i.rpmsave %{_sysconfdir}/$i
286 fi
287done
288
9ddb2c4a
JR
289if [ "`getent passwd mailman | cut -d: -f6`" != "%{_var}/lib/%{name}" ]; then
290 echo "Fixing passwd entry"
291 /usr/sbin/usermod -d %{_var}/lib/%{name} mailman
292fi
293echo "Moving data from /var/spool/mailman to /var/lib/mailman"
24cd3ebb 294mv -f /var/spool/mailman/archives/private/* %{_var}/lib/mailman/archives/private/
9ddb2c4a
JR
295mv -f /var/spool/mailman/archives/public/* %{_var}/lib/mailman/archives/public/
296mv -f /var/spool/mailman/data/* %{_var}/lib/mailman/data/
297mv -f /var/spool/mailman/lists/* %{_var}/lib/mailman/lists/
298mv -f /var/spool/mailman/spam/* %{_var}/lib/mailman/spam/
299mv -f /var/spool/mailman/logs/* %{_logdir}/
300mv -f /var/spool/mailman/locks/* %{_lockdir}/
301mv -f /var/spool/mailman/qfiles/* %{_queuedir}/
302# Fix symlinks for public archives
303cd %{_var}/lib/mailman/archives/public/
304for i in * ; do
305 link=$(readlink "$i")
306 dn=$(dirname "$link")
307 if [ "$dn" = "/var/spool/mailman/archives/private" ]; then
308 ln -sf "%{_var}/lib/mailman/archives/private/$i" "$i"
309 fi
310done
311cd -
312# Remove empty dirs (DON'T rm -rf here!)
24cd3ebb 313rmdir --ignore-fail-on-non-empty /var/spool/mailman/{archives/{private,public},archives,data,lists,spam,logs,locks,qfiles}
23ade1a9
JR
314if [ -f %{_var}/lib/mailman/Mailman/mm_cfg.pyc ]; then
315 rm -f %{_var}/lib/mailman/Mailman/mm_cfg.pyc
316fi
9ddb2c4a 317%{_libdir}/mailman/bin/update
d366fa4f 318if [ "$stopped" = "true" ]; then
9ddb2c4a 319 rm -f /var/spool/mailman/data/sitelist.cfg
d366fa4f 320 /sbin/service mailman start 1>&2
9ddb2c4a
JR
321fi
322
5de7fff6
JR
323# nuke very-old config location (this mostly for Ra)
324if [ -f /etc/httpd/httpd.conf ]; then
325 sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
326fi
327
328# migrate from httpd (apache2) config dir
329if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
330 cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
331 mv -f /etc/httpd/%{name}.conf.rpmsave %{_sysconfdir}/httpd.conf
332fi
333
0b26fc15
JR
334# migrate from httpd (apache2) config dir
335if [ -f /etc/httpd/httpd.conf/90_%{name}.conf.rpmsave ]; then
336 cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
337 mv -f /etc/httpd/httpd.conf/90_%{name}.conf.rpmsave %{_sysconfdir}/httpd.conf
338fi
339
5de7fff6
JR
340rm -f /etc/httpd/httpd.conf/90_%{name}.conf
341/usr/sbin/webapp register httpd %{_webapp}
d366fa4f 342%service -q httpd reload
5de7fff6 343
e03ec2d4
AM
344%files
345%defattr(644,root,root,755)
ad258e55 346%doc BUGS FAQ NEWS README README.CONTRIB README.NETSCAPE README.USERAGENT TODO UPGRADING INSTALL
736c46b0 347%{_mandir}/man?/*
31cccda6
ER
348%attr(2775,root,mailman) %dir %{_sysconfdir}
349%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
5de7fff6 350%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
31cccda6
ER
351%attr(644,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mm_cfg.py
352%attr(644,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sitelist.cfg
3aaf3756 353%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
ad258e55 354/etc/smrsh/%{name}
3aaf3756 355%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
1f1f1e51 356%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
838e4fb7 357
ad258e55 358%attr(754,root,root) /etc/rc.d/init.d/%{name}
4f307f1a 359
736c46b0 360%defattr(644,root,mailman,2775)
9ddb2c4a
JR
361%dir %{_libdir}/%{name}
362%dir %{_libdir}/%{name}/bin
ff7c645e 363%dir %{_libdir}/%{name}/cgi-bin
9ddb2c4a
JR
364%dir %{_libdir}/%{name}/cron
365%dir %{_libdir}/%{name}/icons
ff7c645e 366%dir %{_libdir}/%{name}/mail
9ddb2c4a
JR
367%dir %{_libdir}/%{name}/scripts
368%dir %{_libdir}/%{name}/templates
369%dir %{_libdir}/%{name}/pythonlib
370%dir %{_libdir}/%{name}/messages
371%dir %{_libdir}/%{name}/tests
9ddb2c4a
JR
372%{_libdir}/%{name}/Mailman
373%{_libdir}/%{name}/bin/p*
374%attr(2755,root,mailman) %{_libdir}/%{name}/bin/[!p]*
ff7c645e
JR
375%attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/*
376%attr(755,root,mailman) %{_libdir}/%{name}/cron/bumpdigests
377%attr(755,root,mailman) %{_libdir}/%{name}/cron/checkdbs
378%attr(755,root,mailman) %{_libdir}/%{name}/cron/disabled
379%attr(755,root,mailman) %{_libdir}/%{name}/cron/gate_news
380%attr(755,root,mailman) %{_libdir}/%{name}/cron/mailpasswds
381%attr(755,root,mailman) %{_libdir}/%{name}/cron/nightly_gzip
382%attr(755,root,mailman) %{_libdir}/%{name}/cron/senddigests
383%{_libdir}/%{name}/cron/crontab.in
384%{_libdir}/%{name}/cron/paths.py*
9ddb2c4a
JR
385%{_libdir}/%{name}/scripts/*
386%{_libdir}/%{name}/icons/*
ff7c645e 387%attr(2755,root,mailman) %{_libdir}/%{name}/mail/*
9ddb2c4a
JR
388%{_libdir}/%{name}/templates/*
389%{_libdir}/%{name}/pythonlib/*
390%{_libdir}/%{name}/messages/*
391%{_libdir}/%{name}/tests/*
392
ff7c645e
JR
393%dir %{_var}/lib/%{name}
394%dir %{_var}/lib/%{name}/archives
395%attr(2771,root,mailman) %dir %{_var}/lib/%{name}/archives/private
396%dir %{_var}/lib/%{name}/archives/public
397%{_var}/lib/%{name}/data
398%dir %{_var}/lib/%{name}/lists
399%dir %{_var}/lib/%{name}/spam
400%dir %{_queuedir}
ad258e55
PG
401%dir %{_lockdir}
402%dir %{_logdir}
403%dir %{_logarchdir}
404%dir %{_piddir}
This page took 0.150761 seconds and 4 git commands to generate.