Skip to content

Bump Docker base images to Ubuntu 24.04 / Debian Trixie#1261

Open
mbouaziz wants to merge 5 commits into
SkipLabs:mainfrom
mbouaziz:docker-base-noble-trixie
Open

Bump Docker base images to Ubuntu 24.04 / Debian Trixie#1261
mbouaziz wants to merge 5 commits into
SkipLabs:mainfrom
mbouaziz:docker-base-noble-trixie

Conversation

@mbouaziz
Copy link
Copy Markdown
Contributor

Summary

  • Bump core build chain: Dockerfile to ubuntu:24.04, skiplang/Dockerfile to debian:trixie-20260518-slim (and parallel LLVM apt-repo + apt-install.sh codename changes; --break-system-packages for PEP 668 on Noble).
  • Trixie ships glibc 2.41, so libskipruntime.so releases now require glibc ≥ 2.41 — dropping Debian 12, Ubuntu 22.04, RHEL 8/9 from the supported set for the native runtime.
  • Surface the new floor everywhere a user is likely to hit it: install_runtime.sh refuses to install on older hosts (steering them to @skipruntime/wasm); @skipruntime/native's package.json adds os / cpu / libc so npm itself enforces it via optionalDependencies in @skiplabs/skip; READMEs and bin/README.md release procedure document the floor.

Test plan

  • Rebuild and push skiplabs/skiplang, skiplabs/skiplang-bin-builder, skiplabs/skdb-base, skiplabs/skip (amd64 + arm64) so CI exercises the new base
  • CI green on Circle against the rebuilt images
  • objdump -T build/libskipruntime.so-linux-amd64 | grep -oE 'GLIBC_[0-9.]+' | sort -Vu | tail confirms the floor moved to 2.41
  • Run bin/install_runtime.sh on an Ubuntu 22.04 host and verify it refuses with the wasm hint, instead of installing a binary that fails to dlopen
  • npm install @skipruntime/native on macOS / Windows now no-ops via the os constraint (or errors clearly), instead of trying to build the native addon

Follow-ups (not in this PR)

  • Bump SQL / SKDB JDK from Temurin 20 (EOL) to 21 LTS — five files including build.gradle.ktss
  • Pin skipruntime-ts/tests/native_addon{,_unreleased}/Dockerfile off floating ubuntu:latest
  • Changelog entry for the platform drop

mbouaziz and others added 5 commits May 29, 2026 14:10
Main Dockerfile moves to ubuntu:24.04 (Noble LTS); skiplang/Dockerfile
moves to debian:trixie-20260518-slim. The trixie jump raises the minimum
glibc for libskipruntime.so binary releases from 2.36 to 2.41, dropping
support for Bookworm-era systems (Debian 12, Ubuntu 22.04, RHEL 8/9).

Also update LLVM apt repo codenames (jammy → noble in apt-install.sh,
bookworm → trixie in skiplang/Dockerfile), and add --break-system-packages
to the pip install in apt-install.sh since Ubuntu 24.04 enforces PEP 668.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
libskipruntime.so is now built on Debian Trixie (glibc 2.41). Detect the
host glibc via ldd and refuse to install on older systems with a message
pointing to @skipruntime/wasm, rather than letting the user discover the
incompatibility at dlopen time via an opaque "GLIBC_2.41 not found" error.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a Requirements section to the addon README pointing users on older
hosts at @skipruntime/wasm, and update the release procedure to require
release notes state the glibc floor and to verify it via objdump.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add os/cpu/libc to package.json so npm refuses installation on
Windows/macOS, ia32/non-amd64-arm64, and musl-based hosts that cannot
load libskipruntime.so. When this package is installed via the
@skiplabs/skip meta-package as an optionalDependency, npm will then
silently skip it on incompatible hosts and the consumer falls back to
@skipruntime/wasm.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
README, INSTALL, and the getting-started doc all describe the native vs
wasm runtime trade-off but said nothing about platform support. Note the
Linux amd64/arm64 + glibc >= 2.41 floor so users on Windows, macOS, or
older Linux distros are steered to @skipruntime/wasm up front rather
than hitting it at npm install / dlopen time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants