chiark / gitweb /
el/dot-emacs.el: Better fontification for Ediff.
[profile] / bin / mdw-sbuild
index 7bbeb3c7cba5a8aef54c4fae257d22266e2cce13..5630dab8960efa5b1a538e27e9bb0c5216c03328 100755 (executable)
@@ -33,8 +33,8 @@ fail_usage () { usage >&2; exit 1; }
 ###--------------------------------------------------------------------------
 ### Parse options.
 
-bogusp=nil noactp=nil
-unset buildopts keyid
+bogusp=nil noactp=nil signp=nil
+unset buildopts
 while getopts "haik:nt:" opt; do
   case $opt in
     h)
@@ -90,12 +90,22 @@ cd ..
 dsc=${pkg}_${ver}.dsc
 [ -f "$dsc" ] || fail "where is my \`.dsc' file?"
 
+## Actually do the build.  Get a build directory assigned by the server,
+## upload the sources, run the build, and collect the results.
 builddir=$(ssh "$host" mdw-sbuild-server dir "$pkg/$ver")
 dcmd rsync -a "$dsc" "$host:$builddir/"
 set +e; ssh "$host" mdw-sbuild-server $buildopts build "$builddir"
 rc=$?; set -e
 rsync -a "$host:$builddir/" ./
 case $rc in 0) ;; *) exit $rc ;; esac
-case $?,${keyid+t},$noactp in
-  0,t,nil) debsign -k"$keyid" "${pkg}_${ver}_"*.changes ;;
+
+## Merge the change files together, and maybe sign the result.
+chchch=${pkg}_${ver}_source.changes
+for i in "${pkg}_${ver}"_*.changes; do
+  case " $chchch " in *" $i "*) ;; *) chchch="$chchch $i" ;; esac
+done
+mergechanges -f $chchch
+rm $chchch
+case $signp in
+  t) debsign -k"$keyid" "${pkg}_${ver}_multi.changes" ;;
 esac