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