#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-bind

if [ ! -d $TMP ]; then
  mkdir -p $TMP # location to build the source
fi
if [ ! -d $PKG ]; then
  mkdir -p $PKG # place for the package to be built
fi

# Explode the package framework:
cd $PKG
explodepkg $CWD/_bind.tar.gz

echo "+===============+"
echo "| bind-8.2.3 |"
echo "+===============+"
cd $TMP
VER=bind-8.2.3
mkdir $VER
cd $VER
tar xzvf $CWD/$VER/bind-src.tar.gz
cd src
zcat $CWD/bind-debug.diff.gz | patch -p1 --backup
make
tar xzvf $CWD/$VER/bind-doc.tar.gz
mkdir -p $PKG/usr/doc/$VER
cp -a CHANGES FLAWS INSTALL LICENSE LICENSE_RSA Makefile README SUPPORT \
  TODO Version conf $PKG/usr/doc/$VER
( cd doc ; cp -a bog html misc notes port $PKG/usr/doc/$VER )
rm $PKG/usr/doc/$VER/misc/pur*
chown -R root.root $PKG/usr/doc/$VER
find $PKG/usr/doc/$VER -type f -exec chmod 644 {} \;
cp -a $CWD/named.conf.sample $PKG/etc/named.conf-sample
cat $CWD/named.reload > $PKG/usr/sbin/named.reload
cat $CWD/named.restart > $PKG/usr/sbin/named.restart
cd bin/named
cat named > $PKG/usr/sbin/named
cd ../named-xfer
cat named-xfer > $PKG/usr/sbin/named-xfer
cd ../named-bootconf
cat named-bootconf > $PKG/usr/sbin/named-bootconf
cat Grot/named-bootconf.pl > $PKG/usr/sbin/named-bootconf.pl
cd ../mkservdb
cat mkservdb > $PKG/usr/bin/mkservdb
cd ../irpd
cat irpd > $PKG/usr/sbin/irpd
cd ../dnskeygen
cat dnskeygen > $PKG/usr/sbin/dnskeygen
cd ../addr
cat addr > $PKG/usr/bin/addr
cd ../ndc
cat ndc > $PKG/usr/sbin/ndc
cd ../dig
cat dig > $PKG/usr/bin/dig
cd ../dnsquery
cat dnsquery > $PKG/usr/bin/dnsquery
cd ../host
cat host > $PKG/usr/bin/host
cd ../nslookup
cat nslookup > $PKG/usr/bin/nslookup
cat nslookup.help > $PKG/usr/lib/nslookup.help
cd ../nsupdate
cat nsupdate > $PKG/usr/bin/nsupdate
strip $PKG/usr/bin/* $PKG/usr/sbin/*
cd ../../doc/man
zcat $CWD/bind-manpages.diff.gz | patch -p0
make clean
make
for page in *.lst1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page .lst1`.1.gz
done
for page in *.lst3 ; do
  cat $page | gzip -9c > $PKG/usr/man/man3/`basename $page .lst3`.3.gz
done
for page in *.lst5 ; do
  cat $page | gzip -9c > $PKG/usr/man/man5/`basename $page .lst5`.5.gz
done
for page in *.lst7 ; do
  cat $page | gzip -9c > $PKG/usr/man/man7/`basename $page .lst7`.7.gz
done
for page in *.lst8 ; do
  cat $page | gzip -9c > $PKG/usr/man/man8/`basename $page .lst8`.8.gz
done

# Build the package:
cd $PKG
tar czvf $TMP/bind.tgz .

# Warn of zero-length files:
for file in `find . -type f -print` ; do
 if [ "`filesize $file`" = "0" ]; then
  echo "WARNING: zero length file $file"
 fi
 if [ "`filesize $file`" = "20" ]; then
  echo "WARNING: possible empty gzipped file $file"
 fi
done

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
  rm -rf $TMP/$VER
  rm -rf $PKG
fi