]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Update bind.sh to use git when getting the bind tarball
authorShawn Routhier <sar@isc.org>
Thu, 5 Apr 2012 22:16:47 +0000 (22:16 +0000)
committerShawn Routhier <sar@isc.org>
Thu, 5 Apr 2012 22:16:47 +0000 (22:16 +0000)
Update Makefile.bind to minimize the work when we've already
configured or compiled the bind tree.

util/Makefile.bind
util/bind.sh

index 6ecd184e7438f4453ae4c03f1dde5be5ddea1adb..bd68319ef7ed70fcc62cc7cadb6afd2d1d3ddbe5 100644 (file)
@@ -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:
index b8734b6dac5ff7f3eeac475a23275015bfd5af56..bcaa7b5d0724e4ebdaa7d6d4b6cee1de2fc53f35 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (C) 2009-201 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
 # 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
-