exit 1
fi
-[ -z "$arch" ] && arch="$DEB_BUILD_ARCH"
-
dist="$(sed -ne 's,Distribution: ,,p' "$schangesfile")"
schangesfile_basename="${schangesfile##*/}"
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"
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