From: Michael Howe Date: Tue, 26 Dec 2023 00:01:04 +0000 (+0000) Subject: Add build-package-multi X-Git-Tag: 1.6~2 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=27c528ed00d6c2b2c8a8d4425317a8c67e243454;p=packages%2Fm%2Fmh-sysadmin-tools.git Add build-package-multi --- diff --git a/bin/build-package-multi b/bin/build-package-multi new file mode 100755 index 0000000..355fc7e --- /dev/null +++ b/bin/build-package-multi @@ -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")" diff --git a/debian/changelog b/debian/changelog index ca2670d..42f48f9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Thu, 07 Aug 2014 19:11:00 +0100 + -- Michael Howe Mon, 25 Dec 2023 23:09:44 +0000 mh-sysadmin-tools (1.5) unstable; urgency=low