nodejs-pypi icon indicating copy to clipboard operation
nodejs-pypi copied to clipboard

Building for GLIBC 2.27?

Open dsblank opened this issue 1 year ago • 8 comments

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?

dsblank avatar Sep 13 '22 23:09 dsblank

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.)

samwillis avatar Sep 14 '22 06:09 samwillis

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.

dsblank avatar Sep 14 '22 15:09 dsblank

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

njzjz avatar Oct 14 '22 08:10 njzjz

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

samwillis avatar Oct 14 '22 08:10 samwillis

@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

jacobdr avatar Nov 03 '22 21:11 jacobdr

@jacobdr Go ahead, that would be great.

samwillis avatar Nov 06 '22 15:11 samwillis

@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

jacobdr avatar Nov 07 '22 18:11 jacobdr

@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.

njzjz avatar Nov 07 '22 20:11 njzjz