fix: restore musl static build, brand GRUB as Archipelago
Runner is Debian 13 (glibc 2.41), ISO rootfs is Debian 12/bookworm (glibc 2.36). Dynamic binary crashes with GLIBC_2.41 not found. Musl static build eliminates the dependency entirely. Also set GRUB_DISTRIBUTOR="Archipelago" so installed system boot menu says "Archipelago" not "Debian GNU/Linux". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
42c29b99e2
commit
5f40cd2af4
@ -30,26 +30,32 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# Skip apt if packages already installed (persistent runner)
|
# Skip apt if packages already installed (persistent runner)
|
||||||
if dpkg -s debootstrap squashfs-tools xorriso isolinux syslinux-common mtools \
|
if dpkg -s debootstrap squashfs-tools xorriso isolinux syslinux-common mtools \
|
||||||
grub-efi-amd64-bin grub-pc-bin grub-common >/dev/null 2>&1; then
|
grub-efi-amd64-bin grub-pc-bin grub-common musl-tools >/dev/null 2>&1; then
|
||||||
echo "ISO build deps already installed, skipping apt"
|
echo "ISO build deps already installed, skipping apt"
|
||||||
else
|
else
|
||||||
sudo apt-get update -qq
|
sudo apt-get update -qq
|
||||||
sudo apt-get install -y -qq \
|
sudo apt-get install -y -qq \
|
||||||
debootstrap squashfs-tools xorriso \
|
debootstrap squashfs-tools xorriso \
|
||||||
isolinux syslinux-common mtools \
|
isolinux syslinux-common mtools \
|
||||||
grub-efi-amd64-bin grub-pc-bin grub-common
|
grub-efi-amd64-bin grub-pc-bin grub-common \
|
||||||
|
musl-tools
|
||||||
fi
|
fi
|
||||||
|
# Ensure musl Rust target is available
|
||||||
|
source $HOME/.cargo/env 2>/dev/null || true
|
||||||
|
rustup target add x86_64-unknown-linux-musl 2>/dev/null || true
|
||||||
|
|
||||||
- name: Build backend (incremental)
|
- name: Build backend (incremental, musl static)
|
||||||
run: |
|
run: |
|
||||||
source $HOME/.cargo/env 2>/dev/null || true
|
source $HOME/.cargo/env 2>/dev/null || true
|
||||||
# Build in persistent repo dir to reuse target/ cache
|
# Build in persistent repo dir to reuse target/ cache
|
||||||
cd "$HOME/archy"
|
cd "$HOME/archy"
|
||||||
export GIT_HASH=$(git rev-parse --short HEAD)
|
export GIT_HASH=$(git rev-parse --short HEAD)
|
||||||
cargo build --release --manifest-path core/Cargo.toml
|
# Static musl build — runner is Debian 13 (glibc 2.41) but ISO rootfs
|
||||||
|
# is Debian 12/bookworm (glibc 2.36). Dynamic binary won't run.
|
||||||
|
cargo build --release --target x86_64-unknown-linux-musl --manifest-path core/Cargo.toml
|
||||||
# Copy binary to workspace for downstream steps
|
# Copy binary to workspace for downstream steps
|
||||||
mkdir -p "$GITHUB_WORKSPACE/core/target/release"
|
mkdir -p "$GITHUB_WORKSPACE/core/target/release"
|
||||||
cp core/target/release/archipelago "$GITHUB_WORKSPACE/core/target/release/"
|
cp core/target/x86_64-unknown-linux-musl/release/archipelago "$GITHUB_WORKSPACE/core/target/release/"
|
||||||
|
|
||||||
- name: Build frontend
|
- name: Build frontend
|
||||||
run: cd neode-ui && npm ci && npm run build
|
run: cd neode-ui && npm ci && npm run build
|
||||||
|
|||||||
@ -2564,6 +2564,10 @@ rm -f /mnt/target/etc/initramfs-tools/conf.d/live-boot* 2>/dev/null || true
|
|||||||
rm -f /mnt/target/usr/share/initramfs-tools/scripts/live* 2>/dev/null || true
|
rm -f /mnt/target/usr/share/initramfs-tools/scripts/live* 2>/dev/null || true
|
||||||
rm -f /mnt/target/usr/share/initramfs-tools/hooks/live* 2>/dev/null || true
|
rm -f /mnt/target/usr/share/initramfs-tools/hooks/live* 2>/dev/null || true
|
||||||
|
|
||||||
|
# Brand GRUB as Archipelago (default says "Debian GNU/Linux")
|
||||||
|
sed -i 's/^GRUB_DISTRIBUTOR=.*/GRUB_DISTRIBUTOR="Archipelago"/' /mnt/target/etc/default/grub
|
||||||
|
grep -q '^GRUB_DISTRIBUTOR' /mnt/target/etc/default/grub || echo 'GRUB_DISTRIBUTOR="Archipelago"' >> /mnt/target/etc/default/grub
|
||||||
|
|
||||||
# Suppress os-prober warning in GRUB
|
# Suppress os-prober warning in GRUB
|
||||||
echo "GRUB_DISABLE_OS_PROBER=true" >> /mnt/target/etc/default/grub
|
echo "GRUB_DISABLE_OS_PROBER=true" >> /mnt/target/etc/default/grub
|
||||||
# GFX fallback for hardware without graphical GRUB support
|
# GFX fallback for hardware without graphical GRUB support
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user