fix: CentOS 7 recipes (x64-glibc-217 & x64-pointer-compression & x86)#232
Open
henry-hsieh wants to merge 25 commits into
Open
fix: CentOS 7 recipes (x64-glibc-217 & x64-pointer-compression & x86)#232henry-hsieh wants to merge 25 commits into
henry-hsieh wants to merge 25 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why another CentOS 7 recipes fix?
In #174 , @vitaliylag provides an excellent fix for broken CentOS 7 recipes. @rvagg wants to push the PR forward, but @vitaliylag is inactive in GitHub for more than half a year now. Also, there still some users requested the older glibc version, including #190 and #192.
Can we switch to newer version of glibc?
In the last comment of #174 from @MikeMcC399 , he says the CentOS 7 is EOL for a long time and the PR might be irrelevant. I have no strong opinion to add a new recipe for higher version of glibc or keep current one (glibc 2.17). Here is a summarize table for some LTS distributions and its glibc version (information from endoflife.date):
There still some paid RHEL 7 variations are active. But if we only consider community distributions, I think it's okay to upgrade glibc to 2.27 for Ubuntu 18.04 LTS (in security maintenance period). Or completely drop the old glibc supports.
The updates since last change in #174
I kept all @vitaliylag 's commits except the last merge commit with main branch.
In response to @rvagg 's suggestions
I have added it to
recipes/centos7-toolchain/files/checksums.shandrecipes/x86/files/checksums.sh. The Dockerfile loads the checksums.sh and compares it with toolchain archive.In
recipes/centos7-toolchain/files/installFromSourceCode, this is replaced withexpectedSha256for the checksum checking.I used the both approaches, the shared recipes is
centos7-toolchain. The x64 variants derive their Dockerfile from the shared Dockerfile incentos7-toolchain. The docker image of x86 cannot share with x64 variants. If we want to reduce the duplication, we could create symbolic links. For example, therun.shinsidecentos7-toolchainis completely the same asx86. We can symbolic-link one to another. DuringCOPYcommand inside Dockerfile, it copies the content of symbolic link instead of the link itself, unless the command is assigned--linkflag.Additional changes
release-keysrepo #216, the gpg keys are explicitly set togpg-only-active-keys. If we want to build the old NodeJS versions, the GPG key check will be failed because the source code of older version, e.g., v24.2.0, is signed by retired GPG key. Therefore, I change it to use the public keyring with retired keys. However, if we want to skip the absent versions, it should be reverted.x64-glibc-217andx64-pointer-compressionshare the samerun.sh, put incentos7-toolchain. Thex86uses its ownrun.sh, although it's the same as the one incentos7-toolchain.#!/usr/bin/env bash)