]> git.ipfire.org Git - thirdparty/squid.git/blob - mkrelease.sh
Maintenance: Do not hide squid-conf-tests errors (#1227)
[thirdparty/squid.git] / mkrelease.sh
1 #!/bin/sh -ex
2 #
3 ## Copyright (C) 1996-2022 The Squid Software Foundation and contributors
4 ##
5 ## Squid software is distributed under GPLv2+ license and includes
6 ## contributions from numerous individuals and organizations.
7 ## Please see the COPYING and CONTRIBUTORS files for details.
8 ##
9
10 if [ $# -ne 1 -a $# -ne 2 ]; then
11 echo "Usage: $0 revision [destination]"
12 exit 1
13 fi
14
15 # infer tags from command line details
16 package=squid
17 rev=`echo $1 | sed -e "s/^${package}-//"`
18 name=${package}-${rev}
19 tag=`echo ${name} | tr a-z.- A-Z__`
20 startdir=$PWD/
21 dst=${2:-$PWD}/
22 RELEASE_TIME=`date +%s`
23
24 # DPW 2007-08-30
25 #
26 # check that $rev has the right syntax
27 #
28 checkrev=`expr $rev : '\([0-9]\.[0-9]\(\.[0-9\.]\)*\)'`
29 if test "$rev" != "$checkrev" ; then
30 echo "revision '$rev' has incorrect syntax. Should be like '3.1.0.1'"
31 exit 1;
32 fi
33
34 tmpdir=${TMPDIR:-${PWD}}/${name}-mkrelease
35
36 rm -rf $name.tar.gz $tmpdir
37 trap "rm -rf $tmpdir" 0
38
39 mkdir ${tmpdir}
40 (git archive --format=tar HEAD | tar -xC ${tmpdir}) || exit 1
41
42 if [ ! -f $tmpdir/bootstrap.sh ]; then
43 echo "ERROR! Tag $tag not found"
44 fi
45
46 cd $tmpdir
47 ./bootstrap.sh
48 eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-VCS//' | sed -e 's/PACKAGE_//'`
49 eval `grep "^ *PACKAGE_TARNAME=" configure | sed -e 's/_TARNAME//'`
50 if [ ${name} != ${PACKAGE}-${VERSION} ]; then
51 echo "ERROR! The tag and configure version numbers do not match!"
52 echo "${name} != ${PACKAGE}-${VERSION}"
53 exit 1
54 fi
55 RELEASE=`echo $VERSION | cut -d. -f1,1 | cut -d- -f1`
56 NOTES_VERSION=`grep "$VERSION" doc/release-notes/release-${RELEASE}.sgml`
57 if test "x$NOTES_VERSION" = "x"; then
58 echo "ERROR! Release Notes HTML version numbers do not match!"
59 exit 1
60 fi
61 ed -s configure.ac <<EOS
62 g/${VERSION}-VCS/ s//${VERSION}/
63 w
64 EOS
65 ed -s configure <<EOS
66 g/${VERSION}-VCS/ s//${VERSION}/
67 w
68 EOS
69 ed -s include/version.h <<EOS
70 g/squid_curtime/ s//${RELEASE_TIME}/
71 w
72 EOS
73
74 ./configure --silent --enable-translation
75 make dist-all
76
77 cd $startdir
78 inst() {
79 rm -f $2
80 cp -p $1 $2
81 chmod 444 $2
82 }
83 inst $tmpdir/${name}.tar.gz $dst/${name}.tar.gz
84 inst $tmpdir/${name}.tar.bz2 $dst/${name}.tar.bz2
85 inst $tmpdir/CONTRIBUTORS $dst/CONTRIBUTORS.txt
86 inst $tmpdir/COPYING $dst/COPYING.txt
87 inst $tmpdir/README $dst/README.txt
88 inst $tmpdir/CREDITS $dst/CREDITS.txt
89 inst $tmpdir/SPONSORS $dst/SPONSORS.txt
90 inst $tmpdir/ChangeLog $dst/ChangeLog.txt
91 if [ -f $tmpdir/doc/release-notes/release-$RELEASE.html ]; then
92 cat $tmpdir/doc/release-notes/release-$RELEASE.html | sed -e '
93 s/"ChangeLog"/"ChangeLog.txt"/g;
94 ' > $tmpdir/RELEASENOTES.html
95 touch -r $tmpdir/doc/release-notes/release-$RELEASE.html $tmpdir/RELEASENOTES.html
96 inst $tmpdir/RELEASENOTES.html $dst/${name}-RELEASENOTES.html
97 ln -sf ${name}-RELEASENOTES.html $dst/RELEASENOTES.html
98 fi
99 if [ -f $dst/changesets/.update ]; then
100 rm -f $dst/changesets/$tag.html
101 $dst/changesets/.update
102 fi