fix: netavark GLIBC mismatch in ISO, container adopt, app updates
ISO build no longer copies netavark from build host (Debian 13/GLIBC 2.41) which broke container networking on Debian 12 targets. Rootfs already installs netavark from Debian 12 repos — just configure the backend. Install RPC now adopts existing containers (from first-boot) instead of erroring on duplicates. Container scanner extracts real versions from image tags and detects available updates against pinned versions. Frontend shows update button with version info when updates are available. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -905,14 +905,10 @@ mkdir -p "$ARCH_DIR"
|
||||
mkdir -p "$ARCH_DIR/bin"
|
||||
mkdir -p "$ARCH_DIR/scripts"
|
||||
|
||||
# Embed netavark + aardvark-dns for container DNS (podman CNI lacks DNS)
|
||||
if [ -f /usr/lib/podman/netavark ] && [ -f /usr/lib/podman/aardvark-dns ]; then
|
||||
cp /usr/lib/podman/netavark "$ARCH_DIR/bin/netavark"
|
||||
cp /usr/lib/podman/aardvark-dns "$ARCH_DIR/bin/aardvark-dns"
|
||||
echo " Embedded netavark + aardvark-dns in ISO"
|
||||
else
|
||||
echo " WARNING: netavark/aardvark-dns not found — install with: apt install aardvark-dns netavark"
|
||||
fi
|
||||
# netavark + aardvark-dns are installed in the rootfs via Dockerfile.rootfs (Debian 12 packages).
|
||||
# Do NOT copy from the build host — the host may run a newer glibc (e.g. Debian 13)
|
||||
# and the resulting binary will fail on the Debian 12 target with GLIBC_2.39 not found.
|
||||
echo " netavark + aardvark-dns: included in rootfs (Debian 12 packages)"
|
||||
|
||||
# Copy the pre-built rootfs
|
||||
echo " Including root filesystem..."
|
||||
@@ -2033,24 +2029,18 @@ insecure = true
|
||||
REGCONF
|
||||
chown -R 1000:1000 /mnt/target/home/archipelago/.config
|
||||
|
||||
# Install netavark + aardvark-dns for container DNS resolution on archy-net.
|
||||
# Debian 12's podman defaults to CNI which lacks DNS. Netavark provides built-in DNS.
|
||||
# Binaries are embedded in the ISO at build time (archipelago/bin/).
|
||||
if [ -f "$BOOT_MEDIA/archipelago/bin/netavark" ] && [ -f "$BOOT_MEDIA/archipelago/bin/aardvark-dns" ]; then
|
||||
mkdir -p /mnt/target/usr/lib/podman
|
||||
cp "$BOOT_MEDIA/archipelago/bin/netavark" /mnt/target/usr/lib/podman/netavark
|
||||
cp "$BOOT_MEDIA/archipelago/bin/aardvark-dns" /mnt/target/usr/lib/podman/aardvark-dns
|
||||
chmod +x /mnt/target/usr/lib/podman/netavark /mnt/target/usr/lib/podman/aardvark-dns
|
||||
# Configure podman to use netavark backend (enables container DNS)
|
||||
# Configure podman to use netavark backend (enables container DNS on archy-net).
|
||||
# netavark + aardvark-dns binaries come from the rootfs (Debian 12 apt packages).
|
||||
if [ -f /mnt/target/usr/lib/podman/netavark ]; then
|
||||
mkdir -p /mnt/target/home/archipelago/.config/containers
|
||||
cat > /mnt/target/home/archipelago/.config/containers/containers.conf <<'CONTAINERSCONF'
|
||||
[network]
|
||||
network_backend = "netavark"
|
||||
CONTAINERSCONF
|
||||
chown -R 1000:1000 /mnt/target/home/archipelago/.config/containers
|
||||
echo " Installed netavark + aardvark-dns (container DNS enabled)"
|
||||
echo " Configured netavark backend (container DNS enabled)"
|
||||
else
|
||||
echo " WARNING: netavark/aardvark-dns not found in ISO — container DNS will not work"
|
||||
echo " WARNING: netavark not found in rootfs — container DNS will not work"
|
||||
fi
|
||||
|
||||
# Laptop support: ignore lid close so server keeps running
|
||||
|
||||
Reference in New Issue
Block a user