X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=djbdns.spec;h=7b2d9aacd9a1526a369c473d79b09d9897422f16;hb=5730834710e049ac52dc06a10a47d09d5d78ad0d;hp=f5ef21ac74f3d64f5a839b1e1858242da0ce75d3;hpb=5a10cd567b92aa4e8e25bfae4b447c99efd2bad8;p=packages%2Fdjbdns.git diff --git a/djbdns.spec b/djbdns.spec index f5ef21a..7b2d9aa 100644 --- a/djbdns.spec +++ b/djbdns.spec @@ -1,9 +1,14 @@ +# TODO +# - warning: Installed (but unpackaged) file(s) found: +# /etc/rbldns/data +# /usr/bin/random-ip Summary: DJB DNS -Summary(pl): DJB DNS +Summary(pl.UTF-8): DJB DNS Name: djbdns Version: 1.05 -Release: 14 -License: http://cr.yp.to/distributors.html (free to use) +Release: 25 +# http://cr.yp.to/distributors.html +License: Public Domain Group: Networking/Daemons Source0: http://cr.yp.to/djbdns/%{name}-%{version}.tar.gz # Source0-md5: 3147c5cd56832aa3b41955c7a51cbeb2 @@ -12,25 +17,40 @@ Source1: %{name}-doc.tar.gz Source2: ftp://ftp.innominate.org/gpa/djb/%{name}-%{version}-man.tar.gz # Source2-md5: 2b4e71fa4592858e4508538f78d50f61 Source3: http://www.sericyb.com.au/tinydns-notify -# Source3-md5: 2213bdc8c58c10cb8770b7e5b0d67aea +# 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 +Patch11: %{name}-ipv6-incfix.patch +Patch12: %{name}-dnscache-merge-similar-outgoing-queries.patch +# http://www.your.org/dnscache/0001-dnscache-merge-similar-outgoing-queries.patch +Patch13: %{name}-dnscache-cache-soa-records.patch +# http://www.your.org/dnscache/0002-dnscache-cache-soa-records.patch URL: http://cr.yp.to/djbdns.html BuildRequires: rpm-perlprov -Requires(pre): /usr/bin/getgid +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 -Requires(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel +Provides: group(djbdns) Provides: nameserver +Provides: user(dnslog) Obsoletes: caching-nameserver -Obsoletes: nameserver BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -42,6 +62,7 @@ documentation. If you need a DNS server install one of the following packages: - djbdns-dnscache - a local DNS cache + - djbdns-dnscachex - an external DNS cache - djbdns-tinydns - a DNS server - djbdns-tinydns-notify - a tool to send NOTIFY requests - djbdns-pickdns - a DNS load-balancing server @@ -49,54 +70,54 @@ packages: - djbdns-rbldns - an IP-address-listing DNS server - djbdns-axfrdns - a DNS zone transfer server -%description -l de +%description -l de.UTF-8 Dies ist ein Satz von auf Sicherheit zielenden DNS-Servers. Man kriegt ein Preis, wenn man ein Sicherheitsloch findet. -Dieses Paket enthält ein paar DNS-Werkzeugen und etwas Dokumentation. +Dieses Paket enthält ein paar DNS-Werkzeugen und etwas Dokumentation. Wenn du einen DNS-Server braucht, installe ein von den folgenden Paketen: - djbdns-dnscache - ein lokaler DNS-Cache - djbdns-tinydns - ein DNS-Server - djbdns-pickdns - ein Belastung ausgleichender DNS-Server - - djbdns-walldns - eine Wand Rückgekehrten DNSs + - djbdns-walldns - eine Wand Rückgekehrten DNSs - djbdns-rbldns - ein IP-Adressen-Listen-DNS-Server - djbdns-axfrdns - ein DNS-Zonen-Transfer-Server -%description -l pl -Jest to alternatywny zestaw serwerów DNS'u, którego g³ównym celem jest -bezpieczeñstwo. Za znalezienie dziury w tym systemie zosta³a +%description -l pl.UTF-8 +Jest to alternatywny zestaw serwerów DNS'u, którego głównym celem jest +bezpieczeństwo. Za znalezienie dziury w tym systemie została wyznaczona nawet nagroda. -Ten pakiet zawiera kilka podstawowych narzêdzi DNS oraz trochê -dokumentacji. Je¶li potrzebujesz serwera DNS zainstaluj jeden z -nastêpuj±cych pakietów: +Ten pakiet zawiera kilka podstawowych narzędzi DNS oraz trochę +dokumentacji. Jeśli potrzebujesz serwera DNS zainstaluj jeden z +następujących pakietów: - 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 - - djbdns-axfrdns - serwer transferów stref 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 + - djbdns-axfrdns - serwer transferów stref DNS %package dnscache Summary: DJB's local DNS cache -Summary(de): DJBs lokaler DNS-Cache -Summary(pl): Lokalny cache DNS od DJB +Summary(de.UTF-8): DJBs lokaler DNS-Cache +Summary(pl.UTF-8): Lokalny cache DNS od DJB Group: Networking/Daemons -PreReq: %{name} = %{version} -Requires(pre): /usr/bin/getgid +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(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel -Requires(post): diffutils -Requires(post): fileutils Requires(preun): daemontools +Requires: %{name} = %{version}-%{release} Requires: daemontools >= 0.70-5 +Provides: user(dnscache) Obsoletes: dnscache %description dnscache @@ -105,36 +126,58 @@ recursive DNS queries from local clients such as web browsers and mail transfer agents. It collects responses from remote DNS servers. It caches the responses to save time later. -%description dnscache -l de -dnscache ist ein lokaler DNS-Cache aus dem djbdns-Paket. Es empfängt +%description dnscache -l de.UTF-8 +dnscache ist ein lokaler DNS-Cache aus dem djbdns-Paket. Es empfängt rekursive DNS-Fragen von den lokalen Klienten, zum Beispiel Web-Browsers und Mail-Transfer-Agenten. Es sammelt die Antworten von -den Fern-DNS-Servers. Es merkt sich die Antworten, um die Zeit später +den Fern-DNS-Servers. Es merkt sich die Antworten, um die Zeit später zu sparen. -%description dnscache -l pl +%description dnscache -l pl.UTF-8 dnscache jest lokalnym cachem DNS z pakietu djbdns. Przyjmuje on -rekursywne zapytania DNS od lokalnych klientów takich, jak -przegl±darki WWW i agenci transferu poczty (MTA). Zbiera on odpowiedzi -od zdalnych serwerów DNS. Zapamiêtuje on odpowiedzi, ¿eby pó¼niej -oszczêdziæ czas. +rekursywne zapytania DNS od lokalnych klientów takich, jak +przeglądarki WWW i agenci transferu poczty (MTA). Zbiera on odpowiedzi +od zdalnych serwerów DNS. Zapamiętuje on odpowiedzi, żeby później +oszczędzić czas. + +%package dnscachex +Summary: DJB's external DNS cache +Summary(pl.UTF-8): Zewnętrzny cache DNS od DJB +Group: Networking/Daemons +Requires(post): diffutils +Requires(post): fileutils +Requires(preun): daemontools +Requires: %{name}-dnscache = %{version}-%{release} + +%description dnscachex +dnscachex is an external DNS cache from the djbdns package. It accepts +recursive DNS queries from external clients such as web browsers and +mail transfer agents. It collects responses from remote DNS servers. +It caches the responses to save time later. + +%description dnscachex -l pl.UTF-8 +dnscache jest zewnętrznym cachem DNS z pakietu djbdns. Przyjmuje on +rekursywne zapytania DNS od zewnętrznych klientów takich jak +przeglądarki WWW i agenci transferu poczty (MTA). Zbiera on odpowiedzi +od zdalnych serwerów DNS. Zapamiętuje on odpowiedzi, żeby później +oszczędzić czas. %package tinydns Summary: DJB's DNS server -Summary(de): DJBs DNS-Server -Summary(pl): Serwer DNS od DJB +Summary(de.UTF-8): DJBs DNS-Server +Summary(pl.UTF-8): Serwer DNS od DJB Group: Networking/Daemons -PreReq: %{name} = %{version} -Requires(pre): /usr/bin/getgid +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(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel -Requires(post): diffutils Requires(preun): daemontools +Requires: %{name} = %{version}-%{release} Requires: daemontools >= 0.70-5 Requires: make +Provides: user(tinydns) Obsoletes: tinydns %description tinydns @@ -142,54 +185,54 @@ tinydns is a DNS server from the djbdns package. It accepts iterative DNS queries from hosts around the Internet and responds with locally-configured information. -%description tinydns -l de -tinydns ist ein DNS-Server aus dem djbdns-Paket. Es empfängt iterative +%description tinydns -l de.UTF-8 +tinydns ist ein DNS-Server aus dem djbdns-Paket. Es empfängt iterative DNS-Fragen von dem Hosts aus allem Internet und antwortet mit den lokal-konfigurierten Informationen. -%description tinydns -l pl +%description tinydns -l pl.UTF-8 tinydns jest serwerem DNS z pakietu djbdns. Przyjmuje on iteracyjne -zapytania DNS od komputerów z ca³ego Internetu i odpowiada przy u¿yciu +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 -Group: Networking/Daemons +Summary(pl.UTF-8): Narzędzie do wysyłania komunikatów DNS NOTIFY License: Free to use +Group: Networking/Daemons URL: http://www.sericyb.com.au/tinydns-notify -PreReq: %{name} = %{version} -Requires: perl-Socket +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 +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 +%description tinydns-notify -l pl.UTF-8 +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 +Summary(de.UTF-8): DJBs Belastung ausgleichender DNS-Server +Summary(pl.UTF-8): Serwer DNS równoważący obciążenie od DJB Group: Networking/Daemons -PreReq: %{name} = %{version} -Requires(pre): /usr/bin/getgid +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(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel -Requires(post): diffutils Requires(preun): daemontools +Requires: %{name} = %{version}-%{release} Requires: daemontools >= 0.70-5 Requires: make +Provides: user(pickdns) Obsoletes: pickdns %description pickdns @@ -198,33 +241,33 @@ accepts iterative DNS queries from hosts around the Internet and responds with a dynamic selection of locally configured IP addresses with 5-second TTLs. -%description pickdns -l de +%description pickdns -l de.UTF-8 pickdns ist ein Belastung ausgleichender DNS-Server aus dem -djbdns-Paket. Es empfängt iterative DNS-Fragen von den Hosts aus allem +djbdns-Paket. Es empfängt iterative DNS-Fragen von den Hosts aus allem Internet und antwortet mit eine dynamische Auswahl von den lokal-konfigurierten IP-Adressen mit 5-Sekunden-TTLs. -%description pickdns -l pl -pickdns jest równowa¿±cym obci±¿enie serwerem DNS z pakietu djbdns. -Odbiera on iteracyjne zapytania DNS od komputerów z ca³ego internetu i -odpowiada dynamicznym wyborem lokalnie skonfigurowanych adresów IP z +%description pickdns -l pl.UTF-8 +pickdns jest równoważącym obciążenie serwerem DNS z pakietu djbdns. +Odbiera on iteracyjne zapytania DNS od komputerów z całego internetu i +odpowiada dynamicznym wyborem lokalnie skonfigurowanych adresów IP z 5-sekundowymi TTLami. %package walldns Summary: DJB's reverse DNS wall -Summary(de): DJBs Wand rückgekehrten DNSs -Summary(pl): ¦ciana dla odwrotnych zapytañ DNS od DJB +Summary(de.UTF-8): DJBs Wand rückgekehrten DNSs +Summary(pl.UTF-8): Ściana dla odwrotnych zapytań DNS od DJB Group: Networking/Daemons -PreReq: %{name} = %{version} -Requires(pre): /usr/bin/getgid +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(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel -Requires(post): diffutils Requires(preun): daemontools +Requires: %{name} = %{version}-%{release} Requires: daemontools >= 0.70-5 +Provides: user(walldns) Obsoletes: walldns %description walldns @@ -233,35 +276,36 @@ iterative DNS queries for in-addr.arpa domains from hosts around the Internet and supplies generic responses that avoid revealing local host information. -%description walldns -l de -walldns ist ein Wand rückgekehrten DNSs aus dem djbdns-Paket. Es -empfängt iterative DNS-Fragen für den in-addr.arpa-Domänen von den +%description walldns -l de.UTF-8 +walldns ist ein Wand rückgekehrten DNSs aus dem djbdns-Paket. Es +empfängt iterative DNS-Fragen für den in-addr.arpa-Domänen von den Hosts aus allem Internet und liefert Antworte, die vermeiden -Informationen über die lokalen Hosts zu aufzudecken. +Informationen über die lokalen Hosts zu aufzudecken. -%description walldns -l pl -walldns jest ¶cian± dla odwrotnych zapytañ DNS z pakietu djbdns. +%description walldns -l pl.UTF-8 +walldns jest ścianą dla odwrotnych zapytań DNS z pakietu djbdns. Przyjmuje ona iteracyjne zapytania DNS dla domen in-addr.arpa od -komputerów z ca³ego Internetu i dostarcza odpowiedzi, które unikaj± +komputerów z całego Internetu i dostarcza odpowiedzi, które unikają ujawniania informacji o lokalnych komputerach. %package rbldns Summary: DJB's IP-address-listing DNS server -Summary(de): DJBs IP-Adressen-Listen-DNS-Server -Summary(pl): Serwer DNS list adresów IP od DJB +Summary(de.UTF-8): DJBs IP-Adressen-Listen-DNS-Server +Summary(pl.UTF-8): Serwer DNS list adresów IP od DJB Group: Networking/Daemons -PreReq: %{name} = %{version} -Requires(pre): /usr/bin/getgid +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(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel -Requires(post): diffutils 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 @@ -269,36 +313,36 @@ accepts iterative DNS queries from hosts around the Internet asking about various IP addresses. It provides responses showing whether the addresses are on a locally configured list, such as RBL or DUL. -%description rbldns -l de +%description rbldns -l de.UTF-8 rbldns ist ein IP-Adressen-Listen-DNS-Server aus dem djbdns-Paket. Es -empfängt iterative DNS-Fragen von den Hosts aus allem Internet +empfängt iterative DNS-Fragen von den Hosts aus allem Internet fragende nach verschiedene IP-Adresse. Es liefert Antworte, die zeugen ob die Adresse sich auf einer lokal-konfigurierten Liste befinden, zum Beispiel RBL oder DUL. -%description rbldns -l pl -rbldns jest serwerem DNS list adresów z pakietu djbdns. Przyjmuje on -iteracyjne zapytania DNS od komputerów z ca³ego Internetu pytaj±ce o -ró¿ne adresy IP. Dostarcza on odpowiedzi pokazuj±cych, czy adresy te -s± na lokalnie skonfigurowanej li¶cie takiej, jak RBL lub DUL. +%description rbldns -l pl.UTF-8 +rbldns jest serwerem DNS list adresów z pakietu djbdns. Przyjmuje on +iteracyjne zapytania DNS od komputerów z całego Internetu pytające o +różne adresy IP. Dostarcza on odpowiedzi pokazujących, czy adresy te +są na lokalnie skonfigurowanej liście takiej, jak RBL lub DUL. %package axfrdns Summary: DJB's DNS zone-transfer server -Summary(de): DJBs DNS-Zonen-Transfer-Server -Summary(pl): Serwer transferów stref DNS od DJB +Summary(de.UTF-8): DJBs DNS-Zonen-Transfer-Server +Summary(pl.UTF-8): Serwer transferów stref DNS od DJB Group: Networking/Daemons -PreReq: %{name} = %{version} -Requires(pre): /usr/bin/getgid +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(postun): /usr/sbin/userdel -Requires(postun): /usr/sbin/groupdel 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 @@ -306,27 +350,35 @@ axfrdns is a DNS zone transfer server from the djbdns package. It reads a zone-transfer request in DNS-over-TCP format from its standard input and responds with locally configured information. -%description axfrdns -l de +%description axfrdns -l de.UTF-8 axfrdns ist ein DNS-Zonen-Transfer-Server aus dem djbdns-Paket. Es liest ein Zonen-Transfer-Ersuchen im DNS-over-TCP-Format von seinem standarden Eingabe und antwortet mit den lokal-konfigurierten Informationen. -%description axfrdns -l pl -axfrdns jest serwerem transferów stref DNS z pakietu djbdns. Wczytuje -on ze standardowego wej¶cia pro¶bê o transfer strefy w formacie -DNS-over-TCP i odpowiada przy u¿yciu lokalnie skonfigurowanych +%description axfrdns -l pl.UTF-8 +axfrdns jest serwerem transferów stref DNS z pakietu djbdns. Wczytuje +on ze standardowego wejścia prośbę o transfer strefy w formacie +DNS-over-TCP i odpowiada przy użyciu lokalnie skonfigurowanych informacji. %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 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 cd doc ln -s merge/djbdns/* . @@ -340,7 +392,8 @@ rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_sysconfdir}} install -d $RPM_BUILD_ROOT%{_mandir}/{man1,man5,man8} -install %{SOURCE3} $RPM_BUILD_ROOT%{_bindir} +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} @@ -365,7 +418,6 @@ install random-ip $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} @@ -377,206 +429,230 @@ install djbdns-man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 install djbdns-man/*.5 $RPM_BUILD_ROOT%{_mandir}/man5 install djbdns-man/*.8 $RPM_BUILD_ROOT%{_mandir}/man8 -##### DNSCACHE ##### +make_supervise_service() { + %{?debug:set -x} + local service="$1" + local svcdir=$RPM_BUILD_ROOT%{_sysconfdir}/$service + local logdir=$RPM_BUILD_ROOT/var/log/djbdns/$service + + install -d $svcdir/supervise $svcdir/log/supervise $logdir + touch $logdir/{lock,state} + + touch $svcdir/log/supervise/{lock,status} + mkfifo $svcdir/log/supervise/{control,ok} + touch $svcdir/supervise/{lock,status} + mkfifo $svcdir/supervise/{control,ok} +} -mkdir $RPM_BUILD_ROOT%{_sysconfdir}/dnscache -cd $RPM_BUILD_ROOT%{_sysconfdir}/dnscache -mkdir log -mkdir log/main -touch log/status -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<<___ +##### DNSCACHE ##### +make_supervise_service dnscache +s=$RPM_BUILD_ROOT%{_sysconfdir}/dnscache +mkdir $s/env +echo %{_sysconfdir}/dnscache/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +echo 0.0.0.0 > $s/env/IPSEND +echo 1000000 > $s/env/CACHESIZE +echo 3000000 > $s/env/DATALIMIT +touch $s/env/IGNOREIP +cat>$s/run<<'EOF' #!/bin/sh exec 2>&1 exec log/run<<___ +EOF +cat>$s/log/run<<'EOF' #!/bin/sh -exec setuidgid dnslog multilog t ./main -___ -mkdir root -mkdir root/ip -touch root/ip/127.0.0.1 -mkdir root/servers -ln $RPM_BUILD_ROOT%{_sysconfdir}/dnsroots.global root/servers/\@ -dd if=/dev/zero of=seed bs=128c count=1 +exec setuidgid dnslog multilog t /var/log/djbdns/dnscache +EOF +mkdir $s/root +mkdir $s/root/ip +touch $s/root/ip/127.0.0.1 +mkdir $s/root/servers +ln $RPM_BUILD_ROOT%{_sysconfdir}/dnsroots.global $s/root/servers/@ +dd if=/dev/zero of=$s/seed bs=128c count=1 + +##### DNSCACHEX ##### +make_supervise_service dnscachex +s=$RPM_BUILD_ROOT%{_sysconfdir}/dnscachex +mkdir $s/env +echo %{_sysconfdir}/dnscachex/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +echo 0.0.0.0 > $s/env/IPSEND +echo 1000000 > $s/env/CACHESIZE +echo 3000000 > $s/env/DATALIMIT +touch $s/env/IGNOREIP +cat>$s/run<<'EOF' +#!/bin/sh +exec 2>&1 +exec $s/log/run<<'EOF' +#!/bin/sh +exec setuidgid dnslog multilog t /var/log/djbdns/dnscachex +EOF +mkdir $s/root +mkdir $s/root/ip +touch $s/root/ip/127.0.0.1 +mkdir $s/root/servers +ln $RPM_BUILD_ROOT%{_sysconfdir}/dnsroots.global $s/root/servers/@ +dd if=/dev/zero of=$s/seed bs=128c count=1 ##### TINYDNS ##### - -mkdir $RPM_BUILD_ROOT%{_sysconfdir}/tinydns -cd $RPM_BUILD_ROOT%{_sysconfdir}/tinydns -mkdir log -mkdir log/main -touch log/status -cat>log/run<<___ +make_supervise_service tinydns +s=$RPM_BUILD_ROOT%{_sysconfdir}/tinydns +cat>$s/log/run<env/ROOT -echo 127.0.0.1 >env/IP -cat>run<<___ +exec setuidgid dnslog multilog t /var/log/djbdns/tinydns +EOF +mkdir $s/env +echo %{_sysconfdir}/tinydns/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +cat>$s/run<&1 exec envuidgid tinydns envdir ./env softlimit -d300000 %{_bindir}/tinydns -___ -mkdir root -touch root/data -cat>root/add-ns<<___ +EOF +mkdir $s/root +touch $s/root/data +cat>$s/root/add-ns<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add ns \${1+"\$@"} -___ -cat>root/add-childns<<___ +exec %{_bindir}/tinydns-edit data data.new add ns ${1+"$@"} +EOF +cat>$s/root/add-childns<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add childns \${1+"\$@"} -___ -cat>root/add-host<<___ +exec %{_bindir}/tinydns-edit data data.new add childns ${1+"$@"} +EOF +cat>$s/root/add-host<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add host \${1+"\$@"} -___ -cat>root/add-host6<<___ +exec %{_bindir}/tinydns-edit data data.new add host ${1+"$@"} +EOF +cat>$s/root/add-host6<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add host6 \${1+"\$@"} -___ -cat>root/add-alias<<___ +exec %{_bindir}/tinydns-edit data data.new add host6 ${1+"$@"} +EOF +cat>$s/root/add-alias<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add alias \${1+"\$@"} -___ -cat>root/add-alias6<<___ +exec %{_bindir}/tinydns-edit data data.new add alias ${1+"$@"} +EOF +cat>$s/root/add-alias6<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add alias6 \${1+"\$@"} -___ -cat>root/add-mx<<___ +exec %{_bindir}/tinydns-edit data data.new add alias6 ${1+"$@"} +EOF +cat>$s/root/add-mx<<'EOF' #!/bin/sh -exec %{_bindir}/tinydns-edit data data.new add mx \${1+"\$@"} -___ -cat>root/Makefile<<___ +exec %{_bindir}/tinydns-edit data data.new add mx ${1+"$@"} +EOF +cat>$s/root/Makefile<<'EOF' data.cdb: data %{_bindir}/tinydns-data -___ +EOF ##### PICKDNS ##### - -mkdir $RPM_BUILD_ROOT%{_sysconfdir}/pickdns -cd $RPM_BUILD_ROOT%{_sysconfdir}/pickdns -mkdir log -mkdir log/main -touch log/status -cat>log/run<<___ +make_supervise_service pickdns +s=$RPM_BUILD_ROOT%{_sysconfdir}/pickdns +cat>$s/log/run<env/ROOT -echo 127.0.0.1 >env/IP -cat>run<<___ +exec setuidgid dnslog multilog t /var/log/djbdns/pickdns +EOF +mkdir $s/env +echo %{_sysconfdir}/pickdns/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +cat>$s/run<&1 exec envuidgid pickdns envdir ./env softlimit -d250000 %{_bindir}/pickdns -___ -mkdir root -touch root/data -cat>root/Makefile<<___ +EOF +mkdir $s/root +touch $s/root/data +cat>$s/root/Makefile<log/run<<___ +make_supervise_service walldns +s=$RPM_BUILD_ROOT%{_sysconfdir}/walldns +cat>$s/log/run<env/ROOT -echo 127.0.0.1 >env/IP -cat>run<<___ +EOF +mkdir $s/env +echo %{_sysconfdir}/walldns/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +cat>$s/run<&1 exec envuidgid walldns envdir ./env softlimit -d250000 %{_bindir}/walldns -___ -mkdir root +EOF +mkdir $s/root ##### RBLDNS ##### - -mkdir $RPM_BUILD_ROOT%{_sysconfdir}/rbldns -cd $RPM_BUILD_ROOT%{_sysconfdir}/rbldns -mkdir log -mkdir log/main -touch log/status -cat>log/run<<___ +make_supervise_service rbldns +s=$RPM_BUILD_ROOT%{_sysconfdir}/rbldns +cat>$s/log/run<env/ROOT -echo 127.0.0.1 >env/IP -echo in-addr.arpa >env/BASE -cat>run<<___ +exec setuidgid dnslog multilog t /var/log/djbdns/rbldns +EOF +mkdir $s/env +echo %{_sysconfdir}/rbldns/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +echo in-addr.arpa > $s/env/BASE +cat>$s/run<&1 exec envuidgid rbldns envdir ./env softlimit -d250000 %{_bindir}/rbldns -___ -mkdir root -touch root/data -cat>root/Makefile<<___ +EOF +mkdir $s/root +touch $s/root/data +cat>$s/root/Makefile<data<<___ +EOF +cat>$s/data<log/run<<___ +make_supervise_service axfrdns +s=$RPM_BUILD_ROOT%{_sysconfdir}/axfrdns +cat>$s/log/run<env/ROOT -echo 127.0.0.1 >env/IP -cat>run<<___ +exec setuidgid dnslog multilog t /var/log/djbdns/axfrdns +EOF +mkdir $s/env +echo %{_sysconfdir}/tinydns/root > $s/env/ROOT +echo 127.0.0.1 > $s/env/IP +cat>$s/run<<'EOF' #!/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<<___ +EOF +cat>$s/Makefile<<'EOF' tcp.cdb: tcp tcprules tcp.cdb tcp.tmp < tcp -___ -cat>tcp<<___ +EOF +cat>$s/tcp<<'EOF' # sample line: 1.2.3.4:allow,AXFR="heaven.af.mil/3.2.1.in-addr.arpa" :deny -___ +EOF ##### daemontools symlinks ##### install -d $RPM_BUILD_ROOT/service cd $RPM_BUILD_ROOT/service ln -s ..%{_sysconfdir}/dnscache +ln -s ..%{_sysconfdir}/dnscachex ln -s ..%{_sysconfdir}/tinydns ln -s ..%{_sysconfdir}/pickdns ln -s ..%{_sysconfdir}/walldns @@ -587,260 +663,323 @@ ln -s ..%{_sysconfdir}/axfrdns 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 - dd if=/dev/urandom of=/etc/dnscache/seed bs=128c count=1 +if [ ! -s %{_sysconfdir}/dnscache/seed ]; then + dd if=/dev/urandom of=%{_sysconfdir}/dnscache/seed bs=128c count=1 fi -if diff -u /etc/{dnscache,pickdns}/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{dnscache,pickdns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and pickdns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/pickdns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/pickdns/env/IP." fi -if diff -u /etc/{dnscache,rbldns}/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{dnscache,dnscachex}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscache and dnscachex can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/dnscachex/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscache,rbldns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and rbldns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/rbldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/rbldns/env/IP." fi -if diff -u /etc/{dnscache,tinydns}/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{dnscache,tinydns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and tinydns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/tinydns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." fi -if diff -u /etc/{dnscache,walldns}/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{dnscache,walldns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and walldns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/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 +%post dnscachex +if [ ! -s %{_sysconfdir}/dnscachex/seed ]; then + dd if=/dev/urandom of=%{_sysconfdir}/dnscachex/seed bs=128c count=1 +fi +if diff -u %{_sysconfdir}/{dnscachex,dnscache}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and dnscache can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/dnscache/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,pickdns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and pickdns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/pickdns/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,rbldns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and rbldns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/rbldns/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,tinydns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and tinydns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,walldns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and walldns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/walldns/env/IP." +fi + +if [ -f /service/dnscachex/supervise/lock ]; then + svc -t /service/dnscachex{,/log} +fi + +%preun dnscachex +if [ "$1" = "0" ]; then + # http://cr.yp.to/daemontools/faq/create.html#remove + if [ -f /service/dnscachex/supervise/lock ]; then + cd /service/dnscachex + rm /service/dnscachex + svc -dx . log fi -else - /usr/sbin/useradd -u 34 -r -d /etc/tinydns -s /bin/false -c "djbdns User" -g djbdns tinydns 1>&2 fi +%pre tinydns +%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 +if diff -u %{_sysconfdir}/{dnscache,tinydns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and tinydns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/tinydns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." fi -if diff -u /etc/{pick,tiny}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{dnscachex,tinydns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and tinydns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." +fi +if diff -u %{_sysconfdir}/{pick,tiny}dns/env/IP >/dev/zero 2>&1;then echo "Warning: pickdns and tinydns can't work on the same" - echo "IP address. You have to edit either /etc/pickdns/env/IP" - echo "or /etc/tinydns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/pickdns/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." fi -if diff -u /etc/{rbl,tiny}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{rbl,tiny}dns/env/IP >/dev/zero 2>&1;then echo "Warning: rbldns and tinydns can't work on the same" - echo "IP address. You have to edit either /etc/rbldns/env/IP" - echo "or /etc/tinydns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/rbldns/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." fi -if diff -u /etc/{tiny,wall}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{tiny,wall}dns/env/IP >/dev/zero 2>&1;then echo "Warning: tinydns and walldns can't work on the same" - echo "IP address. You have to edit either /etc/tinydns/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/tinydns/env/IP" + echo "or %{_sysconfdir}/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 +if diff -u %{_sysconfdir}/{dnscache,pickdns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and pickdns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/pickdns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/pickdns/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,pickdns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and pickdns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/pickdns/env/IP." fi -if diff -u /etc/{pick,rbl}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{pick,rbl}dns/env/IP >/dev/zero 2>&1;then echo "Warning: pickdns and rbldns can't work on the same" - echo "IP address. You have to edit either /etc/pickdns/env/IP" - echo "or /etc/rbldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/pickdns/env/IP" + echo "or %{_sysconfdir}/rbldns/env/IP." fi -if diff -u /etc/{pick,tiny}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{pick,tiny}dns/env/IP >/dev/zero 2>&1;then echo "Warning: pickdns and tinydns can't work on the same" - echo "IP address. You have to edit either /etc/pickdns/env/IP" - echo "or /etc/tinydns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/pickdns/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." fi -if diff -u /etc/{pick,wall}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{pick,wall}dns/env/IP >/dev/zero 2>&1;then echo "Warning: pickdns and walldns can't work on the same" - echo "IP address. You have to edit either /etc/pickdns/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/pickdns/env/IP" + echo "or %{_sysconfdir}/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 +if diff -u %{_sysconfdir}/{dnscache,walldns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and walldns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/walldns/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,walldns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and walldns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/walldns/env/IP." fi -if diff -u /etc/{pick,wall}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{pick,wall}dns/env/IP >/dev/zero 2>&1;then echo "Warning: pickdns and walldns can't work on the same" - echo "IP address. You have to edit either /etc/pickdns/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/pickdns/env/IP" + echo "or %{_sysconfdir}/walldns/env/IP." fi -if diff -u /etc/{rbl,wall}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{rbl,wall}dns/env/IP >/dev/zero 2>&1;then echo "Warning: rbldns and walldns can't work on the same" - echo "IP address. You have to edit either /etc/rbldns/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/rbldns/env/IP" + echo "or %{_sysconfdir}/walldns/env/IP." fi -if diff -u /etc/{tiny,wall}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{tiny,wall}dns/env/IP >/dev/zero 2>&1;then echo "Warning: tinydns and walldns can't work on the same" - echo "IP address. You have to edit either /etc/tinydns/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/tinydns/env/IP" + echo "or %{_sysconfdir}/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 +if diff -u %{_sysconfdir}/{dnscache,rbldns}/env/IP >/dev/zero 2>&1;then echo "Warning: dnscache and rbldns can't work on the same" - echo "IP address. You have to edit either /etc/dnscache/env/IP" - echo "or /etc/rbldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/dnscache/env/IP" + echo "or %{_sysconfdir}/rbldns/env/IP." +fi +if diff -u %{_sysconfdir}/{dnscachex,rbldns}/env/IP >/dev/zero 2>&1;then + echo "Warning: dnscachex and rbldns can't work on the same" + echo "IP address. You have to edit either %{_sysconfdir}/dnscachex/env/IP" + echo "or %{_sysconfdir}/rbldns/env/IP." fi -if diff -u /etc/{pick,rbl}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{pick,rbl}dns/env/IP >/dev/zero 2>&1;then echo "Warning: pickdns and rbldns can't work on the same" - echo "IP address. You have to edit either /etc/pickdns/env/IP" - echo "or /etc/rbldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/pickdns/env/IP" + echo "or %{_sysconfdir}/rbldns/env/IP." fi -if diff -u /etc/{rbl,tiny}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{rbl,tiny}dns/env/IP >/dev/zero 2>&1;then echo "Warning: rbldns and tinydns can't work on the same" - echo "IP address. You have to edit either /etc/rbldns/env/IP" - echo "or /etc/tinydns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/rbldns/env/IP" + echo "or %{_sysconfdir}/tinydns/env/IP." fi -if diff -u /etc/{rbl,wall}dns/env/IP >/dev/zero 2>&1;then +if diff -u %{_sysconfdir}/{rbl,wall}dns/env/IP >/dev/zero 2>&1;then echo "Warning: rbldns and walldns can't work on the same" - echo "IP address. You have to edit either /etc/rbldns/env/IP" - echo "or /etc/walldns/env/IP." + echo "IP address. You have to edit either %{_sysconfdir}/rbldns/env/IP" + echo "or %{_sysconfdir}/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 @@ -851,41 +990,82 @@ fi %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 +%files dnscachex +%defattr(644,root,root,755) +%dir %attr(1755,root,root) %{_sysconfdir}/dnscachex +%attr(700,root,root) %dir %{_sysconfdir}/dnscachex/supervise +%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/dnscachex/supervise/* + +%dir %attr(1755,root,root) %{_sysconfdir}/dnscachex/log +%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dnscachex/log/run +%attr(700,root,root) %dir %{_sysconfdir}/dnscachex/log/supervise +%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/dnscachex/log/supervise/* +%attr(751,dnslog,djbdns) %dir /var/log/djbdns/dnscachex +%attr(600,dnslog,djbdns) %ghost /var/log/djbdns/dnscachex/lock +%attr(640,dnslog,djbdns) %ghost /var/log/djbdns/dnscachex/state + +%dir %attr(2755,root,root) %{_sysconfdir}/dnscachex/env +%config %{_sysconfdir}/dnscachex/env/* +%attr(755,root,root) %{_sysconfdir}/dnscachex/run +%dir %{_sysconfdir}/dnscachex/root +%dir %{_sysconfdir}/dnscachex/root/ip +%dir %{_sysconfdir}/dnscachex/root/servers +%config %attr(600,root,root) %{_sysconfdir}/dnscachex/root/ip/* +%config %{_sysconfdir}/dnscachex/root/servers/* +%ghost %attr(600,root,root) %{_sysconfdir}/dnscachex/seed +/service/dnscachex + %files tinydns %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 @@ -898,16 +1078,23 @@ fi %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 @@ -915,12 +1102,19 @@ fi %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* @@ -930,16 +1124,23 @@ fi %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 @@ -947,14 +1148,21 @@ fi %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