workflow: also install arm64 runtime libs (libc6:arm64, etc.)
Some checks failed
Forgejo Release postit-deb / release (push) Failing after 2m5s
Some checks failed
Forgejo Release postit-deb / release (push) Failing after 2m5s
crossbuild-essential-arm64 only pulls gcc-aarch64-linux-gnu +
binutils-aarch64-linux-gnu + dpkg-cross. It does NOT transitively
pull libc6:arm64 (verified on the Debian package index: the Depends
chain stops at gcc-12-aarch64-linux-gnu, which doesn't depend on
libc6:arm64). So dh_makeshlibs works (binutils is there), but
dh_shlibdeps has no arm64 shlibs cache to read from.
Add explicit runtime libs after a dpkg --add-architecture arm64 +
apt-get update:
dpkg --add-architecture arm64
apt-get update
apt-get install -y --no-install-recommends \
build-essential debhelper imagemagick librsvg2-bin \
ca-certificates crossbuild-essential-arm64 \
libc6:arm64 libstdc++6:arm64 \
libfontconfig1:arm64 libfreetype6:arm64 \
libgtk-3-0:arm64
If the arm64 packages are unavailable from the runner's
configured apt sources, this run will fail with 'Unable to
locate package libc6:arm64' — but that was a real failure
mode already explored in earlier runs (run #31, before we had
dpkg --add-architecture arm64 in place).
This commit is contained in:
parent
39729b8d0d
commit
c2cdb88e64
1 changed files with 18 additions and 16 deletions
|
|
@ -74,24 +74,26 @@ jobs:
|
||||||
# via `convert`, librsvg2-bin pour le SVG).
|
# via `convert`, librsvg2-bin pour le SVG).
|
||||||
run: |
|
run: |
|
||||||
apt-get update
|
apt-get update
|
||||||
# crossbuild-essential-arm64 is the official Debian
|
# Cross-build deps for arm64:
|
||||||
# meta-package for arm64 cross-compilation. It pulls
|
# 1. dpkg --add-architecture arm64 + apt-get update — make
|
||||||
# in gcc-aarch64-linux-gnu, binutils-aarch64-linux-gnu,
|
# apt aware of arm64 packages.
|
||||||
# libc6-dev:arm64, linux-libc-dev:arm64, and sets up
|
# 2. Install the arm64 RUNTIME libs (libc6:arm64, etc.)
|
||||||
# dpkg-cross (CONFIG_SITE under /etc/dpkg-cross/).
|
# so dpkg-shlibdeps can resolve the .so dependencies
|
||||||
# For our package, the key bits are:
|
# of the arm64 binaries via the on-host shlibs cache.
|
||||||
# - binutils-aarch64-linux-gnu (provides
|
# The runtime libs (not -dev:arm64) is what carries
|
||||||
# aarch64-linux-gnu-objdump needed by dh_makeshlibs)
|
# the SONAME metadata that dpkg-shlibdeps matches.
|
||||||
# - libc6-dev:arm64 and friends (so dpkg-shlibdeps can
|
# 3. crossbuild-essential-arm64 pulls gcc/binutils for
|
||||||
# resolve the arm64 binaries' NEEDED entries against
|
# arm64, plus dpkg-cross CONFIG_SITE files under
|
||||||
# the cross-arch shlibs cache installed on the host).
|
# /etc/dpkg-cross/. The cross-gcc is unused for our
|
||||||
# The arm64 gcc isn't strictly needed (we have no C
|
# dotnet-only build but harmless.
|
||||||
# code to compile — only dotnet publish), but it doesn't
|
dpkg --add-architecture arm64
|
||||||
# hurt and keeps the environment consistent for any
|
apt-get update
|
||||||
# future C-coded debhelper rules.
|
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
build-essential debhelper imagemagick librsvg2-bin \
|
build-essential debhelper imagemagick librsvg2-bin \
|
||||||
ca-certificates crossbuild-essential-arm64
|
ca-certificates crossbuild-essential-arm64 \
|
||||||
|
libc6:arm64 libstdc++6:arm64 \
|
||||||
|
libfontconfig1:arm64 libfreetype6:arm64 \
|
||||||
|
libgtk-3-0:arm64
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
: > "$STATE_FILE"
|
: > "$STATE_FILE"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue