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

qi v3.4 not working on ubuntu 20.04 #43

Open
RicardoRios46 opened this issue Apr 10, 2024 · 6 comments · May be fixed by #46
Open

qi v3.4 not working on ubuntu 20.04 #43

RicardoRios46 opened this issue Apr 10, 2024 · 6 comments · May be fixed by #46

Comments

@RicardoRios46
Copy link

Hello!

First of all thank you for developing qi. Very handy tool!

I wan't able to run qi on a machine with ubutnu 20.04. Got the following error:
qi: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32 not found (required by qi)

I checked glib version on the machine with ldd --version and it has GLIBL 2.31. I guess thats the reason but I saw in the README file to contact you if qi wasn't working on a linux distribution. Se here it goes!

qi v3.3 works on ubuntu 20.04 without problems.

Additional note: I want to try compiling qi by myself but couldn't find the build.sh mentioned in the developers documentation :S

Good day!

@spinicist
Copy link
Owner

build.sh became bootstrap.sh a while ago. A PR to make the docs and the script name match would be appreciated, I don't mind which name it is.

For a statically compiled application like QUIT, GLIBC is the fundamental thing that determines backwards compatibility on Linux, and the GLIBC version is determined by the system you compile on. Binaries compiled with an older GLIBC will work on newer systems, but not vice versa.

The Linux binaries are built using the Github CI. Until a year ago this used Ubuntu 16.04, which had an ancient GLIBC version. Github deprecated the 16.04 machines, so I had to upgrade. For some reason I jumped to 22.04 and not 20.04. I can't remember exactly why I skipped over 20.04 but it may have been whether GCC 11 was available in the 20.04 image at the time.

I can look at rolling back the CI to 20.04 but would have to play shenanigans with git tags to recompile v3.4, so this would likely only affect v3.5, which I didn't have plans to roll any time soon. I'm happy to review that decision if this is problematic for more people.

Let me know whether you manage to build it yourself using bootstrap.sh.

@gdevenyi
Copy link

What about trying to build a musl static binary?

https://medium.com/@neunhoef/static-binaries-for-a-c-application-f7c76f8041cf

@spinicist
Copy link
Owner

I have looked at musl and it is very tempting. However, my one attempt at using it was not successful. My memory is that you essentially have to build on Alpine Linux, and then getting vcpkg to build the dependencies was a nightmare.

If someone has the time to investigate further, as always, I am happy to look at PRs. But the path of least resistance for me is going back to Ubuntu 20.04 for v3.5. Tagging a release isn't a big deal, so perhaps I should do that with the repo as is.

@gdevenyi
Copy link

Ubuntu 20.04 for v3.5

20.04 went out of support March 23, 2023, FYI. Something to consider is what the support policy will be for old systems.

@spinicist
Copy link
Owner

The support policy is currently the pragmatic option of "What is the oldest version of GLIBC available in the Github CI". Which I kind of broke by going all the way to 22.04 and why I'm happy to revert back to 20.04 (provided that GCC 11 is available there now, I suspect it is).

@RicardoRios46
Copy link
Author

Hello again.

Thank you for the reply (and sorry for my super late reply).

Looks like ubuntu 20.04.02 runs gcc 9.4.0. So maybe that is why you skipped it.

I did a pull request updating the README with the ubuntu version used for compiling the executable. Same PR changes build.h to buildstrap.h in the documentation.

@gdevenyi gdevenyi linked a pull request May 23, 2024 that will close this issue
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 a pull request may close this issue.

3 participants