Compiled distributions of these new BIND versions built for Leopard can be found here:
http://support.menandmice.com/download/bind/macosx/
To install, use these commands in a command shell:
Code:
sudo -s
tar xzC / -f bind-<ver>-binary-<arch>.tar.gz
killall named
exit
To view the list of files in the archive before installing, use this command:
Code:
tar tzf bind-<ver>-binary-<arch>.tar.gz
These binaries are available in both i386 and PPC7400 flavors (32-bit Intel and PowerPC architectures, i.e. G4 and Core [Solo|Duo]). They will run just fine on 64-bit operating systems and architectures.
Support for openssl and IPv6 are built in, along with support for large files (mainly for the purpose of writing log files). Threads are disabled for stability; if every ounce of speed is needed, recompile with threads enabled (see script below).
MD5 hashes are as follows:
Intel architecture:
15e863b4d2bc0608ec1fc96c8a20cb48 bind-9.4.3-P3-binary-i386.tar.gz
f7ac5625fd80468170ff3c9f813402ce bind-9.5.1-P3-binary-i386.tar.gz
956d8d6ec9aedc9f88fdce0b98afca90 bind-9.6.1-P1-binary-i386.tar.gz
PowerPC architecture:
0385c59aaf2286df1257765351cbc5c3 bind-9.4.3-P3-binary-ppc.tar.gz
026bb8effc3342d2a086bef6cb600b36 bind-9.5.1-P3-binary-ppc.tar.gz
4217b9f9a13bb86ba9dd331f6c6a879d bind-9.6.1-P1-binary-ppc.tar.gz
Compare against your download using the 'md5' command in a Terminal window. No warranty is expressed or implied.
These builds were created using the following script. Permission is granted to use and modify the script.
Code:
#!/bin/bash
# mkbind
# version 20090730
# copyright 2009 Men & Mice
# No warranty is expressed or implied.
# Check for the version argument:
if [ -z "$1" ] ; then
echo "Usage: $0 bind-ver"
echo " bind-ver = the version of BIND to build"
exit 1
else
bindver=$1
echo "Preparing binary package for BIND version $bindver"
fi
HOME="$(pwd)"
mkdir -p "${bindver}-logs"
fetch_commands()
{ :
if [ -f bind-${bindver}.tar.gz ]
then
echo "Source archive already downloaded"
else
curl --progress-bar --stderr - -O \
ftp://ftp.isc.org/isc/bind/${bindver}/bind-${bindver}.tar.gz
fi
}
# Unpack the tarball
unpack_commands()
{ :
tar xzvf bind-${bindver}.tar.gz
}
# Configure
# We're disabling threads, because it's more stable that way. For
# absolute best performance, enable them, but beware of stability
# issues.
configure_commands()
{ :
./configure \
--prefix=/usr \
--sysconfdir=/private/etc \
--localstatedir=/private/var \
--enable-largefile \
--with-openssl \
--with-pic \
--disable-threads
}
# Build
make_commands()
{ :
make
}
# Bundle up into a tarball
package_commands()
{ :
mkdir -p DEST && \
make DESTDIR=$(pwd)/DEST install && \
cd DEST && \
tar czf "$HOME/bind-${bindver}-binary.tar.gz" \
usr/bin/{dig,host,ns{lookup,update}} \
usr/sbin/dnssec-{keygen,signzone} \
usr/sbin/named{,-check{conf,zone},-compilezone} \
usr/sbin/rndc{,-confgen} \
usr/share/man/man1/{dig,host,ns{lookup,update}}* \
usr/share/man/man5/{named,rndc}* \
usr/share/man/man8/{dnssec,named,rndc}*
}
# Clean up
clean_commands()
{ :
rm -rf bind-${bindver}
}
test_pipe()
{
for i in "${PIPESTATUS[@]}"
do
[ $i == 0 ] || { echo FAILED ; exit 1 ; }
done
echo successful
return 0
}
go()
{
{ ${1}_commands 3>&1 1>&2 2>&3 | \
tee "$HOME/${bindver}-logs/${1}.err" ;} \
&>"$HOME/${bindver}-logs/${1}.log"
test_pipe || exit 1
};
# Here we go:
echo -n "Fetching... " && go fetch || exit 3
echo -n "Unpacking... " && go unpack || exit 4
cd bind-$bindver
echo -n "Configuring... " && go configure || exit 5
echo -n "Building... " && go make || exit 6
echo -n "Packaging... " && go package || exit 7
cd ..
echo -n "Cleaning Up... " && go clean || exit 8
# All done