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