feat/release-page #2
1 changed files with 12 additions and 1 deletions
Makefile: -aarm64 to dpkg-buildpackage for arm64 cross-builds
Some checks failed
Forgejo Release postit-deb / release (push) Has been cancelled
Some checks failed
Forgejo Release postit-deb / release (push) Has been cancelled
dpkg-buildpackage -b uses the host architecture for both naming and packaging, ignoring dotnet's --runtime flag. The cross-build for arm64 therefore produced postit_*_amd64.deb (with arm64 .so inside, weird) instead of postit_*_arm64.deb. Worse, the subsequent arm64 step then saw no arm64 .deb in /src/ and failed with 'Missing .deb files'. Pass -aarm64 (or -aamd64) to dpkg-buildpackage so it tags the .deb with the right Debian architecture. Linux-arm64 dotnet runtime publishes binaries for arm64 already; we just need the .deb filename to match. Caveat: this also tells dpkg-buildpackage that the build is targeting arm64, which may cause it to look for arm64-specific tooling. In practice for this packaging the only tool is objcopy/strip (both disabled for the cross-build) and dpkg-shlibdeps (which we already enable with multi-arch libc:arm64 etc.).
commit
05016eb6e8
13
Makefile
13
Makefile
|
|
@ -42,8 +42,19 @@ deb:
|
|||
# pattern would otherwise be re-used by dpkg-deb if the
|
||||
# previous run left it lying around).
|
||||
rm -f ../postit_*$(POSTIT_GIT_TAG)-1*.deb ../postit_*.buildinfo ../postit_*.changes
|
||||
# dpkg-buildpackage doesn't know about dotnet's --runtime.
|
||||
# It uses the host arch by default, so cross-compiled builds
|
||||
# end up named '_amd64.deb' regardless of POSTIT_RUNTIME.
|
||||
# -aarm64 forces the .deb to be tagged and named as arm64.
|
||||
# Override DEB_BUILD_GNU_TYPE so dpkg doesn't try to use
|
||||
# arm64 tools on an amd64 host.
|
||||
case "$(POSTIT_RUNTIME)" in
|
||||
linux-arm64) DPKG_ARCH=arm64 ;;
|
||||
linux-x64) DPKG_ARCH=amd64 ;;
|
||||
*) echo " ERROR: unsupported POSTIT_RUNTIME=$(POSTIT_RUNTIME)" >&2; exit 1 ;;
|
||||
esac
|
||||
POSTIT_GIT_URL=$(POSTIT_GIT_URL) POSTIT_GIT_TAG=$(POSTIT_GIT_TAG) POSTIT_RUNTIME=$(POSTIT_RUNTIME) \
|
||||
dpkg-buildpackage -us -uc -b
|
||||
dpkg-buildpackage -us -uc -b -a$$DPKG_ARCH
|
||||
# dpkg-buildpackage already writes the produced .deb to
|
||||
# /src/_src/../ = $POSTIT_OUT_DIR (its default — there's no
|
||||
# flag to change it). So no 'mv' is needed. The old 'mv'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue