usage () {
cat <<EOF
-Usage: $prog [-vr] BUILDOPT
+Usage: $prog [-v] BUILDOPT
Build options:
## Parse simple options.
verbose=no
-while getopts "hvr" opt; do
+while getopts "hv" opt; do
case "$opt" in
h) usage; exit 0 ;;
v) verbose=yes ;;
esac
cd ..
done
-assign srcpath $(pwd)
+assign toppath $(pwd)
+assign srcpath $toppath
## Build any necessary qualifiers.
qual= sep=.
debver=none
;;
yes,yes)
- debver=$(dpkg-parsechangelog | sed -n 's/^Version: //p' | tr \~ -)
+ debver=$(dpkg-parsechangelog | sed -n 's/^Version: //p')
debsrc=$(dpkg-parsechangelog | sed -n 's/^Source: //p')
debname=$(git config user.name) debemail=$(git config user.email)
;;
run git clone -sn $srcpath/.git _source
assign srcpath $releasepath/_source
cd $srcpath
- run git checkout -b mdw-build $checkoutrev
- gitver=$(git describe --abbrev=4)
+ run git update-ref refs/heads/mdw-build $checkoutrev ""
+ run git symbolic-ref HEAD refs/heads/mdw-build
+ run git read-tree --reset refs/heads/mdw-build
+ run git checkout-index -afu
+ assign gitversion "$(git describe --abbrev=4)"
;;
esac
## Check the version number.
hack_dch_p=no
-case "$gitver,$debver" in
+case "$gitversion,$debver" in
none,* | *,none)
;;
*)
- if [ "$gitver" != "$debver" ]; then
- warn "Git version $gitver doesn't match Debian version $debver"
+ dvref=$(echo "$debver" | tr '~' '_')
+ if [ "$gitversion" = "$dvref" ]; then
+ assign debversion "$debver"
+ else
+ warn "Git version $gitversion doesn't match Debian version $debver"
hack_dch=yes
+ dver=$(echo $gitversion | sed 's/-/+/; s/-/./g')
+ case $debver in *~) dver=$debver$dver ;; esac
+ assign debversion "$dver"
+ now=$(date -R)
fi
;;
esac
cd $distdir
case $hack_dch in
yes)
- dver=$(echo $gitver | sed 's/-/+/; s/-/./g')
- now=$(date -R)
cat - debian/changelog >debian/changelog.new <<EOF
-$debsrc ($dver) experimental; urgency=low
+$debsrc ($debversion) experimental; urgency=low
* Hacking in process, not intended for release.
mv debian/changelog.new debian/changelog
;;
esac
+ sbuildargs=$sbuildsrv
+ case $sbuild,$build in
+ yes,release)
+ case $sign in yes) sbuildargs="-k$signkey $sbuildargs" ;; esac
+ ;;
+ yes,*)
+ if [ -d $toppath/dist-$build.pkgs ]; then
+ sbuildargs="-p$toppath/dist-$build.pkgs $sbuildargs"
+ fi
+ ;;
+ esac
case $sbuild,$build,$sign in
- yes,release,yes) run mdw-sbuild -k$signkey $sbuildsrv ;;
- yes,*) run mdw-sbuild $sbuildsrv ;;
+ yes,*) run mdw-sbuild $sbuildargs ;;
no,release,yes) run dpkg-buildpackage -k$signkey ;;
no,*) run dpkg-buildpackage -us -uc ;;
esac