fix: use sysroot with glibc-2.17 [skip ci]

This commit is contained in:
Baptiste Augrain 2024-02-16 01:45:48 +01:00
parent 9fae90974b
commit ad4d2c612d
5 changed files with 148 additions and 107 deletions

View file

@ -30,85 +30,10 @@ env:
VSCODE_QUALITY: insider
jobs:
check:
runs-on: ubuntu-latest
container:
image: vscodium/vscodium-linux-build-agent:bionic-x64
outputs:
MS_COMMIT: ${{ env.MS_COMMIT }}
MS_TAG: ${{ env.MS_TAG }}
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
env:
RELEASE_VERSION: ${{ github.event.inputs.release_version }}
run: ./get_repo.sh
- name: Check PR or cron
env:
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
dependencies:
needs:
- check
runs-on: ubuntu-latest
env:
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
strategy:
fail-fast: false
matrix:
include:
- vscode_arch: x64
image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-x64
# - vscode_arch: arm64
# image: vscodium/vscodium-linux-build-agent:centos7-devtoolset8-arm64
container:
image: ${{ matrix.image }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.GITHUB_BRANCH }}
- name: Clone VSCode repo
run: ./get_repo.sh
- uses: docker/setup-qemu-action@v3
if: matrix.vscode_arch == 'arm64' || matrix.vscode_arch == 'ppc64le'
- name: Install remote dependencies
run: ./install_remote_dependencies.sh
- name: Save remote dependencies
uses: actions/upload-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
path: ./remote-dependencies.tar
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
build:
needs:
- check
- dependencies
runs-on: ubuntu-latest
env:
DISABLE_UPDATE: 'yes'
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
strategy:
fail-fast: false
matrix:
@ -130,10 +55,11 @@ jobs:
env:
VSCODE_ARCH: ${{ matrix.vscode_arch }}
outputs:
MS_COMMIT: ${{ env.MS_COMMIT }}
MS_TAG: ${{ env.MS_TAG }}
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
if: needs.check.outputs.SHOULD_BUILD == 'yes' || needs.check.outputs.SHOULD_DEPLOY == 'yes'
steps:
- uses: actions/checkout@v3
@ -143,8 +69,14 @@ jobs:
- name: Clone VSCode repo
run: ./get_repo.sh
- name: Check PR or cron
env:
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
run: ./check_cron_or_pr.sh
- name: Install GH
run: ./install_gh.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Check existing VSCodium tags/releases
env:
@ -152,12 +84,6 @@ jobs:
run: ./check_tags.sh
if: env.SHOULD_DEPLOY == 'yes'
- name: Restore remote dependencies
uses: actions/download-artifact@v3
with:
name: remote-dependencies-${{ matrix.vscode_arch }}
if: env.SHOULD_BUILD == 'yes' && matrix.vscode_arch == 'x64'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -23,28 +23,61 @@ index adbe2d2..dfc3bd7 100644
+target "16.20.2"
ms_build_id "252256"
diff --git a/remote/package.json b/remote/package.json
index b1fbc7b..87716c0 100644
index b1fbc7b..a49694c 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -11,3 +11,3 @@
"@vscode/ripgrep": "^1.15.9",
- "@vscode/spdlog": "^0.14.0",
+ "@vscode/spdlog": "0.13.11",
"@vscode/vscode-languagedetection": "1.0.21",
@@ -31,3 +31,3 @@
"native-watchdog": "^1.4.1",
- "node-pty": "1.1.0-beta5",
+ "node-pty": "1.1.0-beta4",
+ "node-pty": "1.1.0-beta1",
"tas-client-umd": "0.1.8",
diff --git a/remote/yarn.lock b/remote/yarn.lock
index bb20531..8f7c051 100644
index bb20531..64c480a 100644
--- a/remote/yarn.lock
+++ b/remote/yarn.lock
@@ -433,6 +433,6 @@ node-gyp-build@^4.3.0:
@@ -83,9 +83,9 @@
-"@vscode/spdlog@^0.14.0":
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/@vscode/spdlog/-/spdlog-0.14.0.tgz#3cdf589ca59b9ce792ef58b5f773e29a732a360f"
- integrity sha512-mpblZa3v6AGEJC1qTwIkpgTc6NItdiiuTxufGxr6XD14srXCvVAUXFIYNqszxC6RY57qDQMX1d9Wd4/oZDxuUQ==
+"@vscode/spdlog@0.13.11":
+ version "0.13.11"
+ resolved "https://registry.npmjs.org/@vscode/spdlog/-/spdlog-0.13.11.tgz#1c65c3527dd8e9679ada7f427c4d9e4af2ea097a"
+ integrity sha512-4qk6G3XKTJNsrqsGwmo9lr8NPaH84WeLsoFVPrpvoEC1t1tFu7H6l4RRMgzKNeE92nwRbjejLv1nATJNoabRfA==
dependencies:
bindings "^1.5.0"
- mkdirp "^1.0.4"
+ mkdirp "^0.5.5"
nan "^2.17.0"
@@ -381,6 +381,8 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
-mkdirp@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
- integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+mkdirp@^0.5.5:
+ version "0.5.6"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
+ dependencies:
+ minimist "^1.2.6"
@@ -433,6 +435,6 @@ node-gyp-build@^4.3.0:
-node-pty@1.1.0-beta5:
- version "1.1.0-beta5"
- resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta5.tgz#364386b7058a93070234064f13164ec1ef914993"
- integrity sha512-j3QdgFHnLY0JWxztrvM3g67RaQLOGvytv+C6mFu0PqD+JILlzqfwuoyqRqVxdZZjoOTUXPfSRj1qPVCaCH+eOw==
+node-pty@1.1.0-beta4:
+ version "1.1.0-beta4"
+ resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta4.tgz#ee74d909c9f422ffc7f675e1092529673f8906ec"
+ integrity sha512-CgffN9AxVtH4g7vDxtanm2qaR7jw3oet9r+ArzziGiFvmds9SdR3gXkZF0fqZWSxhTHZusJWvsuKvRv+5O2K8A==
+node-pty@1.1.0-beta1:
+ version "1.1.0-beta1"
+ resolved "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta1.tgz#95d4baf406c043b78042f951b325e9713df2beac"
+ integrity sha512-h+1E/gX/brFqsp3yZKGERHOhdo1POG1rrsI+8tEuocqdEddHd029471gq8KOuiHKicd52h2pSU8Gtqb3Vo2PfQ==
dependencies:
diff --git a/resources/server/bin/code-server-linux.sh b/resources/server/bin/code-server-linux.sh
index e3d96bd..3df32df 100644

View file

@ -0,0 +1,68 @@
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
index 86da04d..0b5f38c 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -1,3 +1,6 @@
-a2d51dc505ed544c52757f90bcdab44920132295fc7a67166eff86b6e0e24aa8 aarch64-linux-gnu.tar.gz
-032cf16bf8b965e1351305f10f3dedabf4f9868027ac6d0e8f52321ca0b70d4a arm-rpi-linux-gnueabihf.tar.gz
-360475a764d0faf4d3743aa866347eff78072639d20660def83e1a03eadf534c x86_64-linux-gnu.tar.gz
+68a17006021975ff271a1dd615f9db9eda7c25f2cc65e750c87980dc57a06c94 aarch64-linux-gnu-glibc-2.17.tar.gz
+0de422a81683cf9e8cf875dbd1e0c27545ac3c775b2d53015daf3ca2b31d3f15 aarch64-linux-gnu-glibc-2.28.tar.gz
+3ced48cb479f2cdba95aa649710fcb7778685551c745bbd76ac706c3c0ead9fb arm-rpi-linux-gnueabihf-glibc-2.17.tar.gz
+7aea163f7fad8cc50000c86b5108be880121d35e2f55d016ef8c96bbe54129eb arm-rpi-linux-gnueabihf-glibc-2.28.tar.gz
+5aae21115f1d284c3cdf32c83db15771b59bc80793f1423032abf5a823c0d658 x86_64-linux-gnu-glibc-2.17.tar.gz
+dbb927408393041664a020661f2641c9785741be3d29b050b9dac58980967784 x86_64-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index 40ca42e..d637fce 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -69,3 +69,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
const timeout = setTimeout(() => controller.abort(), 30 * 1000);
- const version = '20231122-245579';
+ const version = '20240129-253798';
try {
@@ -121,5 +121,6 @@ async function getVSCodeSysroot(arch) {
let triple;
+ const prefix = process.env['VSCODE_SYSROOT_PREFIX'] ?? '-glibc-2.28';
switch (arch) {
case 'amd64':
- expectedName = `x86_64-linux-gnu.tar.gz`;
+ expectedName = `x86_64-linux-gnu${prefix}.tar.gz`;
triple = 'x86_64-linux-gnu';
@@ -127,3 +128,3 @@ async function getVSCodeSysroot(arch) {
case 'arm64':
- expectedName = `aarch64-linux-gnu.tar.gz`;
+ expectedName = `aarch64-linux-gnu${prefix}.tar.gz`;
triple = 'aarch64-linux-gnu';
@@ -131,3 +132,3 @@ async function getVSCodeSysroot(arch) {
case 'armhf':
- expectedName = `arm-rpi-linux-gnueabihf.tar.gz`;
+ expectedName = `arm-rpi-linux-gnueabihf${prefix}.tar.gz`;
triple = 'arm-rpi-linux-gnueabihf';
@@ -135,2 +136,3 @@ async function getVSCodeSysroot(arch) {
}
+ console.log(`Fetching ${expectedName} for ${triple}`);
const checksumSha256 = getVSCodeSysrootChecksum(expectedName);
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
index e824f19..b9a6e80 100644
--- a/build/linux/rpm/dep-lists.js
+++ b/build/linux/rpm/dep-lists.js
@@ -44,6 +44,3 @@ exports.referenceGeneratedDepsByArch = {
'libc.so.6(GLIBC_2.17)(64bit)',
- 'libc.so.6(GLIBC_2.18)(64bit)',
'libc.so.6(GLIBC_2.2.5)(64bit)',
- 'libc.so.6(GLIBC_2.25)(64bit)',
- 'libc.so.6(GLIBC_2.27)(64bit)',
'libc.so.6(GLIBC_2.28)(64bit)',
@@ -143,5 +140,2 @@ exports.referenceGeneratedDepsByArch = {
'libc.so.6(GLIBC_2.17)',
- 'libc.so.6(GLIBC_2.18)',
- 'libc.so.6(GLIBC_2.25)',
- 'libc.so.6(GLIBC_2.27)',
'libc.so.6(GLIBC_2.28)',
@@ -247,5 +241,2 @@ exports.referenceGeneratedDepsByArch = {
'libc.so.6(GLIBC_2.17)(64bit)',
- 'libc.so.6(GLIBC_2.18)(64bit)',
- 'libc.so.6(GLIBC_2.25)(64bit)',
- 'libc.so.6(GLIBC_2.27)(64bit)',
'libc.so.6(GLIBC_2.28)(64bit)',

View file

@ -141,6 +141,10 @@ else
if [[ "${CI_BUILD}" == "no" ]]; then
. ./stores/snapcraft/build.sh
if [[ "${SKIP_ASSETS}" == "no" ]]; then
mv stores/snapcraft/build/*.snap assets/
fi
fi
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then

View file

@ -77,30 +77,40 @@ if [[ "${OS_NAME}" == "linux" ]]; then
done
fi
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7
fi
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --check-files --network-timeout 180000
mkdir -p .build
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
./build/azure-pipelines/linux/install.sh
elif [[ "${OS_NAME}" == "osx" ]]; then
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --network-timeout 180000
yarn postinstall
else
if [[ "${OS_NAME}" == "windows" ]]; then
# TODO: Should be replaced with upstream URL once https://github.com/nodejs/node-gyp/pull/2825
# gets merged.
rm -rf .build/node-gyp
mkdir -p .build/node-gyp
cd .build/node-gyp
# TODO: Should be replaced with upstream URL once https://github.com/nodejs/node-gyp/pull/2825
# gets merged.
rm -rf .build/node-gyp
mkdir -p .build/node-gyp
cd .build/node-gyp
git config --global user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config --global user.name "${GITHUB_USERNAME} CI"
git clone https://github.com/nodejs/node-gyp.git .
git checkout v9.4.0
git am --3way --whitespace=fix ../../build/npm/gyp/patches/gyp_spectre_mitigation_support.patch
npm install
git config --global user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config --global user.name "${GITHUB_USERNAME} CI"
git clone https://github.com/nodejs/node-gyp.git .
git checkout v9.4.0
git am --3way --whitespace=fix ../../build/npm/gyp/patches/gyp_spectre_mitigation_support.patch
npm install
npm_config_node_gyp="$( pwd )/bin/node-gyp.js"
export npm_config_node_gyp
npm_config_node_gyp="$( pwd )/bin/node-gyp.js"
export npm_config_node_gyp
cd ../..
fi
cd ../..
if [[ "${npm_config_arch}" == "arm" ]]; then
export npm_config_arm_version=7