aboutsummaryrefslogtreecommitdiff
path: root/external/unbound/makedist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'external/unbound/makedist.sh')
-rwxr-xr-xexternal/unbound/makedist.sh460
1 files changed, 0 insertions, 460 deletions
diff --git a/external/unbound/makedist.sh b/external/unbound/makedist.sh
deleted file mode 100755
index 5f19dfb68..000000000
--- a/external/unbound/makedist.sh
+++ /dev/null
@@ -1,460 +0,0 @@
-#!/bin/sh
-
-# Build unbound distribution tar from the SVN repository.
-#
-# Copyright (c) 2007, NLnet Labs. All rights reserved.
-#
-# This software is open source.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# Neither the name of the NLNET LABS nor the names of its contributors may
-# be used to endorse or promote products derived from this software without
-# specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "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 COPYRIGHT
-# HOLDER OR CONTRIBUTORS 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.
-
-# Abort script on unexpected errors.
-set -e
-
-# Remember the current working directory.
-cwd=`pwd`
-
-# Utility functions.
-usage () {
- cat >&2 <<EOF
-Usage $0: [-h] [-s] [-d SVN_root] [-w ...args...]
-Generate a distribution tar file for unbound.
-
- -h This usage information.
- -s Build a snapshot distribution file. The current date is
- automatically appended to the current unbound version number.
- -rc <nr> Build a release candidate, the given string will be added
- to the version number
- (which will then be unbound-<version>rc<number>)
- -d SVN_root Retrieve the unbound source from the specified repository.
- Detected from svn working copy if not specified.
- -wssl openssl.xx.tar.gz Also build openssl from tarball for windows dist.
- -wxp expat.xx.tar.gz Also build expat from tarball for windows dist.
- -w ... Build windows binary dist. last args passed to configure.
-EOF
- exit 1
-}
-
-info () {
- echo "$0: info: $1"
-}
-
-error () {
- echo "$0: error: $1" >&2
- exit 1
-}
-
-question () {
- printf "%s (y/n) " "$*"
- read answer
- case "$answer" in
- [Yy]|[Yy][Ee][Ss])
- return 0
- ;;
- *)
- return 1
- ;;
- esac
-}
-
-# Only use cleanup and error_cleanup after generating the temporary
-# working directory.
-cleanup () {
- info "Deleting temporary working directory."
- cd $cwd && rm -rf $temp_dir
-}
-
-error_cleanup () {
- echo "$0: error: $1" >&2
- cleanup
- exit 1
-}
-
-replace_text () {
- (cp "$1" "$1".orig && \
- sed -e "s/$2/$3/g" < "$1".orig > "$1" && \
- rm "$1".orig) || error_cleanup "Replacement for $1 failed."
-}
-
-replace_all () {
- info "Updating '$1' with the version number."
- replace_text "$1" "@version@" "$version"
- info "Updating '$1' with today's date."
- replace_text "$1" "@date@" "`date +'%b %e, %Y'`"
-}
-
-replace_version () {
- local v1=`echo $2 | sed -e 's/^.*\..*\.//'`
- local v2=`echo $3 | sed -e 's/^.*\..*\.//'`
- replace_text "$1" "VERSION_MICRO\],\[$v1" "VERSION_MICRO\],\[$v2"
-}
-
-check_svn_root () {
- # Check if SVNROOT is specified.
- if [ -z "$SVNROOT" ]; then
- if svn info 2>&1 | grep "not a working copy" >/dev/null; then
- if test -z "$SVNROOT"; then
- error "SVNROOT must be specified (using -d)"
- fi
- else
- eval `svn info | grep 'URL:' | sed -e 's/URL: /url=/' | head -1`
- SVNROOT="$url"
- fi
- fi
-}
-
-create_temp_dir () {
- # Creating temp directory
- info "Creating temporary working directory"
- temp_dir=`mktemp -d unbound-dist-XXXXXX`
- info "Directory '$temp_dir' created."
- cd $temp_dir
-}
-
-# pass filename as $1 arg.
-# creates file.sha1 and file.sha256
-storehash () {
- case $OSTYPE in
- linux*)
- sha=`sha1sum $1 | awk '{ print $1 }'`
- sha256=`sha256sum $1 | awk '{ print $1 }'`
- ;;
- freebsd*)
- sha=`sha1 $1 | awk '{ print $5 }'`
- sha256=`sha256 $1 | awk '{ print $5 }'`
- ;;
- *)
- # in case $OSTYPE is gone.
- case `uname` in
- Linux*)
- sha=`sha1sum $1 | awk '{ print $1 }'`
- sha256=`sha256sum $1 | awk '{ print $1 }'`
- ;;
- FreeBSD*)
- sha=`sha1 $1 | awk '{ print $5 }'`
- sha256=`sha256 $1 | awk '{ print $5 }'`
- ;;
- *)
- sha=`sha1sum $1 | awk '{ print $1 }'`
- sha256=`sha256sum $1 | awk '{ print $1 }'`
- ;;
- esac
- ;;
- esac
- echo $sha > $1.sha1
- echo $sha256 > $1.sha256
- echo "hash of $1.{sha1,sha256}"
- echo "sha1 $sha"
- echo "sha256 $sha256"
-}
-
-
-SNAPSHOT="no"
-RC="no"
-DOWIN="no"
-WINSSL=""
-WINEXPAT=""
-
-# Parse the command line arguments.
-while [ "$1" ]; do
- case "$1" in
- "-h")
- usage
- ;;
- "-d")
- SVNROOT="$2"
- shift
- ;;
- "-s")
- SNAPSHOT="yes"
- ;;
- "-wssl")
- WINSSL="$2"
- shift
- ;;
- "-wxp")
- WINEXPAT="$2"
- shift
- ;;
- "-w")
- DOWIN="yes"
- shift
- break
- ;;
- "-rc")
- RC="$2"
- shift
- ;;
- *)
- error "Unrecognized argument -- $1"
- ;;
- esac
- shift
-done
-
-if [ "$DOWIN" = "yes" ]; then
- # detect crosscompile, from Fedora13 at this point.
- if test "`uname`" = "Linux"; then
- info "Crosscompile windows dist"
- cross="yes"
- configure="mingw32-configure"
- strip="i686-w64-mingw32-strip"
- makensis="makensis" # from mingw32-nsis package
- # flags for crosscompiled dependency libraries
- cross_flag=""
-
- check_svn_root
- create_temp_dir
-
- # crosscompile openssl for windows.
- if test -n "$WINSSL"; then
- info "Cross compile $WINSSL"
- info "winssl tar unpack"
- (cd ..; gzip -cd $WINSSL) | tar xf - || error_cleanup "tar unpack of $WINSSL failed"
- sslinstall="`pwd`/sslinstall"
- cd openssl-* || error_cleanup "no openssl-X dir in tarball"
- # configure for crosscompile, without CAPI because it fails
- # cross-compilation and it is not used anyway
- # before 1.0.1i need --cross-compile-prefix=i686-w64-mingw32-
- sslflags="no-asm -DOPENSSL_NO_CAPIENG mingw"
- info "winssl: Configure $sslflags"
- CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar RANLIB=i686-w64-mingw32-ranlib ./Configure --prefix="$sslinstall" $sslflags || error_cleanup "OpenSSL Configure failed"
- info "winssl: make"
- make || error_cleanup "OpenSSL crosscompile failed"
- # only install sw not docs, which take a long time.
- info "winssl: make install_sw"
- make install_sw || error_cleanup "OpenSSL install failed"
- cross_flag="$cross_flag --with-ssl=$sslinstall"
- cd ..
- fi
-
- if test -n "$WINEXPAT"; then
- info "Cross compile $WINEXPAT"
- info "wxp: tar unpack"
- (cd ..; gzip -cd $WINEXPAT) | tar xf - || error_cleanup "tar unpack of $WINEXPAT failed"
- wxpinstall="`pwd`/wxpinstall"
- cd expat-* || error_cleanup "no expat-X dir in tarball"
- info "wxp: configure"
- mingw32-configure --prefix="$wxpinstall" --exec-prefix="$wxpinstall" --bindir="$wxpinstall/bin" --includedir="$wxpinstall/include" --mandir="$wxpinstall/man" --libdir="$wxpinstall/lib" || error_cleanup "libexpat configure failed"
- #info "wxp: make"
- #make || error_cleanup "libexpat crosscompile failed"
- info "wxp: make installlib"
- make installlib || error_cleanup "libexpat install failed"
- cross_flag="$cross_flag --with-libexpat=$wxpinstall"
- cd ..
- fi
-
- info "SVNROOT is $SVNROOT"
- info "Exporting source from SVN."
- svn export "$SVNROOT" unbound || error_cleanup "SVN command failed"
- cd unbound || error_cleanup "Unbound not exported correctly from SVN"
-
- # on a re-configure the cache may no longer be valid...
- if test -f mingw32-config.cache; then rm mingw32-config.cache; fi
- else
- cross="no" # mingw and msys
- cross_flag=""
- configure="./configure"
- strip="strip"
- makensis="c:/Program Files/NSIS/makensis.exe" # http://nsis.sf.net
- fi
-
- # version gets compiled into source, edit the configure to set it
- version=`./configure --version | head -1 | awk '{ print $3 }'` \
- || error_cleanup "Cannot determine version number."
- if [ "$RC" != "no" -o "$SNAPSHOT" != "no" ]; then
- if [ "$RC" != "no" ]; then
- version2=`echo $version | sed -e 's/rc.*$//' -e 's/_20.*$//'`
- version2=`echo $version2 | sed -e 's/rc.*//'`"rc$RC"
- fi
- if [ "$SNAPSHOT" != "no" ]; then
- version2=`echo $version | sed -e 's/rc.*$//' -e 's/_20.*$//'`
- version2="${version2}_`date +%Y%m%d`"
- fi
- replace_version "configure.ac" "$version" "$version2"
- version="$version2"
- info "Rebuilding configure script (autoconf) snapshot."
- autoconf || error_cleanup "Autoconf failed."
- autoheader || error_cleanup "Autoheader failed."
- rm -r autom4te* || echo "ignored"
- fi
-
- # procedure for making unbound installer on mingw.
- info "Creating windows dist unbound $version"
- info "Calling configure"
- echo "$configure"' --enable-debug --enable-static-exe '"$* $cross_flag"
- $configure --enable-debug --enable-static-exe $* $cross_flag \
- || error_cleanup "Could not configure"
- info "Calling make"
- make || error_cleanup "Could not make"
- info "Make complete"
-
- info "Unbound version: $version"
- file="unbound-$version.zip"
- rm -f $file
- info "Creating $file"
- mkdir tmp.$$
- $strip unbound.exe
- $strip anchor-update.exe
- $strip unbound-control.exe
- $strip unbound-host.exe
- $strip unbound-anchor.exe
- $strip unbound-checkconf.exe
- $strip unbound-service-install.exe
- $strip unbound-service-remove.exe
- cd tmp.$$
- cp ../doc/example.conf ../doc/Changelog .
- cp ../unbound.exe ../unbound-anchor.exe ../unbound-host.exe ../unbound-control.exe ../unbound-checkconf.exe ../unbound-service-install.exe ../unbound-service-remove.exe ../LICENSE ../winrc/unbound-control-setup.cmd ../winrc/unbound-website.url ../winrc/service.conf ../winrc/README.txt ../contrib/create_unbound_ad_servers.cmd ../contrib/warmup.cmd ../contrib/unbound_cache.cmd .
- # zipfile
- zip ../$file LICENSE README.txt unbound.exe unbound-anchor.exe unbound-host.exe unbound-control.exe unbound-checkconf.exe unbound-service-install.exe unbound-service-remove.exe unbound-control-setup.cmd example.conf service.conf unbound-website.url create_unbound_ad_servers.cmd warmup.cmd unbound_cache.cmd Changelog
- info "Testing $file"
- (cd .. ; zip -T $file )
- # installer
- info "Creating installer"
- quadversion=`cat ../config.h | grep RSRC_PACKAGE_VERSION | sed -e 's/#define RSRC_PACKAGE_VERSION //' -e 's/,/\\./g'`
- cat ../winrc/setup.nsi | sed -e 's/define VERSION.*$/define VERSION "'$version'"/' -e 's/define QUADVERSION.*$/define QUADVERSION "'$quadversion'"/' > ../winrc/setup_ed.nsi
- "$makensis" ../winrc/setup_ed.nsi
- info "Created installer"
- cd ..
- rm -rf tmp.$$
- mv winrc/unbound_setup_$version.exe .
- if test "$cross" = "yes"; then
- mv unbound_setup_$version.exe $cwd/.
- mv unbound-$version.zip $cwd/.
- cleanup
- fi
- storehash unbound_setup_$version.exe
- storehash unbound-$version.zip
- ls -lG unbound_setup_$version.exe
- ls -lG unbound-$version.zip
- info "Done"
- exit 0
-fi
-
-check_svn_root
-
-# Start the packaging process.
-info "SVNROOT is $SVNROOT"
-info "SNAPSHOT is $SNAPSHOT"
-
-#question "Do you wish to continue with these settings?" || error "User abort."
-
-create_temp_dir
-
-info "Exporting source from SVN."
-svn export "$SVNROOT" unbound || error_cleanup "SVN command failed"
-
-cd unbound || error_cleanup "Unbound not exported correctly from SVN"
-
-info "Adding libtool utils (libtoolize)."
-libtoolize -c --install || libtoolize -c || error_cleanup "Libtoolize failed."
-
-info "Building configure script (autoreconf)."
-autoreconf || error_cleanup "Autoconf failed."
-
-rm -r autom4te* || error_cleanup "Failed to remove autoconf cache directory."
-
-info "Building lexer and parser."
-echo "#include \"config.h\"" > util/configlexer.c || error_cleanup "Failed to create configlexer"
-echo "#include \"util/configyyrename.h\"" >> util/configlexer.c || error_cleanup "Failed to create configlexer"
-flex -i -t util/configlexer.lex >> util/configlexer.c || error_cleanup "Failed to create configlexer"
-if test -x `which bison` 2>&1; then YACC=bison; else YACC=yacc; fi
-$YACC -y -d -o util/configparser.c util/configparser.y || error_cleanup "Failed to create configparser"
-
-find . -name .c-mode-rc.el -exec rm {} \;
-find . -name .cvsignore -exec rm {} \;
-rm makedist.sh || error_cleanup "Failed to remove makedist.sh."
-
-info "Determining Unbound version."
-version=`./configure --version | head -1 | awk '{ print $3 }'` || \
- error_cleanup "Cannot determine version number."
-
-info "Unbound version: $version"
-
-RECONFIGURE="no"
-
-if [ "$RC" != "no" ]; then
- info "Building Unbound release candidate $RC."
- version2="${version}rc$RC"
- info "Version number: $version2"
-
- replace_version "configure.ac" "$version" "$version2"
- version="$version2"
- RECONFIGURE="yes"
-fi
-
-if [ "$SNAPSHOT" = "yes" ]; then
- info "Building Unbound snapshot."
- version2="${version}_`date +%Y%m%d`"
- info "Snapshot version number: $version2"
-
- replace_version "configure.ac" "$version" "$version2"
- version="$version2"
- RECONFIGURE="yes"
-fi
-
-if [ "$RECONFIGURE" = "yes" ]; then
- info "Rebuilding configure script (autoconf) snapshot."
- autoreconf || error_cleanup "Autoconf failed."
- rm -r autom4te* || error_cleanup "Failed to remove autoconf cache directory."
-fi
-
-replace_all doc/README
-replace_all doc/unbound.8.in
-replace_all doc/unbound.conf.5.in
-replace_all doc/unbound-checkconf.8.in
-replace_all doc/unbound-control.8.in
-replace_all doc/unbound-anchor.8.in
-replace_all doc/unbound-host.1.in
-replace_all doc/example.conf.in
-replace_all doc/libunbound.3.in
-
-info "Renaming Unbound directory to unbound-$version."
-cd ..
-mv unbound unbound-$version || error_cleanup "Failed to rename unbound directory."
-
-tarfile="../unbound-$version.tar.gz"
-
-if [ -f $tarfile ]; then
- (question "The file $tarfile already exists. Overwrite?" \
- && rm -f $tarfile) || error_cleanup "User abort."
-fi
-
-info "Creating tar unbound-$version.tar.gz"
-tar czf ../unbound-$version.tar.gz unbound-$version || error_cleanup "Failed to create tar file."
-
-cleanup
-
-storehash unbound-$version.tar.gz
-echo "create unbound-$version.tar.gz.asc with:"
-echo " gpg --armor --detach-sign unbound-$version.tar.gz"
-echo " gpg --armor --detach-sign unbound-$version.zip"
-echo " gpg --armor --detach-sign unbound_setup_$version.exe"
-
-info "Unbound distribution created successfully."
-