+# TODO: bcond patches
Summary: DJB DNS
Summary(pl): DJB DNS
Name: djbdns
Version: 1.05
-Release: 13
+Release: 17
License: http://cr.yp.to/distributors.html (free to use)
Group: Networking/Daemons
Source0: http://cr.yp.to/djbdns/%{name}-%{version}.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
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
Patch3: http://iksz.hu/package/djbdns-conf/djbdns-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://tinydns.org/djbdns-1.05-ignoreip.patch
+Patch7: %{name}-ignoreip.patch
+# http://core.segfault.pl/~hobbit/tinydns-include.patch
+Patch8: %{name}-tinydns-include.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.159
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+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(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(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: daemontools >= 0.70-5
+Provides: user(dnscache)
Obsoletes: dnscache
%description dnscache
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(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: 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
+Group: Networking/Daemons
+License: Free to use
+URL: http://www.sericyb.com.au/tinydns-notify
+PreReq: %{name} = %{version}
+Requires: perl-modules
+Requires: perl-Net-DNS
+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(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: daemontools >= 0.70-5
Requires: make
+Provides: user(pickdns)
Obsoletes: pickdns
%description pickdns
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(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: daemontools >= 0.70-5
+Provides: user(walldns)
Obsoletes: walldns
%description walldns
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(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: daemontools >= 0.70-5
Requires: make
+Provides: user(rbldns)
Obsoletes: rbldns
%description rbldns
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(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: daemontools >= 0.70-5
Requires: make
Requires: ucspi-tcp
+Provides: user(axfrdns)
Obsoletes: axfrdns
%description axfrdns
%patch3 -p1
%patch4 -p1
%patch5
+%patch6 -p1
+%patch7 -p1
+%patch8 -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 %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}
+
install dnsroots.global $RPM_BUILD_ROOT%{_sysconfdir}
install axfr-get $RPM_BUILD_ROOT%{_bindir}
install axfrdns $RPM_BUILD_ROOT%{_bindir}
echo 0.0.0.0 >env/IPSEND
echo 1000000 >env/CACHESIZE
echo 3000000 >env/DATALIMIT
+touch env/IGNOREIP
cat>run<<___
#!/bin/sh
exec 2>&1
___
cat>root/Makefile<<___
data.cdb: data
- %{_bindir}/tinydns-data
+ %{_bindir}/tinydns-data
___
##### PICKDNS #####
touch root/data
cat>root/Makefile<<___
data.cdb: data
- %{_bindir}/pickdns-data
+ %{_bindir}/pickdns-data
___
##### WALLDNS #####
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 #####
___
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"
%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
+ 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
+ /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
+ 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
+ /usr/sbin/useradd -u 32 -r -d / -s /bin/false -c "djbdns User" -g djbdns dnslog 1>&2
fi
%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
+ 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
+ /usr/sbin/useradd -u 33 -r -d /etc/dnscache -s /bin/false -c "djbdns User" -g djbdns dnscache 1>&2
fi
%post dnscache
%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
+ 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
+ /usr/sbin/useradd -u 34 -r -d /etc/tinydns -s /bin/false -c "djbdns User" -g djbdns tinydns 1>&2
fi
%post tinydns
%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
+ 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
+ /usr/sbin/useradd -u 35 -r -d /etc/pickdns -s /bin/false -c "djbdns User" -g djbdns pickdns 1>&2
fi
%post pickdns
%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
+ 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
+ /usr/sbin/useradd -u 36 -r -d /etc/walldns -s /bin/false -c "djbdns User" -g djbdns walldns 1>&2
fi
%post walldns
%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
+ 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
+ /usr/sbin/useradd -u 37 -r -d /etc/rbldns -s /bin/false -c "djbdns User" -g djbdns rbldns 1>&2
fi
%post rbldns
%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
+ 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
+ /usr/sbin/useradd -u 38 -r -d /etc/axfrdns -s /bin/false -c "djbdns User" -g djbdns axfrdns 1>&2
fi
%preun axfrdns
%postun axfrdns
if [ "$1" = "0" ]; then
- /usr/sbin/userdel axfrdns
+ %userremove axfrdns
fi
%files
%{_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*