# This package uses systemd init from Fedora 17, but can use it for # Fedora 15/16 if built using --with systemd %if 0%{?fedora} > 16 || 0%{?rhel} > 6 %global _with_systemd --with-systemd %endif %global use_systemd %{!?_with_systemd:0}%{?_with_systemd:1} # Build hardened (PIE) where possible %define _hardened_build 1 Summary: Small, fast daemon to serve DNSBLs Name: rbldnsd Version: 0.997a Release: 4%{?dist}.art License: GPLv2+ Group: System Environment/Daemons URL: http://www.corpit.ru/mjt/rbldnsd.html Source0: http://www.corpit.ru/mjt/rbldnsd/rbldnsd-%{version}.tar.gz Source1: rbldnsd.init Source2: rbldnsd.conf Source3: rbldnsctl Source4: README.systemd Patch0: rbldnsd-0.997a-format.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu) BuildRequires: gawk, zlib-devel Requires(pre): shadow-utils %if %{use_systemd} BuildRequires: systemd-units Requires(pre): systemd-sysv, /sbin/chkconfig Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units %else Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig %endif %description Rbldnsd is a small, authoritative-only DNS nameserver designed to serve DNS-based blocklists (DNSBLs). It may handle IP-based and name-based blocklists. %prep %setup -q # Use format string in dslog() invocation %patch0 sed -i -e 's@/var/lib/rbldns\([/ ]\)@%{_localstatedir}/lib/rbldnsd\1@g' \ -e 's@\(-r/[a-z/]*\) -b@\1 -q -b@g' debian/rbldnsd.default cp -p %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} ./ %build # this is not an autotools-generated configure script, and does not support --libdir CFLAGS="%{optflags}" \ LDFLAGS="%{?__global_ldflags}" \ ./configure make %install rm -rf %{buildroot} mkdir -p %{buildroot}{%{_sbindir},%{_mandir}/man8,%{_initrddir},%{_sysconfdir}/sysconfig} mkdir -p %{buildroot}{/etc/systemd,%{_localstatedir}/lib/rbldnsd} install -p -m 755 rbldnsd %{buildroot}%{_sbindir}/ install -p -m 644 rbldnsd.8 %{buildroot}%{_mandir}/man8/ install -p -m 644 debian/rbldnsd.default %{buildroot}%{_sysconfdir}/sysconfig/rbldnsd %if %{use_systemd} install -p -m 644 rbldnsd.conf %{buildroot}/etc/systemd/ install -p -m 755 rbldnsctl %{buildroot}%{_sbindir}/ %else install -p -m 755 rbldnsd.init %{buildroot}%{_initrddir}/rbldnsd %endif %clean rm -rf %{buildroot} %pre /usr/bin/getent group rbldns >/dev/null || /usr/sbin/groupadd -r rbldns /usr/bin/getent passwd rbldns >/dev/null || \ /usr/sbin/useradd -r -g rbldns -d %{_localstatedir}/lib/rbldnsd \ -s /sbin/nologin -c "rbldns daemon" rbldns %if %{use_systemd} # SysV-to-systemd migration if [ $1 -gt 1 -a ! -e /etc/systemd/rbldnsd.conf -a -e %{_initrddir}/rbldnsd ]; then /usr/bin/systemd-sysv-convert --save rbldnsd &>/dev/null || : /sbin/chkconfig --del rbldnsd &>/dev/null || : fi %endif exit 0 %post %if %{use_systemd} /bin/systemctl daemon-reload &>/dev/null || : %else if [ $1 -eq 1 ]; then # Initial installation /sbin/chkconfig --add rbldnsd || : fi %endif %preun if [ $1 -eq 0 ]; then # Package removal, not upgrade %if %{use_systemd} %{_sbindir}/rbldnsctl stop &>/dev/null || : %{_sbindir}/rbldnsctl disable &>/dev/null || : %else %{_initrddir}/rbldnsd stop &>/dev/null || : /sbin/chkconfig --del rbldnsd || : %endif fi %postun %if %{use_systemd} /bin/systemctl daemon-reload &>/dev/null || : %endif if [ $1 -ge 1 ]; then # Package upgrade, not uninstall %if %{use_systemd} %{_sbindir}/rbldnsctl try-restart &>/dev/null || : %else %{_initrddir}/rbldnsd condrestart &>/dev/null || : %endif fi %files %doc README.user NEWS TODO debian/changelog CHANGES-0.81 %{_sbindir}/rbldnsd %{_mandir}/man8/rbldnsd.8* %dir %{_localstatedir}/lib/rbldnsd/ %config(noreplace) %{_sysconfdir}/sysconfig/rbldnsd %if %{use_systemd} %doc README.systemd %config(noreplace) %{_sysconfdir}/systemd/rbldnsd.conf %{_sbindir}/rbldnsctl %else %{_initrddir}/rbldnsd %endif %changelog * Thu Jul 10 2014 Paul Howarth 0.997a-4 - fix return value from initscript, by using process substitution instead of a while loop at the end of a pipe (#1118013) - drop %%defattr, redundant since rpm 4.4 * Sun Jun 8 2014 Fedora Release Engineering 0.997a-3 - rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Thu Nov 21 2013 Paul Howarth 0.997a-2 - use format string in dslog() invocation * Mon Jul 29 2013 Paul Howarth 0.997a-1 - update to 0.997a - minor fixes/changes in packaging, no code changes - in particular, fixes a build failure on *BSD introduced in 0.997 * Sun Jun 30 2013 Paul Howarth 0.997-1 - update to 0.997 - main feature of this version is ipv6 support - feature: ip6trie - new dataset supports listing of arbitrary length ip6 CIDRs, along with individual A/TXT values for each prefix - feature: ip6tset - new dataset supports listing of ip6 /64 subnets and the exclusion of /128 subnets; only supports a single A/TXT value for the entire dataset - optimization: ip4trie - using new trie implementation (developed for the ip6trie dataset) decreases memory consumption by roughly a factor of three - feature: acl dataset - ip6 addresses are now supported in ACLs - feature: added --enable-asserts configure option to enable compilation of debugging assertions; assertion checking is disabled by default - featurette: zero-length "wildcard" IP4 CIDR prefixes are now allowed in ip4trie and acl datasets * Thu Feb 14 2013 Fedora Release Engineering 0.996b-10 - rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Sat Jul 21 2012 Fedora Release Engineering 0.996b-9 - rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Tue Apr 17 2012 Paul Howarth 0.996b-8 - rename systemctl-rbldnsd to rbldnsctl (#807504) * Tue Apr 17 2012 Paul Howarth 0.996b-7 - use native systemd init from F-17 onwards (see README.systemd) * Mon Apr 16 2012 Paul Howarth 0.996b-6 - fix some initscript issues (#807504) - do a hardened build (PIE) where possible * Thu Jan 5 2012 Paul Howarth 0.996b-5 - nobody else likes macros for commands * Wed Feb 9 2011 Fedora Release Engineering 0.996b-4 - rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Sun Jul 26 2009 Fedora Release Engineering 0.996b-3 - rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Wed Feb 25 2009 Fedora Release Engineering 0.996b-2 - rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Mon Mar 31 2008 Paul Howarth 0.996b-1 - update to 0.996b - _GNU_SOURCE no longer needed * Wed Feb 20 2008 Paul Howarth 0.996a-6 - fix exit codes for reload, stop, and try-restart actions of initscript * Wed Feb 13 2008 Paul Howarth 0.996a-5 - define _GNU_SOURCE for NI_MAXHOST symbol visibility - LSB-ize initscript (#247043) * Thu Aug 23 2007 Paul Howarth 0.996a-4 - add buildreq gawk * Thu Aug 23 2007 Paul Howarth 0.996a-3 - upstream released a new version without changing the version number (the only changes are in debian/control and debian/changelog, neither of which are used in the RPM package) - unexpand tabs in spec - use the standard scriptlet for user/group creation in %%pre - drop scriptlet dependencies on /sbin/service by calling initscript directly - clarify license as GPL version 2 or later * Wed Aug 30 2006 Paul Howarth 0.996a-2 - FE6 mass rebuild * Fri Jul 28 2006 Paul Howarth 0.996a-1 - update to 0.996a * Tue Feb 21 2006 Paul Howarth 0.996-1 - update to 0.996 - use /usr/sbin/useradd instead of %%{_sbindir}/useradd - add buildreq zlib-devel to support gzipped zone files * Wed Feb 15 2006 Paul Howarth 0.995-5 - license text not included in upstream tarball, so don't include it * Tue Jun 28 2005 Paul Howarth 0.995-4 - include gpl.txt as %%doc * Mon Jun 27 2005 Paul Howarth 0.995-3 - fix /etc/sysconfig/rbldnsd references to /var/lib/rbldns to point to %%{_localstatedir}/lib/rbldnsd instead - don't enable daemons in any runlevel by default - add -q option to sample entries in /etc/sysconfig/rbldnsd * Fri Jun 17 2005 Paul Howarth 0.995-2 - first Fedora Extras build, largely based on upstream spec file