- df
[packages/mailman.git] / mailman.spec
1 # Conditional build:
2 %bcond_with     umbrella_hack   # break anonimization (for use with moderated umbrella list of moderated lists)
3
4 %define         rel     1
5 Summary:        The GNU Mailing List Management System
6 Summary(es.UTF-8):      El Sistema de Mantenimiento de listas de GNU
7 Summary(pl.UTF-8):      System Zarządzania Listami Pocztowymi GNU
8 Summary(pt_BR.UTF-8):   O Sistema de Manutenção de listas da GNU
9 Name:           mailman
10 Version:        2.1.20
11 Release:        %{rel}%{?with_umbrella_hack:.umh}
12 Epoch:          5
13 License:        GPL v2+
14 Group:          Applications/System
15 Source0:        http://downloads.sourceforge.net/mailman/%{name}-%{version}.tgz
16 # Source0-md5:  96819640406f90a12bc28edd3dc09d4a
17 Source1:        http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-man-pages.tar.bz2
18 # Source1-md5:  6b55f9f8051c76961b84a12ed17fc14f
19 Source2:        %{name}.conf
20 Source3:        %{name}.init
21 Source4:        %{name}.sysconfig
22 Source5:        %{name}.logrotate
23 Source6:        add_nonmembers
24 Source7:        subscribe_list
25 Patch0:         %{name}-MM_FIND_GROUP_NAME.patch
26 Patch1:         %{name}-dont-send-broken-reminder-ugly-hack.patch
27 Patch2:         %{name}-mailmanctl-status.patch
28 Patch3:         %{name}-cron.patch
29 Patch4:         %{name}-python-compile.patch
30 Patch5:         %{name}-build.patch
31 Patch6:         %{name}-FHS.patch
32 Patch7:         %{name}-x-imap-folder.patch
33 Patch8:         %{name}-lib64.patch
34 Patch9:         %{name}-umbrella-anon-hack.patch
35 Patch10:        %{name}-daemonize-fds.patch
36 Patch11:        %{name}-httpauth.patch
37 Patch12:        %{name}-MM_FIND_USER_NAME.patch
38 Patch13:        keep-original-mime-headers.patch
39 Patch14:        %{name}-browser-save-passwd.patch
40 URL:            http://www.list.org/
41 BuildRequires:  autoconf
42 BuildRequires:  automake
43 BuildRequires:  python >= 2.1
44 BuildRequires:  python-devel
45 BuildRequires:  python-dns
46 BuildRequires:  python-modules
47 BuildRequires:  rpm-pythonprov
48 BuildRequires:  rpmbuild(macros) >= 1.234
49 Requires(post): /bin/hostname
50 Requires(post): grep
51 Requires(post,preun):   /sbin/chkconfig
52 Requires(postun):       /usr/sbin/groupdel
53 Requires(postun):       /usr/sbin/userdel
54 Requires(postun):       fileutils
55 Requires(postun):       grep
56 Requires(pre):  /bin/id
57 Requires(pre):  /usr/bin/getgid
58 Requires(pre):  /usr/sbin/groupadd
59 Requires(pre):  /usr/sbin/useradd
60 Requires:       /sbin/chkconfig
61 Requires:       crondaemon
62 Requires:       mailcap >= 2.3-5
63 Requires:       python-dns
64 Requires:       python-modules
65 Requires:       rc-scripts
66 Requires:       smtpdaemon
67 Requires:       webapps
68 Requires:       webserver
69 Requires:       webserver(indexfile)
70 Provides:       group(mailman)
71 Provides:       user(mailman)
72 # for converting text/html into plain text in default configuration:
73 Suggests:       lynx
74 Conflicts:      logrotate < 3.8.0
75 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
77 %define         _queuedir       /var/spool/%{name}
78 %define         _lockdir        /var/lock/%{name}
79 %define         _logdir         /var/log/%{name}
80 %define         _logarchdir     /var/log/archive/%{name}
81 %define         _piddir         /var/run/%{name}
82
83 %define         _webapps        /etc/webapps
84 %define         _webapp         %{name}
85 %define         _sysconfdir     %{_webapps}/%{_webapp}
86
87 %description
88 Mailman -- The GNU Mailing List Management System -- is a mailing list
89 management system written mostly in Python. Features:
90 - most standard mailing list features, including: moderation, mail
91   based commands, digests, etc...
92 - an extensive Web interface, customizable on a per-list basis,
93 - web based list administration interface for *all* admin-type tasks
94 - automatic Web based hypermail-style archives (using pipermail or
95   other external archiver), including provisions for private archives
96 - integrated mail list to newsgroup gatewaying
97 - integrated newsgroup to mail list gatewaying (polling-based... if
98   you have access to the nntp server, you should be able to easily do
99   non-polling based news->mail list gatewaying; email viega@list.org
100   (I'd like to help get that going and come up with instructions)
101 - smart bounce detection and correction
102 - integrated fast bulk mailing
103 - smart spam protection
104 - extensible logging
105 - multiple list owners and moderators are possible
106 - optional MIME-compliant digests,
107 - nice about which machine you subscribed from if you're from the
108   right domain,
109
110 %description -l es.UTF-8
111 Mailman -- El sistema de manutención de listas de discusión de la
112 licencia GNU.
113
114 %description -l pl.UTF-8
115 Mailman -- System Zarządzania Listami Pocztowymi GNU -- został
116 napisany głównie w Pythonie. Jego możliwości to:
117 - standardowe możliwości: moderowanie, komendy przesyłane pocztą,
118   digesty itp,
119 - interfejs WWW konfigurowalny dla każdej listy,
120 - automatyczny system archiwizowania (z użyciem pipermaila lub innego
121   zewnętrznego archiwizera) włączając w to odpowiednie zarządzanie
122   prywatnymi archiwami,
123 - bramki mail <-> news,
124 - doskonały system wykrywania odbić i korekcji odbitej poczty,
125 - system ochrony przed spamem,
126 - rozszerzone logowanie,
127 - listy mogą być własnością wielu osób oraz moderatorów może być
128   kilku.
129
130 %description -l pt_BR.UTF-8
131 O Mailman -- O sistema de gerenciamento de listas de discussão do GNU
132 -- é um sistema de gerenciamento de listas de discussão escrito em sua
133 maior parte em Python. Características:
134
135 - Maioria das características de lista de discussão padrão, incluindo:
136   moderação, comandos baseados em e-mail, compiladores (digests),
137   etc...
138 - Uma interface extensiva da Web, personalizável lista a lista.
139 - Interface de administração de lista baseada na Web para *todas* as
140   tarefas de tipo de admin.
141 - Arquivos automáticos de estilo hypermail baseado na Web (usando
142   pipermail ou outros arquivadores externos), incluindo provisões para
143   arquivos privados.
144 - Lista de e-mails integrada ao gateway de grupo de notícias.
145 - Grupo de notícias integrado ao gateway de lista de e-mail (baseado
146   em consulta... se você tiver acesso ao servidor nntp, deve ser fácil
147   conseguir efetuar notícias baseadas em não-consulta->gateway de
148   lista de e-mails; envie um e-mail a viega@list.org, eu gostaria de
149   ajudar a manter isto e aparecer com instruções).
150 - Detecção e correção inteligente de mensagens retornadas.
151 - Envio de e-mail em massa rápido e integrado.
152 - Proteção inteligente contra spam.
153 - Registro ampliável.
154 - São possíveis múltiplos donos e moderadores de lista.
155 - Compiladores (digests) opcionais compatíveis com MIME.
156 - Informa a partir de qual máquina você se inscreveu, caso esteja no
157   domínio correto.
158
159 %package sendmail
160 Summary:        Sendmail support for mailman
161 Summary(pl.UTF-8):      Obsługa mailmana dla sendmaila
162 Group:          Applications/System
163 Requires:       %{name} = %{epoch}:%{version}-%{release}
164
165 %description sendmail
166 This package provides wrapper symlink in /etc/smrsh that allows
167 sendmail to run mailman.
168
169 %description sendmail -l pl.UTF-8
170 Ten pakiet udostępnia dowiązanie w /etc/smrsh pozwalające sendmailowi
171 uruchamiać mailmana.
172
173 %prep
174 %setup -q
175 %patch0 -p1
176 #patch1 -p1
177 %patch2 -p1
178 %patch3 -p1
179 %patch4 -p1
180 %patch5 -p1
181 %patch6 -p1
182 %patch7 -p1
183 %patch8 -p1
184 %{?with_umbrella_hack:%patch9 -p1}
185 %patch10 -p1
186 %patch11 -p1
187 %patch12 -p1
188 %patch13 -p1
189 %patch14 -p1
190
191 # Conflicts with python built-in email package
192 sed -i -e 's,EMAILPKG=,#EMAILPKG=,g' misc/Makefile.in
193
194 install -p %{SOURCE6} %{SOURCE7} contrib
195
196 %build
197 %{__aclocal}
198 %{__autoconf}
199
200 %configure \
201         --prefix=%{_libdir}/%{name} \
202         --exec-prefix=%{_libdir}/%{name} \
203         --with-var-prefix=/var/lib/%{name} \
204         --with-config-dir=%{_sysconfdir} \
205         --with-lock-dir=%{_lockdir} \
206         --with-log-dir=%{_logdir} \
207         --with-pid-dir=%{_piddir} \
208         --with-queue-dir=%{_queuedir} \
209         --with-username=%{name} \
210         --with-groupname=%{name} \
211         --with-mail-gid='mailman' \
212         --with-cgi-gid='http' \
213         --with-mailhost=localhost.localdomain \
214         --with-urlhost=localhost.localdomain \
215         --without-permcheck
216
217 %{__make}
218
219 %py_lint Mailman bin misc
220
221 %install
222 rm -rf $RPM_BUILD_ROOT
223 install -d $RPM_BUILD_ROOT{/etc/{cron.d,logrotate.d,rc.d/init.d,sysconfig,smrsh},%{_mandir}} \
224         $RPM_BUILD_ROOT{%{_sysconfdir},%{_logarchdir}}
225
226 export PYTHONPATH=$RPM_BUILD_ROOT%{_libdir}/%{name}:$RPM_BUILD_ROOT%{_libdir}/%{name}/pythonlib
227
228 %{__make} doinstall \
229         DESTDIR=$RPM_BUILD_ROOT
230
231 %{__make} install-packages -C misc \
232         DESTDIR=$RPM_BUILD_ROOT
233
234 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
235
236 sed -e 's#/usr/lib/mailman#%{_libdir}/mailman#g' %{SOURCE2} \
237         > $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
238 sed -e 's#/usr/lib/mailman#%{_libdir}/mailman#g' %{SOURCE2} \
239         > $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
240 sed -e 's#/usr/lib/mailman#%{_libdir}/mailman#g' %{SOURCE3} \
241         > $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
242 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
243 cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
244
245 cp -a cron/crontab.in $RPM_BUILD_ROOT/etc/cron.d/%{name}
246
247 install -p contrib/{subscribe_list,add_nonmembers} $RPM_BUILD_ROOT%{_libdir}/%{name}/bin
248
249 ln -s %{_sysconfdir}/sitelist.cfg $RPM_BUILD_ROOT%{_var}/lib/mailman/data/sitelist.cfg
250
251 cat >> $RPM_BUILD_ROOT%{_sysconfdir}/mm_cfg.py << 'EOF'
252 DEFAULT_EMAIL_HOST              = 'YOUR.HOST.NAME.HERE'
253 DEFAULT_URL_HOST                = 'YOUR.HOST.NAME.HERE'
254 DEFAULT_HOST_NAME               = 'YOUR.HOST.NAME.HERE'
255 IMAGE_LOGOS                     = '/mailman/icons/'
256 PUBLIC_ARCHIVE_URL              = '/mailman/pipermail/%%(listname)s'
257 MAILMAN_GROUP                   = '%{name}'
258 MAILMAN_USER                    = '%{name}'
259 VIRTUAL_HOST_OVERVIEW           = Off
260
261 #MTA = 'Postfix'
262 #POSTFIX_STYLE_VIRTUAL_DOMAINS = []
263
264 #DEFAULT_SERVER_LANGUAGE = 'pl'
265
266 # If value is True, site administrator is trusted from REMOTE_USER CGI variable
267 # Use this to if you want to use password authentication for site admin.
268 USE_HTTP_AUTH   = False
269
270 # For available options and their descriptions see:
271 # %{_docdir}/%{name}-%{version}/Defaults.py*
272 EOF
273
274 touch $RPM_BUILD_ROOT%{_sysconfdir}/aliases{,.db}
275 touch $RPM_BUILD_ROOT%{_sysconfdir}/adm.pw
276 touch $RPM_BUILD_ROOT%{_var}/lib/mailman/data/last_mailman_version
277
278 # Create a link to the wrapper in /etc/smrsh to allow sendmail to run it.
279 ln -s %{_libdir}/%{name}/mail/%{name} $RPM_BUILD_ROOT/etc/smrsh
280
281 # regenerate pyc files with proper paths
282 find $RPM_BUILD_ROOT -name '*.pyc' | xargs rm -f
283 %py_comp $RPM_BUILD_ROOT
284 # save mm_cfg.py from py_postclean
285 mv $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.{py,pyX}
286 %py_postclean %{_libdir}/mailman
287
288 # must do this after py_postclean
289 # should we also symlink .pyc? in case commands are ran as root python would create .pyc file
290 mv $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.pyX $RPM_BUILD_ROOT%{_sysconfdir}/mm_cfg.py
291 ln -s %{_sysconfdir}/mm_cfg.py $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py
292 rm $RPM_BUILD_ROOT%{_libdir}/%{name}/Mailman/mm_cfg.py.dist
293
294 rm -f $RPM_BUILD_ROOT%{_mandir}/README-mailman-man-pages
295 rm -f $RPM_BUILD_ROOT%{_mandir}/diff.arch.8
296 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/cron/crontab.in
297 rm -rf $RPM_BUILD_ROOT%{_libdir}/mailman/tests
298 rm -f $RPM_BUILD_ROOT%{_libdir}/mailman/messages/*/LC_MESSAGES/*.po
299
300 > %{name}.lang
301 for a in $RPM_BUILD_ROOT%{_libdir}/mailman/{messages,templates}/*; do
302         l=${a##*/}
303         echo "%lang($l) ${a#$RPM_BUILD_ROOT}"
304 done >> %{name}.lang
305
306 # create dirs to package them
307 install -d $RPM_BUILD_ROOT%{_queuedir}/{archive,bad,bounces,commands,in,news,out,retry,shunt,virgin}
308
309 %clean
310 rm -rf $RPM_BUILD_ROOT
311
312 %pre
313 %groupadd -g 94 mailman
314 %useradd -u 94 -d %{_var}/lib/%{name} -s /bin/false -c "GNU Mailing List Manager" -g mailman mailman
315
316 %post
317 if [ "$1" = "1" ]; then
318         if hostname=$(hostname -f 2>/dev/null); then
319                 %{__sed} -i -e "s,YOUR.HOST.NAME.HERE,$hostname," %{_sysconfdir}/mm_cfg.py
320         fi
321
322         %service -q crond restart
323 fi
324 if [ ! -f %{_sysconfdir}/adm.pw ]; then
325         echo 'Run "%{_libdir}/%{name}/bin/mmsitepass" to set site pass.'
326 fi
327 if [ ! -d /var/lib/mailman/lists/mailman ]; then
328         echo 'Run "%{_libdir}/%{name}/bin/newlist mailman" to setup site-wide mailinglist.'
329 fi
330 if [ -f %{_var}/lib/mailman/data/last_mailman_version ]; then
331         %{_libdir}/mailman/bin/update
332 fi
333 /sbin/chkconfig --add mailman
334 if [ -f /var/lock/subsys/mailman ] && [ -d /var/spool/mailman/data ]; then
335         ln -sf %{_sysconfdir}/sitelist.cfg /var/spool/mailman/data/sitelist.cfg
336 fi
337 if [ ! -f %{_sysconfdir}/aliases ]; then
338         touch %{_sysconfdir}/aliases{,.db}
339         chown root:mailman %{_sysconfdir}/aliases
340         chown mailman:mailman %{_sysconfdir}/aliases.db
341         chmod 660 %{_sysconfdir}/aliases{,.db}
342 fi
343 %service mailman restart "Mailman Qrunner Daemon"
344
345 %preun
346 if [ "$1" = "0" ]; then
347         %service mailman stop
348         /sbin/chkconfig --del mailman
349 fi
350
351 %postun
352 if [ "$1" = "0" ]; then
353         %userremove mailman
354         %groupremove mailman
355         %service -q crond restart
356 fi
357
358 %triggerin -- apache1 < 1.3.37-3, apache1-base
359 %webapp_register apache %{_webapp}
360
361 %triggerun -- apache1 < 1.3.37-3, apache1-base
362 %webapp_unregister apache %{_webapp}
363
364 %triggerin -- apache < 2.2.0, apache-base
365 %webapp_register httpd %{_webapp}
366
367 %triggerun -- apache < 2.2.0, apache-base
368 %webapp_unregister httpd %{_webapp}
369
370 %triggerpostun -- mailman < 1:2.1.7-2.1
371 if [ -f /var/spool/cron/%{name} ]; then
372         crontab -u %{name} -r
373 fi
374
375 if [ -f /var/lock/subsys/mailman ]; then
376         ln -sf %{_sysconfdir}/sitelist.cfg /var/spool/mailman/data/sitelist.cfg
377         /sbin/service mailman stop 1>&2
378         stopped=true
379 fi
380
381 # rescue app configs.
382 for i in mm_cfg.py sitelist.cfg; do
383         if [ -f /etc/%{name}/$i.rpmsave ]; then
384                 mv -f %{_sysconfdir}/$i{,.rpmnew}
385                 mv -f /etc/%{name}/$i.rpmsave %{_sysconfdir}/$i
386         fi
387 done
388
389 if [ "`getent passwd mailman | cut -d: -f6`" != "%{_var}/lib/%{name}" ]; then
390         echo "Fixing passwd entry"
391         /usr/sbin/usermod -d %{_var}/lib/%{name} mailman
392 fi
393 echo "Moving data from /var/spool/mailman to /var/lib/mailman"
394 mv -f /var/spool/mailman/archives/private/* %{_var}/lib/mailman/archives/private/
395 mv -f /var/spool/mailman/archives/public/* %{_var}/lib/mailman/archives/public/
396 mv -f /var/spool/mailman/data/* %{_var}/lib/mailman/data/
397 mv -f /var/spool/mailman/lists/* %{_var}/lib/mailman/lists/
398 mv -f /var/spool/mailman/spam/* %{_var}/lib/mailman/spam/
399 mv -f /var/spool/mailman/logs/* %{_logdir}/
400 mv -f /var/spool/mailman/locks/* %{_lockdir}/
401 mv -f /var/spool/mailman/qfiles/* %{_queuedir}/
402 # Fix symlinks for public archives
403 cd %{_var}/lib/mailman/archives/public/
404 for i in *; do
405         link=$(readlink "$i")
406         dn=$(dirname "$link")
407         if [ "$dn" = "/var/spool/mailman/archives/private" ]; then
408                 ln -sf "%{_var}/lib/mailman/archives/private/$i" "$i"
409         fi
410 done
411 cd -
412 # Remove empty dirs (DON'T rm -rf here!)
413 rmdir --ignore-fail-on-non-empty /var/spool/mailman/{archives/{private,public},archives,data,lists,spam,logs,locks,qfiles}
414 if [ -f %{_var}/lib/mailman/Mailman/mm_cfg.pyc ]; then
415         rm -f %{_var}/lib/mailman/Mailman/mm_cfg.pyc
416 fi
417 %{_libdir}/mailman/bin/update
418 if [ "$stopped" = "true" ]; then
419         rm -f /var/spool/mailman/data/sitelist.cfg
420         /sbin/service mailman start 1>&2
421 fi
422
423 # nuke very-old config location (this mostly for Ra)
424 if [ -f /etc/httpd/httpd.conf ]; then
425         sed -i -e "/^Include.*%{name}.conf/d" /etc/httpd/httpd.conf
426 fi
427
428 # migrate from httpd (apache2) config dir
429 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
430         cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
431         mv -f /etc/httpd/%{name}.conf.rpmsave %{_sysconfdir}/httpd.conf
432 fi
433
434 # migrate from httpd (apache2) config dir
435 if [ -f /etc/httpd/httpd.conf/90_%{name}.conf.rpmsave ]; then
436         cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
437         mv -f /etc/httpd/httpd.conf/90_%{name}.conf.rpmsave %{_sysconfdir}/httpd.conf
438 fi
439
440 rm -f /etc/httpd/httpd.conf/90_%{name}.conf
441 /usr/sbin/webapp register httpd %{_webapp}
442 %service -q httpd reload
443
444 %files -f %{name}.lang
445 %defattr(644,root,root,755)
446 %doc BUGS FAQ NEWS README README.CONTRIB README.NETSCAPE README.USERAGENT TODO UPGRADING INSTALL
447 %doc Mailman/mm_cfg.py.dist Mailman/Defaults.py
448 %{_mandir}/man?/*
449 %attr(2775,root,mailman) %dir %{_sysconfdir}
450 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
451 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
452 %attr(644,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mm_cfg.py
453 %attr(664,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mm_cfg.pyc
454 %attr(644,root,mailman) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sitelist.cfg
455 %attr(660,root,mailman) %ghost %{_sysconfdir}/aliases
456 %attr(660,root,mailman) %ghost %{_sysconfdir}/aliases.db
457 %attr(640,root,mailman) %ghost %{_sysconfdir}/adm.pw
458 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
459 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
460 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
461
462 %attr(754,root,root) /etc/rc.d/init.d/%{name}
463
464 %defattr(644,root,mailman,2775)
465 %dir %{_libdir}/%{name}
466 %dir %{_libdir}/%{name}/bin
467 %dir %{_libdir}/%{name}/cgi-bin
468 %dir %{_libdir}/%{name}/cron
469 %dir %{_libdir}/%{name}/icons
470 %dir %{_libdir}/%{name}/mail
471 %dir %{_libdir}/%{name}/scripts
472 %dir %{_libdir}/%{name}/templates
473 %dir %{_libdir}/%{name}/messages
474 %dir %{_libdir}/%{name}/Mailman
475
476 # move to %{py_sitedir}?
477 %{_libdir}/%{name}/Mailman/[A-Z_hiv]*.py[co]
478 %{_libdir}/%{name}/Mailman/mm_cfg.py
479 %ghost %{_libdir}/%{name}/Mailman/mm_cfg.pyc
480 %{_libdir}/%{name}/Mailman/Archiver
481 %{_libdir}/%{name}/Mailman/Bouncers
482 %{_libdir}/%{name}/Mailman/Cgi
483 %{_libdir}/%{name}/Mailman/Commands
484 %{_libdir}/%{name}/Mailman/Gui
485 %{_libdir}/%{name}/Mailman/Handlers
486 %{_libdir}/%{name}/Mailman/Logging
487 %{_libdir}/%{name}/Mailman/MTA
488 %{_libdir}/%{name}/Mailman/Queue
489
490 %{_libdir}/%{name}/bin/*.py[co]
491 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/add_members
492 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/add_nonmembers
493 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/arch
494 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/b4b5-archfix
495 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/change_pw
496 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/check_db
497 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/check_perms
498 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/cleanarch
499 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/clone_member
500 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/config_list
501 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/discard
502 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/dumpdb
503 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/find_member
504 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/genaliases
505 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/inject
506 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/list_admins
507 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/list_lists
508 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/list_members
509 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/list_owners
510 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/mailmanctl
511 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/mmsitepass
512 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/newlist
513 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/qrunner
514 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/rb-archfix
515 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/remove_members
516 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/rmlist
517 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/show_qfiles
518 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/subscribe_list
519 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/sync_members
520 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/transcheck
521 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/unshunt
522 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/update
523 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/version
524 %attr(2755,root,mailman) %{_libdir}/%{name}/bin/withlist
525
526 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/admin
527 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/admindb
528 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/confirm
529 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/create
530 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/edithtml
531 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/listinfo
532 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/options
533 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/private
534 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/rmlist
535 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/roster
536 %attr(2755,root,mailman) %{_libdir}/%{name}/cgi-bin/subscribe
537
538 %attr(755,root,root) %{_libdir}/%{name}/cron/bumpdigests
539 %attr(755,root,root) %{_libdir}/%{name}/cron/checkdbs
540 %attr(755,root,root) %{_libdir}/%{name}/cron/cull_bad_shunt
541 %attr(755,root,root) %{_libdir}/%{name}/cron/disabled
542 %attr(755,root,root) %{_libdir}/%{name}/cron/gate_news
543 %attr(755,root,root) %{_libdir}/%{name}/cron/mailpasswds
544 %attr(755,root,root) %{_libdir}/%{name}/cron/nightly_gzip
545 %attr(755,root,root) %{_libdir}/%{name}/cron/senddigests
546 %{_libdir}/%{name}/cron/paths.py*
547 %{_libdir}/%{name}/scripts/*
548 %{_libdir}/%{name}/icons/*
549 %attr(2755,root,mailman) %{_libdir}/%{name}/mail/mailman
550
551 %dir %{_var}/lib/%{name}
552 %dir %{_var}/lib/%{name}/archives
553 %dir %attr(2771,root,mailman) %{_var}/lib/%{name}/archives/private
554 %dir %{_var}/lib/%{name}/archives/public
555 %dir %{_var}/lib/%{name}/data
556 %ghost %{_var}/lib/%{name}/data/last_mailman_version
557 %{_var}/lib/%{name}/data/sitelist.cfg
558 %dir %{_var}/lib/%{name}/lists
559 %dir %{_var}/lib/%{name}/spam
560 %dir %{_queuedir}
561 %dir %{_queuedir}/*
562 %dir %{_lockdir}
563 %dir %{_logdir}
564 %dir %{_logarchdir}
565 %dir %{_piddir}
566
567 %files sendmail
568 %defattr(644,root,root,755)
569 /etc/smrsh/%{name}