source: npl/internetserver/djbdns/djbdns.SlackBuild @ 8b8e03e

gcc484ntopperl-5.22
Last change on this file since 8b8e03e was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100755
File size: 3.3 KB
Line 
1#!/bin/bash
2#NEED:bind_tools
3#NEED:patch
4##NEED:mpc
5##DEP:linux_headers
6
7CWD=`pwd`
8VERSION=1.05
9ROOT=`pwd`
10PKGROOT=$ROOT/pkgtmp;
11PGM=`ls |grep djbdns|cut -f1,2 -d "."`
12PKGSOURCE=`ls djbdns*|grep -v DatuX`
13EXT=`ls |grep djbdns|grep tar.gz`
14if [ -z $EXT ] ; then
15    EXT=tar.bz2
16    TARCMD="tar -xjf"
17    PGM=`ls djbdns-*.$EXT | sed s/.tar.bz2//`
18    else
19        EXT=tar.gz
20        TARCMD="tar -xzf"
21        PGM=`ls djbdns-*.$EXT | sed s/.tar.gz//`
22fi
23VER=`ls|grep DatuX|cut -f3,4 -d -|sed s/i386-//|sed s/DatuX.tgz//|tail -n1`
24(( VER++ ))
25SLEXT=i386-"$VER"DatuX.tgz
26export MAKEFLAGS="-j1"
27if [ -d $ROOT/pkgtmp ] ; then
28        rm -rf "$ROOT/pkgtmp"
29fi
30#mkdir $ROOT/pkgtmp
31#mkdir -p $PKGROOT/pkgtmp/usr/bin
32cd $ROOT
33if [ -d $PGM ] ; then
34        rm -rf $PGM
35fi
36
37$TARCMD $PGM.$EXT ||exit 1
38if [ $? == 1 ] ; then
39    echo "#"
40    echo "#########################  Untarring file failed  #################################"
41    echo "#"
42    exit 1
43fi
44mkdir -p $PKGROOT/usr/bin $PKGROOT/etc/postinst.d $PKGROOT/service $PKGROOT/home/system/{tinydns,dnscache} || exit 1
45cd $ROOT/$PGM
46
47#patches must be applied in some order.
48cat ../ignoreip-1.05.patch  | patch -p1 || exit 1
49cat ../headtail.patch  | patch -p2 || exit 1
50cat ../dnsroots.patch  | patch -p1  || exit 1
51cat ../dnstracesort.patch | patch -p1 dnstracesort.sh || exit 1
52cat ../CVE2009-0858_0001-check-response-domain-name-length.patch | patch -p1 || exit 1
53cat ../CVE2008-4392_0001-dnscache-merge-similar-outgoing-queries.patch  | patch -p1 || exit 1
54cat ../CVE2008-4392_0002-dnscache-cache-soa-records.patch  | patch -p1 || exit 1
55cat ../err.patch | patch -p1 || exit 1
56cat ../tinydns-conf.patch | patch -p1 || exit 1
57
58cat conf-home |sed s/"\/local"// >conf-home.new
59mv conf-home.new conf-home
60
61#large file support
62sed 's/write-strings/write-strings -D_FILE_OFFSET_BITS=64 /' conf-cc -i || exit 1
63
64make || exit 1
65find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d :  |while read elf;do cp $elf  $PKGROOT/usr/bin/ ;done
66rm $PKGROOT/usr/bin/install
67cp $ROOT/$PGM/dnsroots.global $PKGROOT/etc
68cp $CWD/post.djbdns $PKGROOT/etc/postinst.d/post.djbdns
69chmod +x $PKGROOT/etc/postinst.d/post.djbdns
70cp $ROOT/djb_update.pl $PKGROOT/usr/bin
71mkdir -p $PKGROOT/service/djb_update
72cat >$PKGROOT/service/djb_update/run <<EOF
73#!/bin/bash
74#in case of a hostname change, the dnscache redirects to 127.0.0.2 should be updated:
75cd /usr/webint/htdocs/dns &>/dev/null
76php ./djbdns.php update &>/dev/null
77cd /home/system/tinydns/root
78exec /usr/bin/djb_update.pl
79EOF
80chmod +x $PKGROOT/service/djb_update/run
81
82#maak alle configfiles eindigend op .new
83find $PKGROOT/home/system -follow -type f -exec mv "{}" "{}.new" \; || exit 1
84
85#startstop checking scripts
86mkdir -p $PKGROOT/var/dnscache
87cp $CWD/start.djbdns $PKGROOT/var/dnscache/start
88cp $CWD/stop.djbdns $PKGROOT/var/dnscache/stop
89chmod +x $PKGROOT/var/dnscache/{start,stop} || exit 1
90
91#create fresh root ns file
92./dnsip `./dnsqr ns . | awk '/answer:/ { print $5; }' |sort` > $PKGROOT/etc/dnsroots.global || exit 1
93if [ `cat $PKGROOT/etc/dnsroots.global | wc -l` -lt 8 ]; then
94    echo "Error while downloading dns root servers?"
95    exit 1
96fi
97
98cd $PKGROOT
99NAME=`echo $0|cut -f2 -d'.'`
100makepkg -l y -c n $CWD/$NAME.pkg > /dev/null &&
101echo $VERSION > $CWD/$NAME.version &&
102arch > $CWD/$NAME.arch
103
104#mv *.tgz ..
105#cd $ROOT
106#rm -r $PGM $PKGROOT
Note: See TracBrowser for help on using the repository browser.