diff --git a/.github/workflows/insider-linux.yml b/.github/workflows/insider-linux.yml index 762b5f6..3bfc4c5 100644 --- a/.github/workflows/insider-linux.yml +++ b/.github/workflows/insider-linux.yml @@ -31,29 +31,22 @@ env: jobs: build: - runs-on: ubuntu-latest - env: - DISABLE_UPDATE: 'yes' + runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: include: - vscode_arch: x64 npm_arch: x64 - image: vscodium/vscodium-linux-build-agent:bionic-x64 - vscode_arch: arm64 npm_arch: arm64 - image: vscodium/vscodium-linux-build-agent:bionic-arm64 - vscode_arch: armhf npm_arch: arm - image: vscodium/vscodium-linux-build-agent:bionic-armhf - - vscode_arch: ppc64le - npm_arch: ppc64 - image: vscodium/vscodium-linux-build-agent:bionic-ppc64le - container: - image: ${{ matrix.image }} - env: - VSCODE_ARCH: ${{ matrix.vscode_arch }} + # - vscode_arch: ppc64le + # npm_arch: ppc64 + env: + DISABLE_UPDATE: 'yes' + VSCODE_ARCH: ${{ matrix.vscode_arch }} outputs: MS_COMMIT: ${{ env.MS_COMMIT }} MS_TAG: ${{ env.MS_TAG }} @@ -62,10 +55,23 @@ jobs: SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ env.GITHUB_BRANCH }} + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: '18.17' + + - name: Install Yarn + run: npm install -g yarn + + - name: Setup Python 3 + uses: actions/setup-python@v5 + with: + python-version: '3.11' + - name: Clone VSCode repo run: ./get_repo.sh diff --git a/build.sh b/build.sh index b4c5f74..9e7381c 100755 --- a/build.sh +++ b/build.sh @@ -51,6 +51,10 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then fi if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then + if [[ "${OS_NAME}" == "linux" ]]; then + export VSCODE_NODE_GLIBC='-glibc-2.17' + fi + yarn gulp minify-vscode-reh yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci" fi diff --git a/insider.json b/insider.json index 740c8ff..40afb56 100644 --- a/insider.json +++ b/insider.json @@ -1,4 +1,4 @@ { - "tag": "1.86.0", - "commit": "05047486b6df5eb8d44b2ecd70ea3bdf775fd937" + "tag": "1.86.2", + "commit": "903b1e9d8990623e3d7da1df3d33db3e42d80eda" } diff --git a/patches/fix-eol-banner.patch b/patches/fix-eol-banner.patch index 6689692..a132821 100644 --- a/patches/fix-eol-banner.patch +++ b/patches/fix-eol-banner.patch @@ -1,5 +1,5 @@ diff --git a/src/vs/workbench/browser/parts/banner/bannerPart.ts b/src/vs/workbench/browser/parts/banner/bannerPart.ts -index b120c94..1bb2b88 100644 +index b522e75..5205e2b 100644 --- a/src/vs/workbench/browser/parts/banner/bannerPart.ts +++ b/src/vs/workbench/browser/parts/banner/bannerPart.ts @@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/ @@ -31,7 +31,7 @@ index b120c94..1bb2b88 100644 + } + // Clear previous item -@@ -234,2 +247,15 @@ export class BannerPart extends Part implements IBannerService { +@@ -236,2 +249,15 @@ export class BannerPart extends Part implements IBannerService { + private toStorageScope(options: INeverShowAgainOptions): StorageScope { + switch (options.scope) { @@ -48,7 +48,7 @@ index b120c94..1bb2b88 100644 + toJSON(): object { diff --git a/src/vs/workbench/services/banner/browser/bannerService.ts b/src/vs/workbench/services/banner/browser/bannerService.ts -index 639b1b2..70e8847 100644 +index d8560ce..23f5c0c 100644 --- a/src/vs/workbench/services/banner/browser/bannerService.ts +++ b/src/vs/workbench/services/banner/browser/bannerService.ts @@ -10,2 +10,3 @@ import { ILinkDescriptor } from 'vs/platform/opener/browser/link'; @@ -58,4 +58,4 @@ index 639b1b2..70e8847 100644 @@ -18,2 +19,3 @@ export interface IBannerItem { readonly onClose?: () => void; + readonly neverShowAgain?: INeverShowAgainOptions; - } + readonly disableCloseAction?: boolean; diff --git a/patches/linux/reh-node16.patch b/patches/linux/reh-node16.patch.no similarity index 100% rename from patches/linux/reh-node16.patch rename to patches/linux/reh-node16.patch.no diff --git a/patches/linux/reh.patch b/patches/linux/reh.patch new file mode 100644 index 0000000..1da79ec --- /dev/null +++ b/patches/linux/reh.patch @@ -0,0 +1,42 @@ +diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js +index 595d0ce..2e94d99 100644 +--- a/build/gulpfile.reh.js ++++ b/build/gulpfile.reh.js +@@ -375,10 +375,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa + +- 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()) +- ); +- } +- + return result.pipe(vfs.dest(destination)); +diff --git a/resources/server/bin/code-server-linux.sh b/resources/server/bin/code-server-linux.sh +index e3d96bd..3df32df 100644 +--- a/resources/server/bin/code-server-linux.sh ++++ b/resources/server/bin/code-server-linux.sh +@@ -11,22 +11,2 @@ ROOT="$(dirname "$(dirname "$(readlink -f "$0")")")" + +-# Do not remove this check. +-# Provides a way to skip the server requirements check from +-# outside the install flow. A system process can create this +-# file before the server is downloaded and installed. +-skip_check=0 +-if [ -f "/tmp/vscode-skip-server-requirements-check" ]; then +- echo "!!! WARNING: Skipping server pre-requisite check !!!" +- echo "!!! Server stability is not guaranteed. Proceed at your own risk. !!!" +- skip_check=1 +-fi +- +-# Check platform requirements +-if [ "$(echo "$@" | grep -c -- "--skip-requirements-check")" -eq 0 ] && [ $skip_check -eq 0 ]; then +- $ROOT/bin/helpers/check-requirements.sh +- exit_code=$? +- if [ $exit_code -ne 0 ]; then +- exit $exit_code +- fi +-fi +- + "$ROOT/node" ${INSPECT:-} "$ROOT/out/server-main.js" "$@" diff --git a/patches/linux/sysroot.patch b/patches/linux/sysroot.patch deleted file mode 100644 index c8c3505..0000000 --- a/patches/linux/sysroot.patch +++ /dev/null @@ -1,68 +0,0 @@ -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)', diff --git a/patches/linux/use-node16.patch b/patches/linux/use-node16.patch.no similarity index 100% rename from patches/linux/use-node16.patch rename to patches/linux/use-node16.patch.no diff --git a/prepare_vscode.sh b/prepare_vscode.sh index 7e6f085..b62c05f 100755 --- a/prepare_vscode.sh +++ b/prepare_vscode.sh @@ -62,9 +62,9 @@ export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 if [[ "${OS_NAME}" == "linux" ]]; then export VSCODE_SKIP_NODE_VERSION_CHECK=1 - if [[ -f "../.nvmrc.linux" ]]; then - mv ../.nvmrc.linux ../.nvmrc - fi + # if [[ -f "../.nvmrc.linux" ]]; then + # mv ../.nvmrc.linux ../.nvmrc + # fi for file in ../patches/linux/*.patch; do if [[ -f "${file}" ]]; then @@ -84,11 +84,29 @@ if [[ "${OS_NAME}" == "linux" ]]; then CHILD_CONCURRENCY=1 yarn --frozen-lockfile --check-files --network-timeout 180000 - mkdir -p .build + if [[ "${CI_BUILD}" != "no" ]]; then + mkdir -p .build - export VSCODE_SYSROOT_PREFIX='-glibc-2.17' + export VSCODE_SYSROOT_PREFIX='-glibc-2.17' - ./build/azure-pipelines/linux/install.sh + VSCODE_HOST_MOUNT="$( pwd )" + + export VSCODE_HOST_MOUNT + + if [[ "${VSCODE_ARCH}" == "x64" || "${VSCODE_ARCH}" == "arm64" ]]; then + VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}" + + export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME + elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then + export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-arm32v7" + fi + + ./build/azure-pipelines/linux/install.sh + + EXPECTED_GLIBC_VERSION="2.17" EXPECTED_GLIBCXX_VERSION="3.4.19" ./build/azure-pipelines/linux/verify-glibc-requirements.sh + + node build/azure-pipelines/distro/mixin-npm + fi elif [[ "${OS_NAME}" == "osx" ]]; then CHILD_CONCURRENCY=1 yarn --frozen-lockfile --network-timeout 180000