]> git.ipfire.org Git - thirdparty/squid.git/blob - mkrelease.sh
Boilerplate: update copyright blurbs on packaging and utility scripts
[thirdparty/squid.git] / mkrelease.sh
1 #!/bin/sh -ex
2 #
3 ## Copyright (C) 1996-2014 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 # VCS details
15 module=squid3
16 BZRROOT=${BZRROOT:-/bzr}
17
18 # infer tags from command line details
19 package=squid
20 rev=`echo $1 | sed -e "s/^${package}-//"`
21 name=${package}-${rev}
22 tag=`echo ${name} | tr a-z.- A-Z__`
23 startdir=$PWD/
24 dst=${2:-$PWD}/
25 RELEASE_TIME=`date +%s`
26
27 # DPW 2007-08-30
28 #
29 # check that $rev has the right syntax
30 #
31 checkrev=`expr $rev : '\([0-9]\.[0-9]\.[0-9\.]*\)'`
32 if test "$rev" != "$checkrev" ; then
33 echo "revision '$rev' has incorrect syntax. Should be like '3.1.0.1'"
34 exit 1;
35 fi
36
37 tmpdir=${TMPDIR:-${PWD}}/${name}-mkrelease
38
39 rm -rf $name.tar.gz $tmpdir
40 trap "rm -rf $tmpdir" 0
41
42 # AYJ 2008-03-31: add the named tag for use below.
43 bzr tag $tag
44 bzr export -r tag:$tag $tmpdir || exit 1
45 #
46 # AYJ: 2008-03-31: initial export attempt dies on 'not a branch' error.
47 # bzr export $tmpdir $BZRROOT/$module/tags/$tag || exit 1
48 #
49 #bzr export $tmpdir $BZRROOT/$module/tags/$tag || exit 1
50 if [ ! -f $tmpdir/bootstrap.sh ]; then
51 echo "ERROR! Tag $tag not found in $module"
52 fi
53
54 cd $tmpdir
55 ./bootstrap.sh
56 eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-BZR//' | sed -e 's/PACKAGE_//'`
57 eval `grep "^ *PACKAGE_TARNAME=" configure | sed -e 's/_TARNAME//'`
58 if [ ${name} != ${PACKAGE}-${VERSION} ]; then
59 echo "ERROR! The tag and configure version numbers do not match!"
60 echo "${name} != ${PACKAGE}-${VERSION}"
61 exit 1
62 fi
63 RELEASE=`echo $VERSION | cut -d. -f1,2 | cut -d- -f1`
64 ed -s configure.ac <<EOS
65 g/${VERSION}-BZR/ s//${VERSION}/
66 w
67 EOS
68 ed -s configure <<EOS
69 g/${VERSION}-BZR/ s//${VERSION}/
70 w
71 EOS
72 ed -s include/version.h <<EOS
73 g/squid_curtime/ s//${RELEASE_TIME}/
74 w
75 EOS
76
77 ./configure --silent --enable-translation
78 make dist-all
79
80 cd $startdir
81 inst() {
82 rm -f $2
83 cp -p $1 $2
84 chmod 444 $2
85 }
86 inst $tmpdir/${name}.tar.gz $dst/${name}.tar.gz
87 inst $tmpdir/${name}.tar.bz2 $dst/${name}.tar.bz2
88 inst $tmpdir/CONTRIBUTORS $dst/CONTRIBUTORS.txt
89 inst $tmpdir/COPYING $dst/COPYING.txt
90 inst $tmpdir/COPYRIGHT $dst/COPYRIGHT.txt
91 inst $tmpdir/CREDITS $dst/CREDITS.txt
92 inst $tmpdir/SPONSORS $dst/SPONSORS.txt
93 inst $tmpdir/ChangeLog $dst/ChangeLog.txt
94 if [ -f $tmpdir/doc/release-notes/release-$RELEASE.html ]; then
95 cat $tmpdir/doc/release-notes/release-$RELEASE.html | sed -e '
96 s/"ChangeLog"/"ChangeLog.txt"/g;
97 ' > $tmpdir/RELEASENOTES.html
98 touch -r $tmpdir/doc/release-notes/release-$RELEASE.html $tmpdir/RELEASENOTES.html
99 inst $tmpdir/RELEASENOTES.html $dst/${name}-RELEASENOTES.html
100 ln -sf ${name}-RELEASENOTES.html $dst/RELEASENOTES.html
101 fi
102 if [ -f $dst/changesets/.update ]; then
103 rm -f $dst/changesets/$tag.html
104 $dst/changesets/.update
105 fi