Deal with Debian-native packages correctly when calculating and
[invirt/packages/invirt-dev.git] / invirt-build-release
1 #!/bin/bash
2 distribution=hardy
3 svnuri="$(invirt-getconf svn.uri)"
4
5 set -e
6 if  [ $# -eq 0 ] ; then
7         echo " usage: invirt-build-release package_name [package_name [...]]"
8         exit 1
9 fi
10
11 for package; do
12     rm -rf build-release/$package
13     svn export $svnuri/trunk/packages/$package build-release/$package
14     cd build-release/$package
15     
16     eval $(perl -ne 'print if s/^(Version|Source|Distribution): /\1=/' \
17              <(dpkg-parsechangelog))
18     dpkg-buildpackage -us -uc -rfakeroot -S
19     cd ..
20     arch_any=0
21     sed -ne 's/^Architecture: //p' ${Source}_${Version}.dsc | while read arch; do
22         case "$arch" in
23             all)
24                 ;;
25             any)
26                 arch_any=1;;
27             *)
28                 echo "invirt-build-release: arch '$Architecture' unimplemented" >&2
29                 exit 1;;
30         esac
31     done
32     if [ $arch_any -eq 0 ]; then
33         sbuild -d $distribution --arch-all   ${Source}_${Version}.dsc
34     else
35         sbuild -d $distribution --arch amd64 --arch-all ${Source}_${Version}.dsc
36         sbuild -d $distribution --arch i386  ${Source}_${Version}.dsc
37     fi
38
39     if ! svn ls $svnuri/package_tags/$Source >/dev/null 2>&1; then
40         svn mkdir $svnuri/package_tags/$Source \
41             -m "Create package tags directory"
42     fi
43     if ! svn ls $svnuri/package_tags/$Source/$Version >/dev/null 2>&1; then
44         svn cp $svnuri/trunk/packages/$package $svnuri/package_tags/$Source/$Version \
45             -m "Tag $Version of $Source"
46     else
47         echo "$(basename $0): tag already exists, not making again"
48     fi
49     
50     [ $Distribution = 'unstable' ] \
51         || echo "$(basename $0): warning: Distribution is $Distribution, script expects unstable"
52     changesfile=`pwd`/${Source}_*${Version}*.changes
53     for i in $changesfile; do
54         reprepro-env include unstable $i
55         reprepro-env copy stable unstable $(sed -ne 's/^Binary: //p' $i)
56     done
57     reprepro-env copy stable unstable $Source
58     
59     cd ..
60     rm -rf build-release/$package
61 done