Summary
WFL publishes a Windows MSI nightly but no Linux artifact, so Linux users build from source (~25 min on a small box). I've stood up a nightly Linux builder, and in doing so hit a portability constraint worth recording: a binary built on Ubuntu 24.04 links against glibc 2.38/2.39 and will not run on older distributions.
$ ./wfl --version
./wfl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by ./wfl)
./wfl: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by ./wfl)
The same binary runs fine on Ubuntu 24.04. So any published Linux nightly built on a current runner is implicitly "Ubuntu 24.04 or newer" — which excludes Debian 12, Ubuntu 22.04, and most enterprise LTS distros still in wide use.
Suggestions (pick whichever fits the project's goals)
- Build the release artifact against an older glibc — e.g. build in a Debian 12 or Ubuntu 22.04 container. Binaries built against an older glibc run on newer systems; the reverse is not true. Cheapest option, widest reach, no code change.
- Ship a statically-linked
x86_64-unknown-linux-musl build alongside the glibc one. Fully portable, no libc dependency at all. Some crates need attention under musl, but for a CLI/interpreter it's usually painless.
- At minimum, document the floor — state the minimum glibc/distro in the release notes and in
Docs/, so a user on Debian 12 gets an explanation rather than a linker error.
Related: this affects the WFL Foundation principle of being approachable — the first thing a new Linux user meets shouldn't be a glibc symbol error.
Environment
- wfl 26.7.37, built from
main with cargo build --release --locked (rustc 1.97.0) on Ubuntu 24.04 x86_64
- Fails on: Debian-based image with glibc < 2.38
Summary
WFL publishes a Windows MSI nightly but no Linux artifact, so Linux users build from source (~25 min on a small box). I've stood up a nightly Linux builder, and in doing so hit a portability constraint worth recording: a binary built on Ubuntu 24.04 links against glibc 2.38/2.39 and will not run on older distributions.
The same binary runs fine on Ubuntu 24.04. So any published Linux nightly built on a current runner is implicitly "Ubuntu 24.04 or newer" — which excludes Debian 12, Ubuntu 22.04, and most enterprise LTS distros still in wide use.
Suggestions (pick whichever fits the project's goals)
x86_64-unknown-linux-muslbuild alongside the glibc one. Fully portable, no libc dependency at all. Some crates need attention under musl, but for a CLI/interpreter it's usually painless.Docs/, so a user on Debian 12 gets an explanation rather than a linker error.Related: this affects the WFL Foundation principle of being approachable — the first thing a new Linux user meets shouldn't be a glibc symbol error.
Environment
mainwithcargo build --release --locked(rustc 1.97.0) on Ubuntu 24.04 x86_64