#!/bin/sh # Set initial variables: CWD=`pwd` if [ "$TMP" = "" ]; then TMP=/bind-`mcookie` fi PKG=$TMP/package-bind rm -rf $PKG VERSION=9.3.2-P1 PVER=9.3.2_p1 ARCH=${ARCH:-x86_64} BUILD=${BUILD:-1} # Edit these library versions with each release: LIBBINDVER=0.0.7 LIBDNSVER=21.0.1 LIBISCVER=11.0.1 LIBISCCCVER=0.2.1 LIBISCCFGVER=1.0.6 LIBLWRESVER=9.1.1 # Determine major numbers: LIBBINDMAJOR=`echo $LIBBINDVER | cut -f 1 -d .` LIBDNSMAJOR=`echo $LIBDNSVER | cut -f 1 -d .` LIBISCMAJOR=`echo $LIBISCVER | cut -f 1 -d .` LIBISCCCMAJOR=`echo $LIBISCCCVER | cut -f 1 -d .` LIBISCCFGMAJOR=`echo $LIBISCCFGVER | cut -f 1 -d .` LIBLWRESMAJOR=`echo $LIBLWRESVER | cut -f 1 -d .` if [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" fi if [ ! -d $TMP ]; then mkdir -p $TMP # location to build the source fi rm -rf $PKG mkdir -p $PKG # Explode the package framework: cd $PKG explodepkg $CWD/_bind.tar.gz cd $TMP rm -rf bind-$VERSION tar xzvf $CWD/bind-$VERSION.tar.gz cd bind-$VERSION # Remove use of SO_BSDCOMPAT which has been obsolete since the 2.2.x kernel series, # and generates warnings under 2.6.x kernels: zcat $CWD/bind.so_bsdcompat.diff.gz | patch -p1 --verbose || exit chown -R root:root . find . -perm 775 -exec chmod 755 {} \; find . -perm 664 -exec chmod 644 {} \; # We want to use /var/run/named/, not just /var/run/. # This allows changing the ownership of that directory if we want to run # named as a non-root user. zcat $CWD/bind.var.run.named.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 # Threads break '-u' on Linux (for now) CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib64 \ --sysconfdir=/etc \ --localstatedir=/var \ --with-libtool \ --enable-shared \ --enable-threads \ --with-openssl=/usr \ $ARCH-slackware-linux make || exit 1 cat isc-config.sh > $PKG/usr/bin/isc-config.sh chmod 755 $PKG/usr/bin/isc-config.sh cat contrib/named-bootconf/named-bootconf.sh > $PKG/usr/sbin/named-bootconf.sh cd bin/check/.libs cat named-checkconf > $PKG/usr/sbin/named-checkconf cat named-checkzone > $PKG/usr/sbin/named-checkzone cd ../../dig/.libs cat dig > $PKG/usr/bin/dig cat host > $PKG/usr/bin/host cat nslookup > $PKG/usr/bin/nslookup cd ../../dnssec/.libs cat dnssec-keygen > $PKG/usr/sbin/dnssec-keygen # obsolete #cat dnssec-makekeyset > $PKG/usr/sbin/dnssec-makekeyset #cat dnssec-signkey > $PKG/usr/sbin/dnssec-signkey cat dnssec-signzone > $PKG/usr/sbin/dnssec-signzone cd ../../named/.libs #rm lwresd cat named > $PKG/usr/sbin/named ( cd $PKG/usr/sbin ; ln -sf named lwresd ) cd ../../nsupdate/.libs cat nsupdate > $PKG/usr/bin/nsupdate cd ../../rndc/.libs cat rndc > $PKG/usr/sbin/rndc cat rndc-confgen > $PKG/usr/sbin/rndc-confgen cd .. mkdir -p $PKG/usr/doc/bind-$VERSION/misc cat rndc.conf > $PKG/usr/doc/bind-$VERSION/misc/rndc.conf-sample chmod 600 $PKG/usr/doc/bind-$VERSION/misc/rndc.conf-sample cd ../../lib/bind9/.libs cat libbind9.so.${LIBBINDVER} > $PKG/usr/lib64/libbind9.so.${LIBBINDVER} chmod 755 $PKG/usr/lib64/libbind9.so.${LIBBINDVER} ( cd $PKG/usr/lib64 ; rm -rf libbind9.so.${LIBBINDMAJOR} ; ln -sf libbind9.so.${LIBBINDVER} libbind.so.${LIBBINDMAJOR} ) cd ../../dns/.libs cat libdns.so.${LIBDNSVER} > $PKG/usr/lib64/libdns.so.${LIBDNSVER} chmod 755 $PKG/usr/lib64/libdns.so.${LIBDNSVER} ( cd $PKG/usr/lib64 ; rm -rf libdns.so.${LIBDNSMAJOR} ; ln -sf libdns.so.${LIBDNSVER} libdns.so.${LIBDNSMAJOR} ) cd ../../isc/.libs cat libisc.so.${LIBISCVER} > $PKG/usr/lib64/libisc.so.${LIBISCVER} chmod 755 $PKG/usr/lib64/libisc.so.${LIBISCVER} ( cd $PKG/usr/lib64 ; rm -rf libisc.so.${LIBISCMAJOR} ; ln -sf libisc.so.${LIBISCVER} libisc.so.${LIBISCMAJOR} ) cd ../../isccc/.libs cat libisccc.so.${LIBISCCCVER} > $PKG/usr/lib64/libisccc.so.${LIBISCCCVER} chmod 755 $PKG/usr/lib64/libisccc.so.${LIBISCCCVER} ( cd $PKG/usr/lib64 ; rm -rf libisccc.so.${LIBISCCCMAJOR} ; ln -sf libisccc.so.${LIBISCCCVER} libisccc.so.${LIBISCCCMAJOR} ) cd ../../isccfg/.libs cat libisccfg.so.${LIBISCCFGVER} > $PKG/usr/lib64/libisccfg.so.${LIBISCCFGVER} chmod 755 $PKG/usr/lib64/libisccfg.so.${LIBISCCFGVER} ( cd $PKG/usr/lib64 ; rm -rf libisccfg.so.${LIBISCCFGMAJOR} ; ln -sf libisccfg.so.${LIBISCCFGVER} libisccfg.so.${LIBISCCFGMAJOR} ) cd ../../lwres/.libs cat liblwres.so.${LIBLWRESVER} > $PKG/usr/lib64/liblwres.so.${LIBLWRESVER} chmod 755 $PKG/usr/lib64/liblwres.so.${LIBLWRESVER} ( cd $PKG/usr/lib64 ; rm -rf liblwres.so.${LIBLWRESMAJOR} ; ln -sf liblwres.so.${LIBLWRESVER} liblwres.so.${LIBLWRESMAJOR} ) mkdir -p $PKG/usr/man/man{1,5,8} cd ../../../bin cat dig/dig.1 | gzip -9c > $PKG/usr/man/man1/dig.1.gz cat dig/host.1 | gzip -9c > $PKG/usr/man/man1/host.1.gz cat dig/nslookup.1 | gzip -9c > $PKG/usr/man/man1/nslookup.1.gz for manpage in $TMP/bind-$VERSION/lib/lwres/man/*.3 ; do cat $manpage | gzip -9c > $PKG/usr/man/man3/$(basename $manpage).gz done cat rndc/rndc.conf.5 | gzip -9c > $PKG/usr/man/man5/rndc.conf.5.gz cat named/named.conf.5 | gzip -9c > $PKG/usr/man/man5/named.conf.5.gz cat check/named-checkconf.8 | gzip -9c > $PKG/usr/man/man8/named-checkconf.8.gz cat check/named-checkzone.8 | gzip -9c > $PKG/usr/man/man8/named-checkzone.8.gz cat dnssec/dnssec-keygen.8 | gzip -9c > $PKG/usr/man/man8/dnssec-keygen.8.gz # obsolete #cat dnssec/dnssec-makekeyset.8 | gzip -9c > $PKG/usr/man/man8/dnssec-makekeyset.8.gz #cat dnssec/dnssec-signkey.8 | gzip -9c > $PKG/usr/man/man8/dnssec-signkey.8.gz cat dnssec/dnssec-signzone.8 | gzip -9c > $PKG/usr/man/man8/dnssec-signzone.8.gz cat named/lwresd.8 | gzip -9c > $PKG/usr/man/man8/lwresd.8.gz cat named/named.8 | gzip -9c > $PKG/usr/man/man8/named.8.gz cat nsupdate/nsupdate.8 | gzip -9c > $PKG/usr/man/man8/nsupdate.8.gz cat rndc/rndc-confgen.8 | gzip -9c > $PKG/usr/man/man8/rndc-confgen.8.gz cat rndc/rndc.8 | gzip -9c > $PKG/usr/man/man8/rndc.8.gz cd ../doc mkdir -p $PKG/usr/doc/bind-$VERSION cp -a arm misc $PKG/usr/doc/bind-$VERSION cd .. cp -a CHANGES COPYRIGHT FAQ README $PKG/usr/doc/bind-$VERSION ( cd $PKG/usr/doc/bind-$VERSION find . -type f | xargs chmod 644 # This one should have the correct perms of the config file: chmod 600 misc/rndc.conf-sample ) # One format of this is plenty. Especially get rid of the bloated PDF. ( cd $PKG/usr/doc/bind-$VERSION/arm rm -f Makefile* *.pdf *.xml README.SGML latex-fixup.pl ) ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) # Add sample config files for a simple caching nameserver: cat $CWD/caching-example/named.conf > $PKG/etc/named.conf.new cat $CWD/caching-example/localhost.zone > $PKG/var/named/caching-example/localhost.zone cat $CWD/caching-example/named.ca > $PKG/var/named/caching-example/named.ca cat $CWD/caching-example/named.local > $PKG/var/named/caching-example/named.local mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc # Build the package: cd $PKG makepkg -l y -c n $TMP/bind-$PVER-$ARCH-$BUILD.tgz