Build Linux x64 against an isolated sysroot.
Some checks failed
Tagged release / prepare-release (push) Successful in 2m54s
Tagged release / build-linux-x64 (push) Failing after 6m6s
Tagged release / build-macos (push) Has been skipped
Tagged release / build-linux-arm64 (push) Has been skipped
Tagged release / build-windows (push) Has been skipped
Tagged release / publish-release (push) Has been skipped

This commit is contained in:
Hermes Agent
2026-08-14 14:34:42 +00:00
parent dfba7efdac
commit b0e10f52e7
3 changed files with 35 additions and 27 deletions

View File

@@ -43,11 +43,7 @@ case "$target" in
"$native_sources"
sudo apt-get update
# The full runner image includes these Architecture: all Python tools.
# They are unrelated to the build, but make apt replace native Python
# while resolving foreign-architecture development packages.
sudo env DEBIAN_FRONTEND=noninteractive apt-get remove -y mercurial python3-importlib-metadata python3-jwt
install_packages python3 python3-typing-extensions
install_packages build-essential cmake gcc-x86-64-linux-gnu g++-x86-64-linux-gnu pkg-config
sudo dpkg --add-architecture amd64
{
@@ -67,15 +63,22 @@ case "$target" in
'Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg'
} | sudo tee /etc/apt/sources.list.d/ruds-amd64.sources >/dev/null
sudo apt-get update
install_packages \
build-essential \
cmake \
gcc-x86-64-linux-gnu \
g++-x86-64-linux-gnu \
# Foreign development packages contain architecture-specific helper
# programs whose maintainer scripts cannot run on the arm64 host.
# Download them without installing and extract a link-only sysroot.
sysroot=/opt/ruds-x64-sysroot
archives=/tmp/ruds-x64-archives
sudo mkdir -p "$archives/partial" "$sysroot"
sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
--download-only \
-o Dir::Cache::archives="$archives" \
libgtk-3-dev:amd64 \
libwebkit2gtk-4.1-dev:amd64 \
libxdo-dev:amd64 \
pkg-config
libxdo-dev:amd64
for package in "$archives"/*.deb; do
sudo dpkg-deb --extract "$package" "$sysroot"
done
;;
*)
echo "unsupported Linux build target: $target" >&2

View File

@@ -139,9 +139,10 @@ jobs:
CC_x86_64_unknown_linux_gnu: x86_64-linux-gnu-gcc
CXX_x86_64_unknown_linux_gnu: x86_64-linux-gnu-g++
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER: x86_64-linux-gnu-gcc
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS: -C link-arg=-Wl,-rpath,$ORIGIN -L native=/usr/lib/x86_64-linux-gnu
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS: -C link-arg=-Wl,-rpath,$ORIGIN -L native=/opt/ruds-x64-sysroot/usr/lib/x86_64-linux-gnu -L native=/opt/ruds-x64-sysroot/lib/x86_64-linux-gnu
PKG_CONFIG_ALLOW_CROSS: "1"
PKG_CONFIG_LIBDIR: /usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig
PKG_CONFIG_LIBDIR: /opt/ruds-x64-sysroot/usr/lib/x86_64-linux-gnu/pkgconfig:/opt/ruds-x64-sysroot/usr/lib/pkgconfig:/opt/ruds-x64-sysroot/usr/share/pkgconfig
PKG_CONFIG_SYSROOT_DIR: /opt/ruds-x64-sysroot
steps:
- name: Check out the tag
uses: actions/checkout@v4