source: npl/internetserver/djbdns/djbdns.SlackBuild @ 37aaf89

Last change on this file since 37aaf89 was 37aaf89, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

djbdns patches, so it works correctly with twitter etc

  • 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.
48for P in ../patches/*; do
49        echo "Patching $P"
50        patch -p1 < $P || exit 1
51done
52
53cat ../ignoreip-1.05.patch  | patch -p1 || exit 1
54cat ../headtail.patch  | patch -p2 || exit 1
55#cat ../dnstracesort.patch | patch -p1 dnstracesort.sh || exit 1
56#c#at ../CVE2009-0858_0001-check-response-domain-name-length.patch | patch -p1 || exit 1
57#c#at ../CVE2008-4392_0001-dnscache-merge-similar-outgoing-queries.patch  | patch -p1 || exit 1
58#cat ../CVE2008-4392_0002-dnscache-cache-soa-records.patch  | patch -p1 || exit 1
59cat ../err.patch | patch -p1 || exit 1
60#cat ../tinydns-conf.patch | patch -p1 || exit 1
61
62cat conf-home |sed s/"\/local"// >conf-home.new
63mv conf-home.new conf-home
64
65#large file support
66sed 's/write-strings/write-strings -D_FILE_OFFSET_BITS=64 /' conf-cc -i || exit 1
67
68make || exit 1
69find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d :  |while read elf;do cp $elf  $PKGROOT/usr/bin/ ;done
70rm $PKGROOT/usr/bin/install
71cp $ROOT/$PGM/dnsroots.global $PKGROOT/etc
72cp $CWD/post.djbdns $PKGROOT/etc/postinst.d/post.djbdns
73chmod +x $PKGROOT/etc/postinst.d/post.djbdns
74cp $ROOT/djb_update.pl $PKGROOT/usr/bin
75mkdir -p $PKGROOT/service/djb_update
76cat >$PKGROOT/service/djb_update/run <<EOF
77#!/bin/bash
78#in case of a hostname change, the dnscache redirects to 127.0.0.2 should be updated:
79cd /usr/webint/htdocs/dns &>/dev/null
80php ./djbdns.php update &>/dev/null
81cd /home/system/tinydns/root
82exec /usr/bin/djb_update.pl
83EOF
84chmod +x $PKGROOT/service/djb_update/run
85
86#maak alle configfiles eindigend op .new
87find $PKGROOT/home/system -follow -type f -exec mv "{}" "{}.new" \; || exit 1
88
89#startstop checking scripts
90mkdir -p $PKGROOT/var/dnscache
91cp $CWD/start.djbdns $PKGROOT/var/dnscache/start
92cp $CWD/stop.djbdns $PKGROOT/var/dnscache/stop
93chmod +x $PKGROOT/var/dnscache/{start,stop} || exit 1
94
95#create fresh root ns file
96./dnsip `./dnsqr ns . | awk '/answer:/ { print $5; }' |sort` > $PKGROOT/etc/dnsroots.global || exit 1
97if [ `cat $PKGROOT/etc/dnsroots.global | wc -l` -lt 8 ]; then
98    echo "Error while downloading dns root servers?"
99    exit 1
100fi
101
102cd $PKGROOT
103NAME=`echo $0|cut -f2 -d'.'`
104makepkg -l y -c n $CWD/$NAME.pkg > /dev/null &&
105echo $VERSION > $CWD/$NAME.version &&
106arch > $CWD/$NAME.arch
107
108#mv *.tgz ..
109#cd $ROOT
110#rm -r $PGM $PKGROOT
Note: See TracBrowser for help on using the repository browser.