Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Binary release incompatible with glibc version #1382

Open
hayley-leblanc opened this issue Jan 10, 2025 · 2 comments
Open

Binary release incompatible with glibc version #1382

hayley-leblanc opened this issue Jan 10, 2025 · 2 comments

Comments

@hayley-leblanc
Copy link
Collaborator

Not sure if this is really an issue or something that you can/want to fix, but the version of glibc required by the GitHub Linux release binary is not supported on some current/recent Linux distros. I use Pop! OS 22.04, which is based on Ubuntu 22.04, and I get this error trying to run the Verus binary from the release:

./verus: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by ./verus)

ldd --version outputs ldd (Ubuntu GLIBC 2.35-0ubuntu3.8) 2.35.

I know 22.04 isn't the newest Ubuntu version, but it is the latest stable Pop! OS version. I haven't tested this on other distros, but based on a bit of Googling it looks like the latest stable version of Debian is also behind glibc 2.38, so I suspect it won't work there either.

I initially ran into this issue trying to use verus-analyzer, which pulls in the current Verus binary release by default.

@jaybosamiya-ms
Copy link
Contributor

I suspect this is due to the use of ubuntu-latest here:

smoke-test-and-release-linux:
runs-on: ubuntu-latest

Until very recently, ubuntu-latest meant Ubuntu 22.04 on GitHub Actions. However, GitHub is slowly rolling out an upgrade from 22.04 to 24.04 for ubuntu-latest (see actions/runner-images#10636), and it seems like Verus's upgrade has now finished its place in the roll-out.

Since until some days ago, our CI was using 22.04, I don't see it as being a major issue to simply change the above to ubuntu-22.04 to force it to use 22.04, thereby supporting more distros with the release. GitHub will have support for ubuntu-22.04 as a runner for ~2 more years, by which time I expect most distros to have moved on, so we can bump it to 24.04 then.

A heavier-handed alternative is to build our binaries as static binaries (possibly using musl) which might allow us to stay on ubuntu-latest while supporting even much older Linux distros. I suspect this is unnecessary, and simply setting CI to ubuntu-22.04 rather than ubuntu-latest is probably the right move.

As a point of comparison, verusfmt uses 20.04 in its release process, in order to maintain support for a large set of distros. I'll probably have to change that to 22.04 when GitHub Actions phases out its 20.04 runners, but generally speaking, release builds using an older version works great as a way to support things.

@utaal
Copy link
Collaborator

utaal commented Jan 11, 2025

@hayley-leblanc can you try the next release? (once it finishes building)

@jaybosamiya-ms thanks for diagnosing!

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

No branches or pull requests

3 participants