#!/bin/bash # bind.SlackBuild # Heavily based on the original Slackware build script, # Modified by Stuart Winter ARMedslack. # 08-July-2004 # # Copyright 2006, 2007 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/$PKGSERIES/$PKGNAM export PORTCWD=$PWD # Temporary build locations: export TMPBUILD=$TMP/build-$PKGNAM export PKG=$TMP/package-$PKGNAM mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Extract source: tar xvvf $CWD/$PKGNAM-[0-9]*.tar.gz cd $PKGNAM-* || exit 1 slackhousekeeping # Remove use of SO_BSDCOMPAT which has been obsolete since the 2.2.x kernel # series, and generates warnings under 2.6.x kernels. This _might_ be fixed # upstream already, but an explicit #undef SO_BSDCOMPAT does not hurt: zcat $CWD/bind.so_bsdcompat.diff.gz | patch -p1 --verbose || exit # Configure: CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --mandir=/usr/man \ --sysconfdir=/etc \ --localstatedir=/var \ --with-libtool \ --with-idn=/usr \ --enable-shared \ --disable-static \ --enable-threads \ --with-openssl=/usr \ --build=$ARCH-slackware-linux-gnueabi || failconfig # Build: make $NUMJOBS || make || failmake # Install into package: mkdir -vpm755 $PKG/etc/default make install DESTDIR=$PKG || failinstall # We like symlinks. ( cd $PKG/usr/sbin ln -sf named lwresd ) # We like a lot of symlinks. ( cd $PKG/usr/man/man3 sh $CWD/3link.sh ) # Install init script: mkdir -p $PKG/etc/rc.d install -pm644 $CWD/rc.bind $PKG/etc/rc.d/rc.bind.new # Add /var/run/named directory: mkdir -p $PKG/var/run/named # Fix library perms: chmod 755 $PKG/usr/lib/* # Add a documentation directory: mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION cp -a \ CHANGES COPYRIGHT FAQ* README* \ doc/arm doc/misc \ $PKG/usr/doc/${PKGNAM}-$VERSION # This one should have the correct perms of the config file: chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/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 ) # Add sample config files for a simple caching nameserver: mkdir -p $PKG/var/named/caching-example 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.root > $PKG/var/named/caching-example/named.root cat $CWD/caching-example/named.local > $PKG/var/named/caching-example/named.local # This name is deprecated, but having it here doesn't hurt in case # an old configuration file wants it: cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.ca # If necessary, start the fakeroot server so we can set file/dir ownerships: start_fakeroot # Apply generic Slackware packaging policies: cd $PKG slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # chown -R root:root, chmod -R og-w, slackchown, slack644docs slackdesc # install slack-desc and doinst.sh # rndc-confgen hangs until it receieves enough random data # to generate its key. Inside QEMU and on the SheevaPlug, # there is very little happening to generate interrupts, so # the install script hangs the installation until you start # pressing keys or making traffic on the network card. # Instead we'll use /dev/urandom and let the Slackware installer # initialise the random number generator after every package # has been installed. # - This was fixed a while ago in the doinst.sh script. # sed -i 's?rndc-confgen -a ?rndc-confgen -ar /dev/urandom ?' install/doinst.sh slackmp # run makepkg -l y -c n # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links