Browse Source

fix(reh): move to nodejs-v20 (#2167)

Baptiste Augrain 5 months ago
parent
commit
1bff9fc2e9
3 changed files with 12 additions and 79 deletions
  1. 11 16
      package_linux_reh.sh
  2. 1 1
      patches/linux/arch-0-support.patch
  3. 0 62
      patches/linux/reh/node16.patch

+ 11 - 16
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

+ 1 - 1
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('**'))

+ 0 - 62
patches/linux/reh/node16.patch

@@ -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",