]> git.michaelhowe.org Git - packages/m/mh-sysadmin-tools.git/commitdiff
Add build-package-multi
authorMichael Howe <michael@michaelhowe.org>
Tue, 26 Dec 2023 00:01:04 +0000 (00:01 +0000)
committerMichael Howe <michael@michaelhowe.org>
Tue, 26 Dec 2023 00:01:04 +0000 (00:01 +0000)
bin/build-package-multi [new file with mode: 0755]
debian/changelog

diff --git a/bin/build-package-multi b/bin/build-package-multi
new file mode 100755 (executable)
index 0000000..355fc7e
--- /dev/null
@@ -0,0 +1,40 @@
+#!/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")"
index ca2670d683133c27df6014b0e4865008eba33071..42f48f9e102d47e9da6532dd23d0367792164298 100644 (file)
@@ -1,9 +1,11 @@
-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