Skip to content

Commit 47ee7ae

Browse files
authored
Bump minimum glibc to 2.28 (#6439)
At least, for the standalone and for anyone running on default Node 18. If support for 2.17 is needed then one would need to build Node 18 with 2.17 and then build code-server with that version (specifically, the native npm modules).
1 parent 70d0c60 commit 47ee7ae

File tree

2 files changed

+12
-35
lines changed

2 files changed

+12
-35
lines changed

.github/workflows/release.yaml

+7-29
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
runs-on: ubuntu-latest
2828
timeout-minutes: 15
2929
needs: npm-version
30-
container: "centos:7"
30+
container: "centos:8"
3131
env:
3232
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
3333

@@ -42,12 +42,10 @@ jobs:
4242

4343
- name: Install development tools
4444
run: |
45-
yum install -y epel-release centos-release-scl make
46-
yum install -y devtoolset-9-{make,gcc,gcc-c++} jq rsync python3
47-
# for keytar
48-
yum install -y libsecret-devel
49-
# for kerberos
50-
yum install -y krb5-devel
45+
cd /etc/yum.repos.d/
46+
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
47+
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
48+
yum install -y gcc-c++ make jq rsync python3 libsecret-devel krb5-devel
5149
5250
- name: Install nfpm and envsubst
5351
run: |
@@ -69,10 +67,8 @@ jobs:
6967
- name: Decompress npm package
7068
run: tar -xzf package.tar.gz
7169

72-
# NOTE: && here is deliberate - GitHub puts each line in its own `.sh`
73-
# file when running inside a docker container.
7470
- name: Build standalone release
75-
run: source scl_source enable devtoolset-9 && npm run release:standalone
71+
run: npm run release:standalone
7672

7773
- name: Install test dependencies
7874
run: SKIP_SUBMODULE_DEPS=1 yarn --frozen-lockfile
@@ -104,25 +100,7 @@ jobs:
104100
discussion_category_name: "📣 Announcements"
105101
files: ./release-packages/*
106102

107-
# NOTE@oxy:
108-
# We use Ubuntu 16.04 here, so that our build is more compatible
109-
# with older libc versions. We used to (Q1'20) use CentOS 7 here,
110-
# but it has a full update EOL of Q4'20 and a 'critical security'
111-
# update EOL of 2024. We're dropping full support a few years before
112-
# the final EOL, but I don't believe CentOS 7 has a large arm64 userbase.
113-
# It is not feasible to cross-compile with CentOS.
114-
115-
# Cross-compile notes: To compile native dependencies for arm64,
116-
# we install the aarch64/armv7l cross toolchain and then set it as the default
117-
# compiler/linker/etc. with the AR/CC/CXX/LINK environment variables.
118-
# qemu-user-static on ubuntu-16.04 currently doesn't run Node correctly,
119-
# so we just build with "native"/x86_64 node, then download arm64/armv7l node
120-
# and then put it in our release. We can't smoke test the cross build this way,
121-
# but this means we don't need to maintain a self-hosted runner!
122-
123-
# NOTE@jsjoeio:
124-
# We used to use 18.04 until GitHub browned it out on December 15, 2022
125-
# See here: https://github.com/actions/runner-images/issues/6002
103+
# TODO: We should use the same CentOS image to cross-compile if possible?
126104
package-linux-cross:
127105
name: Linux cross-compile builds
128106
runs-on: ubuntu-20.04

docs/install.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,9 @@ _exact_ same commands presented in the rest of this document.
103103
We recommend installing with `npm` when:
104104

105105
1. You aren't using a machine with `amd64` or `arm64`.
106-
1. You are installing code-server on Windows
107-
1. You're on Linux with `glibc` < v2.17, `glibcxx` < v3.4.18 on `amd64`, `glibc`
108-
< v2.23, or `glibcxx` < v3.4.21 on `arm64`.
109-
1. You're running Alpine Linux or are using a non-glibc libc. See
106+
2. You are installing code-server on Windows.
107+
3. You're on Linux with `glibc` < v2.28 or `glibcxx` < v3.4.21.
108+
4. You're running Alpine Linux or are using a non-glibc libc. See
110109
[#1430](https://github.com/coder/code-server/issues/1430#issuecomment-629883198)
111110
for more information.
112111

@@ -123,8 +122,8 @@ node binary and node modules.
123122
We create the standalone releases using the [npm package](#npm), and we
124123
then create the remaining releases using the standalone version.
125124

126-
The only requirement to use the standalone release is `glibc` >= 2.17 and
127-
`glibcxx` >= v3.4.18 on Linux (for macOS, there is no minimum system
125+
The only requirement to use the standalone release is `glibc` >= 2.28 and
126+
`glibcxx` >= v3.4.21 on Linux (for macOS, there is no minimum system
128127
requirement).
129128

130129
To use a standalone release:

0 commit comments

Comments
 (0)