2f354ab35a7c0c24f0869bc0dc26a9c6a8418272
[ira/wip.git] / lib / talloc / script / release-script.sh
1 #!/bin/bash
2
3 if [ "$1" = "" ]; then
4     echo "Please provide version string, eg: 1.2.0"
5     exit 1
6 fi
7
8 if [ ! -d "lib/talloc" ]; then
9     echo "Run this script from the samba base directory."
10     exit 1
11 fi
12
13 curbranch=`git branch |grep "^*" | tr -d "* "`
14
15 version=$1
16 strver=`echo ${version} | tr "." "-"`
17
18 # Checkout the release tag
19 git branch -f talloc-release-script-${strver} talloc-${strver}
20 if [ ! "$?" = "0" ];  then
21     echo "Unable to checkout talloc-${strver} release"
22     exit 1
23 fi
24
25 function cleanquit {
26     #Clean up
27     git checkout $curbranch
28     git branch -d talloc-release-script-${strver}
29     exit $1
30 }
31
32 # NOTE: use cleanquit after this point
33 git checkout talloc-release-script-${strver}
34
35 # Test configure agrees with us
36 confver=`grep "^AC_INIT" lib/talloc/configure.ac | tr -d "AC_INIT(talloc, " | tr -d ")"`
37 if [ ! "$confver" = "$version" ]; then
38     echo "Wrong version, requested release for ${version}, found ${confver}"
39     cleanquit 1
40 fi
41
42 # Check exports and signatures are up to date
43 pushd lib/talloc
44 ./script/abi_checks.sh talloc talloc.h
45 abicheck=$?
46 popd
47 if [ ! "$abicheck" = "0" ]; then
48     echo "ERROR: ABI Checks produced warnings!"
49     cleanquit 1
50 fi
51
52 git clean -f -x -d lib/talloc
53 git clean -f -x -d lib/replace
54
55 # Now build tarball
56 cp -a lib/talloc talloc-${version}
57 cp -a lib/replace talloc-${version}/libreplace
58 pushd talloc-${version}
59 ./autogen.sh
60 popd
61 tar cvzf talloc-${version}.tar.gz talloc-${version}
62 rm -fr talloc-${version}
63
64 cleanquit 0
65