aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teras <timo.teras@iki.fi>2010-04-19 11:24:45 +0300
committerNatanael Copa <ncopa@alpinelinux.org>2010-04-22 09:45:35 +0000
commit6afcbebe2296d04c6929a2f6806f7e9dc199919f (patch)
tree38b3d6a8c4469f49a3ac95ee7baa7b62cca8d518
parent530f484d3f86d1864b2ad9bb6c1ca6a7238fce0f (diff)
downloadalpine_aports-6afcbebe2296d04c6929a2f6806f7e9dc199919f.tar.bz2
alpine_aports-6afcbebe2296d04c6929a2f6806f7e9dc199919f.tar.xz
alpine_aports-6afcbebe2296d04c6929a2f6806f7e9dc199919f.zip
main/djbdns: periodic script to update zone hints
This also splits the djbdns to djbdns-common that contains the few utilities needed by the periodic script. Minor fix to init.d script included also. Signed-off-by: Timo Teras <timo.teras@iki.fi> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> (cherry picked from commit fbea38f9a65456f1e7e08630201c5e8caea72ed2)
-rw-r--r--main/djbdns/APKBUILD28
-rw-r--r--main/djbdns/dnscache.confd2
-rwxr-xr-xmain/djbdns/dnscache.initd4
-rwxr-xr-xmain/djbdns/dnscache.monthly48
-rwxr-xr-xmain/djbdns/tinydns.initd4
5 files changed, 76 insertions, 10 deletions
diff --git a/main/djbdns/APKBUILD b/main/djbdns/APKBUILD
index cfb7100558..a9895c23a1 100644
--- a/main/djbdns/APKBUILD
+++ b/main/djbdns/APKBUILD
@@ -1,12 +1,12 @@
1# Maintainer: Natanael Copa <ncopa@alpinelinux.org> 1# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
2pkgname=djbdns 2pkgname=djbdns
3pkgver=1.05 3pkgver=1.05
4pkgrel=32 4pkgrel=33
5pkgdesc="Excellent high-performance DNS services" 5pkgdesc="Excellent high-performance DNS services"
6url="http://cr.yp.to/djbdns.html" 6url="http://cr.yp.to/djbdns.html"
7license="public-domain" 7license="public-domain"
8depends= 8depends=
9subpackages="tinydns dnscache" 9subpackages="djbdns-common tinydns dnscache"
10source="http://cr.yp.to/djbdns/$pkgname-$pkgver.tar.gz 10source="http://cr.yp.to/djbdns/$pkgname-$pkgver.tar.gz
11 headtail.patch 11 headtail.patch
12 dnsroots.patch 12 dnsroots.patch
@@ -20,6 +20,7 @@ source="http://cr.yp.to/djbdns/$pkgname-$pkgver.tar.gz
20 dnscache.pre-install 20 dnscache.pre-install
21 dnscache.initd 21 dnscache.initd
22 dnscache.confd 22 dnscache.confd
23 dnscache.monthly
23 " 24 "
24 25
25build() { 26build() {
@@ -44,9 +45,19 @@ build() {
44 mkdir -p "$pkgdir"/usr/share/doc/djbdns 45 mkdir -p "$pkgdir"/usr/share/doc/djbdns
45} 46}
46 47
48common() {
49 pkgdesc="Base utilities of djbdns"
50 replaces="djbdns"
51
52 mkdir -p "$subpkgdir"/usr/bin
53 mv "$pkgdir"/usr/bin/dnsq "$subpkgdir"/usr/bin
54 mv "$pkgdir"/usr/bin/dnsip "$subpkgdir"/usr/bin
55}
56
47tinydns() { 57tinydns() {
48 pkgdesc="A small and secure DNS server" 58 pkgdesc="A small and secure DNS server"
49 install=tinydns.pre-install 59 install=tinydns.pre-install
60
50 mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/etc/tinydns \ 61 mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/etc/tinydns \
51 "$subpkgdir"/var/cache/tinydns 62 "$subpkgdir"/var/cache/tinydns
52 mv "$pkgdir"/usr/bin/tinydns* "$subpkgdir"/usr/bin 63 mv "$pkgdir"/usr/bin/tinydns* "$subpkgdir"/usr/bin
@@ -59,6 +70,8 @@ tinydns() {
59dnscache() { 70dnscache() {
60 pkgdesc="A recursive resolver" 71 pkgdesc="A recursive resolver"
61 install=dnscache.pre-install 72 install=dnscache.pre-install
73 depends=djbdns-common
74
62 mkdir -p "$subpkgdir"/usr/bin \ 75 mkdir -p "$subpkgdir"/usr/bin \
63 "$subpkgdir"/etc/dnscache/ip \ 76 "$subpkgdir"/etc/dnscache/ip \
64 "$subpkgdir"/etc/dnscache/servers 77 "$subpkgdir"/etc/dnscache/servers
@@ -71,8 +84,10 @@ dnscache() {
71 "$subpkgdir"/etc/init.d/dnscache 84 "$subpkgdir"/etc/init.d/dnscache
72 install -D -m644 "$srcdir"/dnscache.confd \ 85 install -D -m644 "$srcdir"/dnscache.confd \
73 "$subpkgdir"/etc/conf.d/dnscache 86 "$subpkgdir"/etc/conf.d/dnscache
87 install -D -m755 "$srcdir"/dnscache.monthly \
88 "$subpkgdir"/etc/periodic/monthly/dnscache-hints-refresh
74} 89}
75 90
76md5sums="3147c5cd56832aa3b41955c7a51cbeb2 djbdns-1.05.tar.gz 91md5sums="3147c5cd56832aa3b41955c7a51cbeb2 djbdns-1.05.tar.gz
770d2adaf9f1626043e8702b825cdccdd6 headtail.patch 920d2adaf9f1626043e8702b825cdccdd6 headtail.patch
787565048ebc981238879122c7f88cc143 dnsroots.patch 937565048ebc981238879122c7f88cc143 dnsroots.patch
@@ -81,8 +96,9 @@ adb6745606cae593eb5ea6870fc27bd4 djbdns-1.05-jumbo-josb.patch
81c7be73fe2fb4ae02d5096fa2c1f55a68 1.05-errno.patch 96c7be73fe2fb4ae02d5096fa2c1f55a68 1.05-errno.patch
821292500c04baba3995d9753fe40fdc94 1.05-response.patch 971292500c04baba3995d9753fe40fdc94 1.05-response.patch
837695bf50559c09798ec852b578ac8698 tinydns.pre-install 987695bf50559c09798ec852b578ac8698 tinydns.pre-install
843f4cd61c41f760c3007a8b09a4da091f tinydns.initd 99fe48165a920cf843ceb9a4ee50bf74c0 tinydns.initd
857dcf6674c07d46c736b3c25d9c92384a tinydns.confd 1007dcf6674c07d46c736b3c25d9c92384a tinydns.confd
86e09c3a6ba6917e16f4736ab5c070dbe9 dnscache.pre-install 101e09c3a6ba6917e16f4736ab5c070dbe9 dnscache.pre-install
87ec15af30819b9e146f86223753b367a0 dnscache.initd 102e5cada3b032da84c4a0e41ef8b3108cb dnscache.initd
88e2938593277d7a87806e70e145a90c3f dnscache.confd" 1032b3d02e88f70603c760bf368ab3ed636 dnscache.confd
1046253f44f042fc5aa31fd182780d9853c dnscache.monthly"
diff --git a/main/djbdns/dnscache.confd b/main/djbdns/dnscache.confd
index f456bf8db9..e5312812cd 100644
--- a/main/djbdns/dnscache.confd
+++ b/main/djbdns/dnscache.confd
@@ -20,4 +20,6 @@ IP=127.0.0.1
20# FORWARDONLY - servers/@ are parent caches, not root servers 20# FORWARDONLY - servers/@ are parent caches, not root servers
21#FORWARDONLY= 21#FORWARDONLY=
22 22
23# UPDATEHINTS - refresh zone hints
24UPDATEHINTS=1
23 25
diff --git a/main/djbdns/dnscache.initd b/main/djbdns/dnscache.initd
index 3e88e3a426..37d9d9ba73 100755
--- a/main/djbdns/dnscache.initd
+++ b/main/djbdns/dnscache.initd
@@ -17,8 +17,8 @@ depend() {
17# Main program 17# Main program
18 18
19start() { 19start() {
20 UID=$( grep dnscache /etc/passwd | cut -f3 -d: ) 20 UID=$(id -u dnscache)
21 GID=$( grep dnscache /etc/group | cut -f3 -d: ) 21 GID=$(id -g dnscache)
22 22
23 ebegin "Starting dnscache" 23 ebegin "Starting dnscache"
24 if [ -z "$UID" ] || [ -z "$GID" ]; then 24 if [ -z "$UID" ] || [ -z "$GID" ]; then
diff --git a/main/djbdns/dnscache.monthly b/main/djbdns/dnscache.monthly
new file mode 100755
index 0000000000..0bd5a85397
--- /dev/null
+++ b/main/djbdns/dnscache.monthly
@@ -0,0 +1,48 @@
1#!/bin/sh
2
3if [ -f ./etc/conf.d/dnscache ]; then
4 . /etc/conf.d/dnscache
5fi
6
7if [ -z "$UPDATEHINTS" ]; then
8 exit 0
9fi
10
11cd /etc/dnscache/servers
12NEEDRESTART=
13ZONES=`ls /etc/dnscache/servers`
14for ZONEFILE in $ZONES; do
15 # Convert symlinks to copies, so we can update it
16 ZONE="$ZONEFILE"
17 if [ -L $ZONEFILE ]; then
18 DST="`readlink "$ZONEFILE"`"
19 cp -f "$DST" "$ZONEFILE"
20 fi
21
22 if [ "$ZONE" == "@" ]; then
23 ZONE="."
24 fi
25
26 if [ "$ZONE" != "." -o "$FORWARDONLY" = "" ]; then
27 TMPF=`mktemp -t`
28
29 # Refresh zone info
30 dnsqr ns $ZONE | awk '/^answer: ./ { print $5 }' | sort -u | xargs dnsip > $TMPF
31
32 grep "^$" $TMPF 1> /dev/null
33 if [ $? != 0 ]; then
34 cmp -s $ZONEFILE $TMPF
35 if [ "$?" != 0 ]; then
36 NEEDRESTART=yes
37 cat $TMPF > $ZONEFILE
38 fi
39 fi
40 rm $TMPF
41 fi
42done
43
44if [ "$NEEDRESTART" ] && /etc/init.d/dnscache --quiet status; then
45 /etc/init.d/dnscache restart
46fi
47
48exit 0
diff --git a/main/djbdns/tinydns.initd b/main/djbdns/tinydns.initd
index ab15ffe37a..8dfc539307 100755
--- a/main/djbdns/tinydns.initd
+++ b/main/djbdns/tinydns.initd
@@ -29,8 +29,8 @@ fi
29# Main program 29# Main program
30reload() { 30reload() {
31 local rc opwd="$opwd" 31 local rc opwd="$opwd"
32 UID=$( grep tinydns /etc/passwd | cut -f3 -d: ) 32 UID=$(id -u tinydns)
33 GID=$( grep tinydns /etc/group | cut -f3 -d: ) 33 GID=$(id -g tinydns)
34 34
35 # Create the $ROOT directory if necessary 35 # Create the $ROOT directory if necessary
36 if [ ! -d "$ROOT" ]; then 36 if [ ! -d "$ROOT" ]; then