summaryrefslogtreecommitdiff
path: root/community/bind-geodns
diff options
context:
space:
mode:
Diffstat (limited to 'community/bind-geodns')
-rw-r--r--community/bind-geodns/127.0.0.zone11
-rw-r--r--community/bind-geodns/PKGBUILD66
-rw-r--r--community/bind-geodns/bind.install28
-rw-r--r--community/bind-geodns/bind.so_bsdcompat.diff11
-rw-r--r--community/bind-geodns/localhost.zone10
-rwxr-xr-xcommunity/bind-geodns/named41
-rw-r--r--community/bind-geodns/named.conf58
-rw-r--r--community/bind-geodns/named.conf.d4
-rw-r--r--community/bind-geodns/named.logrotate6
-rw-r--r--community/bind-geodns/root.hint80
10 files changed, 315 insertions, 0 deletions
diff --git a/community/bind-geodns/127.0.0.zone b/community/bind-geodns/127.0.0.zone
new file mode 100644
index 000000000..509c311f6
--- /dev/null
+++ b/community/bind-geodns/127.0.0.zone
@@ -0,0 +1,11 @@
+$ORIGIN 0.0.127.in-addr.arpa.
+
+@ 1D IN SOA localhost. root.localhost. (
+ 42 ; serial (yyyymmdd##)
+ 3H ; refresh
+ 15M ; retry
+ 1W ; expiry
+ 1D ) ; minimum ttl
+
+ 1D IN NS localhost.
+1 1D IN PTR localhost.
diff --git a/community/bind-geodns/PKGBUILD b/community/bind-geodns/PKGBUILD
new file mode 100644
index 000000000..176e1b84e
--- /dev/null
+++ b/community/bind-geodns/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 44183 2011-04-04 13:06:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=bind-geodns
+pkgver=9.4.1
+_pkgver=9.4.1-P1
+pkgrel=4
+pkgdesc="bind named server with geoip patch can return ip depending on requester location"
+arch=(i686 x86_64)
+url="http://www.caraytech.com/geodns/"
+license=('custom:ISC')
+backup=(etc/named.conf etc/logrotate.d/named etc/conf.d/named etc/rndc.key)
+depends=('openssl' 'geoip')
+provides=('dns-server' 'bind' 'dnsutils')
+conflicts=('bind' 'dnsutils')
+options=('!libtool')
+install=bind.install
+source=(ftp://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz
+ bind.so_bsdcompat.diff \
+ named.conf \
+ localhost.zone \
+ 127.0.0.zone
+ named \
+ root.hint \
+ named.logrotate \
+ named.conf.d \
+ http://www.caraytech.com/geodns/bind-9.4.1-geodns-patch.tar.gz)
+md5sums=('44e0514e6105ddaa235394045d9aeb0c'
+ '447d58721cfee0e1e377b46f7d50b327'
+ 'f26d015142fa0a8226b42bbf9d490aa4'
+ 'ab5beef0b41eb6376c7f1f4ee233172b'
+ 'bdbdfe4990b0903984306dd14f98b951'
+ '94f8ae2b337a4207fda88cb64f79f302'
+ '8c212c0260d708f15f75d3adc71f0149'
+ '91b3463a181561deb845acc122713a2a'
+ '475fde63600d7d95980de991f02d6b6d'
+ 'd3d515bdef525f9a31787b36a105e690')
+
+build() {
+ export MAKEFLAGS="-j1"
+ cd $srcdir/bind-${_pkgver}
+ patch -Np0 -i $srcdir/bind.so_bsdcompat.diff
+ patch -Np1 -i $srcdir/bind-9.4.1-geodns-patch/patch.diff
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-libtool --enable-shared --disable-threads \
+ --with-openssl=yes --disable-linux-caps --without-libxml2
+ make LDFLAGS=-lGeoIP
+ make DESTDIR=$pkgdir install
+ install -D -m755 ../named $pkgdir/etc/rc.d/named
+ install -D -m640 ../named.conf $pkgdir/etc/named.conf
+ install -D -m600 ../127.0.0.zone $pkgdir/var/named/127.0.0.zone
+ install -D -m600 ../localhost.zone $pkgdir/var/named/localhost.zone
+
+ #grabbed from ftp://ftp.rs.internic.net/domain/named.root
+ install -D -m600 ../root.hint $pkgdir/var/named/root.hint
+ install -D -m600 ../named.logrotate $pkgdir/etc/logrotate.d/named
+ install -D -m644 ../named.conf.d $pkgdir/etc/conf.d/named
+ install -D -m644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ # adjust ownerships (our named user will be uid/gid 40/40)
+ chmod 700 $pkgdir/var/named
+ chown root:40 $pkgdir/etc/named.conf
+ chown -R 40:40 $pkgdir/var/named
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/bind-geodns/bind.install b/community/bind-geodns/bind.install
new file mode 100644
index 000000000..39ae9f202
--- /dev/null
+++ b/community/bind-geodns/bind.install
@@ -0,0 +1,28 @@
+post_install() {
+ getent group named >/dev/null || usr/sbin/groupadd -g 40 named
+ getent passwd named >/dev/null || usr/sbin/useradd -u 40 -c "BIND DNS Server" -g named -d /var/named -s /bin/false named
+ usr/bin/passwd -l named &>/dev/null
+
+ [ -f var/log/named.log ] || : >var/log/named.log
+ chown named.named var/log/named.log
+ # create an rndc.key if it doesn't already exist
+ if [ ! -s etc/rndc.key ]; then
+ usr/sbin/rndc-confgen -b 256 | head -n 5 >>etc/rndc.key
+ chown root.named etc/rndc.key
+ chmod 640 etc/rndc.key
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+ # old versions of this package didn't have a named user
+ chown -R named:named var/named
+ # old versions of this package didn't set permissions correct
+ chown root:named etc/named.conf
+ chmod 640 etc/named.conf
+}
+
+pre_remove() {
+ usr/sbin/userdel named &>/dev/null
+ usr/sbin/groupdel named &>/dev/null
+}
diff --git a/community/bind-geodns/bind.so_bsdcompat.diff b/community/bind-geodns/bind.so_bsdcompat.diff
new file mode 100644
index 000000000..5d78031b7
--- /dev/null
+++ b/community/bind-geodns/bind.so_bsdcompat.diff
@@ -0,0 +1,11 @@
+--- ./lib/isc/unix/socket.c.orig 2005-11-03 17:08:42.000000000 -0600
++++ ./lib/isc/unix/socket.c 2006-02-18 13:09:15.000000000 -0600
+@@ -245,6 +245,8 @@
+
+ #define SOCK_DEAD(s) ((s)->references == 0)
+
++#undef SO_BSDCOMPAT
++
+ static void
+ manager_log(isc_socketmgr_t *sockmgr,
+ isc_logcategory_t *category, isc_logmodule_t *module, int level,
diff --git a/community/bind-geodns/localhost.zone b/community/bind-geodns/localhost.zone
new file mode 100644
index 000000000..e3ff9641c
--- /dev/null
+++ b/community/bind-geodns/localhost.zone
@@ -0,0 +1,10 @@
+$ORIGIN localhost.
+@ 1D IN SOA @ root (
+ 42 ; serial (yyyymmdd##)
+ 3H ; refresh
+ 15M ; retry
+ 1W ; expiry
+ 1D ) ; minimum ttl
+
+ 1D IN NS @
+ 1D IN A 127.0.0.1
diff --git a/community/bind-geodns/named b/community/bind-geodns/named
new file mode 100755
index 000000000..f250907b9
--- /dev/null
+++ b/community/bind-geodns/named
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+NAMED_ARGS=
+[ -f /etc/conf.d/named ] && . /etc/conf.d/named
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/named`
+case "$1" in
+ start)
+ stat_busy "Starting DNS"
+
+ [ -d /var/run/named ] || { mkdir -p /var/run/named; chown 40:40 /var/run/named; }
+ [ -z "$PID" ] && /usr/sbin/named ${NAMED_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon named
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DNS"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon named
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/bind-geodns/named.conf b/community/bind-geodns/named.conf
new file mode 100644
index 000000000..862134326
--- /dev/null
+++ b/community/bind-geodns/named.conf
@@ -0,0 +1,58 @@
+//
+// /etc/named.conf
+//
+
+options {
+ directory "/var/named";
+ pid-file "/var/run/named/named.pid";
+ auth-nxdomain yes;
+ datasize default;
+ allow-recursion { 127.0.0.1; };
+// Uncomment these to enable IPv6 connections support
+// IPv4 will still work
+// listen-on { none; };
+// listen-on-v6 { any; };
+};
+
+zone "localhost" IN {
+ type master;
+ file "localhost.zone";
+ allow-update { none; };
+ allow-transfer { any; };
+};
+
+zone "0.0.127.in-addr.arpa" IN {
+ type master;
+ file "127.0.0.zone";
+ allow-update { none; };
+ allow-transfer { any; };
+};
+
+zone "." IN {
+ type hint;
+ file "root.hint";
+};
+
+//zone "example.org" IN {
+// type slave;
+// file "example.zone";
+// masters {
+// 192.168.1.100;
+// };
+// allow-query { any; };
+// allow-transfer { any; };
+//};
+
+logging {
+ channel xfer-log {
+ file "/var/log/named.log";
+ print-category yes;
+ print-severity yes;
+ print-time yes;
+ severity info;
+ };
+ category xfer-in { xfer-log; };
+ category xfer-out { xfer-log; };
+ category notify { xfer-log; };
+};
+
diff --git a/community/bind-geodns/named.conf.d b/community/bind-geodns/named.conf.d
new file mode 100644
index 000000000..aecbd2307
--- /dev/null
+++ b/community/bind-geodns/named.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to BIND
+#
+NAMED_ARGS="-u named"
diff --git a/community/bind-geodns/named.logrotate b/community/bind-geodns/named.logrotate
new file mode 100644
index 000000000..ef1a2d032
--- /dev/null
+++ b/community/bind-geodns/named.logrotate
@@ -0,0 +1,6 @@
+/var/log/named.log {
+ missingok
+ postrotate
+ /bin/kill -HUP `cat /var/run/named/named.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/community/bind-geodns/root.hint b/community/bind-geodns/root.hint
new file mode 100644
index 000000000..4ed4c0b3a
--- /dev/null
+++ b/community/bind-geodns/root.hint
@@ -0,0 +1,80 @@
+; This file holds the information on root name servers needed to
+; initialize cache of Internet domain name servers
+; (e.g. reference this file in the "cache . <file>"
+; configuration file of BIND domain name servers).
+;
+; This file is made available by InterNIC
+; under anonymous FTP as
+; file /domain/named.root
+; on server FTP.INTERNIC.NET
+; -OR- RS.INTERNIC.NET
+;
+; last update: Nov 01, 2007
+; related version of root zone: 2007110100
+;
+;
+; formerly NS.INTERNIC.NET
+;
+. 3600000 IN NS A.ROOT-SERVERS.NET.
+A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
+;
+; formerly NS1.ISI.EDU
+;
+. 3600000 NS B.ROOT-SERVERS.NET.
+B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
+;
+; formerly C.PSI.NET
+;
+. 3600000 NS C.ROOT-SERVERS.NET.
+C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
+;
+; formerly TERP.UMD.EDU
+;
+. 3600000 NS D.ROOT-SERVERS.NET.
+D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
+;
+; formerly NS.NASA.GOV
+;
+. 3600000 NS E.ROOT-SERVERS.NET.
+E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
+;
+; formerly NS.ISC.ORG
+;
+. 3600000 NS F.ROOT-SERVERS.NET.
+F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
+;
+; formerly NS.NIC.DDN.MIL
+;
+. 3600000 NS G.ROOT-SERVERS.NET.
+G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
+;
+; formerly AOS.ARL.ARMY.MIL
+;
+. 3600000 NS H.ROOT-SERVERS.NET.
+H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
+;
+; formerly NIC.NORDU.NET
+;
+. 3600000 NS I.ROOT-SERVERS.NET.
+I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
+;
+; operated by VeriSign, Inc.
+;
+. 3600000 NS J.ROOT-SERVERS.NET.
+J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
+;
+; operated by RIPE NCC
+;
+. 3600000 NS K.ROOT-SERVERS.NET.
+K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
+;
+; operated by ICANN
+;
+. 3600000 NS L.ROOT-SERVERS.NET.
+L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
+;
+; operated by WIDE
+;
+. 3600000 NS M.ROOT-SERVERS.NET.
+M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
+; End of File