]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - mksnapshot.sh
Bug 5069: Keep listening after getsockname() error (#1713)
[thirdparty/squid.git] / mksnapshot.sh
index e9e01684877a9ac788c34fd841725a41969dbf3a..3914d72ee32303700efa5293f1683c987a53c052 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh -e
 #
-## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+## Copyright (C) 1996-2023 The Squid Software Foundation and contributors
 ##
 ## Squid software is distributed under GPLv2+ license and includes
 ## contributions from numerous individuals and organizations.
 echo "RUN: $0"
 if [ $# -lt 1 ]; then
        echo "Usage: $0 [branch]"
-       echo "Where [branch] is the path under /bzr/ to the branch to snapshot."
+       echo "Where [branch] is the name of the branch to snapshot."
        exit 1
 fi
-# VCS details
-module=squid3
-BZRROOT=${BZRROOT:-/bzr}
-
-# generate a tarball name from the branch ($1) note that trunk is at
-# /bzr/trunk, but we call it 3.HEAD for consistency with CVS (squid 2.x), and
-# branches are in /bzr/branches/ but we don't want 'branches/' in the tarball
-# name so we strip that.
-branchpath=${1:-trunk}
-tag=${2:-`basename $branchpath`}
+
+# generate a tarball name from the branch ($1)
+branch=${1:-master}
 startdir=${PWD}
 date=`env TZ=GMT date +%Y%m%d`
 
-tmpdir=${TMPDIR:-${PWD}}/${module}-${tag}-mksnapshot
+tmpdir=${TMPDIR:-${PWD}}/squid-${branch}-mksnapshot/
 
 rm -rf ${tmpdir}
 trap "echo FAIL-BUILD_${VERSION} ; rm -rf ${tmpdir}" 0
+mkdir ${tmpdir}
 
-rm -f ${tag}.out
-bzr export ${tmpdir} ${BZRROOT}/${module}/${branchpath} || exit 1
+rm -f ${branch}.out
+(git archive --format=tar ${branch} | tar -xC ${tmpdir}) || exit 1
 if [ ! -f ${tmpdir}/configure ] && [ -f ${tmpdir}/configure.ac ]; then
        sh -c "cd ${tmpdir} && ./bootstrap.sh"
 fi
 if [ ! -f ${tmpdir}/configure ]; then
-       echo "ERROR! Tag ${tag} not found in ${module}"
+       echo "ERROR! Branch ${branch} not found."
 fi
 
 cd ${tmpdir}
-revision=`bzr revno ${BZRROOT}/${module}/${branchpath}`
+revision=`git rev-parse --short ${branch}`
 suffix="${date}-r${revision}"
-eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-BZR//' | sed -e 's/PACKAGE_//'`
+eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-VCS//' | sed -e 's/PACKAGE_//'`
 eval `grep "^ *PACKAGE_TARNAME=" configure | sed -e 's/_TARNAME//'`
 ed -s configure.ac <<EOS
 g/${VERSION}-[A-Z]*/ s//${VERSION}-${suffix}/
@@ -57,7 +51,7 @@ EOS
 echo "STATE..."
 echo "PACKAGE: ${PACKAGE}"
 echo "VERSION: ${VERSION}"
-echo "TAG: ${tag}"
+echo "BRANCH: ${branch}"
 echo "REVISION: ${revision}"
 echo "STARTDIR: ${startdir}"
 echo "TMPDIR: ${tmpdir}"
@@ -86,25 +80,30 @@ echo "Preparing to publish: ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.tar.* ..."
 #echo "BUILT TARS: " ; ls -1 ${tmpdir}/*.tar.* || true
 
 cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.tar.gz .
-echo ${PACKAGE}-${VERSION}-${suffix}.tar.gz >>${tag}.out
+echo ${PACKAGE}-${VERSION}-${suffix}.tar.gz >>${branch}.out
 cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.tar.bz2 .
-echo ${PACKAGE}-${VERSION}-${suffix}.tar.bz2 >>${tag}.out
+echo ${PACKAGE}-${VERSION}-${suffix}.tar.bz2 >>${branch}.out
 if [ -f ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.diff ]; then
     cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.diff .
-    echo ${PACKAGE}-${VERSION}-${suffix}.diff >>${tag}.out
+    echo ${PACKAGE}-${VERSION}-${suffix}.diff >>${branch}.out
 fi
 
-relnotes=${tmpdir}/doc/release-notes/release-`echo ${VERSION} | cut -d. -f1,2 | cut -d- -f1`.html
+# latest Squid 'make' builds a RELEASENOTES.html at top directory
+relnotes=${tmpdir}/RELEASENOTES.html
+if [ ! -f ${relnotes} ]; then
+       # for older Squid-3.x versions we may need to move find the release notes by version
+       relnotes=${tmpdir}/doc/release-notes/release-`echo ${VERSION} | cut -d. -f1,2 | cut -d- -f1`.html
+fi
 if [ -f ${relnotes} ]; then
        cp -p ${relnotes} ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html
-       echo ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html >>${tag}.out
+       echo ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html >>${branch}.out
        ed -s ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html <<EOF
 g/"ChangeLog"/ s//"${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt"/g
 w
 EOF
 fi
 cp -p ${tmpdir}/ChangeLog ${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt
-echo ${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt >>${tag}.out
+echo ${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt >>${branch}.out
 
 # Generate Configuration Manual HTML
 if [ -x ${tmpdir}/scripts/www/build-cfg-help.pl ]; then
@@ -112,10 +111,10 @@ if [ -x ${tmpdir}/scripts/www/build-cfg-help.pl ]; then
        mkdir -p ${tmpdir}/doc/cfgman
        ${tmpdir}/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${tmpdir}/doc/cfgman ${tmpdir}/src/cf.data
        sh -c "cd ${tmpdir}/doc/cfgman && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-cfgman.tar.gz *"
-       echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.tar.gz >>${tag}.out
+       echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.tar.gz >>${branch}.out
        ${tmpdir}/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${PACKAGE}-${VERSION}-${suffix}-cfgman.html -f singlehtml ${tmpdir}/src/cf.data
        gzip -f -9 ${PACKAGE}-${VERSION}-${suffix}-cfgman.html
-       echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.html.gz >>${tag}.out
+       echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.html.gz >>${branch}.out
 fi
 
 # Collate Manual Pages and generate HTML versions
@@ -124,19 +123,17 @@ if (groff --help >/dev/null); then
        if [ ! -d ${tmpdir}/doc/manuals ] ; then
                mkdir -p ${tmpdir}/doc/manuals
        fi
-       for f in `ls -1 ${tmpdir}/helpers/*/*/*.8 ${tmpdir}/src/*.8 ${tmpdir}/src/*/*.8 ${tmpdir}/tools/squidclient/*.1 ${tmpdir}/tools/*.8 ./helpers/*/*/*.8 2>/dev/null` ; do
+       for f in `ls -1 ${tmpdir}/helpers/*/*/*.8 ${tmpdir}/src/*.8 ${tmpdir}/src/*/*.8 ${tmpdir}/tools/*.8 ./helpers/*/*/*.8 2>/dev/null` ; do
                cp $f ${tmpdir}/doc/manuals/
        done
        for f in `ls -1 ${tmpdir}/doc/manuals/*.1  ${tmpdir}/doc/manuals/*.8 2>/dev/null` ; do
                cat ${f} | groff -E -Thtml -mandoc >${f}.html
        done
        sh -c "cd ${tmpdir}/doc/manuals && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-manuals.tar.gz *.html *.1 *.8"
-       echo ${PACKAGE}-${VERSION}-${suffix}-manuals.tar.gz >>${tag}.out
+       echo ${PACKAGE}-${VERSION}-${suffix}-manuals.tar.gz >>${branch}.out
 fi
 
 # Generate language-pack tarballs
-# NP: Only to be done on trunk.
-if test "${tag}" = "trunk" ; then
-       sh -c "cd ${tmpdir}/errors && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz ./*/* ./alias* ./TRANSLATORS ./COPYRIGHT "
-       echo ${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz >>${tag}.out
-fi
+# NP: Only useful on development branch
+sh -c "cd ${tmpdir}/errors && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz ./*/* ./alias* ./TRANSLATORS ./COPYRIGHT "
+echo ${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz >>${branch}.out