X-Git-Url: https://git.madduck.net/code/mbuild.git/blobdiff_plain/4acfe4036f522fa5f1bf438d76aa76cb2e4b07e8..refs/heads/master:/sbuild-wrapper.sh?ds=sidebyside diff --git a/sbuild-wrapper.sh b/sbuild-wrapper.sh index 91da408..57dcaa6 100755 --- a/sbuild-wrapper.sh +++ b/sbuild-wrapper.sh @@ -109,8 +109,6 @@ if [ -z "$schangesfile" ]; then exit 1 fi -[ -z "$arch" ] && arch="$DEB_BUILD_ARCH" - dist="$(sed -ne 's,Distribution: ,,p' "$schangesfile")" schangesfile_basename="${schangesfile##*/}" @@ -157,20 +155,38 @@ done rm $schangesfile unset schangesfile -if [ "$binonly" = 0 ]; then - sbuild_args_sourceful="--source --arch-all" -fi +[ -z "$arch" ] && arch="$DEB_BUILD_ARCH" -if [ "$arch" = all ]; then - arch="$(schroot -l | sed -rne 's,^sid-([^-]+).*,\1,p' | uniq | tr '\n' ' ')" +target_arch="$(sed -ne 's,^Architecture: ,,p' $dscfile_basename)" +case "$binonly/$target_arch" in + 1/all) + echo "E: cannot build arch:all packages with -B." >&2 + exit 1 + ;; + 0/all) arch=all;; + */any) + arch="$(schroot -l | sed -rne 's,^sid-([^-]+).*,\1,p' | uniq | tr '\n' ' ')" + ;; +esac + +if [ "$binonly" = 0 ]; then + sbuild_args_sourceful="--source" fi for a in $arch; do echo "I: building $packagenameversion for $a/$dist…" >&2 + case "$a" in + all) + arch_arg=--arch-all + a="$DEB_BUILD_ARCH" + ;; + *) arch_arg="--arch=$a";; + esac + sbuild $sbuild_args $sbuild_args_sourceful \ - --arch="$a" --dist="$dist" --keyid=$KEYID \ - "$dscfile_basename" + $arch_arg --dist="$dist" --keyid=$KEYID \ + "$dscfile_basename" || ret=$? changesfile="${packagenameversion}_${a}.changes" @@ -193,15 +209,17 @@ done if [ -n "${schangesfile:-}" ]; then sarch="${schangesfile##*_}"; sarch=${sarch%.changes} - combined_arch="$(echo -n "${sarch}+"; - for i in *.changes; do - [ "$i" = "$schangesfile" ] && continue - t="${i##*_}"; echo "${t%.changes}" - done)" + other_archs="$(for i in *.changes; do + [ "$i" = "$schangesfile" ] && continue + t="${i##*_}"; echo "${t%.changes}" + done)" - if [ -n "$combined_arch" ]; then + if [ -n "$other_archs" ]; then + combined_arch="${sarch}+${other_archs}" mergechanges *.changes > ${packagenameversion}_${combined_arch}.changes arch="$combined_arch" + else + arch="$sarch" fi fi