Skip to content

devcontainer: derive LLVM apt repo codename from base image - #29

Merged
pbrady merged 1 commit into
mainfrom
fix/devcontainer-llvm-repo-codename
Jul 13, 2026
Merged

devcontainer: derive LLVM apt repo codename from base image#29
pbrady merged 1 commit into
mainfrom
fix/devcontainer-llvm-repo-codename

Conversation

@pbrady

@pbrady pbrady commented Jul 13, 2026

Copy link
Copy Markdown
Member

What

The devcontainer's python:3.11-slim base image silently advanced from Debian 12 (bookworm) to Debian 13 (trixie). The Dockerfile hardcoded the bookworm LLVM apt repo:

http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-${CLANG_VERSION} main

on what is now a trixie base. This derives the codename from /etc/os-release instead:

http://apt.llvm.org/${VERSION_CODENAME}/ llvm-toolchain-${VERSION_CODENAME}-${CLANG_VERSION} main

Why it matters

The mismatch was latent, not fatal: trixie ships clang-19 in its own archive, so apt installed the whole toolchain from deb.debian.org and never actually used the wrong-codename apt.llvm.org repo. But it's dead weight that would break the moment CLANG_VERSION is bumped past what Debian packages — the fallback repo would point at the wrong Debian release. Deriving the codename fixes today's mismatch and future-proofs the next base-image bump.

Validation

  • Built the base-system stage on the trixie base: apt.llvm.org/trixie now resolves (Get: https://apt.llvm.org/trixie llvm-toolchain-trixie-19 InRelease), and clang-19 / clangd-19 / clang-format-19 / lld-19 / libc++-19-dev install cleanly from deb.debian.org trixie/main.
  • Rebuilt the full local devcontainer image (gcc flavor) from scratch on trixie/gcc-14: kokkos@5.1.1 present in the Spack view; t-csr and t-dense compile and pass.

No functional change to the installed toolchain (clang-19 comes from Debian either way) — this only corrects the fallback repo codename.

The python:3.11-slim base moved from Debian 12 (bookworm) to 13 (trixie),
but the Dockerfile hardcoded the bookworm apt.llvm.org repo. It kept working
only because trixie ships clang-19 natively (the toolchain resolves from
deb.debian.org, not apt.llvm.org), leaving the mismatched repo as dead weight
that would break a CLANG_VERSION bump past what Debian packages.

Derive the codename from /etc/os-release so the repo tracks whatever Debian
codename the base image ships, fixing the mismatch and future-proofing the
next base-image bump.
@pbrady
pbrady merged commit f70dbad into main Jul 13, 2026
4 checks passed
@pbrady
pbrady deleted the fix/devcontainer-llvm-repo-codename branch July 13, 2026 18:12
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.

1 participant