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

Building for GLIBC 2.27? #10

Open
dsblank opened this issue Sep 13, 2022 · 8 comments
Open

Building for GLIBC 2.27? #10

dsblank opened this issue Sep 13, 2022 · 8 comments

Comments

@dsblank
Copy link

dsblank commented Sep 13, 2022

This is a great project, and we are looking forward to using it!

In some initial testing on various Python platforms, we see that Google Colab is using Python 3.7 using GLIBC 2.27. That gives an error when using nodejs-pypi:

/usr/local/lib/python3.7/dist-packages/nodejs/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/local/lib/python3.7/dist-packages/nodejs/bin/node)

What would it take to build nodejs-pypi to work on Google Colab GLIBC 2.27?

@samwillis
Copy link
Owner

I believe Nodejs 18 dropped Ubuntu 18 and Centos/RHEL 7/8 support, and I think Google Colab may be running on a Debian/Ubuntu derived Linux of that vintage.

Installing with:

pip install nodejs-bin==16.15.1a4

or

pip install nodejs-bin[cmd]==16.15.1a4

works.

(Note that the 'a4' for alpha is not a Node alpha, it's the alpha version of this pypi package. I think we are confident that we have a working package and will start doing proper releases soon.)

@dsblank
Copy link
Author

dsblank commented Sep 14, 2022

Thanks @samwillis for the info! Unfortunately we're using some of the latest and greatest node features in nodejs 18. Sounds like we may just have to skip support for Google Colab until Google updates their OS.

@njzjz
Copy link

njzjz commented Oct 14, 2022

If the package requires glibc 2.28, why not release manylinux_2_28 wheels? Please see PEP-600.

This tag is a promise: the wheel’s creator promises that the wheel will work on any mainstream Linux distro that uses glibc version ${GLIBCMAJOR}.${GLIBCMINOR} or later

@samwillis
Copy link
Owner

Thanks for the info, I had missed that. Will update!

@jacobdr
Copy link
Contributor

jacobdr commented Nov 3, 2022

@samwillis I would feel comfortable taking this on once we have the CI setup in place so that we can use docker to emulate the OS environment reported by @njzjz

@samwillis
Copy link
Owner

@jacobdr Go ahead, that would be great.

@jacobdr
Copy link
Contributor

jacobdr commented Nov 7, 2022

@njzjz one thing I am slightly confused about... We do publish a manylinux_2_12_x86_64 version so according to the PEP if you use GLIBC 2_28 that should in theory abide by the "minimum support" we have being lower, hence I would have thought 2_28 would pass fine.

Can you send the output please from running pip debug --verbose so I can check the version tags supported by your environment

@njzjz
Copy link

njzjz commented Nov 7, 2022

@jacobdr I think you misunderstand what I mean. If you use GLIBC 2.17, the manylinux_2_12_x86_64 wheel will still be installed. But if the wheel has a 2_28 tag, pip will automatically skip this wheel. In this case, if you simply install with pip install nodejs-bin (or have it in the requirements), the incompatible version will never be installed.

This does not affect any one who has GLIBC 2.28.

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

4 participants