1 | #!/bin/bash |
---|
2 | ##NEED:bind_tools |
---|
3 | #NEED:patch |
---|
4 | ##NEED:mpc |
---|
5 | ##DEP:linux_headers |
---|
6 | |
---|
7 | CWD=`pwd` |
---|
8 | VERSION=1.05 |
---|
9 | ROOT=`pwd` |
---|
10 | PKGROOT=$ROOT/pkgtmp; |
---|
11 | PGM=`ls |grep djbdns|cut -f1,2 -d "."` |
---|
12 | PKGSOURCE=`ls djbdns*|grep -v DatuX` |
---|
13 | EXT=`ls |grep djbdns|grep tar.gz` |
---|
14 | if [ -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//` |
---|
22 | fi |
---|
23 | VER=`ls|grep DatuX|cut -f3,4 -d -|sed s/i386-//|sed s/DatuX.tgz//|tail -n1` |
---|
24 | (( VER++ )) |
---|
25 | SLEXT=i386-"$VER"DatuX.tgz |
---|
26 | export MAKEFLAGS="-j1" |
---|
27 | if [ -d $ROOT/pkgtmp ] ; then |
---|
28 | rm -rf "$ROOT/pkgtmp" |
---|
29 | fi |
---|
30 | #mkdir $ROOT/pkgtmp |
---|
31 | #mkdir -p $PKGROOT/pkgtmp/usr/bin |
---|
32 | cd $ROOT |
---|
33 | if [ -d $PGM ] ; then |
---|
34 | rm -rf $PGM |
---|
35 | fi |
---|
36 | |
---|
37 | $TARCMD $PGM.$EXT ||exit 1 |
---|
38 | if [ $? == 1 ] ; then |
---|
39 | echo "#" |
---|
40 | echo "######################### Untarring file failed #################################" |
---|
41 | echo "#" |
---|
42 | exit 1 |
---|
43 | fi |
---|
44 | mkdir -p $PKGROOT/usr/bin $PKGROOT/etc/postinst.d $PKGROOT/service $PKGROOT/home/system/{tinydns,dnscache} || exit 1 |
---|
45 | cd $ROOT/$PGM |
---|
46 | |
---|
47 | #patches must be applied in some order. |
---|
48 | for P in ../patches/*; do |
---|
49 | echo "Patching $P" |
---|
50 | patch -p1 < $P || exit 1 |
---|
51 | done |
---|
52 | |
---|
53 | cat ../ignoreip-1.05.patch | patch -p1 || exit 1 |
---|
54 | cat ../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 |
---|
59 | cat ../err.patch | patch -p1 || exit 1 |
---|
60 | #cat ../tinydns-conf.patch | patch -p1 || exit 1 |
---|
61 | |
---|
62 | cat conf-home |sed s/"\/local"// >conf-home.new |
---|
63 | mv conf-home.new conf-home |
---|
64 | |
---|
65 | #large file support |
---|
66 | sed 's/write-strings/write-strings -D_FILE_OFFSET_BITS=64 /' conf-cc -i || exit 1 |
---|
67 | |
---|
68 | make || exit 1 |
---|
69 | find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : |while read elf;do cp $elf $PKGROOT/usr/bin/ ;done |
---|
70 | rm $PKGROOT/usr/bin/install |
---|
71 | cp $ROOT/$PGM/dnsroots.global $PKGROOT/etc |
---|
72 | cp $CWD/post.djbdns $PKGROOT/etc/postinst.d/post.djbdns |
---|
73 | chmod +x $PKGROOT/etc/postinst.d/post.djbdns |
---|
74 | cp $ROOT/djb_update.pl $PKGROOT/usr/bin |
---|
75 | mkdir -p $PKGROOT/service/djb_update |
---|
76 | cat >$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: |
---|
79 | cd /usr/webint/htdocs/dns &>/dev/null |
---|
80 | php ./djbdns.php update &>/dev/null |
---|
81 | cd /home/system/tinydns/root |
---|
82 | exec /usr/bin/djb_update.pl |
---|
83 | EOF |
---|
84 | chmod +x $PKGROOT/service/djb_update/run |
---|
85 | |
---|
86 | #maak alle configfiles eindigend op .new |
---|
87 | find $PKGROOT/home/system -follow -type f -exec mv "{}" "{}.new" \; || exit 1 |
---|
88 | |
---|
89 | #startstop checking scripts |
---|
90 | mkdir -p $PKGROOT/var/dnscache |
---|
91 | cp $CWD/start.djbdns $PKGROOT/var/dnscache/start |
---|
92 | cp $CWD/stop.djbdns $PKGROOT/var/dnscache/stop |
---|
93 | chmod +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 |
---|
97 | if [ `cat $PKGROOT/etc/dnsroots.global | wc -l` -lt 8 ]; then |
---|
98 | echo "Error while downloading dns root servers?" |
---|
99 | exit 1 |
---|
100 | fi |
---|
101 | |
---|
102 | cd $PKGROOT |
---|
103 | NAME=`echo $0|cut -f2 -d'.'` |
---|
104 | makepkg -l y -c n $CWD/$NAME.pkg > /dev/null && |
---|
105 | echo $VERSION > $CWD/$NAME.version && |
---|
106 | arch > $CWD/$NAME.arch |
---|
107 | |
---|
108 | #mv *.tgz .. |
---|
109 | #cd $ROOT |
---|
110 | #rm -r $PGM $PKGROOT |
---|