diff --git a/package_linux_reh.sh b/package_linux_reh.sh index a4cbfed..9a1dcc0 100755 --- a/package_linux_reh.sh +++ b/package_linux_reh.sh @@ -15,12 +15,20 @@ tar -xzf ./vscode.tar.gz cd vscode || { echo "'vscode' dir not found"; exit 1; } -GLIBC_VERSION="2.17" -GLIBCXX_VERSION="3.4.22" -NODE_VERSION="16.20.2" +GLIBC_VERSION="2.28" +GLIBCXX_VERSION="3.4.26" +NODE_VERSION="20.18.1" + +export VSCODE_NODEJS_URLROOT='/download/release' +export VSCODE_NODEJS_URLSUFFIX='' if [[ "${VSCODE_ARCH}" == "x64" ]]; then + GLIBC_VERSION="2.17" + GLIBCXX_VERSION="3.4.22" VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}" + + export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org' + export VSCODE_NODEJS_URLSUFFIX='-glibc-217' elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}" @@ -32,7 +40,6 @@ elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then export VSCODE_SKIP_SYSROOT=1 export USE_GNUPP2A=1 elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then - GLIBC_VERSION="2.28" VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-ppc64le" export ELECTRON_SKIP_BINARY_DOWNLOAD=1 @@ -41,8 +48,6 @@ elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then export VSCODE_SYSROOT_VERSION='20240129-253798' export USE_GNUPP2A=1 elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then - # Unofficial RISC-V nodejs builds doesn't provide v16.x - # Node 18 is buggy so use 20 here for now: https://github.com/VSCodium/vscodium/issues/2060 NODE_VERSION="20.16.0" VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64" @@ -50,8 +55,6 @@ elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 export VSCODE_SKIP_SETUPENV=1 export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org' - # part of the url before '/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz' - export VSCODE_NODEJS_URLROOT='/download/release' elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then NODE_VERSION="20.16.0" VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:trixie-devtoolset-loong64" @@ -60,9 +63,7 @@ elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 export VSCODE_SKIP_SETUPENV=1 export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org' - export VSCODE_NODEJS_URLROOT='/download/release' elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then - GLIBC_VERSION="2.28" VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x" export ELECTRON_SKIP_BINARY_DOWNLOAD=1 @@ -82,12 +83,6 @@ export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME sed -i "/target/s/\"20.*\"/\"${NODE_VERSION}\"/" remote/.npmrc -if [[ "${NODE_VERSION}" != 16* ]]; then - if [[ -f "../patches/linux/reh/node16.patch" ]]; then - mv "../patches/linux/reh/node16.patch" "../patches/linux/reh/node16.patch.no" - fi -fi - if [[ -d "../patches/linux/reh/" ]]; then for file in "../patches/linux/reh/"*.patch; do if [[ -f "${file}" ]]; then diff --git a/patches/linux/arch-0-support.patch b/patches/linux/arch-0-support.patch index 99e6052..1d1889e 100644 --- a/patches/linux/arch-0-support.patch +++ b/patches/linux/arch-0-support.patch @@ -21,7 +21,7 @@ index 53ef6f3..d0770d6 100644 - .pipe(util.setExecutableBit('**')) - .pipe(rename('node')); + if (process.env.VSCODE_NODEJS_SITE && process.env.VSCODE_NODEJS_URLROOT) { -+ return fetchUrls(`${process.env.VSCODE_NODEJS_URLROOT}/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: process.env.VSCODE_NODEJS_SITE, checksumSha256 }) ++ return fetchUrls(`${process.env.VSCODE_NODEJS_URLROOT}/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}${process.env.VSCODE_NODEJS_URLSUFFIX}.tar.gz`, { base: process.env.VSCODE_NODEJS_SITE, checksumSha256 }) + .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar()))) + .pipe(filter('**/node')) + .pipe(util.setExecutableBit('**')) diff --git a/patches/linux/reh/node16.patch b/patches/linux/reh/node16.patch deleted file mode 100644 index b49c1ab..0000000 --- a/patches/linux/reh/node16.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js -index 53ef6f3..7dedc4b 100644 ---- a/build/gulpfile.reh.js -+++ b/build/gulpfile.reh.js -@@ -401,16 +401,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa - -- if (platform === 'linux' && process.env['VSCODE_NODE_GLIBC'] === '-glibc-2.17') { -- result = es.merge(result, -- gulp.src(`resources/server/bin/helpers/check-requirements-linux-legacy.sh`, { base: '.' }) -- .pipe(rename(`bin/helpers/check-requirements.sh`)) -- .pipe(util.setExecutableBit()) -- ); -- } else if (platform === 'linux' || platform === 'alpine') { -- result = es.merge(result, -- gulp.src(`resources/server/bin/helpers/check-requirements-linux.sh`, { base: '.' }) -- .pipe(rename(`bin/helpers/check-requirements.sh`)) -- .pipe(util.setExecutableBit()) -- ); -- } -- - result = inlineMeta(result, { -diff --git a/remote/package-lock.json b/remote/package-lock.json -index 290e188..fc8fd04 100644 ---- a/remote/package-lock.json -+++ b/remote/package-lock.json -@@ -37,3 +37,3 @@ - "native-watchdog": "^1.4.1", -- "node-pty": "^1.1.0-beta22", -+ "node-pty": "1.1.0-beta4", - "tas-client-umd": "0.2.0", -@@ -703,2 +703,8 @@ - }, -+ "node_modules/nan": { -+ "version": "2.20.0", -+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", -+ "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", -+ "license": "MIT" -+ }, - "node_modules/napi-build-utils": { -@@ -745,8 +751,9 @@ - "node_modules/node-pty": { -- "version": "1.1.0-beta22", -- "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta22.tgz", -- "integrity": "sha512-CpT334H2oAIULlENvd9U+VBW4ZL+G3clOnpXYzUIurlPCLnl/9xen/KDHBLRcwhZuWcHxIrsCxR1TDCdVDtr0w==", -+ "version": "1.1.0-beta4", -+ "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta4.tgz", -+ "integrity": "sha512-CgffN9AxVtH4g7vDxtanm2qaR7jw3oet9r+ArzziGiFvmds9SdR3gXkZF0fqZWSxhTHZusJWvsuKvRv+5O2K8A==", - "hasInstallScript": true, -+ "license": "MIT", - "dependencies": { -- "node-addon-api": "^7.1.0" -+ "nan": "^2.17.0" - } -diff --git a/remote/package.json b/remote/package.json -index e8ea864..08d756d 100644 ---- a/remote/package.json -+++ b/remote/package.json -@@ -32,3 +32,3 @@ - "native-watchdog": "^1.4.1", -- "node-pty": "^1.1.0-beta22", -+ "node-pty": "1.1.0-beta4", - "tas-client-umd": "0.2.0",