+# TODO
+# - post script is nightmare
+#
+# Conditional build:
+%bcond_with largefiles # enable largefiles (disables tagged hash)
+#
%include /usr/lib/rpm/macros.perl
Summary: INN, the InterNet News System (news server)
Summary(de): das InterNet News System (News-Server)
Summary(pt_BR): INN, InterNet News System (servidor news)
Summary(tr): INN, InterNet Haber Sistemi (haber sunucu)
Name: inn
-Version: 2.4.1
-Release: 0.5
+Version: 2.4.3
+Release: 0.1
License: distributable
Group: Networking/Daemons
Source0: ftp://ftp.isc.org/isc/inn/%{name}-%{version}.tar.gz
-# Source0-md5: bec635b6e70188071fdb539cd374f2ba
+# Source0-md5: 6caa10909a7bf55fb91535685990aec9
Source1: %{name}-default-active
Source2: %{name}-default-distributions
Source3: %{name}-default-newsgroups
-Source4: %{name}-etc-%{name}.conf
-Source5: %{name}-etc-newsfeeds
-Source6: %{name}.crontab
-Source7: %{name}.init
-Source8: %{name}-cnfsstat.cron
-Source9: %{name}.logrotate
-Source10: %{name}-etc-readers.conf
-Source11: getlist.1.pl
-Source12: %{name}d.8.pl
+Source4: %{name}.crontab
+Source5: %{name}.init
+Source6: %{name}-cnfsstat.cron
+Source7: %{name}.logrotate
+Source8: getlist.1.pl
+Source9: %{name}d.8.pl
Patch0: %{name}-PLD.patch
Patch1: %{name}-install.patch
Patch2: %{name}-db.patch
Patch4: %{name}-ac253.patch
Patch5: %{name}-setgid.patch
Patch6: %{name}-db4.patch
-Patch7: %{name}-timecaf_oversized_art.patch
-Patch8: %{name}-lib_install_modes.patch
-Patch9: %{name}-kill_warnings.patch
-Patch10: %{name}-64bit_pointers.patch
-Patch11: %{name}-config.patch
+Patch7: %{name}-lib_install_modes.patch
+Patch8: %{name}-config.patch
+Patch9: %{name}-db4.4.patch
+Patch10: %{name}-libdir.patch
URL: http://www.isc.org/sw/inn/
+BuildRequires: fix-%post-script-first
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: libtool >= 1:1.4.2-9
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: perl-devel >= 1:5.8.0
-PreReq: %{name}-libs = %{version}-%{release}
-PreReq: rc-scripts
+BuildRequires: rpmbuild(macros) >= 1.268
Requires(post): /bin/kill
Requires(post): /usr/bin/getent
-Requires(post,preun): /sbin/chkconfig
-Requires(post): sed >= 4.0
+Requires(post): /usr/sbin/usermod
Requires(post): fileutils
+Requires(post): sed >= 4.0
Requires(post): textutils
-Requires(post): /usr/sbin/usermod
-Requires: cleanfeed >= 0.95.7b-4
-Requires: rc-scripts >= 0.2.0
+Requires(post,preun): /sbin/chkconfig
+Requires: %{name}-libs = %{version}-%{release}
Requires: /etc/cron.d
-Requires: psmisc >= 20.1
-Requires: util-linux
+Requires: awk
+Requires: cleanfeed >= 0.95.7b-4
+Requires: perl(DynaLoader) = %(%{__perl} -MDynaLoader -e 'print DynaLoader->VERSION')
Requires: procps
+Requires: psmisc >= 20.1
+Requires: rc-scripts >= 0.2.0
Requires: textutils
-Requires: awk
+Requires: util-linux
Provides: nntpserver
Obsoletes: leafnode
Obsoletes: leafnode+
%description
INN is a news server, which can be set up to handle USENET news, as
well as private "newsfeeds". There is a *LOT* of information about
-setting up INN in /usr/share/doc -- read it.
+setting up INN in %{_docdir}/%{name}-%{version} -- read it.
If you want innreport to generate graphs you need perl-GD package.
%description -l es
INN es un servidor de news, que puede ser configurado para manipular
USENET news bien como newsfeeds privadas. Existe un *Montón* de
-información sobre la configuración del INN en /usr/doc -- léela.
+información sobre la configuración del INN en %{_docdir}/%{name}-%{version} -- léela.
%description -l pl
INN jest serwerem news, który mo¿na skonfigurowaæ do obs³ugi USENET-u,
jak równie¿ do obs³ugi ,,prywatnych'' grup w sieciach intranetowych.
Ca³e mnóstwo po¿ytecznych informacji o konfigurowaniu INN-a znajdziesz
-w katalogu /usr/share/doc/inn-*.
+w katalogu %{_docdir}/%{name}-%{version}.
Je¶li chcesz ¿eby innreport generowa³ wykresy musisz zainstalowaæ
pakiet perl-GD.
%description -l pt_BR
INN é um servidor de news, que pode ser configurado para manipular
USENET news bem como newsfeeds privadas. Existe um *MONTE* de
-informações sobre a configuração do INN em /usr/doc -- leia.
+informações sobre a configuração do INN em %{_docdir}/%{name}-%{version} -- leia.
%package libs
Summary: INN libraries
%patch8 -p1
%patch9 -p1
%patch10 -p1
-%patch11 -p1
touch innfeed/*.[ly]
--with-news-user=news \
--with-news-group=news \
--with-news-master=news \
+ --with-control-dir=%{_datadir}/news/control \
--with-db-dir=/var/lib/news \
--with-etc-dir=%{_sysconfdir} \
+ --with-filter-dir=%{_datadir}/news/filter \
--with-log-dir=/var/log/news \
--with-run-dir=/var/run/news \
--with-spool-dir=/var/spool/news \
--with-lib-dir=%{_datadir}/news \
- --with-tmp-path=/var/spool/news/incoming/tmp \
+ --with-tmp-dir=/var/spool/news/incoming/tmp \
--with-perl \
- --with-sendmail=%{_libdir}/sendmail \
+ --with-sendmail=/usr/lib/sendmail \
--with-openssl=%{_prefix} \
--with-berkeleydb=%{_prefix} \
- %{?_with_largefiles:--enable-largefiles} \
- %{!?_with_largefiles:--enable-tagged-hash} \
+ %{?with_largefiles:--enable-largefiles} \
+ %{!?with_largefiles:--enable-tagged-hash} \
--enable-merge-to-groups \
--enable-pgp-verify \
--enable-shared \
$RPM_BUILD_ROOT/home/services/news
%{__make} install \
- DESTDIR="$RPM_BUILD_ROOT" \
+ DESTDIR=$RPM_BUILD_ROOT \
PATHFILTER=%{_datadir}/news/filter \
PATHCONTROL=%{_datadir}/news/control \
PATHRNEWS=%{_libdir}/news/rnews \
install %{SOURCE1} $RPM_BUILD_ROOT/var/lib/news/active
install %{SOURCE2} $RPM_BUILD_ROOT/var/lib/news/distributions
install %{SOURCE3} $RPM_BUILD_ROOT/var/lib/news/newsgroups
-install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/inn.conf
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/newsfeeds
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/cron.d/inn
-install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/inn
-install %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}/cnfsstat.cron
-install %{SOURCE9} $RPM_BUILD_ROOT/etc/logrotate.d/inn
-install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/readers.conf
-install %{SOURCE11} $RPM_BUILD_ROOT%{_mandir}/pl/man1/getlist.1
-install %{SOURCE12} $RPM_BUILD_ROOT%{_mandir}/pl/man8/innd.8
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/inn
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/inn
+install %{SOURCE6} $RPM_BUILD_ROOT%{_bindir}/cnfsstat.cron
+install %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/inn
+install %{SOURCE8} $RPM_BUILD_ROOT%{_mandir}/pl/man1/getlist.1
+install %{SOURCE9} $RPM_BUILD_ROOT%{_mandir}/pl/man8/innd.8
rm -f $RPM_BUILD_ROOT/var/lib/news/history
touch $RPM_BUILD_ROOT/var/lib/news/history
touch $RPM_BUILD_ROOT/var/lib/news/.news.daily
touch $RPM_BUILD_ROOT/var/lib/news/active.times
-touch $RPM_BUILD_ROOT/var/log/news/news.notice
-touch $RPM_BUILD_ROOT/var/log/news/news.crit
-touch $RPM_BUILD_ROOT/var/log/news/news.err
-
-# obsolete?
-#touch $RPM_BUILD_ROOT%{_includedir}/inn/configdata.h
-
-mv -f $RPM_BUILD_ROOT%{_datadir}/news/*.{a,la,so*} $RPM_BUILD_ROOT%{_libdir}
LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_bindir}/makehistory \
-a $RPM_BUILD_ROOT/var/lib/news/active \
-i -r -f $RPM_BUILD_ROOT/var/lib/news/history || :
-#Fix perms in sample directory to avoid bogus dependencies
+# Fix perms in sample directory to avoid bogus dependencies
find samples -name "*.in" -exec chmod a-x {} \;
+# remove files in conflict with cleanfeed
+rm -f $RPM_BUILD_ROOT%{_datadir}/news/filter/filter_innd.*
+
+# remove unpackaged files
+rm -rf $RPM_BUILD_ROOT%{_prefix}/doc
+rm -f $RPM_BUILD_ROOT%{_bindir}/rc.news
+
%clean
rm -rf $RPM_BUILD_ROOT
%post
-if [ "`getent passwd http | cut -d: -f6`" = "/var/spool/news" ]; then
+if [ "`getent passwd news | cut -d: -f6`" = "/var/spool/news" ]; then
/usr/sbin/usermod -d /home/services/news news
fi
umask 022
chmod 644 history.*
else
cd /var/lib/news
+ # FIXME: this will fail immediately as it needs *configured*
+ # inn.conf, but PLD default rpm doesn't provide one!
%{_bindir}/makehistory
%{_bindir}/makedbz -s `wc -l <history` -f history
for i in dir hash index pag; do
chown news:news history history.*
chmod 644 history history.*
fi
-[ -f /var/lib/news/active.times ] || {
+
+if [ ! -f /var/lib/news/active.times ]; then
touch /var/lib/news/active.times
chown news:news /var/lib/news/active.times
-}
-
-[ -f /var/log/news/news.notice ] || {
- touch /var/log/news/news.notice
- chown news:news /var/log/news/news.notice
- chmod 664 /var/log/news/news.notice
-}
-
-[ -f /var/log/news/news.crit ] || {
- touch /var/log/news/news.crit
- chown news:news /var/log/news/news.crit
- chmod 660 /var/log/news/news.crit
-}
-
-[ -f /var/log/news/news.err ] || {
- touch /var/log/news/news.err
- chown news:news /var/log/news/news.err
- chmod 660 /var/log/news/news.err
-}
-
-[ -f /var/lib/news/.news.daily ] || {
+fi
+
+if [ ! -f /var/lib/news/.news.daily ]; then
touch /var/lib/news/.news.daily
chown news:news /var/lib/news/.news.daily
chmod 664 /var/lib/news/.news.daily
-}
-
-umask 027
-if [ -f /etc/syslog.conf ]; then
- if ! grep -q INN /etc/syslog.conf; then
- sed -i 's/mail.none;/mail.none;news.none;/' /etc/syslog.conf
- echo '' >> /etc/syslog.conf
- echo '#' >> /etc/syslog.conf
- echo '# INN' >> /etc/syslog.conf
- echo '#' >> /etc/syslog.conf
- echo 'news.=crit /var/log/news/news.crit' >> /etc/syslog.conf
- echo 'news.=err /var/log/news/news.err' >> /etc/syslog.conf
- echo 'news.notice /var/log/news/news.notice' >> /etc/syslog.conf
- fi
- if [ -f /var/run/syslog.pid ]; then
- kill -HUP `cat /var/run/syslog.pid` 2> /dev/null ||:
- fi
-else
- # syslog.conf does not exist
- echo "mail.none /var/log/messages" > /etc/syslog.conf.inn
- echo "" >> /etc/syslog.conf.inn
- echo "# INN" >> /etc/syslog.conf.inn
- echo "news.=crit /var/log/news/news.crit" >> /etc/syslog.conf.inn
- echo "news.=err /var/log/news/news.err" >> /etc/syslog.conf.inn
- echo "news.notice /var/log/news/news.notice" >> /etc/syslog.conf.inn
fi
/sbin/chkconfig --add inn
-if [ -f /var/lock/subsys/inn ]; then
- /etc/rc.d/init.d/inn restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/inn start\" to start inn news server." >&2
-fi
+%service inn restart "inn news server"
%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/news ]; then
- /etc/rc.d/init.d/inn stop
- fi
+ %service inn stop
/sbin/chkconfig --del inn
fi
%files
%defattr(644,root,root,755)
%doc CONTRIBUTORS ChangeLog INSTALL LICENSE NEWS README TODO doc/[Icehs]*
+%attr(700,news,news) %dir /home/services/news
# DB
%attr(770,root,news) %dir /var/lib/news
%attr(770,root,news) %dir /var/lib/news/backoff
-%attr(664,root,news) %config(noreplace) %verify(not size mtime md5) /var/lib/news/active
-%attr(664,root,news) %config(noreplace) %verify(not size mtime md5) /var/lib/news/distributions
-%attr(664,root,news) %config(noreplace) %verify(not size mtime md5) /var/lib/news/newsgroups
-%attr(664,root,news) %config(noreplace) %verify(not size mtime md5) /var/lib/news/active.times
+%attr(664,root,news) %config(noreplace) %verify(not md5 mtime size) /var/lib/news/active
+%attr(664,root,news) %config(noreplace) %verify(not md5 mtime size) /var/lib/news/distributions
+%attr(664,root,news) %config(noreplace) %verify(not md5 mtime size) /var/lib/news/newsgroups
+%attr(664,root,news) %config(noreplace) %verify(not md5 mtime size) /var/lib/news/active.times
%attr(664,news,news) %ghost /var/lib/news/.news.daily
%attr(664,news,news) %ghost /var/lib/news/history
# LOGS
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/logrotate.d/inn
-%attr(770,root,news) %dir /var/log/news
-%attr(770,root,news) %dir /var/log/archiv/news
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/inn
%attr(770,news,news) %dir /var/run/news
-%attr(664,news,news) %ghost /var/log/news/news.notice
-%attr(660,news,news) %ghost /var/log/news/news.crit
-%attr(660,news,news) %ghost /var/log/news/news.err
# SPOOL
%attr(771,root,news) %dir /var/spool/news
%attr(770,root,news) %dir /var/spool/news/uniover
# CRON PARTS
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/cron.d/inn
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/inn
# RC-SCRIPT
%attr(754,root,root) /etc/rc.d/init.d/inn
# CONFIGS (INN is a one big config ;-)
%attr(755,root,news) %dir %{_sysconfdir}
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/actsync.cfg
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/actsync.ign
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/buffindexed.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/control.ctl
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/cycbuff.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/distrib.pats
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/expire.ctl
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/incoming.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/inn.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/innfeed.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/innreport.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/innwatch.ctl
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/moderators
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/motd.news
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/news2mail.cf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/newsfeeds
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/nnrpd.track
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/nntpsend.ctl
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/ovdb.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/overview.fmt
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/passwd.nntp
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/radius.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/readers.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/sasl.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/storage.conf
-%attr(640,root,news) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/subscriptions
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/actsync.cfg
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/actsync.ign
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/buffindexed.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/control.ctl
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cycbuff.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/distrib.pats
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/expire.ctl
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/incoming.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/inn.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/innfeed.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/innreport.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/innwatch.ctl
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/moderators
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/motd.news
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/news2mail.cf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/newsfeeds
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nnrpd.track
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nntpsend.ctl
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ovdb.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/overview.fmt
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/passwd.nntp
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/radius.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/readers.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sasl.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/storage.conf
+%attr(640,root,news) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/subscriptions
%attr(755,root,news) %dir %{_datadir}/news
%attr(755,root,root) %dir %{_datadir}/news/control
%attr(755,root,root) %dir %{_datadir}/news/filter
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/innreport_inn.pm
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/innshellvars
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/innshellvars.pl
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/innshellvars.tcl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/innreport_inn.pm
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/innshellvars
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/innshellvars.pl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/innshellvars.tcl
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/INN.py
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/filter_nnrpd.pl
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/filter.tcl
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/nnrpd_auth.pl
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/nnrpd_auth.py
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/startup_innd.pl
-%config(noreplace) %verify(not size mtime md5) %{_datadir}/news/filter/startup.tcl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/INN.py
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/filter_nnrpd.pl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/filter.tcl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/nnrpd_auth.pl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/nnrpd_auth.py
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/startup_innd.pl
+%config(noreplace) %verify(not md5 mtime size) %{_datadir}/news/filter/startup.tcl
%attr(755,root,root) %{_datadir}/news/control/checkgroups.pl
%attr(755,root,root) %{_datadir}/news/control/ihave.pl
%{_mandir}/man1/innmail.1*
%{_mandir}/man1/nntpget.1*
%{_mandir}/man1/pgpverify.1*
+%{_mandir}/man1/pullnews.1*
%{_mandir}/man1/rnews.1*
%{_mandir}/man1/shlock.1*
%{_mandir}/man1/shrinkfile.1*