--- /dev/null
+#!/bin/bash
+#
+# Wrapper to build a package for multiple architectures
+#
+# Note that you can only build each architecture once, so pick the source
+# correctly (eg you can't build both Ubuntu and Debian amd64)
+#
+
+set -e
+set -u
+
+BUILDPACKAGE=/usr/bin/build-package
+BUILDPACKAGE="$(dirname $0)/build-package"
+PKGNAME=$(head -n 1 debian/changelog | awk '{print $1}')
+PKGVER=$(head -n 1 debian/changelog | awk '{print $2}' | tr -d '()')
+
+OUTPUTDIR=$(mktemp --directory "../build-$PKGNAME-$PKGVER-XXXXXX")
+
+declare -a BUILD_ARRAY=( 'bookworm:amd64:debian' 'jammy:arm64:ubuntu' 'bookworm:armhf:raspbian' )
+
+CHANGELIST=""
+for BUILDSTRING in "${BUILD_ARRAY[@]}"; do
+ DIST=${BUILDSTRING%%:*}
+ ARCH=${BUILDSTRING%:*}
+ ARCH=${ARCH##*:}
+ OS=${BUILDSTRING##*:}
+ $BUILDPACKAGE --dist "$DIST" --arch "$ARCH" --os "$OS" --output-dir "$OUTPUTDIR" .
+ CHANGELIST="${CHANGELIST} ${OUTPUTDIR}/*_${ARCH}.changes"
+done
+
+COMBINEDCHANGES="$OUTPUTDIR/${PKGNAME}_${PKGVER}_combined.changes"
+
+mergechanges "$OUTPUTDIR"/*_source.changes $CHANGELIST > "$COMBINEDCHANGES"
+
+echo "Output in $OUTPUTDIR"
+echo "Please now sign the file ${COMBINEDCHANGES}"
+echo "Either with:"
+echo -e "\tdebsign ${COMBINEDCHANGES}"
+echo "Or with:"
+echo -e "\tdebsign -r $(hostname -f) $(realpath "$COMBINEDCHANGES")"
-mh-sysadmin-tools (1.6~test.4) UNRELEASED; urgency=low
+mh-sysadmin-tools (1.6~test.5) UNRELEASED; urgency=low
* build-package: new script for package building via cowbuilder/pbuilder
+ * build-package-multi: wrapper for build-package to build for multiple
+ architectures
* with-creds: add with-creds-run-aklog script to make `-a` work correctly
- -- Michael Howe <michael@michaelhowe.org> Thu, 07 Aug 2014 19:11:00 +0100
+ -- Michael Howe <michael@michaelhowe.org> Mon, 25 Dec 2023 23:09:44 +0000
mh-sysadmin-tools (1.5) unstable; urgency=low