]> git.ipfire.org Git - thirdparty/squid.git/blob - mksnapshot.sh
Author: Leonid Evdokimov <leon@darkk.net.ru>
[thirdparty/squid.git] / mksnapshot.sh
1 #!/bin/sh -ex
2
3 if [ $# -lt 1 ]; then
4 echo "Usage: $0 [branch]"
5 echo "Where [branch] is the path under /bzr/ to the branch to snapshot."
6 exit 1
7 fi
8 # VCS details
9 module=squid3
10 BZRROOT=${BZRROOT:-/bzr}
11
12 # generate a tarball name from the branch ($1) note that trunk is at
13 # /bzr/trunk, but we call it 3.HEAD for consistency with CVS (squid 2.x), and
14 # branches are in /bzr/branches/ but we don't want 'branches/' in the tarball
15 # name so we strip that.
16 branchpath=${1:-trunk}
17 tag=${2:-`basename $branchpath`}
18 startdir=${PWD}
19 date=`env TZ=GMT date +%Y%m%d`
20
21 tmpdir=${TMPDIR:-${PWD}}/${module}-${tag}-mksnapshot
22
23 rm -rf ${tmpdir}
24 trap "echo FAIL-BUILD_${VERSION} ; rm -rf ${tmpdir}" 0
25
26 rm -f ${tag}.out
27 bzr export ${tmpdir} ${BZRROOT}/${module}/${branchpath} || exit 1
28 if [ ! -f ${tmpdir}/configure ] && [ -f ${tmpdir}/configure.ac ]; then
29 sh -c "cd ${tmpdir} && ./bootstrap.sh"
30 fi
31 if [ ! -f ${tmpdir}/configure ]; then
32 echo "ERROR! Tag ${tag} not found in ${module}"
33 fi
34
35 cd ${tmpdir}
36 eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-BZR//' | sed -e 's/PACKAGE_//'`
37 eval `grep "^ *PACKAGE_TARNAME=" configure | sed -e 's/_TARNAME//'`
38 ed -s configure.ac <<EOS
39 g/${VERSION}-[A-Z]*/ s//${VERSION}-${date}/
40 w
41 EOS
42 ed -s configure <<EOS
43 g/${VERSION}-[A-Z]*/ s//${VERSION}-${date}/
44 w
45 EOS
46
47 echo "STATE..."
48 echo "PACKAGE: ${PACKAGE}"
49 echo "VERSION: ${VERSION}"
50 echo "TAG: ${tag}"
51 echo "STARTDIR: ${startdir}"
52 echo "TMPDIR: ${tmpdir}"
53
54 ./test-builds.sh --cleanup || exit 1
55 ./configure --silent
56 make -s dist-all
57
58 webbase=/server/httpd/htdocs/squid-cache.org/content/
59 basetarball=${webbase}/Versions/v`echo ${VERSION} | cut -d. -f1`/`echo ${VERSION} | cut -d. -f-2|cut -d- -f1`/${PACKAGE}-${VERSION}.tar.bz2
60
61 echo "Building Tarball diff (${basetarball}) ..."
62 if [ -f ${basetarball} ]; then
63 tar jxf ${PACKAGE}-${VERSION}-${date}.tar.bz2
64 tar jxf ${basetarball}
65 echo "Differences from ${PACKAGE}-${VERSION} to ${PACKAGE}-${VERSION}-${date}" >${PACKAGE}-${VERSION}-${date}.diff
66 diff -ruN ${PACKAGE}-${VERSION} ${PACKAGE}-${VERSION}-${date} >>${PACKAGE}-${VERSION}-${date}.diff || true
67 else
68 echo "Building Tarball diff ... skipped (no tarball exists)."
69 fi
70
71 cd ${startdir}
72 echo "Preparing to publish: ${tmpdir}/${PACKAGE}-${VERSION}-${date}.tar.* ..."
73 #echo "LOCAL: " ; pwd
74 #echo "BUILT TARS: " ; ls -1 ${tmpdir}/*.tar.* || true
75
76 cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${date}.tar.gz .
77 echo ${PACKAGE}-${VERSION}-${date}.tar.gz >>${tag}.out
78 cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${date}.tar.bz2 .
79 echo ${PACKAGE}-${VERSION}-${date}.tar.bz2 >>${tag}.out
80 if [ -f ${tmpdir}/${PACKAGE}-${VERSION}-${date}.diff ]; then
81 cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${date}.diff .
82 echo ${PACKAGE}-${VERSION}-${date}.diff >>${tag}.out
83 fi
84
85 relnotes=${tmpdir}/doc/release-notes/release-`echo ${VERSION} | cut -d. -f1,2 | cut -d- -f1`.html
86 if [ -f ${relnotes} ]; then
87 cp -p ${relnotes} ${PACKAGE}-${VERSION}-${date}-RELEASENOTES.html
88 echo ${PACKAGE}-${VERSION}-${date}-RELEASENOTES.html >>${tag}.out
89 ed -s ${PACKAGE}-${VERSION}-${date}-RELEASENOTES.html <<EOF
90 g/"ChangeLog"/ s//"${PACKAGE}-${VERSION}-${date}-ChangeLog.txt"/g
91 w
92 EOF
93 fi
94 cp -p ${tmpdir}/ChangeLog ${PACKAGE}-${VERSION}-${date}-ChangeLog.txt
95 echo ${PACKAGE}-${VERSION}-${date}-ChangeLog.txt >>${tag}.out
96
97 # Generate Configuration Manual HTML
98 if [ -x ${tmpdir}/scripts/www/build-cfg-help.pl ]; then
99 make -C ${tmpdir}/src cf.data
100 mkdir -p ${tmpdir}/doc/cfgman
101 ${tmpdir}/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${tmpdir}/doc/cfgman ${tmpdir}/src/cf.data
102 sh -c "cd ${tmpdir}/doc/cfgman && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${date}-cfgman.tar.gz *"
103 echo ${PACKAGE}-${VERSION}-${date}-cfgman.tar.gz >>${tag}.out
104 ${tmpdir}/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${PACKAGE}-${VERSION}-${date}-cfgman.html -f singlehtml ${tmpdir}/src/cf.data
105 gzip -f -9 ${PACKAGE}-${VERSION}-${date}-cfgman.html
106 echo ${PACKAGE}-${VERSION}-${date}-cfgman.html.gz >>${tag}.out
107 fi
108
109 # Collate Manual Pages and generate HTML versions
110 if (groff --help >/dev/null); then
111 make -C ${tmpdir}/src squid.8
112 if [ ! -d ${tmpdir}/doc/manuals ] ; then
113 mkdir -p ${tmpdir}/doc/manuals
114 fi
115 for f in `ls -1 ${tmpdir}/helpers/*/*/*.8 ${tmpdir}/src/*.8 ${tmpdir}/tools/*.1 ${tmpdir}/tools/*.8 ./helpers/*/*/*.8 2>/dev/null` ; do
116 cp $f ${tmpdir}/doc/manuals/
117 done
118 for f in `ls -1 ${tmpdir}/doc/manuals/*.1 ${tmpdir}/doc/manuals/*.8 2>/dev/null` ; do
119 cat ${f} | groff -E -Thtml -mandoc >${f}.html
120 done
121 sh -c "cd ${tmpdir}/doc/manuals && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${date}-manuals.tar.gz *.html *.1 *.8"
122 echo ${PACKAGE}-${VERSION}-${date}-manuals.tar.gz >>${tag}.out
123 fi
124
125 # Generate language-pack tarballs
126 # NP: Only to be done on trunk.
127 if test "${tag}" = "trunk" ; then
128 sh -c "cd ${tmpdir}/errors && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${date}-langpack.tar.gz ./*/* ./alias* ./TRANSLATORS ./COPYRIGHT "
129 echo ${PACKAGE}-${VERSION}-${date}-langpack.tar.gz >>${tag}.out
130 fi