#!/bin/bash read oldrev newrev head if [ $head != 'dev' ]; then echo "error: head not recognized: $head" >&2 exit 1 fi git ls-tree $newrev packages/ \ | grep ^160000\ commit \ | while read x y newsubrev packagepath; do # XXX deal with new packages # XX deal with removed packages oldsubrev=$(git ls-tree $oldrev $packagepath | perl -lane 'print $F[2]') if [ $newsubrev == $oldsubrev ]; then continue fi echo "must build $packagepath at new version $newsubrev" done exit 0 distribution=hardy svnuri="$(invirt-getconf svn.uri)" set -e if [ $# -eq 0 ] ; then echo " usage: invirt-build-release package_name [package_name [...]]" exit 1 fi for package; do rm -rf build-release/$package svn export $svnuri/trunk/packages/$package build-release/$package cd build-release/$package eval $(perl -ne 'print if s/^(Version|Source|Distribution): /\1=/' \ <(dpkg-parsechangelog)) dpkg-buildpackage -us -uc -rfakeroot -S cd .. eval $(perl -ne 'print if s/^(Architecture): /\1=/' ${Source}_${Version}.dsc) case $Architecture in all) sbuild -d $distribution --arch-all ${Source}_${Version}.dsc;; any) sbuild -d $distribution --arch amd64 --arch-all ${Source}_${Version}.dsc sbuild -d $distribution --arch i386 ${Source}_${Version}.dsc;; *) echo "invirt-build-release: arch '$Architecture' unimplemented" >&2 exit 1 esac if ! svn ls $svnuri/package_tags/$Source >/dev/null 2>&1; then svn mkdir $svnuri/package_tags/$Source \ -m "Create package tags directory" fi if ! svn ls $svnuri/package_tags/$Source/$Version >/dev/null 2>&1; then svn cp $svnuri/trunk/packages/$package $svnuri/package_tags/$Source/$Version \ -m "Tag $Version of $Source" else echo "$(basename $0): tag already exists, not making again" fi [ $Distribution = 'unstable' ] \ || echo "$(basename $0): warning: Distribution is $Distribution, script expects unstable" changesfile=`pwd`/${Source}_*${Version}*.changes for i in $changesfile; do reprepro-env include unstable $i reprepro-env copy stable unstable $(sed -ne 's/^Binary: //p' $i) done reprepro-env copy stable unstable $Source cd .. rm -rf build-release/$package done