+# TODO
+# - warning: Installed (but unpackaged) file(s) found:
+# /etc/rbldns/data
+# /usr/bin/random-ip
Summary: DJB DNS
Summary(pl): DJB DNS
Name: djbdns
Version: 1.05
-Release: 13
+Release: 22
License: http://cr.yp.to/distributors.html (free to use)
Group: Networking/Daemons
Source0: http://cr.yp.to/djbdns/%{name}-%{version}.tar.gz
+# Source0-md5: 3147c5cd56832aa3b41955c7a51cbeb2
Source1: %{name}-doc.tar.gz
+# Source1-md5: 1d6aed1a5d3d3eda3958fa3e7d808fc8
Source2: ftp://ftp.innominate.org/gpa/djb/%{name}-%{version}-man.tar.gz
+# Source2-md5: 2b4e71fa4592858e4508538f78d50f61
+Source3: http://www.sericyb.com.au/tinydns-notify
+# NoSource3-md5: 2213bdc8c58c10cb8770b7e5b0d67aea
+Source4: http://www.sericyb.com.au/tinydns-log
+# NoSource4-md5: a9af7707a7cb7c41e855f441e242e422
Patch0: dnscache-1.05-multiple-ip.patch
-Patch1: http://www.fefe.de/dns/%{name}-1.05-ipv6.diff
-# based on http://www.ohse.de/uwe/patches/djbdns-1.05-multiip.diff
-Patch2: %{name}-1.05-multiip.diff
-Patch3: http://iksz.hu/package/djbdns-conf/djbdns-1.05-multi_tinydns_data.patch
+# adds IPv6 support
+Patch1: http://www.fefe.de/dns/%{name}-1.05-test22.diff.bz2
+Patch3: http://iksz.hu/package/djbdns-conf/%{name}-1.05-multi_tinydns_data.patch
Patch4: %{name}-srv.patch
Patch5: %{name}-glibc.patch
+# http://www.iecc.com/rbldns-patch.txt
+Patch6: %{name}-rbldns_a.patch
+# http://core.segfault.pl/~hobbit/tinydns-include.patch
+Patch8: %{name}-tinydns-include.patch
+Patch9: %{name}-tinydns-log-ipv6.patch
+# http://romana.now.ie/software/djbdns-cachestats.patch
+Patch10: %{name}-cachestats.patch
URL: http://cr.yp.to/djbdns.html
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
+BuildRequires: rpm-perlprov
+BuildRequires: rpmbuild(macros) >= 1.202
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Provides: group(djbdns)
Provides: nameserver
+Provides: user(dnslog)
Obsoletes: caching-nameserver
-Obsoletes: nameserver
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
- djbdns-dnscache - a local DNS cache
- djbdns-tinydns - a DNS server
+ - djbdns-tinydns-notify - a tool to send NOTIFY requests
- djbdns-pickdns - a DNS load-balancing server
- djbdns-walldns - a reverse DNS wall
- djbdns-rbldns - an IP-address-listing DNS server
- djbdns-dnscache - lokalny cache DNS
- djbdns-tinydns - serwer DNS
+ - djbdns-tinydns-notify - narzêdzie do wysy³ania komunikatów NOTIFY
- djbdns-pickdns - serwer DNS do równowa¿enia obci±¿eñ
- djbdns-walldns - ¶ciana dla odwrotnych zapytañ DNS
- djbdns-rbldns - serwer DNS list adresów IP
Summary(de): DJBs lokaler DNS-Cache
Summary(pl): Lokalny cache DNS od DJB
Group: Networking/Daemons
-PreReq: %{name} = %{version}
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
Requires(post): diffutils
Requires(post): fileutils
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(preun): daemontools
+Requires: %{name} = %{version}-%{release}
Requires: daemontools >= 0.70-5
+Provides: user(dnscache)
Obsoletes: dnscache
%description dnscache
Summary(de): DJBs DNS-Server
Summary(pl): Serwer DNS od DJB
Group: Networking/Daemons
-PreReq: %{name} = %{version}
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
Requires(post): diffutils
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(preun): daemontools
+Requires: %{name} = %{version}-%{release}
Requires: daemontools >= 0.70-5
Requires: make
+Provides: user(tinydns)
Obsoletes: tinydns
%description tinydns
zapytania DNS od komputerów z ca³ego Internetu i odpowiada przy u¿yciu
lokalnie skonfigurowanych informacji.
+%package tinydns-notify
+Summary: DNS NOTIFY sending tool
+Summary(pl): Narzêdzie do wysy³ania komunikatów DNS NOTIFY
+License: Free to use
+Group: Networking/Daemons
+URL: http://www.sericyb.com.au/tinydns-notify
+Requires: %{name} = %{version}-%{release}
+Requires: perl-Net-DNS
+Requires: perl-modules
+Obsoletes: tinydns-notify
+
+%description tinydns-notify
+tinydns-notify is a tool written in Perl, which extracts zones and
+their nameservers from tinydns-data files and sends DNS NOTIFY
+requests to nameservers listed in notify-list file.
+
+%description tinydns-notify -l pl
+tinydns-notify jest napisanym w Perlu narzêdziem, które czyta pliki
+stref i odpowiadaj±ce im serwery nazw z plików tinydns-data, a
+nastêpnie wysy³a ¿±dania NOTIFY do serwerów wyspecyfikowanych w pliku
+notify-list.
+
%package pickdns
Summary: DJB's load-balancing DNS server
Summary(de): DJBs Belastung ausgleichender DNS-Server
Summary(pl): Serwer DNS równowa¿±cy obci±¿enie od DJB
Group: Networking/Daemons
-PreReq: %{name} = %{version}
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
Requires(post): diffutils
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(preun): daemontools
+Requires: %{name} = %{version}-%{release}
Requires: daemontools >= 0.70-5
Requires: make
+Provides: user(pickdns)
Obsoletes: pickdns
%description pickdns
Summary(de): DJBs Wand rückgekehrten DNSs
Summary(pl): ¦ciana dla odwrotnych zapytañ DNS od DJB
Group: Networking/Daemons
-PreReq: %{name} = %{version}
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
Requires(post): diffutils
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(preun): daemontools
+Requires: %{name} = %{version}-%{release}
Requires: daemontools >= 0.70-5
+Provides: user(walldns)
Obsoletes: walldns
%description walldns
Summary(de): DJBs IP-Adressen-Listen-DNS-Server
Summary(pl): Serwer DNS list adresów IP od DJB
Group: Networking/Daemons
-PreReq: %{name} = %{version}
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
Requires(post): diffutils
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(preun): daemontools
+Requires: %{name} = %{version}-%{release}
Requires: daemontools >= 0.70-5
Requires: make
+Provides: user(rbldns)
Obsoletes: rbldns
+#Obsoletes: rbldnsd
%description rbldns
rbldns is an IP-address-listing DNS server from the djbdns package. It
Summary(de): DJBs DNS-Zonen-Transfer-Server
Summary(pl): Serwer transferów stref DNS od DJB
Group: Networking/Daemons
-PreReq: %{name} = %{version}
-Requires(pre): /usr/bin/getgid
-Requires(pre): /bin/id
-Requires(pre): /usr/sbin/groupadd
-Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires(preun): daemontools
-Requires: %{name}-tinydns = %{version}
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tinydns = %{version}-%{release}
Requires: daemontools >= 0.70-5
Requires: make
Requires: ucspi-tcp
+Provides: user(axfrdns)
Obsoletes: axfrdns
%description axfrdns
%prep
%setup -q -a1 -a2
+install %{SOURCE3} .
+install %{SOURCE4} .
-%patch0 -p1
%patch1 -p1
-%patch2 -p1
+%patch0 -p1
%patch3 -p1
%patch4 -p1
%patch5
+%patch6 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
cd doc
ln -s merge/djbdns/* .
install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_sysconfdir}}
install -d $RPM_BUILD_ROOT%{_mandir}/{man1,man5,man8}
+install tinydns-notify $RPM_BUILD_ROOT%{_bindir}
+install tinydns-log $RPM_BUILD_ROOT%{_bindir}
+
install dnsroots.global $RPM_BUILD_ROOT%{_sysconfdir}
install axfr-get $RPM_BUILD_ROOT%{_bindir}
install axfrdns $RPM_BUILD_ROOT%{_bindir}
install rbldns $RPM_BUILD_ROOT%{_bindir}
install rbldns-conf $RPM_BUILD_ROOT%{_bindir}
install rbldns-data $RPM_BUILD_ROOT%{_bindir}
-install rts $RPM_BUILD_ROOT%{_bindir}
install tinydns $RPM_BUILD_ROOT%{_bindir}
install tinydns-conf $RPM_BUILD_ROOT%{_bindir}
install tinydns-data $RPM_BUILD_ROOT%{_bindir}
##### DNSCACHE #####
-mkdir $RPM_BUILD_ROOT%{_sysconfdir}/dnscache
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/dnscache/supervise
+install -d $RPM_BUILD_ROOT/var/log/djbdns/dnscache
+touch $RPM_BUILD_ROOT/var/log/djbdns/dnscache/{lock,state}
cd $RPM_BUILD_ROOT%{_sysconfdir}/dnscache
-mkdir log
-mkdir log/main
-touch log/status
+install -d log/supervise
+touch log/supervise/{lock,status}
+mkfifo log/supervise/{control,ok}
+touch supervise/{lock,status}
+mkfifo supervise/{control,ok}
mkdir env
echo %{_sysconfdir}/dnscache/root>env/ROOT
echo 127.0.0.1 >env/IP
echo 0.0.0.0 >env/IPSEND
echo 1000000 >env/CACHESIZE
echo 3000000 >env/DATALIMIT
-cat>run<<___
+touch env/IGNOREIP
+cat>run<<'___'
#!/bin/sh
exec 2>&1
exec <seed
exec envdir ./env sh -c '
- exec envuidgid dnscache softlimit -o250 -d "\$DATALIMIT" %{_bindir}/dnscache
+ exec envuidgid dnscache softlimit -o250 -d "$DATALIMIT" %{_bindir}/dnscache
'
___
-cat>log/run<<___
+cat>log/run<<'___'
#!/bin/sh
-exec setuidgid dnslog multilog t ./main
+exec setuidgid dnslog multilog t /var/log/djbdns/dnscache
___
mkdir root
mkdir root/ip
touch root/ip/127.0.0.1
mkdir root/servers
-ln $RPM_BUILD_ROOT%{_sysconfdir}/dnsroots.global root/servers/\@
+ln $RPM_BUILD_ROOT%{_sysconfdir}/dnsroots.global root/servers/@
dd if=/dev/zero of=seed bs=128c count=1
##### TINYDNS #####
-mkdir $RPM_BUILD_ROOT%{_sysconfdir}/tinydns
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/tinydns/supervise
+install -d $RPM_BUILD_ROOT/var/log/djbdns/tinydns
+touch $RPM_BUILD_ROOT/var/log/djbdns/tinydns/{lock,state}
cd $RPM_BUILD_ROOT%{_sysconfdir}/tinydns
-mkdir log
-mkdir log/main
-touch log/status
+install -d log/supervise
+touch log/supervise/{lock,status}
+mkfifo log/supervise/{control,ok}
+touch supervise/{lock,status}
+mkfifo supervise/{control,ok}
cat>log/run<<___
#!/bin/sh
-exec setuidgid dnslog multilog t ./main
+exec setuidgid dnslog multilog t /var/log/djbdns/tinydns
___
mkdir env
echo %{_sysconfdir}/tinydns/root>env/ROOT
___
mkdir root
touch root/data
-cat>root/add-ns<<___
+cat>root/add-ns<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add ns \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add ns ${1+"$@"}
___
-cat>root/add-childns<<___
+cat>root/add-childns<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add childns \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add childns ${1+"$@"}
___
-cat>root/add-host<<___
+cat>root/add-host<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add host \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add host ${1+"$@"}
___
-cat>root/add-host6<<___
+cat>root/add-host6<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add host6 \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add host6 ${1+"$@"}
___
-cat>root/add-alias<<___
+cat>root/add-alias<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add alias \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add alias ${1+"$@"}
___
-cat>root/add-alias6<<___
+cat>root/add-alias6<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add alias6 \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add alias6 ${1+"$@"}
___
-cat>root/add-mx<<___
+cat>root/add-mx<<'___'
#!/bin/sh
-exec %{_bindir}/tinydns-edit data data.new add mx \${1+"\$@"}
+exec %{_bindir}/tinydns-edit data data.new add mx ${1+"$@"}
___
-cat>root/Makefile<<___
+cat>root/Makefile<<'___'
data.cdb: data
- %{_bindir}/tinydns-data
+ %{_bindir}/tinydns-data
___
##### PICKDNS #####
-mkdir $RPM_BUILD_ROOT%{_sysconfdir}/pickdns
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/pickdns/supervise
+install -d $RPM_BUILD_ROOT/var/log/djbdns/pickdns
+touch $RPM_BUILD_ROOT/var/log/djbdns/pickdns/{lock,state}
cd $RPM_BUILD_ROOT%{_sysconfdir}/pickdns
-mkdir log
-mkdir log/main
-touch log/status
+install -d log/supervise
+touch log/supervise/{lock,status}
+mkfifo log/supervise/{control,ok}
+touch supervise/{lock,status}
+mkfifo supervise/{control,ok}
cat>log/run<<___
#!/bin/sh
-exec setuidgid dnslog multilog t ./main
+exec setuidgid dnslog multilog t /var/log/djbdns/pickdns
___
mkdir env
echo %{_sysconfdir}/pickdns/root>env/ROOT
touch root/data
cat>root/Makefile<<___
data.cdb: data
- %{_bindir}/pickdns-data
+ %{_bindir}/pickdns-data
___
##### WALLDNS #####
-mkdir $RPM_BUILD_ROOT%{_sysconfdir}/walldns
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/walldns/supervise
+install -d $RPM_BUILD_ROOT/var/log/djbdns/walldns
+touch $RPM_BUILD_ROOT/var/log/djbdns/walldns/{lock,state}
cd $RPM_BUILD_ROOT%{_sysconfdir}/walldns
-mkdir log
-mkdir log/main
-touch log/status
+install -d log/supervise
+touch log/supervise/{lock,status}
+mkfifo log/supervise/{control,ok}
+touch supervise/{lock,status}
+mkfifo supervise/{control,ok}
cat>log/run<<___
#!/bin/sh
exec setuidgid dnslog multilog t ./main
##### RBLDNS #####
-mkdir $RPM_BUILD_ROOT%{_sysconfdir}/rbldns
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/rbldns/supervise
+install -d $RPM_BUILD_ROOT/var/log/djbdns/rbldns
+touch $RPM_BUILD_ROOT/var/log/djbdns/rbldns/{lock,state}
cd $RPM_BUILD_ROOT%{_sysconfdir}/rbldns
-mkdir log
-mkdir log/main
-touch log/status
+install -d log/supervise
+touch log/supervise/{lock,status}
+mkfifo log/supervise/{control,ok}
+touch supervise/{lock,status}
+mkfifo supervise/{control,ok}
cat>log/run<<___
#!/bin/sh
-exec setuidgid dnslog multilog t ./main
+exec setuidgid dnslog multilog t /var/log/djbdns/rbldns
___
mkdir env
echo %{_sysconfdir}/rbldns/root>env/ROOT
touch root/data
cat>root/Makefile<<___
data.cdb: data
- %{_bindir}/rbldns-data
+ %{_bindir}/rbldns-data
___
+cat>data<<___
+# example
+# !10.11.12.13:See http://bad.example.com
+# :127.0.0.2:blacklisted"
+# 1.2.3.0/24
+___
+
+
##### AXFRDNS #####
-mkdir $RPM_BUILD_ROOT%{_sysconfdir}/axfrdns
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/axfrdns/supervise
+install -d $RPM_BUILD_ROOT/var/log/djbdns/axfrdns
+touch $RPM_BUILD_ROOT/var/log/djbdns/axfrdns/{lock,state}
cd $RPM_BUILD_ROOT%{_sysconfdir}/axfrdns
-mkdir log
-mkdir log/main
-touch log/status
+install -d log/supervise
+touch log/supervise/{lock,status}
+mkfifo log/supervise/{control,ok}
+touch supervise/{lock,status}
+mkfifo supervise/{control,ok}
cat>log/run<<___
#!/bin/sh
-exec setuidgid dnslog multilog t ./main
+exec setuidgid dnslog multilog t /var/log/djbdns/axfrdns
___
mkdir env
echo %{_sysconfdir}/tinydns/root>env/ROOT
echo 127.0.0.1 >env/IP
-cat>run<<___
+cat>run<<'___'
#!/bin/sh
exec 2>&1
exec envdir ./env sh -c '
- exec envuidgid axfrdns softlimit -d300000 tcpserver -vDRHl0 -x tcp.cdb -- "\$IP" 53 %{_bindir}/axfrdns
+ exec envuidgid axfrdns softlimit -d300000 tcpserver -vDRHl0 -x tcp.cdb -- "$IP" 53 %{_bindir}/axfrdns
'
___
cat>Makefile<<___
tcp.cdb: tcp
- tcprules tcp.cdb tcp.tmp < tcp
+ tcprules tcp.cdb tcp.tmp < tcp
___
cat>tcp<<___
# sample line: 1.2.3.4:allow,AXFR="heaven.af.mil/3.2.1.in-addr.arpa"
rm -rf $RPM_BUILD_ROOT
%pre
-if [ -n "`getgid djbdns`" ]; then
- if [ "`getgid djbdns`" != "32" ]; then
- echo "Error: group djbdns doesn't have gid=32. Correct this before installing djbdns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/groupadd -g 32 -r -f djbdns
-fi
-if [ -n "`id -u dnslog 2>/dev/null`" ]; then
- if [ "`id -u dnslog`" != "32" ]; then
- echo "Error: user dnslog doesn't have uid=32. Correct this before installing djbdns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 32 -r -d / -s /bin/false -c "djbdns User" -g djbdns dnslog 1>&2
-fi
+%groupadd -g 32 -r -f djbdns
+%useradd -u 32 -r -d / -s /bin/false -c "djbdns User" -g djbdns dnslog
%postun
if [ "$1" = "0" ]; then
- /usr/sbin/userdel dnslog
- /usr/sbin/groupdel djbdns
+ %userremove dnslog
+ %groupremove djbdns
fi
%pre dnscache
-if [ -n "`id -u dnscache 2>/dev/null`" ]; then
- if [ "`id -u dnscache`" != "33" ]; then
- echo "Error: user dnscache doesn't have uid=33. Correct this before installing djbdns-dnscache." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 33 -r -d /etc/dnscache -s /bin/false -c "djbdns User" -g djbdns dnscache 1>&2
-fi
+%useradd -P %{name}-dnscache -u 33 -r -d /etc/dnscache -s /bin/false -c "djbdns User" -g djbdns dnscache
%post dnscache
-if [ \! -s /etc/dnscache/seed ]; then
+if [ ! -s /etc/dnscache/seed ]; then
dd if=/dev/urandom of=/etc/dnscache/seed bs=128c count=1
fi
if diff -u /etc/{dnscache,pickdns}/env/IP >/dev/zero 2>&1;then
echo "or /etc/walldns/env/IP."
fi
+if [ -f /service/dnscache/supervise/lock ]; then
+ svc -t /service/dnscache{,/log}
+fi
+
%preun dnscache
if [ "$1" = "0" ]; then
- svc -d /service/dnscache
+ # http://cr.yp.to/daemontools/faq/create.html#remove
+ if [ -f /service/dnscache/supervise/lock ]; then
+ cd /service/dnscache
+ rm /service/dnscache
+ svc -dx . log
+ fi
fi
%postun dnscache
if [ "$1" = "0" ]; then
- /usr/sbin/userdel dnscache
+ %userremove dnscache
fi
%pre tinydns
-if [ -n "`id -u tinydns 2>/dev/null`" ]; then
- if [ "`id -u tinydns`" != "34" ]; then
- echo "Error: user tinydns doesn't have uid=34. Correct this before installing djbdns-tinydns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 34 -r -d /etc/tinydns -s /bin/false -c "djbdns User" -g djbdns tinydns 1>&2
-fi
+%useradd -P %{name}-tinydns -u 34 -r -d /etc/tinydns -s /bin/false -c "djbdns User" -g djbdns tinydns
%post tinydns
if diff -u /etc/{dnscache,tinydns}/env/IP >/dev/zero 2>&1;then
echo "or /etc/walldns/env/IP."
fi
+if [ -f /service/tinydns/supervise/lock ]; then
+ svc -t /service/tinydns{,/log}
+fi
+
%preun tinydns
if [ "$1" = "0" ]; then
- svc -d /service/tinydns
+ # http://cr.yp.to/daemontools/faq/create.html#remove
+ if [ -f /service/tinydns/supervise/lock ]; then
+ cd /service/tinydns
+ rm /service/tinydns
+ svc -dx . log
+ fi
fi
%postun tinydns
if [ "$1" = "0" ]; then
- /usr/sbin/userdel tinydns
+ %userremove tinydns
fi
%pre pickdns
-if [ -n "`id -u pickdns 2>/dev/null`" ]; then
- if [ "`id -u pickdns`" != "35" ]; then
- echo "Error: user pickdns doesn't have uid=35. Correct this before installing djbdns-pickdns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 35 -r -d /etc/pickdns -s /bin/false -c "djbdns User" -g djbdns pickdns 1>&2
-fi
+%useradd -P %{name}-pickdns -u 35 -r -d /etc/pickdns -s /bin/false -c "djbdns User" -g djbdns pickdns
%post pickdns
if diff -u /etc/{dnscache,pickdns}/env/IP >/dev/zero 2>&1;then
echo "or /etc/walldns/env/IP."
fi
+if [ -f /service/pickdns/supervise/lock ]; then
+ svc -t /service/pickdns{,/log}
+fi
+
%preun pickdns
if [ "$1" = "0" ]; then
- svc -d /service/pickdns
+ # http://cr.yp.to/daemontools/faq/create.html#remove
+ if [ -f /service/pickdns/supervise/lock ]; then
+ cd /service/pickdns
+ rm /service/pickdns
+ svc -dx . log
+ fi
fi
%postun pickdns
if [ "$1" = "0" ]; then
- /usr/sbin/userdel pickdns
+ %userremove pickdns
fi
%pre walldns
-if [ -n "`id -u walldns 2>/dev/null`" ]; then
- if [ "`id -u walldns`" != "36" ]; then
- echo "Error: user walldns doesn't have uid=36. Correct this before installing djbdns-walldns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 36 -r -d /etc/walldns -s /bin/false -c "djbdns User" -g djbdns walldns 1>&2
-fi
+%useradd -P %{name}-walldns -u 36 -r -d /etc/walldns -s /bin/false -c "djbdns User" -g djbdns walldns
%post walldns
if diff -u /etc/{dnscache,walldns}/env/IP >/dev/zero 2>&1;then
echo "or /etc/walldns/env/IP."
fi
+if [ -f /service/walldns/supervise/lock ]; then
+ svc -t /service/walldns{,/log}
+fi
+
%preun walldns
if [ "$1" = "0" ]; then
- svc -d /service/walldns
+ # http://cr.yp.to/daemontools/faq/create.html#remove
+ if [ -f /service/walldns/supervise/lock ]; then
+ cd /service/walldns
+ rm /service/walldns
+ svc -dx . log
+ fi
fi
%postun walldns
if [ "$1" = "0" ]; then
- /usr/sbin/userdel walldns
+ %userremove walldns
fi
%pre rbldns
-if [ -n "`id -u rbldns 2>/dev/null`" ]; then
- if [ "`id -u rbldns`" != "37" ]; then
- echo "Error: user rbldns doesn't have uid=37. Correct this before installing djbdns-rbldns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 37 -r -d /etc/rbldns -s /bin/false -c "djbdns User" -g djbdns rbldns 1>&2
-fi
+%useradd -P %{name}-rbldns -u 37 -r -d /etc/rbldns -s /bin/false -c "djbdns User" -g djbdns rbldns
%post rbldns
if diff -u /etc/{dnscache,rbldns}/env/IP >/dev/zero 2>&1;then
echo "or /etc/walldns/env/IP."
fi
+if [ -f /service/rbldns/supervise/lock ]; then
+ svc -t /service/rbldns{,/log}
+fi
+
%preun rbldns
if [ "$1" = "0" ]; then
- svc -d /service/rbldns
+ # http://cr.yp.to/daemontools/faq/create.html#remove
+ if [ -f /service/rbldns/supervise/lock ]; then
+ cd /service/rbldns
+ rm /service/rbldns
+ svc -dx . log
+ fi
fi
%postun rbldns
if [ "$1" = "0" ]; then
- /usr/sbin/userdel rbldns
+ %userremove rbldns
fi
%pre axfrdns
-if [ -n "`id -u axfrdns 2>/dev/null`" ]; then
- if [ "`id -u axfrdns`" != "38" ]; then
- echo "Error: user axfrdns doesn't have uid=38. Correct this before installing djbdns-axfrdns." 1>&2
- exit 1
- fi
-else
- /usr/sbin/useradd -u 38 -r -d /etc/axfrdns -s /bin/false -c "djbdns User" -g djbdns axfrdns 1>&2
-fi
+%useradd -P %{name}-axfrdns -u 38 -r -d /etc/axfrdns -s /bin/false -c "djbdns User" -g djbdns axfrdns
%preun axfrdns
if [ "$1" = "0" ]; then
- svc -d /service/axfrdns
+ # http://cr.yp.to/daemontools/faq/create.html#remove
+ if [ -f /service/axfrdns/supervise/lock ]; then
+ cd /service/axfrdns
+ rm /service/axfrdns
+ svc -dx . log
+ fi
fi
%postun axfrdns
if [ "$1" = "0" ]; then
- /usr/sbin/userdel axfrdns
+ %userremove axfrdns
fi
%files
%attr(755,root,root) %{_bindir}/axfr-get
%{_mandir}/man[15]/*
%{_mandir}/man8/axfr-get*
+%dir %attr(751,root,root) %dir /var/log/djbdns
%files dnscache
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/dnscache*
-%config %attr(644,root,root) %{_sysconfdir}/dnsroots.global
-%dir %attr(3755,root,root) %{_sysconfdir}/dnscache
-%dir %attr(2755,root,root) %{_sysconfdir}/dnscache/log
-%dir %attr(2755,dnslog,djbdns) %{_sysconfdir}/dnscache/log/main
-%attr(644,dnslog,djbdns) %{_sysconfdir}/dnscache/log/status
+%config %{_sysconfdir}/dnsroots.global
+%dir %attr(1755,root,root) %{_sysconfdir}/dnscache
+%attr(700,root,root) %dir %{_sysconfdir}/dnscache/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/dnscache/supervise/*
+
+%dir %attr(1755,root,root) %{_sysconfdir}/dnscache/log
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dnscache/log/run
+%attr(700,root,root) %dir %{_sysconfdir}/dnscache/log/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/dnscache/log/supervise/*
+%attr(751,dnslog,djbdns) %dir /var/log/djbdns/dnscache
+%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/dnscache/lock
+%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/dnscache/state
+
%dir %attr(2755,root,root) %{_sysconfdir}/dnscache/env
-%config %attr(644,root,root) %{_sysconfdir}/dnscache/env/*
+%config %{_sysconfdir}/dnscache/env/*
%attr(755,root,root) %{_sysconfdir}/dnscache/run
-%attr(755,root,root) %{_sysconfdir}/dnscache/log/run
-%dir %attr(2755,root,root) %{_sysconfdir}/dnscache/root
-%dir %attr(2755,root,root) %{_sysconfdir}/dnscache/root/*
+%dir %{_sysconfdir}/dnscache/root
+%dir %{_sysconfdir}/dnscache/root/ip
+%dir %{_sysconfdir}/dnscache/root/servers
%config %attr(600,root,root) %{_sysconfdir}/dnscache/root/ip/*
-%config %attr(644,root,root) %{_sysconfdir}/dnscache/root/servers/*
+%config %{_sysconfdir}/dnscache/root/servers/*
%ghost %attr(600,root,root) %{_sysconfdir}/dnscache/seed
%{_mandir}/man8/dnscache*
/service/dnscache
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/tinydns*
%dir %attr(3755,root,root) %{_sysconfdir}/tinydns
-%dir %attr(2755,root,root) %{_sysconfdir}/tinydns/log
-%dir %attr(2755,dnslog,djbdns) %{_sysconfdir}/tinydns/log/main
-%attr(644,dnslog,djbdns) %{_sysconfdir}/tinydns/log/status
-%attr(755,root,root) %{_sysconfdir}/tinydns/log/run
+%attr(700,root,root) %dir %{_sysconfdir}/tinydns/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/tinydns/supervise/*
+
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tinydns/log/run
+%dir %attr(1755,root,root) %{_sysconfdir}/tinydns/log
+%attr(700,root,root) %dir %{_sysconfdir}/tinydns/log/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/tinydns/log/supervise/*
+%attr(751,dnslog,djbdns) %dir /var/log/djbdns/tinydns
+%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/tinydns/lock
+%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/tinydns/state
+
%dir %attr(2755,root,root) %{_sysconfdir}/tinydns/env
-%config %attr(644,root,root) %{_sysconfdir}/tinydns/env/*
+%config %{_sysconfdir}/tinydns/env/*
%attr(755,root,root) %{_sysconfdir}/tinydns/run
%dir %attr(2755,root,root) %{_sysconfdir}/tinydns/root
-%attr(644,root,root) %{_sysconfdir}/tinydns/root/Makefile
-%config %attr(644,root,root) %{_sysconfdir}/tinydns/root/data
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tinydns/root/Makefile
+%config %{_sysconfdir}/tinydns/root/data
%attr(755,root,root) %{_sysconfdir}/tinydns/root/add-*
%{_mandir}/man8/tinydns*
/service/tinydns
+%files tinydns-notify
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/tinydns-notify
+
%files pickdns
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/pickdns*
%dir %attr(3755,root,root) %{_sysconfdir}/pickdns
-%dir %attr(2755,root,root) %{_sysconfdir}/pickdns/log
-%dir %attr(2755,dnslog,djbdns) %{_sysconfdir}/pickdns/log/main
-%attr(644,dnslog,djbdns) %{_sysconfdir}/pickdns/log/status
-%attr(755,root,root) %{_sysconfdir}/pickdns/log/run
+%attr(700,root,root) %dir %{_sysconfdir}/pickdns/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/pickdns/supervise/*
+
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pickdns/log/run
+%dir %attr(1755,root,root) %{_sysconfdir}/pickdns/log
+%attr(700,root,root) %dir %{_sysconfdir}/pickdns/log/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/pickdns/log/supervise/*
+%attr(751,dnslog,djbdns) %dir /var/log/djbdns/pickdns
+%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/pickdns/lock
+%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/pickdns/state
+
%dir %attr(2755,root,root) %{_sysconfdir}/pickdns/env
-%config %attr(644,root,root) %{_sysconfdir}/pickdns/env/*
+%config %{_sysconfdir}/pickdns/env/*
%attr(755,root,root) %{_sysconfdir}/pickdns/run
%dir %attr(2755,root,root) %{_sysconfdir}/pickdns/root
-%attr(644,root,root) %{_sysconfdir}/pickdns/root/Makefile
-%config %attr(644,root,root) %{_sysconfdir}/pickdns/root/data
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pickdns/root/Makefile
+%config %{_sysconfdir}/pickdns/root/data
%{_mandir}/man8/pickdns*
/service/pickdns
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/walldns*
%dir %attr(3755,root,root) %{_sysconfdir}/walldns
-%dir %attr(2755,root,root) %{_sysconfdir}/walldns/log
-%dir %attr(2755,dnslog,djbdns) %{_sysconfdir}/walldns/log/main
-%attr(644,dnslog,djbdns) %{_sysconfdir}/walldns/log/status
-%attr(755,root,root) %{_sysconfdir}/walldns/log/run
+%attr(700,root,root) %dir %{_sysconfdir}/walldns/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/walldns/supervise/*
+
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/walldns/log/run
+%dir %attr(1755,root,root) %{_sysconfdir}/walldns/log
+%attr(700,root,root) %dir %{_sysconfdir}/walldns/log/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/walldns/log/supervise/*
+%attr(751,dnslog,djbdns) %dir /var/log/djbdns/walldns
+%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/walldns/lock
+%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/walldns/state
+
%dir %attr(2755,root,root) %{_sysconfdir}/walldns/env
-%config %attr(644,root,root) %{_sysconfdir}/walldns/env/*
+%config %{_sysconfdir}/walldns/env/*
%attr(755,root,root) %{_sysconfdir}/walldns/run
%dir %attr(2755,root,root) %{_sysconfdir}/walldns/root
%{_mandir}/man8/walldns*
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/rbldns*
%dir %attr(3755,root,root) %{_sysconfdir}/rbldns
-%dir %attr(2755,root,root) %{_sysconfdir}/rbldns/log
-%dir %attr(2755,dnslog,djbdns) %{_sysconfdir}/rbldns/log/main
-%attr(644,dnslog,djbdns) %{_sysconfdir}/rbldns/log/status
-%attr(755,root,root) %{_sysconfdir}/rbldns/log/run
+%attr(700,root,root) %dir %{_sysconfdir}/rbldns/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/rbldns/supervise/*
+
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rbldns/log/run
+%dir %attr(1755,root,root) %{_sysconfdir}/rbldns/log
+%attr(700,root,root) %dir %{_sysconfdir}/rbldns/log/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/rbldns/log/supervise/*
+%attr(751,dnslog,djbdns) %dir /var/log/djbdns/rbldns
+%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/rbldns/lock
+%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/rbldns/state
+
%dir %attr(2755,root,root) %{_sysconfdir}/rbldns/env
-%config %attr(644,root,root) %{_sysconfdir}/rbldns/env/*
+%config %{_sysconfdir}/rbldns/env/*
%attr(755,root,root) %{_sysconfdir}/rbldns/run
%dir %attr(2755,root,root) %{_sysconfdir}/rbldns/root
-%attr(644,root,root) %{_sysconfdir}/rbldns/root/Makefile
-%config %attr(644,root,root) %{_sysconfdir}/rbldns/root/data
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rbldns/root/Makefile
+%config %{_sysconfdir}/rbldns/root/data
%{_mandir}/man8/rbldns*
/service/rbldns
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/axfrdns*
%dir %attr(3755,root,root) %{_sysconfdir}/axfrdns
-%dir %attr(2755,root,root) %{_sysconfdir}/axfrdns/log
-%dir %attr(2755,dnslog,djbdns) %{_sysconfdir}/axfrdns/log/main
-%attr(644,dnslog,djbdns) %{_sysconfdir}/axfrdns/log/status
-%attr(755,root,root) %{_sysconfdir}/axfrdns/log/run
+%attr(700,root,root) %dir %{_sysconfdir}/axfrdns/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/axfrdns/supervise/*
+
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/axfrdns/log/run
+%dir %attr(1755,root,root) %{_sysconfdir}/axfrdns/log
+%attr(700,root,root) %dir %{_sysconfdir}/axfrdns/log/supervise
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/axfrdns/log/supervise/*
+%attr(751,dnslog,djbdns) %dir /var/log/djbdns/axfrdns
+%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/axfrdns/lock
+%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/axfrdns/state
+
%dir %attr(2755,root,root) %{_sysconfdir}/axfrdns/env
-%config %attr(644,root,root) %{_sysconfdir}/axfrdns/env/*
+%config %{_sysconfdir}/axfrdns/env/*
%attr(755,root,root) %{_sysconfdir}/axfrdns/run
-%attr(644,root,root) %{_sysconfdir}/axfrdns/Makefile
-%config %attr(644,root,root) %{_sysconfdir}/axfrdns/tcp
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/axfrdns/Makefile
+%config %{_sysconfdir}/axfrdns/tcp
%{_mandir}/man8/axfrdns*
/service/axfrdns