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

Add platform-specific notes #672

Merged
merged 3 commits into from
Oct 4, 2019
Merged

Add platform-specific notes #672

merged 3 commits into from
Oct 4, 2019

Conversation

vweevers
Copy link
Member

@vweevers vweevers commented Oct 2, 2019

Ref nodejs/citgm#751.

Is everyone OK with our prebuilds not being compatible with Debian 8? Or should we fix that?

/cc @rvagg

@vweevers vweevers added documentation Improvements or additions to documentation semver-patch Bug fixes that are backward compatible labels Oct 2, 2019
@rvagg
Copy link
Member

rvagg commented Oct 2, 2019

Fine by me, but what's the reason exactly? Are the prebuilds built on Ubuntu 16.04 or something later than Jessie? Where are the prebuilds made and what hosts are available?

@vweevers
Copy link
Member Author

vweevers commented Oct 2, 2019

The linux prebuilds are built on Travis, that's Ubuntu 16.04 with gcc 5.4.0.

@rvagg
Copy link
Member

rvagg commented Oct 2, 2019

OK, looks like GitHub Actions is limited to Ubuntu too. Pretty convenient for testing, not so great for producing maximally compatible binaries.

I think you're going to need to expand your list to include RHEL 7 & CentOS 7. Expand the table @ https://en.wikipedia.org/wiki/GNU_C_Library#Version_history, find Ubuntu 16.04, and everything before that version of glibc is ruled out by building binaries on 16.04.

As long as --build-from-source is available I guess this isn't a big deal for users?

There is a way around this though, Travis supports Docker apparently, I've never used this, but it ought to be possible to pull down a CentOS 7 image, put the latest devtoolset on it, then you get the latest GCC that will compile against an old libc. Not uncomplicated but if --build-from-source is a hassle for users then maybe it's worth playing with this?

@vweevers
Copy link
Member Author

vweevers commented Oct 2, 2019

There is a way around this though, Travis supports Docker apparently, I've never used this, but it ought to be possible to pull down a CentOS 7 image, put the latest devtoolset on it, then you get the latest GCC that will compile against an old libc. Not uncomplicated but if --build-from-source is a hassle for users then maybe it's worth playing with this?

We already do this for Android & Alpine, might be easy! I'll open an issue.

@rvagg
Copy link
Member

rvagg commented Oct 2, 2019

ahhhh https://github.com/prebuild/docker-images, I see. Maybe I'll PR an initial proposal there.

rvagg added a commit to rvagg/docker-images that referenced this pull request Oct 2, 2019
rvagg added a commit that referenced this pull request Oct 2, 2019
* Remove prebuild settings from standard "linux" job
* Add centos7 job with prebuild settings
* Add centos7-devtoolset7 docker image prebuild script

Ref: prebuild/docker-images#8
Ref: #672
README.md Outdated
### Notes

- If you get compilation errors on Node.js 12, please ensure you have `leveldown` >= 5. This can be checked by running `npm ls leveldown`.
- On Debian 8 you must either update glibc through external sources like Ubuntu (to be able to load prebuilt binaries) or use `--build-from-source`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this part might be solved by using the docker image provided by @rvagg ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, and I'd love to help confirm if you can produce a test binary using the centos7-devtoolset7 image

@vweevers vweevers changed the title Add notes on Debian 8, Alpine, FreeBSD, Android Add platform-specific notes Oct 3, 2019
Copy link
Member

@rvagg rvagg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you could remove Fedora I reckon, users of Fedora don't usually stick with a version for more than 12 months, their support cycle makes it necessary to keep upgrading

vweevers pushed a commit that referenced this pull request Oct 4, 2019
* Remove prebuild settings from standard "linux" job
* Add centos7 job with prebuild settings
* Add centos7-devtoolset7 docker image prebuild script

Ref: prebuild/docker-images#8
Ref: #672
@vweevers vweevers merged commit b8dfc23 into master Oct 4, 2019
@vweevers vweevers deleted the platform-notes branch October 4, 2019 06:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation semver-patch Bug fixes that are backward compatible
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants