diff --git a/.gitea/scripts/install-linux-build-dependencies.sh b/.gitea/scripts/install-linux-build-dependencies.sh index 7ed67e8..8768797 100644 --- a/.gitea/scripts/install-linux-build-dependencies.sh +++ b/.gitea/scripts/install-linux-build-dependencies.sh @@ -42,6 +42,11 @@ case "$target" in '/^Architectures:/d; /^Types: deb$/a Architectures: arm64' \ "$native_sources" + # 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 + sudo dpkg --add-architecture amd64 { printf '%s\n' \ diff --git a/crates/bds-ui/tests/packaging_assets.rs b/crates/bds-ui/tests/packaging_assets.rs index 43c5d08..cb9ad52 100644 --- a/crates/bds-ui/tests/packaging_assets.rs +++ b/crates/bds-ui/tests/packaging_assets.rs @@ -169,12 +169,23 @@ fn tagged_releases_are_built_and_packaged_with_rust_tools() { "libwebkit2gtk-4.1-dev:amd64", "gcc-x86-64-linux-gnu", "Architectures: arm64", + "remove -y mercurial python3-importlib-metadata python3-jwt", ] { assert!( linux_dependencies.contains(required), "Linux dependency setup is missing {required}" ); } + let cleanup = linux_dependencies + .find("remove -y mercurial python3-importlib-metadata python3-jwt") + .expect("runner Python cleanup"); + let multiarch = linux_dependencies + .find("dpkg --add-architecture amd64") + .expect("amd64 architecture setup"); + assert!( + cleanup < multiarch, + "runner-only Python packages must be removed before enabling multiarch" + ); let workspace_manifest = fs::read_to_string(workspace.join("Cargo.toml")).unwrap(); let core_manifest = fs::read_to_string(workspace.join("crates/bds-core/Cargo.toml")).unwrap();