summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Routhier <sar@isc.org>2012-04-05 22:16:47 +0000
committerShawn Routhier <sar@isc.org>2012-04-05 22:16:47 +0000
commitd81e9330bd481ffc51ad55647c9ec1850dd9d307 (patch)
tree0348fd95cfc2dfc5616b26ac74eb599f44e913c9
parent6f1a6f94fc91ce655f90e182d60a4b51c559113e (diff)
downloadisc-dhcp-d81e9330bd481ffc51ad55647c9ec1850dd9d307.tar.gz
Update bind.sh to use git when getting the bind tarball
Update Makefile.bind to minimize the work when we've already configured or compiled the bind tree.
-rw-r--r--util/Makefile.bind40
-rw-r--r--util/bind.sh119
2 files changed, 95 insertions, 64 deletions
diff --git a/util/Makefile.bind b/util/Makefile.bind
index 6ecd184e..bd68319e 100644
--- a/util/Makefile.bind
+++ b/util/Makefile.bind
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2009-2011 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009-2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -13,7 +13,7 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: Makefile.bind,v 1.7 2011/04/06 00:41:10 marka Exp $
+# $Id: Makefile.bind,v 1.8 2012/04/05 22:16:47 sar Exp $
# Configure and build the bind libraries for use by DHCP
@@ -44,18 +44,31 @@ all:
# Configure the export libraries
# Currently disable the epoll and devpoll options as they don't interact
# well with the DHCP code.
- @echo Configuring BIND Export libraries for DHCP.
- @(cd ${bindsrcdir} && ./configure --disable-kqueue --disable-epoll --disable-devpoll --without-openssl --without-libxml2 --enable-exportlib --enable-threads=no --with-export-includedir=${binddir}/include --with-export-libdir=${binddir}/lib --with-gssapi=no > ${binddir}/configure.log)
-
-# Build the export libraries
- @echo Building BIND Export libraries - this takes some time.
- @(cd ${bindsrcdir}/lib/export ; \
- echo building in `pwd` ; \
- MAKE=${GMAKE} ${GMAKE} > ${binddir}/build.log)
+# If the top-level Bind Makefile exists we skip the configuration step
+# as we assume it's done and won't change. Doing a make clean will
+# reset things if necessary.
+ @if test -f ${bindsrcdir}/Makefile ; then \
+ echo Bind export libraries already configured ; \
+ else \
+ echo Configuring BIND Export libraries for DHCP. ; \
+ rm -rf ./lib ./include ./configure.log ./build.log ./install.log ; \
+ (cd ${bindsrcdir} && ./configure --disable-kqueue --disable-epoll --disable-devpoll --without-openssl --without-libxml2 --enable-exportlib --enable-threads=no --with-export-includedir=${binddir}/include --with-export-libdir=${binddir}/lib --with-gssapi=no > ${binddir}/configure.log); \
+ fi
- @echo Installing BIND Export libraries to ${binddir}.
- @(cd ${bindsrcdir}/lib/export ; \
- MAKE=${GMAKE} ${GMAKE} install > ${binddir}/install.log)
+# Build and install the export libraries
+# No need to do anything if we already have something installed.
+ @if test -d ${binddir}/lib ; then \
+ echo Bind export libraries already installed ; \
+ else \
+ echo Building BIND Export libraries - this takes some time. ;\
+ (cd ${bindsrcdir}/lib/export ; \
+ echo building in `pwd` ; \
+ MAKE=${GMAKE} ${GMAKE} > ${binddir}/build.log) ; \
+ \
+ echo Installing BIND Export libraries to ${binddir}. ; \
+ (cd ${bindsrcdir}/lib/export ; \
+ MAKE=${GMAKE} ${GMAKE} install > ${binddir}/install.log) ; \
+ fi
clean:
@echo Cleaning BIND export library.
@@ -73,3 +86,4 @@ install:
check:
+uninstall:
diff --git a/util/bind.sh b/util/bind.sh
index b8734b6d..bcaa7b5d 100644
--- a/util/bind.sh
+++ b/util/bind.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2009-2011 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2009-2012 by Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -14,73 +14,96 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: bind.sh,v 1.24 2012/01/23 17:58:56 sar Exp $
+# $Id: bind.sh,v 1.25 2012/04/05 22:16:47 sar Exp $
# Get the bind distribution for the libraries
# This script is used to build the DHCP distribution and shouldn't be shipped
#
-# Usage: sh bind.sh <DHCP version>
-#
+# Usage: sh bind.sh <DHCP branch or version> <git bind direcotry>
#
+# By default we will do a git clone of bind into the default bind directory
+# and then get the proper bind tarball from that. As getting a git clone
+# may be slow for people working remotely we also allow them to indicate
+# a directory that already holds the clone in which case we use it instead.
+# We expect the kit.sh script to create the temporary directory $binddir
+# and to do a git pull to get the latest code.
topdir=`pwd`
binddir=$topdir/bind
+gitbinddir=$topdir/bindgit
case $# in
- 1)
- case "$1" in
- ###
- ### Robie calls this script with the building branch name so we can
- ### build with BIND9 HEAD for the relevant branch we would release
- ### with.
- ###
- ### XXX: We can't use the 'snapshot' syntax right now because kit.sh
- ### pulls the version.tmp off the branch name, and then stores a
- ### tarball with vastly different values. So the version.tmp can not
- ### be used to chdir down into the directory that is unpacked.
- ###
- v4_2) noSNAP=snapshot BINDTAG=v9_7 ;;
- HEAD|v[0-9]_[0-9].*) noSNAP=snapshot BINDTAG=HEAD ;;
- ###
- ### For ease of use, this records the sticky tag of versions
- ### released with each point release.
- ###
- 4.2.3-P1|4.2.3-P2) BINDTAG=v9_8_1_P1 ;;
- 4.2.3rc1|4.2.3) BINDTAG=v9_8_1 ;;
- 4.2.2rc1|4.2.2) BINDTAG=v9_8_0_P4 ;;
- 4.2.1|4.2.1-P1|4.2.2b1) BINDTAG=v9_8_0 ;;
- 4.2.1rc1) BINDTAG=v9_8_0rc1 ;;
- 4.2.1b1) BINDTAG=v9_8_0b1 ;;
- 4.2.0rc1|4.2.0) BINDTAG=v9_7_1 ;;
- 4.2.0b2) BINDTAG=v9_7_1rc1 ;;
- 4.2.0b1) BINDTAG=v9_7_0_P1 ;;
- 4.2.0a2|4.2.0a1) BINDTAG=v9_7_0b3 ;;
- *) echo "bind.sh: unsupported version: $1" >&2
- exit 1
- ;;
- esac
+ 2)
+ gitbinddir=$2
+ ;;
+ 1)
;;
- *) echo "usage: sh bind.sh [<branch>|<version>]" >&2
+ *) echo "usage: sh bind.sh [<branch>|<version>] [git binddir]" >&2
exit 1
;;
esac
+case "$1" in
+###
+### Robie calls this script with the building branch name so we can
+### build with BIND9 HEAD for the relevant branch we would release
+### with.
+###
+### XXX: We can't use the 'snapshot' syntax right now because kit.sh
+### pulls the version.tmp off the branch name, and then stores a
+### tarball with vastly different values. So the version.tmp can not
+### be used to chdir down into the directory that is unpacked.
+###
+v4_2) noSNAP=snapshot BINDTAG=v9_8; BRANCHTAG=v9_8 ;;
+HEAD|v[0-9]_[0-9].*) noSNAP=snapshot BINDTAG=HEAD; BRANCHTAG=v9_9 ;;
+###
+### For ease of use, this records the sticky tag of versions
+### released with each point release.
+###
+4.2.3-P1|4.2.3-P2) BINDTAG=v9_8_1_P1; BRANCHTAG=v9_8 ;;
+4.2.3rc1|4.2.3) BINDTAG=v9_8_1; BRANCHTAG=v9_8 ;;
+4.2.2rc1|4.2.2) BINDTAG=v9_8_0_P4; BRANCHTAG=v9_8 ;;
+4.2.1|4.2.1-P1|4.2.2b1) BINDTAG=v9_8_0; BRANCHTAG=v9_8 ;;
+4.2.1rc1) BINDTAG=v9_8_0rc1; BRANCHTAG=v9_8 ;;
+4.2.1b1) BINDTAG=v9_8_0b1; BRANCHTAG=v9_8 ;;
+4.2.0rc1|4.2.0) BINDTAG=v9_7_1; BRANCHTAG=v9_7 ;;
+4.2.0b2) BINDTAG=v9_7_1rc1; BRANCHTAG=v9_7 ;;
+4.2.0b1) BINDTAG=v9_7_0_P1; BRANCHTAG=v9_7 ;;
+4.2.0a2|4.2.0a1) BINDTAG=v9_7_0b3; BRANCHTAG=v9_7 ;;
+*) echo "bind.sh: unsupported version: $1" >&2
+ exit 1
+ ;;
+esac
+
# Delete all previous bind stuff
rm -rf bind
-# Make and move to our directory for all things bind
-mkdir $binddir
-cp util/Makefile.bind bind/Makefile
-cd $binddir
+# If needed clone the directory, note that
+# kit.sh does a pull so we don't have to
+# kit.sh will also build the binddir if it doesn't
+# exist
+if !(test -d ${gitbinddir}) ; then
+ echo Cloning Bind into ${gitbinddir}
+ git clone repo.isc.org:/proj/git/prod/bind9.git ${gitbinddir}
+fi
-# Get the bind release kit shell script
-cvs checkout -p -r $BINDTAG bind9/util/kit.sh > kit.sh
+# We seem to need the checkout to get to the correct branch
+# especially for tags of the form v9_8
+echo Checking out verison $BRANCHTAG
+pushd $gitbinddir
+git checkout $BRANCHTAG
+popd
# Create the bind tarball, which has the side effect of
# setting up the bind directory we will use for building
# the export libraries
-sh kit.sh $SNAP $BINDTAG $binddir
+echo Creating tarball for $BINDTAG
+sh $gitbinddir/util/kit.sh $SNAP $gitbinddir $BINDTAG $binddir
+# and copy the bind makeifle to it
+cp util/Makefile.bind bind/Makefile
+
+cd $binddir
. ./version.tmp
version=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}
@@ -88,12 +111,6 @@ bindsrcdir=bind-$version
mm=${MAJORVER}.${MINORVER}
# move the tar file to a known place for use by the make dist command
+echo Moving tar file to bind.tar.gz for distribution
mv bind-${mm}*.tar.gz bind.tar.gz
-# temporary hack to allow testing when using snapshots
-#mv $binddir/bind-9.7* $binddir/$bindsrcdir
-
-# Run the script to build and install the export libraries
-# Let make do this now.
-#sh $topdir/util/bindlib.sh $binddir $bindsrcdir
-