Compare commits

..

44 Commits

Author SHA1 Message Date
VSCodium CI
30ee9c1f69 build(stable): update to commit 38c31bc 2024-09-12 18:20:35 +00:00
Baptiste Augrain
e336b1a3ff fix(1.93): update linux build (#2023) 2024-09-09 13:18:18 +02:00
Baptiste Augrain
b520aa1b9b feat: 1.93 (#2022) 2024-09-09 12:29:14 +02:00
Baptiste Augrain
237be4bef0 docs: remove old docker commands 2024-08-29 15:25:27 +02:00
Baptiste Augrain
318f111ff7 fix: correct json for announcements file [skip ci] 2024-08-22 13:00:59 +02:00
Baptiste Augrain
be2896f6f9 ci(linux): disable riscv64 client [skip ci] 2024-08-18 10:21:33 +02:00
VSCodium CI
ae80c0cd05 build(stable): update to commit fee1edb 2024-08-15 18:20:18 +00:00
Vedant
4aa7ec7928 ci(windows): bump winget-releaser (#1990) 2024-08-14 11:52:07 +02:00
Baptiste Augrain
41b1e88740 ci(linux): add flag to disable appimage [skip ci] 2024-08-12 15:55:04 +02:00
Baptiste Augrain
9d70d6b0a2 feat: update to 1.91 (#1986) 2024-08-12 14:40:29 +02:00
Baptiste Augrain
a01f36bf8c feat: prepare for 1.92 (#1970) 2024-08-12 12:04:31 +02:00
Baptiste Augrain
7538e45f92 Merge branch 'master' into insider 2024-07-22 18:42:21 +02:00
Baptiste Augrain
51f2ec84c1 doc: add remote ssh 2024-07-22 16:07:57 +02:00
Levi Zim
092d1404e3 build(riscv): check electron version and bump to 29.4.0.riscv3 (#1965) 2024-07-21 10:26:38 +02:00
VSCodium CI
b70e809fb6 build(stable): update to commit f1e16e1 2024-07-11 18:18:27 +00:00
Baptiste Augrain
8451268bb4 feat: update to 1.91.0 (#1950) 2024-07-08 17:17:26 +02:00
Baptiste Augrain
f1bf0000b4 feat: add channel for snap [skip ci] 2024-06-20 16:20:19 +02:00
VSCodium CI
baa7fe4155 build(stable): update to commit 5437499 2024-06-19 18:23:53 +00:00
VSCodium CI
1709f8b501 build(stable): update to commit 611f9bf 2024-06-13 18:34:39 +00:00
Baptiste Augrain
aed67b3d81 build: add flag to disable snaps 2024-06-13 20:20:59 +02:00
Baptiste Augrain
60ebbedbf8 build: add flag to disable snaps 2024-06-13 20:16:43 +02:00
Baptiste Augrain
5a769efcb9 build: add flag to disable snaps 2024-06-13 20:13:07 +02:00
Lex
0c31a54dea feat: add Github Enterprise support (#1926) 2024-06-11 19:30:12 +02:00
Levi Zim
8c9acad540 feat: add riscv64 client (#1922) 2024-06-11 18:41:17 +02:00
Lex
ffd7e631b0 build: prepare for PPC64LE client (#1923) 2024-06-11 16:56:15 +02:00
VSCodium CI
8f2868d2ea build(insider): update to commit 5f646b8 2024-06-07 07:16:25 +00:00
Baptiste Augrain
6a38a6e9db feat: update to 1.90.0 2024-06-06 18:45:13 +02:00
Baptiste Augrain
7b846f5dd1 Merge branch 'insider' 2024-06-06 18:14:38 +02:00
Baptiste Augrain
a652d7a26b build(linux): make it build (#1916) 2024-06-06 16:54:10 +02:00
Baptiste Augrain
a7c7014502 fix: disable signature verification (#1915) 2024-06-06 13:46:04 +02:00
Baptiste Augrain
b5bbda7208 fix(macos): clean keychain only after dmg [skip ci] 2024-06-04 11:00:07 +02:00
Baptiste Augrain
c3064a2cb3 build(macos): allow local codesign [skip ci] 2024-06-02 17:45:59 +02:00
Baptiste Augrain
3860f2832c fix(macos): add keychain to available keychains [skip ci] 2024-06-02 03:03:55 +02:00
Baptiste Augrain
8e077dc483 fix(macos): patch electron-sign for spaces [skip ci] 2024-06-01 22:56:59 +02:00
Baptiste Augrain
c703bf5868 fix(macos): add quote to sign [skip ci] 2024-06-01 22:15:40 +02:00
Baptiste Augrain
b39a7be7a8 fix(macos): add quote to sign [skip ci] 2024-06-01 21:29:11 +02:00
Baptiste Augrain
11b7b8dc40 fix(macos): pass missing env variables [skip ci] 2024-06-01 19:54:48 +02:00
Baptiste Augrain
e8a3ac3cab build: update to node-v20 [skip ci] 2024-06-01 19:23:10 +02:00
Baptiste Augrain
73ba20791e build: update to node-v20 2024-06-01 18:41:51 +02:00
Baptiste Augrain
b6411b1af1 feat(1.90): update patches and notarize macos (#1864) 2024-06-01 18:31:12 +02:00
VSCodium CI
02a9d03154 build(stable): update to commit dc96b83 2024-05-09 18:12:33 +00:00
Yevhen Popok
f93746b300 fix(linux): deprecate unity-launch flag (#1866) 2024-05-06 16:08:01 +02:00
Baptiste Augrain
0d28b4dfb7 feat(1.89): update patches (#1863) 2024-05-05 10:55:17 +02:00
Lex
39df447b12 feat: use sysroot for PPC64LE (#1857) 2024-04-26 08:59:33 +02:00
56 changed files with 4128 additions and 1129 deletions

View File

@@ -24,6 +24,7 @@ on:
- '**/*.md'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
BINARY_NAME: codium-insiders
@@ -100,7 +101,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
@@ -112,6 +113,7 @@ jobs:
- name: Build
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
@@ -142,13 +144,16 @@ jobs:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
image: vscodium/vscodium-linux-build-agent:focal-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
image: vscodium/vscodium-linux-build-agent:focal-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:bionic-armhf
image: vscodium/vscodium-linux-build-agent:focal-armhf
- vscode_arch: riscv64
npm_arch: riscv64
image: vscodium/vscodium-linux-build-agent:focal-riscv64
container:
image: ${{ matrix.image }}
env:
@@ -176,13 +181,14 @@ jobs:
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_REH: 'no'
DISABLE_APPIMAGE: ${{ vars.DISABLE_INSIDER_APPIMAGE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
@@ -201,6 +207,7 @@ jobs:
- name: Prepare assets
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
@@ -272,7 +279,7 @@ jobs:
python-version: '3.11'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
- name: Install GH
run: ./install_gh.sh
@@ -288,21 +295,21 @@ jobs:
uses: actions/download-artifact@v3
with:
name: vscode
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
if: env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./package_linux_reh.sh
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
if: env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes'
if: (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no') && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
@@ -329,6 +336,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
OS_NAME: alpine
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
@@ -351,7 +359,7 @@ jobs:
run: ./check_tags.sh
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
@@ -424,7 +432,7 @@ jobs:
platform:
- amd64
- arm64
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && vars.DISABLE_INSIDER_SNAP != 'yes'
steps:
- uses: actions/checkout@v3

View File

@@ -42,7 +42,8 @@ jobs:
include:
- runner: macos-12
vscode_arch: x64
- runner: macos-14
# - runner: macos-14
- runner: [self-hosted, macOS, ARM64]
vscode_arch: arm64
steps:
@@ -53,12 +54,13 @@ jobs:
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18.17'
node-version: '20.12'
- name: Setup Python 3
uses: actions/setup-python@v5
with:
python-version: '3.11'
if: env.VSCODE_ARCH == 'x64'
- name: Clone VSCode repo
env:
@@ -84,9 +86,11 @@ jobs:
- name: Prepare assets
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

View File

@@ -38,7 +38,7 @@ jobs:
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20.12'
- name: Clone VSCode repo
run: . get_repo.sh

View File

@@ -58,7 +58,7 @@ jobs:
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18.17'
node-version: '20.12'
- name: Install Yarn
run: npm install -g yarn
@@ -141,7 +141,7 @@ jobs:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
- name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@v2
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: ${{ env.APP_IDENTIFIER }}
version: ${{ env.RELEASE_VERSION }}

View File

@@ -24,6 +24,7 @@ on:
- '**/*.md'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
@@ -99,7 +100,7 @@ jobs:
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Clone VSCode repo
@@ -111,6 +112,7 @@ jobs:
- name: Build
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./build.sh
if: env.SHOULD_BUILD == 'yes'
@@ -141,13 +143,16 @@ jobs:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
image: vscodium/vscodium-linux-build-agent:focal-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
image: vscodium/vscodium-linux-build-agent:focal-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:bionic-armhf
image: vscodium/vscodium-linux-build-agent:focal-armhf
- vscode_arch: riscv64
npm_arch: riscv64
image: vscodium/vscodium-linux-build-agent:focal-riscv64
container:
image: ${{ matrix.image }}
env:
@@ -175,13 +180,14 @@ jobs:
- name: Check existing VSCodium tags/releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECK_REH: 'no'
DISABLE_APPIMAGE: ${{ vars.DISABLE_STABLE_APPIMAGE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./check_tags.sh
if: env.SHOULD_BUILD == 'yes'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
@@ -200,6 +206,7 @@ jobs:
- name: Prepare assets
env:
SHOULD_BUILD_REH: 'no'
SHOULD_BUILD_REH_WEB: 'no'
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
@@ -241,8 +248,8 @@ jobs:
npm_arch: arm64
- vscode_arch: armhf
npm_arch: arm
# - vscode_arch: ppc64le
# npm_arch: ppc64
- vscode_arch: ppc64le
npm_arch: ppc64
- vscode_arch: riscv64
npm_arch: riscv64
env:
@@ -271,7 +278,7 @@ jobs:
python-version: '3.11'
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
- name: Install GH
run: ./install_gh.sh
@@ -287,21 +294,21 @@ jobs:
uses: actions/download-artifact@v3
with:
name: vscode
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
if: env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true'
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
npm_config_arch: ${{ matrix.npm_arch }}
run: ./package_linux_reh.sh
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
if: env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true'
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
run: ./release.sh
if: env.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes'
if: (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no') && env.SHOULD_DEPLOY == 'yes'
- name: Upload assets
uses: actions/upload-artifact@v4
@@ -328,6 +335,7 @@ jobs:
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
OS_NAME: alpine
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }}
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
@@ -350,7 +358,7 @@ jobs:
run: ./check_tags.sh
- name: Install libkrb5-dev
run: sudo apt-get install -y libkrb5-dev
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
if: env.SHOULD_BUILD == 'yes'
- name: Download vscode artifact
@@ -420,7 +428,7 @@ jobs:
platform:
- amd64
- arm64
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && vars.DISABLE_STABLE_SNAP != 'yes'
steps:
- uses: actions/checkout@v3
@@ -461,7 +469,7 @@ jobs:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
with:
snap: ${{ steps.build.outputs.snap }}
release: stable
release: ${{ vars.SNAP_STORE_CHANNEL }}
if: env.SHOULD_DEPLOY_TO_STORE == 'yes'
deb-rpm-repo-hook:

View File

@@ -51,7 +51,7 @@ jobs:
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18.17'
node-version: '20.12'
- name: Setup Python 3
uses: actions/setup-python@v5
@@ -83,9 +83,11 @@ jobs:
- name: Prepare assets
env:
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }}
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }}
CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }}
CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }}
CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }}
run: ./prepare_assets.sh
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')

View File

@@ -33,7 +33,7 @@ jobs:
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20.12'
- name: Clone VSCode repo
run: . get_repo.sh

View File

@@ -56,7 +56,7 @@ jobs:
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: '18.17'
node-version: '20.12'
- name: Install Yarn
run: npm install -g yarn
@@ -136,7 +136,7 @@ jobs:
RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }}
- name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@v2
uses: vedantmgoyal9/winget-releaser@main
with:
identifier: ${{ env.APP_IDENTIFIER }}
version: ${{ env.RELEASE_VERSION }}

2
.nvmrc
View File

@@ -1 +1 @@
18.15
20.14

View File

@@ -190,10 +190,6 @@ The minimal version is limited by the core component Electron, you may want to c
- [x] Windows 10 / Server 2012 R2 or newer x64
- [x] Windows 10 / Server 2012 R2 or newer arm64
## <a id="donate"></a>Donate
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N` (<a href="https://github.com/stripedpajamas" target="_blank">@stripedpajamas</a>).
## <a id="thanks"></a>Special thanks
<table>
@@ -209,6 +205,10 @@ If you would like to support the development of VSCodium, feel free to send BTC
<td><a href="https://www.macstadium.com" target="_blank"><img src="https://images.prismic.io/macstadium/66fbce64-707e-41f3-b547-241908884716_MacStadium_Logo.png?w=128&q=75" width="128" height="49" alt="MacStadium logo" /></a></td>
<td>for providing a Mac mini M1</td>
</tr>
<tr>
<td><a href="https://github.com/daiyam" target="_blank">@daiyam</a></td>
<td>for macOS certificate</td>
</tr>
</table>
## <a id="license"></a>License

View File

@@ -1,2 +1,7 @@
[
{
"id": "#1227",
"title": "Issue(macOS): manual update to `1.90.x`",
"url": "https://github.com/VSCodium/vscodium/issues/1917"
}
]

View File

@@ -35,6 +35,7 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
if [[ "${VSCODE_ARCH}" != "ia32" && "${VSCODE_ARCH}" != "x64" ]]; then
SHOULD_BUILD_REH="no"
SHOULD_BUILD_REH_WEB="no"
fi
VSCODE_PLATFORM="win32"
@@ -50,13 +51,14 @@ 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
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
yarn gulp minify-vscode-reh-web
yarn gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi
cd ..
fi

View File

@@ -120,5 +120,11 @@ if [[ "${SKIP_ASSETS}" == "no" ]]; then
rm -rf build/windows/msi/releasedir
fi
if [[ "${OS_NAME}" == "osx" && -f "./macos-codesign.env" ]]; then
. macos-codesign.env
echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}"
fi
. prepare_assets.sh
fi

View File

@@ -12,69 +12,41 @@ while getopts ":i" opt; do
esac
done
check_file() {
if [[ -f "${1}" ]]; then
echo applying patch: "${1}"
if ! git apply --ignore-whitespace "${1}"; then
echo failed to apply patch "${1}"
git apply --reject "${1}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${1}"
fi
git add .
git reset -q --hard HEAD
fi
}
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
for FILE in ../patches/*.patch; do
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
if ! git apply --ignore-whitespace "${FILE}"; then
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
check_file "${FILE}"
done
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
for FILE in ../patches/insider/*.patch; do
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
if ! git apply --ignore-whitespace "${FILE}"; then
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
check_file "${FILE}"
done
fi
for FILE in ../patches/linux/*.patch; do
if [[ -f "${FILE}" ]]; then
echo applying patch: "${FILE}"
if ! git apply --ignore-whitespace "${FILE}"; then
echo failed to apply patch "${FILE}"
git apply --reject "${FILE}"
git apply --reject "../patches/helper/settings.patch"
read -rp "Press any key when the conflict have been resolved..." -n1 -s
git restore .vscode/settings.json
git add .
git diff --staged -U1 > "${FILE}"
fi
git add .
git reset -q --hard HEAD
fi
for FILE in ../patches/linux/*/*.patch; do
check_file "${FILE}"
done

View File

@@ -3,17 +3,22 @@
set -e
if [[ -z "${GITHUB_TOKEN}" ]]; then
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
echo "Will not build because no GITHUB_TOKEN defined"
exit 0
else
GITHUB_TOKEN="${GH_TOKEN:-${GITHUB_TOKEN:-${GH_ENTERPRISE_TOKEN:-${GITHUB_ENTERPRISE_TOKEN}}}}"
fi
# Support for GitHub Enterprise
GH_HOST="${GH_HOST:-github.com}"
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
if [[ "${SHOULD_DEPLOY}" == "no" ]]; then
ASSETS="null"
else
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" )
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.${GH_HOST}/repos/${ASSETS_REPOSITORY}/releases/latest" )
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
RECHECK_ASSETS="${SHOULD_BUILD}"
@@ -93,6 +98,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on MacOS because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the MacOS builds"
fi
@@ -122,6 +134,7 @@ elif [[ "${ASSETS}" != "null" ]]; then
fi
export SHOULD_BUILD_REH="no"
export SHOULD_BUILD_REH_WEB="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows arm64 builds"
@@ -171,6 +184,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows ia32 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows ia32 builds"
fi
@@ -219,6 +239,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Windows x64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Windows x64 builds"
fi
@@ -226,6 +253,7 @@ elif [[ "${ASSETS}" != "null" ]]; then
elif [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${CHECK_ONLY_REH}" == "yes" ]]; then
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux ${VSCODE_ARCH} because we have no REH archive"
export SHOULD_BUILD="yes"
@@ -233,6 +261,15 @@ elif [[ "${ASSETS}" != "null" ]]; then
echo "Already have the Linux REH ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux ${VSCODE_ARCH} because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Linux REH-web ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH_WEB="no"
fi
else
# linux-arm64
@@ -265,6 +302,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
export SHOULD_BUILD_APPIMAGE="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
@@ -302,6 +346,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
export SHOULD_BUILD_APPIMAGE="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
@@ -323,6 +374,13 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux PowerPC64LE because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux PowerPC64LE builds"
fi
@@ -330,20 +388,33 @@ elif [[ "${ASSETS}" != "null" ]]; then
# linux-riscv64
if [[ "${VSCODE_ARCH}" == "riscv64" || "${CHECK_ALL}" == "yes" ]]; then
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
export SHOULD_BUILD_DEB="no"
export SHOULD_BUILD_RPM="no"
export SHOULD_BUILD_APPIMAGE="no"
if [[ -z $( contains "${APP_NAME}-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V 64 because we have no TAR"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V64 because we have no REH archive"
echo "Building on Linux RISC-V 64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux RISC-V 64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux PowerPC64LE builds"
echo "Already have all the Linux riscv64 builds"
fi
fi
@@ -370,7 +441,9 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
if [[ "${DISABLE_APPIMAGE}" == "yes" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
elif [[ -z $( contains "x86_64.AppImage" ) ]]; then
echo "Building on Linux x64 because we have no AppImage"
export SHOULD_BUILD="yes"
else
@@ -384,20 +457,85 @@ elif [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux x64 builds"
fi
fi
fi
elif [[ "${OS_NAME}" == "alpine" ]]; then
if [[ "${CHECK_ONLY_REH}" == "yes" ]]; then
if [[ -z $( contains "${APP_NAME_LC}-reh-alpine-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine ${VSCODE_ARCH} because we have no REH archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Alpine REH ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH="no"
fi
if [[ -z $( contains "${APP_NAME_LC}-reh-web-alpine-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine ${VSCODE_ARCH} because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
echo "Already have the Alpine REH-web ${VSCODE_ARCH} archive"
export SHOULD_BUILD_REH_WEB="no"
fi
else
# alpine-arm64
if [[ "${VSCODE_ARCH}" == "arm64" || "${CHECK_ALL}" == "yes" ]]; then
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-alpine-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine arm64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-alpine-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine arm64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
fi
# alpine-x64
if [[ "${VSCODE_ARCH}" == "x64" || "${CHECK_ALL}" == "yes" ]]; then
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-alpine-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine x64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
fi
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-web-alpine-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Alpine x64 because we have no REH-web archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH_WEB="no"
fi
fi
fi
fi
else
if [[ "${IS_SPEARHEAD}" == "yes" ]]; then
export SHOULD_BUILD_SRC="yes"
elif [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${VSCODE_ARCH}" == "riscv64" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_TAR="no"
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
fi
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
@@ -405,6 +543,7 @@ else
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
export SHOULD_BUILD_REH="no"
export SHOULD_BUILD_REH_WEB="no"
fi
fi
@@ -422,6 +561,7 @@ echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_REH=${SHOULD_BUILD_REH}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_REH_WEB=${SHOULD_BUILD_REH_WEB}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"

View File

@@ -7,9 +7,6 @@
- [MacOS](#dependencies-macos)
- [Windows](#dependencies-windows)
- [Build Scripts](#build-scripts)
- [Build in Docker](#build-docker)
- [X64](#build-docker-x64)
- [ARM 32bits](#build-docker-arm32)
- [Build Snap](#build-snap)
- [Patch Update Process](#patch-update-process)
- [Semi-Automated](#patch-update-process-semiauto)
@@ -76,49 +73,6 @@ The script `build/build.sh` provides several flags:
- `-p`: generate the packages/assets/installers
- `-s`: do not retrieve the source code of Visual Studio Code, it won't delete the existing build
## <a id="build-docker"></a>Build in Docker
To build for Linux, you can alternatively build VSCodium in docker
### <a id="build-docker-x64"></a>X64
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
```
When inside the container, you can use the following commands to build:
```
cd /root/vscodium
./build/build.sh
```
### <a id="build-docker-arm32"></a>ARM 32bits
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-armhf bash
```
When inside the container, you can use the following commands to build:
```
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs desktop-file-utils
cd /root/vscodium
./build/build.sh
```
## <a id="build-snap"></a>Build Snap
```

View File

@@ -6,6 +6,7 @@
- [Fonts showing up as rectangles](#linux-fonts-rectangle)
- [Global menu workaround for KDE](#linux-kde-global-menu)
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
- [Remote SSH doesn't work](#linux-remote-ssh)
- [macOS](#macos)
- [App can't be opened because Apple cannot check it for malicious software](#macos-unidentified-developer)
- ["VSCodium.app" is damaged and cant be opened. You should move it to the Bin](#macos-quarantine)
@@ -55,6 +56,14 @@ Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/
- If you have any other problems with the flatpak package try to look on the [FAQ](https://github.com/flathub/com.vscodium.codium?tab=readme-ov-file#faq) maybe the solution is already there or open an [issue](https://github.com/flathub/com.vscodium.codium/issues).
##### <a id="linux-remote-ssh"></a>*Remote SSH doesn't work*
Use the VSCodium's compatible extension [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh).
On the server, in the `sshd` config, `AllowTcpForwarding` need to be set to `yes`.
It might requires additional dependeincies due to the OS/distro (alpine).
## <a id="macos"></a>macOS
Since the App is signed with a self-signed certificate, on the first launch, you might see the following messages:

View File

@@ -1,4 +1,4 @@
{
"tag": "1.88.0",
"commit": "d994aede3529f4d1af9eeaeb234d32fd936243e7"
"tag": "1.93.0",
"commit": "5b066ec2e30cf46bc636d6d27af5404713f6b0f8"
}

View File

@@ -0,0 +1,5 @@
CERTIFICATE_OSX_APP_PASSWORD=
CERTIFICATE_OSX_ID=
CERTIFICATE_OSX_P12_DATA=
CERTIFICATE_OSX_P12_PASSWORD=
CERTIFICATE_OSX_TEAM_ID=

View File

@@ -12,14 +12,24 @@ tar -xzf ./vscode.tar.gz
cd vscode || { echo "'vscode' dir not found"; exit 1; }
export VSCODE_PLATFORM='alpine'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
VSCODE_HOST_MOUNT="$( pwd )"
export VSCODE_HOST_MOUNT
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
export VSCODE_HOST_MOUNT VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
if [[ -d "../patches/alpine/reh/" ]]; then
for file in "../patches/alpine/reh/"*.patch; do
if [[ -f "${file}" ]]; then
echo applying patch: "${file}";
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
fi
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break

View File

@@ -16,8 +16,30 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
export VSCODE_SKIP_NODE_VERSION_CHECK=1
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
if [[ -d "../patches/${OS_NAME}/client/" ]]; then
for file in "../patches/${OS_NAME}/client/"*.patch; do
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
export VSCODE_SYSROOT_REPO='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
export VSCODE_SYSROOT_PREFIX='-glibc-2.28'
fi
if [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
export VSCODE_ELECTRON_REPO='riscv-forks/electron-riscv-releases'
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
ELECTRON_VERSION="30.4.0"
if [[ "${ELECTRON_VERSION}" != "$(yarn config get target)" ]]; then
# Fail the pipeline if electron target doesn't match what is used.
# Look for releases here if electron version used by vscode changed:
# https://github.com/riscv-forks/electron-riscv-releases/releases
echo "Electron RISC-V binary version doesn't match target electron version!"
exit 1
fi
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"
echo "b391bd6e063c34c31b1048615994fca0a5922d5a6b21d6cee6c4335850791516 *electron-v${ELECTRON_VERSION}-linux-riscv64.zip" >> build/checksums/electron.txt
fi
if [[ -d "../patches/linux/client/" ]]; then
for file in "../patches/linux/client/"*.patch; do
if [[ -f "${file}" ]]; then
echo applying patch: "${file}";
if ! git apply --ignore-whitespace "${file}"; then
@@ -37,10 +59,14 @@ for i in {1..5}; do # try 5 times
echo "Yarn failed $i, trying again..."
done
./build/azure-pipelines/linux/setup-env.sh
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
source ./build/azure-pipelines/linux/setup-env.sh
else
./build/azure-pipelines/linux/setup-env.sh
fi
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
yarn --check-files && break
if [ $i -eq 3 ]; then
echo "Yarn failed too many times" >&2
exit 1

View File

@@ -7,12 +7,28 @@ if [[ "${CI_BUILD}" == "no" ]]; then
exit 1
fi
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
mkdir -p assets
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"
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
GLIBC_VERSION="2.28"
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
# Unofficial RISC-V nodejs builds doesn't provide v16.x
NODE_VERSION="18.18.1"
fi
export VSCODE_PLATFORM='linux'
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
export VSCODE_SKIP_NODE_VERSION_CHECK=1
export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
VSCODE_HOST_MOUNT="$( pwd )"
@@ -26,16 +42,36 @@ elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-ppc64le"
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
export VSCODE_SYSROOT_REPO='VSCodium/vscode-linux-build-agent'
export VSCODE_SYSROOT_VERSION='20240129-253798'
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
# Unofficial RISC-V nodejs builds doesn't provide v16.x
sed -i '/target/s/"16.*"/"18.18.1"/' remote/.yarnrc
fi
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
sed -i "/target/s/\"20.*\"/\"${NODE_VERSION}\"/" remote/.yarnrc
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
echo applying patch: "${file}";
if ! git apply --ignore-whitespace "${file}"; then
echo failed to apply patch "${file}" >&2
exit 1
fi
fi
done
fi
for i in {1..5}; do # try 5 times
yarn --cwd build --frozen-lockfile --check-files && break
if [[ $i == 3 ]]; then
@@ -45,7 +81,11 @@ for i in {1..5}; do # try 5 times
echo "Yarn failed $i, trying again..."
done
./build/azure-pipelines/linux/setup-env.sh --only-remote
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
source ./build/azure-pipelines/linux/setup-env.sh
else
./build/azure-pipelines/linux/setup-env.sh --only-remote
fi
for i in {1..5}; do # try 5 times
yarn --frozen-lockfile --check-files && break
@@ -56,24 +96,36 @@ for i in {1..5}; do # try 5 times
echo "Yarn failed $i, trying again..."
done
EXPECTED_GLIBC_VERSION="2.17" EXPECTED_GLIBCXX_VERSION="3.4.22" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
node build/azure-pipelines/distro/mixin-npm
export VSCODE_NODE_GLIBC='-glibc-2.17'
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building REH"
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
cd ..
EXPECTED_GLIBC_VERSION="${GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
echo "Archiving REH"
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
popd
fi
mkdir -p assets
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building REH-web"
yarn gulp minify-vscode-reh-web
yarn gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
EXPECTED_GLIBC_VERSION="${GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
echo "Archiving REH-web"
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
popd
fi
echo "Building and moving REH"
cd "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
cd ..
npm install -g checksum

View File

@@ -0,0 +1,23 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index e12a33e..9300d62 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -188,5 +188,16 @@ function getNodeChecksum(expectedName) {
function extractAlpinefromDocker(nodeVersion, platform, arch) {
- const imageName = arch === 'arm64' ? 'arm64v8/node' : 'node';
+ let imageName = 'node';
+ let dockerPlatform = '';
+
+ if (arch === 'arm64') {
+ imageName = 'arm64v8/node';
+
+ const architecture = cp.execSync(`docker info --format '{{json .Architecture}}'`, { encoding: 'utf8' }).trim();
+ if (architecture != '"aarch64"') {
+ dockerPlatform = '--platform=linux/arm64';
+ }
+ }
+
log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageName}`);
- const contents = cp.execSync(`docker run --rm ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
+ const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]);

File diff suppressed because it is too large Load Diff

View File

@@ -1,60 +1,62 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 595d0ce..99bfe30 100644
index 85b9b2e..dc33fbc 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -290,4 +290,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -342,2 +342,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const name = product.nameShort;
+ const release = packageJson.release;
@@ -345,3 +346,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const packageJsonStream = gulp.src(['remote/package.json'], { base: 'remote' })
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined }));
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined }));
@@ -296,3 +297,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
- .pipe(json({ name, version, dependencies: undefined, optionalDependencies: undefined, ...(isESM(`Setting 'type: module' in top level package.json`) ? { type: 'module' } : {}) })) // TODO@esm this should be configured in the top level package.json
+ .pipe(json({ name, version, release, dependencies: undefined, optionalDependencies: undefined, ...(isESM(`Setting 'type: module' in top level package.json`) ? { type: 'module' } : {}) })) // TODO@esm this should be configured in the top level package.json
.pipe(es.through(function (file) {
@@ -353,3 +354,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version }));
+ .pipe(json({ commit, date, version, release }));
- .pipe(json({ commit, date: readISODate('out-build'), version }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, release }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index e1507e0..9a12a12 100644
index 8d15015..dc50d78 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -233,3 +233,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -320,3 +320,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
- let version = packageJson.version;
+ let version = packageJson.version
const quality = product.quality;
@@ -241,3 +241,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
@@ -333,3 +333,4 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const name = product.nameShort;
- const packageJsonUpdates = { name, version };
- const packageJsonUpdates = { name, version, ...(isESM(`Setting 'type: module' and 'main: out/main.js' in top level package.json`) ? { type: 'module', main: 'out/main.js' } : {}) }; // TODO@esm this should be configured in the top level package.json
+ const release = packageJson.release;
+ const packageJsonUpdates = { name, version, release };
@@ -252,3 +253,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version };
+ const productJsonUpdate = { commit, date, checksums, version, release };
+ const packageJsonUpdates = { name, version, release, ...(isESM(`Setting 'type: module' and 'main: out/main.js' in top level package.json`) ? { type: 'module', main: 'out/main.js' } : {}) }; // TODO@esm this should be configured in the top level package.json
@@ -350,3 +351,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, release }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 8c2b62f..303fb16 100644
index 7959454..4bceb17 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -24,4 +24,2 @@ const commit = getVersion(root);
@@ -27,4 +27,2 @@ const commit = getVersion(root);
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
-
/**
@@ -86,3 +84,3 @@ function prepareDebPackage(arch) {
@@ -89,3 +87,3 @@ function prepareDebPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -194,4 +192,3 @@ function prepareRpmPackage(arch) {
@@ -203,4 +201,3 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@ICON@@', product.linuxIconName))
- .pipe(replace('@@VERSION@@', packageJson.version))
- .pipe(replace('@@RELEASE@@', linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', rpmArch))
@@ -270,3 +267,3 @@ function prepareSnapPackage(arch) {
@@ -279,3 +276,3 @@ function prepareSnapPackage(arch) {
.pipe(replace('@@NAME@@', product.applicationName))
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
@@ -71,7 +73,7 @@ index 5adfdfb..d6ddead 100644
+ RawVersion: `${pkg.version.replace(/-\w+$/, '')}.${pkg.release}`,
NameVersion: product.win32NameVersion + (target === 'user' ? ' (User)' : ''),
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
index 3a57612..d26a55b 100644
index 022d2e6..1523754 100644
--- a/src/vs/base/common/product.ts
+++ b/src/vs/base/common/product.ts
@@ -58,2 +58,3 @@ export interface IProductConfiguration {
@@ -79,16 +81,16 @@ index 3a57612..d26a55b 100644
+ readonly release: string;
readonly date?: string;
diff --git a/src/vs/platform/diagnostics/node/diagnosticsService.ts b/src/vs/platform/diagnostics/node/diagnosticsService.ts
index 0be311f..d6c4a18 100644
index 7e0bc11..1fa5310 100644
--- a/src/vs/platform/diagnostics/node/diagnosticsService.ts
+++ b/src/vs/platform/diagnostics/node/diagnosticsService.ts
@@ -224,3 +224,3 @@ export class DiagnosticsService implements IDiagnosticsService {
@@ -231,3 +231,3 @@ export class DiagnosticsService implements IDiagnosticsService {
const output: string[] = [];
- output.push(`Version: ${this.productService.nameShort} ${this.productService.version} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
+ output.push(`Version: ${this.productService.nameShort} ${this.productService.version} ${this.productService.release || 'Release unknown'} (${this.productService.commit || 'Commit unknown'}, ${this.productService.date || 'Date unknown'})`);
output.push(`OS Version: ${osLib.type()} ${osLib.arch()} ${osLib.release()}`);
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 467e11c..8e7d474 100644
index 58278d9..956cdff 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -43,6 +43,7 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {

View File

@@ -0,0 +1,18 @@
diff --git a/src/vs/platform/extensionManagement/node/extensionDownloader.ts b/src/vs/platform/extensionManagement/node/extensionDownloader.ts
index 0ddae28..2e3c9b2 100644
--- a/src/vs/platform/extensionManagement/node/extensionDownloader.ts
+++ b/src/vs/platform/extensionManagement/node/extensionDownloader.ts
@@ -11,3 +11,2 @@ import { joinPath } from 'vs/base/common/resources';
import * as semver from 'vs/base/common/semver/semver';
-import { isBoolean } from 'vs/base/common/types';
import { URI } from 'vs/base/common/uri';
@@ -51,2 +50,3 @@ export class ExtensionsDownloader extends Disposable {
@IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService,
+ // @ts-expect-error no-unused-variable
@IConfigurationService private readonly configurationService: IConfigurationService,
@@ -116,4 +116,3 @@ export class ExtensionsDownloader extends Disposable {
- const value = this.configurationService.getValue('extensions.verifySignature');
- return isBoolean(value) ? value : true;
+ return false;
}

View File

@@ -1,8 +1,8 @@
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
index 66b9062..0a659dc 100644
index c581ac0..f11c0f0 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
@@ -315,2 +315,8 @@ configurationRegistry.registerConfiguration({
@@ -319,2 +319,8 @@ configurationRegistry.registerConfiguration({
},
+ 'workbench.welcomePage.extraAnnouncements': {
+ scope: ConfigurationScope.MACHINE,
@@ -12,10 +12,10 @@ index 66b9062..0a659dc 100644
+ },
'workbench.startupEditor': {
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
index a73549a..fc95016 100644
index 664c55b..43f9e2e 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts
@@ -115,4 +115,8 @@ type GettingStartedActionEvent = {
@@ -113,4 +113,8 @@ type GettingStartedActionEvent = {
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
+type AnnouncementEntry = { id: string, title: string, url: string };
@@ -24,35 +24,26 @@ index a73549a..fc95016 100644
+const BUILTIN_ANNOUNCEMENTS: AnnouncementEntry[] = [/* BUILTIN_ANNOUNCEMENTS */];
+
export class GettingStartedPage extends EditorPane {
@@ -151,2 +155,4 @@ export class GettingStartedPage extends EditorPane {
@@ -149,2 +153,4 @@ export class GettingStartedPage extends EditorPane {
private gettingStartedList?: GettingStartedIndexList<IResolvedWalkthrough>;
+ private announcementList?: GettingStartedIndexList<AnnouncementEntry>;
+ private announcementData?: AnnouncementEntry[];
private videoList?: GettingStartedIndexList<IWelcomePageStartEntry>;
@@ -844,2 +850,3 @@ export class GettingStartedPage extends EditorPane {
@@ -812,2 +818,3 @@ export class GettingStartedPage extends EditorPane {
const gettingStartedList = this.buildGettingStartedWalkthroughsList();
+ const announcementList = await this.buildAnnouncementList();
@@ -856,6 +863,6 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noVideos');
- reset(rightColumn, videoList?.getDomElement(), gettingStartedList.getDomElement());
+ reset(rightColumn, videoList?.getDomElement(), gettingStartedList.getDomElement(), announcementList.getDomElement());
} else {
this.container.classList.add('noVideos');
- reset(rightColumn, gettingStartedList.getDomElement());
+ reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
}
@@ -866,3 +873,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noVideos');
- reset(rightColumn, videoList?.getDomElement());
+ reset(rightColumn, videoList?.getDomElement(), announcementList.getDomElement());
}
@@ -870,3 +877,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noVideos');
- reset(rightColumn);
+ reset(rightColumn, announcementList.getDomElement());
}
@@ -1023,2 +1030,55 @@ export class GettingStartedPage extends EditorPane {
@@ -822,3 +829,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.remove('noWalkthroughs');
- reset(rightColumn, gettingStartedList.getDomElement());
+ reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
}
@@ -826,3 +833,3 @@ export class GettingStartedPage extends EditorPane {
this.container.classList.add('noWalkthroughs');
- reset(rightColumn);
+ reset(rightColumn, announcementList.getDomElement());
}
@@ -978,2 +985,55 @@ export class GettingStartedPage extends EditorPane {
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {

View File

@@ -1,18 +1,18 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 2a0c236..0f10f17 100644
index 7d58861..cefb8ad 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -256,3 +256,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -306,3 +306,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date, version, release }));
+ .pipe(json({ commit, date, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }));
- .pipe(json({ commit, date: readISODate('out-build'), version, release }))
+ .pipe(json({ commit, date: readISODate('out-build'), version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }))
.pipe(es.through(function (file) {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 0ca2cfd..9bf83a7 100644
index 4af4067..1bac2cc 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -244,3 +244,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const date = new Date().toISOString();
- const productJsonUpdate = { commit, date, checksums, version, release };
+ const productJsonUpdate = { commit, date, checksums, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' };
@@ -261,3 +261,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const productJsonStream = gulp.src(['product.json'], { base: '.' })
- .pipe(json({ commit, date: readISODate('out-build'), checksums, version, release }))
+ .pipe(json({ commit, date: readISODate('out-build'), checksums, version, release, serverDownloadUrlTemplate: 'https://github.com/VSCodium/vscodium-insiders/releases/download/${version}.${release}-insider/vscodium-reh-${os}-${arch}-${version}.${release}-insider.tar.gz' }))
.pipe(es.through(function (file) {

View File

@@ -1,10 +1,8 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index 72dd74f..94d4957 100644
index 9ca239e..b0b2929 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -86,4 +86,3 @@ for (let dir of dirs) {
- if (/^(.build\/distro\/npm\/)?remote/.test(dir) && process.platform === 'win32' && (process.arch === 'arm64' || process.env['npm_config_arch'] === 'arm64')) {
- // windows arm: do not execute `yarn` on remote folder
+ if (/^(.build\/distro\/npm\/)?remote/.test(dir)) {
continue;
@@ -118,2 +118,3 @@ for (let dir of dirs) {
opts = { env };
+ continue;
} else if (/^extensions\//.test(dir)) {

File diff suppressed because it is too large Load Diff

View File

@@ -1,39 +1,39 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 8c2b62f..843e8d4 100644
index 28ddfb0..0fd18a1 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -187,2 +187,3 @@ function prepareRpmPackage(arch) {
@@ -192,2 +192,3 @@ function prepareRpmPackage(arch) {
const spec = code.pipe(es.through(
+ null,
async function () {
@@ -302,4 +303,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch)));
@@ -306,4 +307,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch)));
- gulp.task(prepareDebTask);
- const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, buildDebPackage(arch));
+ const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, task.series(prepareDebTask, buildDebPackage(arch)));
gulp.task(buildDebTask);
@@ -308,4 +308,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch)));
@@ -312,4 +312,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch)));
- gulp.task(prepareRpmTask);
- const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, buildRpmPackage(arch));
+ const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, task.series(prepareRpmTask, buildRpmPackage(arch)));
gulp.task(buildRpmTask);
diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
index 80c247d..40f1df2 100644
index 19adbeb..fef80a5 100644
--- a/build/linux/dependencies-generator.js
+++ b/build/linux/dependencies-generator.js
@@ -24,3 +24,3 @@ const product = require("../../product.json");
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false;
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/120.0.6099.268:chrome/installer/linux/BUILD.gn;l=64-80
// Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/124.0.6367.243:chrome/installer/linux/BUILD.gn;l=64-80
@@ -56,3 +56,3 @@ async function getDependencies(packageType, buildDir, applicationName, arch) {
// Add the tunnel binary.
- files.push(path.join(buildDir, 'bin', product.tunnelApplicationName));
+ // files.push(path.join(buildDir, 'bin', product.tunnelApplicationName));
// Add the main executable.
diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
index 9f1a068..48e3d52 100644
index 5fe4ac5..1d3e68a 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -25,3 +25,3 @@ import product = require('../../product.json');

View File

@@ -0,0 +1,28 @@
diff --git a/build/lib/fetch.js b/build/lib/fetch.js
index 2fed63b..9a9f013 100644
--- a/build/lib/fetch.js
+++ b/build/lib/fetch.js
@@ -15,2 +15,3 @@ const crypto = require("crypto");
const through2 = require("through2");
+const fetch = require("node-fetch");
function fetchUrls(urls, options) {
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index feca7d3..b4f6540 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -15,2 +15,3 @@ const crypto_1 = require("crypto");
const ansiColors = require("ansi-colors");
+const fetch = require("node-fetch");
// Based on https://source.chromium.org/chromium/chromium/src/+/main:build/linux/sysroot_scripts/install-sysroot.py.
diff --git a/yarn.lock b/yarn.lock
index 2f4c572..6b65370 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6458,2 +6458,7 @@ liftoff@^3.1.0:
+lilconfig@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
lilconfig@^3.0.0:

View File

@@ -0,0 +1,734 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index 949b5f3..30093d6 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -9,2 +9,6 @@ fi
+if [ "$npm_config_arch" == "riscv64" ]; then
+ exit 0
+fi
+
export VSCODE_SYSROOT_DIR=$PWD/.build/sysroots
@@ -67,2 +71,16 @@ elif [ "$npm_config_arch" == "arm" ]; then
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf"
+elif [ "$npm_config_arch" == "ppc64" ]; then
+ if [ "$(echo "$@" | grep -c -- "--only-remote")" -eq 0 ]; then
+ # Set compiler toolchain for client native modules
+ export CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
+ export CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
+ export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
+ export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+
+ # Set compiler toolchain for remote server
+ export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
+ export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+ fi
fi
diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
index 19482c2..f49d910 100755
--- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
+++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
@@ -9,2 +9,4 @@ elif [ "$VSCODE_ARCH" == "armhf" ]; then
TRIPLE="arm-rpi-linux-gnueabihf"
+elif [ "$VSCODE_ARCH" == "ppc64le" ]; then
+ TRIPLE="powerpc64le-linux-gnu"
fi
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
index 0b5f38c..9f3b02b 100644
--- a/build/checksums/vscode-sysroot.txt
+++ b/build/checksums/vscode-sysroot.txt
@@ -6 +6,2 @@
dbb927408393041664a020661f2641c9785741be3d29b050b9dac58980967784 x86_64-linux-gnu-glibc-2.28.tar.gz
+fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index 7d58861..f14984f 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -48,2 +48,4 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
@@ -217,2 +219,10 @@ function nodejs(platform, arch) {
case 'linux':
+ if (arch === 'riscv64') {
+ return fetchUrls(`/download/release/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`,
+ { base: 'https://unofficial-builds.nodejs.org', checksumSha256 }).pipe(flatmap(stream => stream.pipe(gunzip()).pipe
+ (untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
+ .pipe(rename('node'));
+ }
return (product.nodejsRepository !== 'https://nodejs.org' ?
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 6f8144b..8a8195e 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -26,2 +26,4 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index 4af4067..1f99344 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -350,2 +350,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
+ const electronOverride = {};
+ if (process.env.VSCODE_ELECTRON_REPO) {
+ // electron doesn't support riscv64 and ppc64le, override the repo with `VSCODE_ELECTRON_REPO`.
+ electronOverride.repo = process.env.VSCODE_ELECTRON_REPO;
+ }
+
+ if (process.env.VSCODE_ELECTRON_TAG) {
+ electronOverride.tag = process.env.VSCODE_ELECTRON_TAG;
+ }
+
let result = all
@@ -354,3 +364,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
.pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523
- .pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
+ .pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
.pipe(filter(['**', '!LICENSE', '!version'], { dot: true }));
@@ -449,2 +459,4 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 28ddfb0..cb3169c 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -33,3 +33,3 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
}
@@ -141,3 +141,3 @@ function getRpmBuildPath(rpmArch) {
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
@@ -301,2 +301,4 @@ const BUILD_TARGETS = [
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
+ { arch: 'riscv64' },
];
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
index bbcb6bf..d00158f 100644
--- a/build/linux/debian/calculate-deps.js
+++ b/build/linux/debian/calculate-deps.js
@@ -51,2 +51,8 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
break;
+ case 'ppc64el':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`, `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`, `-l${chromiumSysroot}/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`, `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 92f8065..b86b4db 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -61,2 +61,14 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
break;
+ case 'ppc64el':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/powerpc64le-linux-gnu`,
+ `-l${chromiumSysroot}/lib/powerpc64le-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/powerpc64le-linux-gnu`,
+ `-l${vscodeSysroot}/lib/powerpc64le-linux-gnu`);
+ break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`,
+ `-l${chromiumSysroot}/lib/riscv64-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`,
+ `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
index 3a642a7..91daf09 100644
--- a/build/linux/debian/dep-lists.js
+++ b/build/linux/debian/dep-lists.js
@@ -144,2 +144,81 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
+ ],
+ 'ppc64el': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.9.14)',
+ 'libdrm2 (>= 2.4.75)',
+ 'libexpat1 (>= 2.1~beta3)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.37.3)',
+ 'libgssapi-krb5-2 (>= 1.17)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libkrb5-3 (>= 1.6.dfsg.2)',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.30)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.5.0)',
+ 'libxkbfile1 (>= 1:1.1.0)',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
]
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 86d1de1..ab0e268 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -144,2 +144,81 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils (>= 1.0.2)'
+ ],
+ 'ppc64el': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.9.14)',
+ 'libdrm2 (>= 2.4.75)',
+ 'libexpat1 (>= 2.1~beta3)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.37.3)',
+ 'libgssapi-krb5-2 (>= 1.17)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libkrb5-3 (>= 1.6.dfsg.2)',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.30)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.5.0)',
+ 'libxkbfile1 (>= 1:1.1.0)',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
]
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index feca7d3..f075ebc 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -72,3 +72,6 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ // if VSCODE_SYSROOT_REPO and VSCODE_SYSROOT_VERSION are set, use those instead
+ const repo = process.env['VSCODE_SYSROOT_REPO'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repo}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -81,3 +84,3 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repo} @ ${actualVersion}`);
}
@@ -136,2 +139,10 @@ async function getVSCodeSysroot(arch) {
break;
+ case 'ppc64le':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = `powerpc64le-linux-gnu`;
+ break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index aa417dc..58f0eee 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -84,3 +84,6 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
try {
- const response = await fetch(`https://api.github.com/repos/Microsoft/vscode-linux-build-agent/releases/tags/v${version}`, {
+ // if VSCODE_SYSROOT_REPO and VSCODE_SYSROOT_VERSION are set, use those instead
+ const repo = process.env['VSCODE_SYSROOT_REPO'] ?? 'Microsoft/vscode-linux-build-agent';
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
+ const response = await fetch(`https://api.github.com/repos/${repo}/releases/tags/v${actualVersion}`, {
headers: ghApiHeaders,
@@ -93,3 +96,3 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)
if (!asset) {
- throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`);
+ throw new Error(`Could not find asset in release of ${repo} @ ${actualVersion}`);
}
@@ -153,2 +156,10 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
break;
+ case 'ppc64el':
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
+ triple = 'powerpc64le-linux-gnu'
+ break;
+ case 'riscv64':
+ expectedName = `riscv64-linux-gnu${prefix}.tar.gz`;
+ triple = 'riscv64-linux-gnu';
+ break;
}
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
index ce21d50..cadefc2 100644
--- a/build/linux/debian/types.js
+++ b/build/linux/debian/types.js
@@ -8,3 +8,3 @@ exports.isDebianArchString = isDebianArchString;
function isDebianArchString(s) {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485e..24fe452 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -5,6 +5,6 @@
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
index 9798451..bd246e7 100644
--- a/build/linux/rpm/dep-lists.js
+++ b/build/linux/rpm/dep-lists.js
@@ -321,2 +321,102 @@ exports.referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
index b798127..c3f5308 100644
--- a/build/linux/rpm/dep-lists.ts
+++ b/build/linux/rpm/dep-lists.ts
@@ -320,2 +320,102 @@ export const referenceGeneratedDepsByArch = {
'xdg-utils'
+ ],
+ "ppc64le": [
+ 'ca-certificates',
+ 'ld-linux-x86-64.so.2()(64bit)',
+ 'ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)',
+ 'ld64.so.2()(64bit)',
+ 'ld64.so.2(GLIBC_2.17)(64bit)',
+ 'libX11.so.6()(64bit)',
+ 'libXcomposite.so.1()(64bit)',
+ 'libXdamage.so.1()(64bit)',
+ 'libXext.so.6()(64bit)',
+ 'libXfixes.so.3()(64bit)',
+ 'libXrandr.so.2()(64bit)',
+ 'libasound.so.2()(64bit)',
+ 'libasound.so.2(ALSA_0.9)(64bit)',
+ 'libasound.so.2(ALSA_0.9.0rc4)(64bit)',
+ 'libatk-1.0.so.0()(64bit)',
+ 'libatk-bridge-2.0.so.0()(64bit)',
+ 'libatspi.so.0()(64bit)',
+ 'libc.so.6()(64bit)',
+ 'libc.so.6(GLIBC_2.14)(64bit)',
+ 'libc.so.6(GLIBC_2.17)(64bit)',
+ 'libc.so.6(GLIBC_2.2.5)(64bit)',
+ 'libc.so.6(GLIBC_2.28)(64bit)',
+ 'libc.so.6(GLIBC_2.4)(64bit)',
+ 'libc.so.6(GLIBC_2.9)(64bit)',
+ 'libcairo.so.2()(64bit)',
+ 'libcups.so.2()(64bit)',
+ 'libcurl.so.4()(64bit)',
+ 'libdbus-1.so.3()(64bit)',
+ 'libdbus-1.so.3(LIBDBUS_1_3)(64bit)',
+ 'libdl.so.2()(64bit)',
+ 'libdl.so.2(GLIBC_2.17)(64bit)',
+ 'libdrm.so.2()(64bit)',
+ 'libexpat.so.1()(64bit)',
+ 'libgbm.so.1()(64bit)',
+ 'libgcc_s.so.1()(64bit)',
+ 'libgcc_s.so.1(GCC_3.0)(64bit)',
+ 'libgcc_s.so.1(GCC_3.4.4)(64bit)',
+ 'libgio-2.0.so.0()(64bit)',
+ 'libglib-2.0.so.0()(64bit)',
+ 'libgobject-2.0.so.0()(64bit)',
+ 'libgssapi_krb5.so.2()(64bit)',
+ 'libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)',
+ 'libgtk-3.so.0()(64bit)',
+ 'libkrb5.so.3()(64bit)',
+ 'libkrb5.so.3(krb5_3_MIT)(64bit)',
+ 'libm.so.6()(64bit)',
+ 'libm.so.6(GLIBC_2.17)(64bit)',
+ 'libm.so.6(GLIBC_2.2.5)(64bit)',
+ 'libm.so.6(GLIBC_2.27)(64bit)',
+ 'libnspr4.so()(64bit)',
+ 'libnss3.so()(64bit)',
+ 'libnss3.so(NSS_3.11)(64bit)',
+ 'libnss3.so(NSS_3.12)(64bit)',
+ 'libnss3.so(NSS_3.12.1)(64bit)',
+ 'libnss3.so(NSS_3.2)(64bit)',
+ 'libnss3.so(NSS_3.22)(64bit)',
+ 'libnss3.so(NSS_3.3)(64bit)',
+ 'libnss3.so(NSS_3.30)(64bit)',
+ 'libnss3.so(NSS_3.4)(64bit)',
+ 'libnss3.so(NSS_3.5)(64bit)',
+ 'libnss3.so(NSS_3.9.2)(64bit)',
+ 'libnssutil3.so()(64bit)',
+ 'libnssutil3.so(NSSUTIL_3.12.3)(64bit)',
+ 'libpango-1.0.so.0()(64bit)',
+ 'libpthread.so.0()(64bit)',
+ 'libpthread.so.0(GLIBC_2.17)(64bit)',
+ 'libpthread.so.0(GLIBC_2.2.5)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.2)(64bit)',
+ 'libpthread.so.0(GLIBC_2.3.3)(64bit)',
+ 'libsmime3.so()(64bit)',
+ 'libsmime3.so(NSS_3.10)(64bit)',
+ 'libsmime3.so(NSS_3.2)(64bit)',
+ 'libssl3.so(NSS_3.28)(64bit)',
+ 'libstdc++.so.6()(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.5)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.8)(64bit)',
+ 'libstdc++.so.6(CXXABI_1.3.9)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.11)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.14)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.15)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.18)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.19)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.20)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.21)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.22)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.5)(64bit)',
+ 'libstdc++.so.6(GLIBCXX_3.4.9)(64bit)',
+ 'libutil.so.1()(64bit)',
+ 'libutil.so.1(GLIBC_2.2.5)(64bit)',
+ 'libxcb.so.1()(64bit)',
+ 'libxkbcommon.so.0()(64bit)',
+ 'libxkbcommon.so.0(V_0.5.0)(64bit)',
+ 'libxkbfile.so.1()(64bit)',
+ 'rpmlib(FileDigests) <= 4.6.0-1',
+ 'rtld(GNU_HASH)',
+ 'xdg-utils'
]
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
index a20b9c2..99a8cff 100644
--- a/build/linux/rpm/types.js
+++ b/build/linux/rpm/types.js
@@ -8,3 +8,3 @@ exports.isRpmArchString = isRpmArchString;
function isRpmArchString(s) {
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
index c6a01da..d94537e 100644
--- a/build/linux/rpm/types.ts
+++ b/build/linux/rpm/types.ts
@@ -5,6 +5,6 @@
-export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64';
+export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64';
export function isRpmArchString(s: string): s is RpmArchString {
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 4bec13d..3debda1 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -216,2 +216,5 @@ pub enum Platform {
LinuxARM32Legacy,
+ LinuxPPC64LE,
+ LinuxPPC64LELegacy,
+ LinuxRISCV64,
DarwinX64,
@@ -229,2 +232,4 @@ impl Platform {
Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
+ Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
+ Platform::LinuxRISCV64 => Some("linux-riscv64".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
@@ -247,2 +252,5 @@ impl Platform {
Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
+ Platform::LinuxPPC64LE => "server-linux-ppc64le",
+ Platform::LinuxPPC64LELegacy => "server-linux-legacy-ppc64le",
+ Platform::LinuxRISCV64 => "server-linux-riscv64",
Platform::DarwinX64 => "server-darwin",
@@ -266,2 +274,5 @@ impl Platform {
Platform::LinuxARM32Legacy => "cli-linux-armhf",
+ Platform::LinuxPPC64LE => "cli-linux-ppc64le",
+ Platform::LinuxPPC64LELegacy => "cli-linux-ppc64le",
+ Platform::LinuxRISCV64 => "cli-linux-riscv64",
Platform::DarwinX64 => "cli-darwin-x64",
@@ -298,2 +309,6 @@ impl Platform {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "ppc64le")) {
+ Some(Platform::LinuxPPC64LE)
+ } else if cfg!(all(target_os = "linux", target_arch = "riscv64")) {
+ Some(Platform::LinuxRISCV64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
@@ -325,2 +340,5 @@ impl fmt::Display for Platform {
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxPPC64LELegacy => "LinuxPPC64LELegacy",
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index 0f49ab2..d873a49 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -86,2 +86,6 @@ impl PreReqChecker {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LE
+ } else if cfg!(target_arch = "riscv64") {
+ Platform::LinuxRISCV64
} else {
@@ -95,2 +99,4 @@ impl PreReqChecker {
Platform::LinuxARM32Legacy
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LELegacy
} else {
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 31a618f..dc457e0 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -56,2 +56,4 @@ case $ARCH in
;;
+ ppc64el) LDCONFIG_ARCH="64bit";;
+ riscv64) LDCONFIG_ARCH="RISC-V";;
esac
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 1dcc4c7..54a7f36 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -41,2 +41,4 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
@@ -64,2 +66,4 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
@@ -99,2 +103,8 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
+ if (arch === 'riscv64') {
+ return TargetPlatform.LINUX_RISCV64;
+ }
return TargetPlatform.UNKNOWN;
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 822260b..fc11650 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -294,2 +294,4 @@ export const enum TargetPlatform {
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',

View File

@@ -1,42 +0,0 @@
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" "$@"

View File

@@ -1,8 +1,8 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c2b81d0..2e94d99 100644
index 560bdc1..9208fa0 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -375,16 +375,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
@@ -392,16 +392,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
- if (platform === 'linux' && process.env['VSCODE_NODE_GLIBC'] === '-glibc-2.17') {
- result = es.merge(result,
@@ -18,30 +18,21 @@ index c2b81d0..2e94d99 100644
- );
- }
-
return result.pipe(vfs.dest(destination));
diff --git a/remote/.yarnrc b/remote/.yarnrc
index 4e7208c..f7304bc 100644
--- a/remote/.yarnrc
+++ b/remote/.yarnrc
@@ -1,3 +1,3 @@
disturl "https://nodejs.org/dist"
-target "18.18.2"
+target "16.20.2"
ms_build_id "256117"
result = inlineMeta(result, {
diff --git a/remote/package.json b/remote/package.json
index 974450e..513856f 100644
index aa24bf8..63a94bf 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -31,3 +31,3 @@
@@ -32,3 +32,3 @@
"native-watchdog": "^1.4.1",
- "node-pty": "1.1.0-beta11",
- "node-pty": "1.1.0-beta21",
+ "node-pty": "1.1.0-beta4",
"tas-client-umd": "0.1.8",
"tas-client-umd": "0.2.0",
diff --git a/remote/yarn.lock b/remote/yarn.lock
index d62eb4b..f175b85 100644
index 2478846..32d0456 100644
--- a/remote/yarn.lock
+++ b/remote/yarn.lock
@@ -391,2 +391,7 @@ ms@2.1.2:
@@ -444,2 +444,7 @@ ms@2.1.2:
+nan@^2.17.0:
+ version "2.18.0"
@@ -49,17 +40,17 @@ index d62eb4b..f175b85 100644
+ integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
+
napi-build-utils@^1.0.1:
@@ -408,3 +413,3 @@ node-abi@^3.3.0:
@@ -461,3 +466,3 @@ node-abi@^3.3.0:
-node-addon-api@7.1.0, node-addon-api@^7.1.0:
+node-addon-api@7.1.0:
version "7.1.0"
@@ -433,8 +438,8 @@ node-gyp-build@^4.3.0:
@@ -486,8 +491,8 @@ node-gyp-build@4.8.1, node-gyp-build@^4.3.0:
-node-pty@1.1.0-beta11:
- version "1.1.0-beta11"
- resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta11.tgz#909d5dd8f9aa2a7857e7b632fd4d2d4768bdf69f"
- integrity sha512-vTjF+VrvSCfPDILUkIT+YrG1Fdn06/eBRS2fc9a3JzYAvknMB1Ip8aoJhxl8hNpjWAbprmCEiV91mlfNpCD+GQ==
-node-pty@1.1.0-beta21:
- version "1.1.0-beta21"
- resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-1.1.0-beta21.tgz#d75c1dfe4ff2c173459c974df72e91a4eae6dc52"
- integrity sha512-FYpnY9g8qMQLTpqyeY9NVli6YfCWwvG6v6gmaDBbPjlc1VMp/+Zivq0SStDrRr1aciGnFCZzpL0BzdMnmbDnAw==
+node-pty@1.1.0-beta4:
+ version "1.1.0-beta4"
+ resolved "https://registry.npmjs.org/node-pty/-/node-pty-1.1.0-beta4.tgz#ee74d909c9f422ffc7f675e1092529673f8906ec"

View File

@@ -5,5 +5,5 @@ index c9e57db..ef27166 100644
@@ -2,3 +2,3 @@ Name: @@NAME@@
Version: @@VERSION@@
-Release: @@RELEASE@@.el8
+Release: el7
+Release: el8
Summary: Code editing. Redefined.

View File

@@ -1,102 +0,0 @@
diff --git a/build/lib/fetch.js b/build/lib/fetch.js
index ba23e78..9b8a5a1 100644
--- a/build/lib/fetch.js
+++ b/build/lib/fetch.js
@@ -13,2 +13,3 @@ const crypto = require("crypto");
const through2 = require("through2");
+const fetch = require("node-fetch");
function fetchUrls(urls, options) {
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
index d637fce..02cb192 100644
--- a/build/linux/debian/install-sysroot.js
+++ b/build/linux/debian/install-sysroot.js
@@ -14,2 +14,3 @@ const crypto_1 = require("crypto");
const ansiColors = require("ansi-colors");
+const fetch = require("node-fetch");
// Based on https://source.chromium.org/chromium/chromium/src/+/main:build/linux/sysroot_scripts/install-sysroot.py.
diff --git a/package.json b/package.json
index f734771..0d118ad 100644
--- a/package.json
+++ b/package.json
@@ -172,3 +172,3 @@
"gulp-plumber": "^1.2.0",
- "gulp-postcss": "^9.1.0",
+ "gulp-postcss": "9.0.1",
"gulp-rename": "^1.2.0",
diff --git a/yarn.lock b/yarn.lock
index 7dcbe6f..fc13bba 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4123,9 +4123,2 @@ fancy-log@^1.3.2, fancy-log@^1.3.3:
-fancy-log@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-2.0.0.tgz#cad207b8396d69ae4796d74d17dff5f68b2f7343"
- integrity sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==
- dependencies:
- color-support "^1.1.3"
-
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
@@ -4957,10 +4950,10 @@ gulp-plumber@^1.2.0:
-gulp-postcss@^9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-9.1.0.tgz#0d317134d40d9565f265bd32c7f71605a54cadd8"
- integrity sha512-a843mcKPApfeI987uqQbc8l50xXeWIXBsiVvYxtCI5XtVAMzTi/HnU2qzQpGwkB/PAOfsLV8OsqDv2iJZ9qvdw==
+gulp-postcss@9.0.1:
+ version "9.0.1"
+ resolved "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz#d43caa2f2ce1018f889f7c1296faf82e9928b66f"
+ integrity sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==
dependencies:
- fancy-log "^2.0.0"
- plugin-error "^2.0.1"
- postcss-load-config "^5.0.0"
+ fancy-log "^1.3.3"
+ plugin-error "^1.0.1"
+ postcss-load-config "^3.0.0"
vinyl-sourcemaps-apply "^0.2.1"
@@ -6172,2 +6165,7 @@ liftoff@^3.1.0:
+lilconfig@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
lilconfig@^3.0.0:
@@ -7592,9 +7590,2 @@ plugin-error@^1.0.0, plugin-error@^1.0.1:
-plugin-error@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-2.0.1.tgz#f2ac92bac8c85e3e23492d76d0c3ca12f30eb00b"
- integrity sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg==
- dependencies:
- ansi-colors "^1.0.1"
-
posix-character-classes@^0.1.0:
@@ -7650,9 +7641,9 @@ postcss-discard-overridden@^6.0.1:
-postcss-load-config@^5.0.0:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-5.0.2.tgz#3d4261d616428e3d6e41c8236c3e456c0f49266f"
- integrity sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==
+postcss-load-config@^3.0.0:
+ version "3.1.4"
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
+ integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
dependencies:
- lilconfig "^3.0.0"
- yaml "^2.3.4"
+ lilconfig "^2.0.5"
+ yaml "^1.10.2"
@@ -10299,6 +10290,6 @@ yallist@^4.0.0:
-yaml@^2.3.4:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2"
- integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==
+yaml@^1.10.2:
+ version "1.10.2"
+ resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==

View File

@@ -1,14 +0,0 @@
diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
index f07c0ba..bd9aac1 100755
--- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
+++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
@@ -36,3 +36,3 @@ for file in $files; do
if [[ "$glibc_version" != "$EXPECTED_GLIBC_VERSION" ]]; then
- echo "Error: File $file has dependency on GLIBC > $EXPECTED_GLIBC_VERSION"
+ echo "Error: File $file has dependency on GLIBC($glibc_version) != $EXPECTED_GLIBC_VERSION"
exit 1
@@ -40,3 +40,3 @@ for file in $files; do
if [[ "$glibcxx_version" != "$EXPECTED_GLIBCXX_VERSION" ]]; then
- echo "Error: File $file has dependency on GLIBCXX > $EXPECTED_GLIBCXX_VERSION"
+ echo "Error: File $file has dependency on GLIBCXX($glibcxx_version) != $EXPECTED_GLIBCXX_VERSION"
exit 1

View File

@@ -1,17 +1,9 @@
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
index 72dd74f..0f70d8c 100644
index d45d5bc..81a6449 100644
--- a/build/npm/postinstall.js
+++ b/build/npm/postinstall.js
@@ -55,10 +55,6 @@ function yarnInstall(dir, opts) {
@@ -56,3 +56,3 @@ function yarnInstall(dir, opts) {
opts.cwd = root;
- if (process.env['npm_config_arch'] === 'arm64' || process.env['npm_config_arch'] === 'arm') {
- if (process.env['npm_config_arch'] === 'arm64') {
+ if (process.env['npm_config_arch'] === 'arm64' || process.env['npm_config_arch'] === 'arm' || process.env['npm_config_arch'] === 'ppc64' || process.env['npm_config_arch'] === 'riscv64') {
run('sudo', ['docker', 'run', '--rm', '--privileged', 'multiarch/qemu-user-static', '--reset', '-p', 'yes'], opts);
}
- if (process.env['npm_config_arch'] === 'arm') {
- run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-e', 'npm_config_arch', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/home/builduser`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/home/builduser/.netrc`, process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'yarn', '--cwd', dir, ...args], opts);
- } else {
- run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-e', 'npm_config_arch', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/root/vscode`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/root/.netrc`, process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'yarn', '--cwd', dir, ...args], opts);
- }
+ run('sudo', ['docker', 'run', '-e', 'GITHUB_TOKEN', '-e', 'npm_config_arch', '-v', `${process.env['VSCODE_HOST_MOUNT']}:/root/vscode`, '-v', `${process.env['VSCODE_HOST_MOUNT']}/.build/.netrc:/root/.netrc`, process.env['VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME'], 'yarn', '--cwd', dir, ...args], opts);
run('sudo', ['chown', '-R', `${userinfo.uid}:${userinfo.gid}`, `${dir}/node_modules`], opts);

View File

@@ -1,12 +1,12 @@
diff --git a/src/main.js b/src/main.js
index d986fee..1ad0ef0 100644
index 041d9d6..295dbcb 100644
--- a/src/main.js
+++ b/src/main.js
@@ -18,2 +18,3 @@ perf.mark('code/didStartMain');
@@ -15,2 +15,3 @@
const path = require('path');
+const { fileURLToPath } = require('url');
const fs = require('fs');
@@ -149,2 +150,14 @@ app.once('ready', function () {
const fs = require('original-fs');
@@ -136,2 +137,14 @@ registerListeners();
+function resolveUserProduct() {
+ const userDataPath = getUserDataPath({}, product.nameShort ?? 'code-oss-dev');
@@ -21,12 +21,12 @@ index d986fee..1ad0ef0 100644
+}
+
/**
@@ -160,2 +173,3 @@ function startup(codeCachePath, nlsConfig) {
@@ -212,2 +225,3 @@ function startup(codeCachePath, nlsConfig) {
process.env['VSCODE_CODE_CACHE_PATH'] = codeCachePath || '';
+ resolveUserProduct();
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
index 51a55e1..e2af375 100644
index 58278d9..3bd78c9 100644
--- a/src/vs/platform/product/common/product.ts
+++ b/src/vs/platform/product/common/product.ts
@@ -29,2 +29,36 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {

View File

@@ -0,0 +1,28 @@
diff --git a/build/darwin/sign.js b/build/darwin/sign.js
index f5913b7..100b950 100644
--- a/build/darwin/sign.js
+++ b/build/darwin/sign.js
@@ -53,5 +53,7 @@ async function main(buildDir) {
ignore: (filePath) => {
+ const ext = path.extname(filePath);
return filePath.includes(gpuHelperAppName) ||
filePath.includes(rendererHelperAppName) ||
- filePath.includes(pluginHelperAppName);
+ filePath.includes(pluginHelperAppName) ||
+ ext == '.asar' || ext == '.dat' || ext == '.gif' || ext == '.icns' || ext == '.ico' || ext == '.json' || ext == '.mp3' || ext == '.nib' || ext == '.pak' || ext == '.png' || ext == '.scpt' || ext == '.ttf' || ext == '.wasm' || ext == '.woff' || ext == '.woff2';
}
@@ -83,3 +85,3 @@ async function main(buildDir) {
'-string',
- 'An application in Visual Studio Code wants to use AppleScript.',
+ 'An application in VSCodium wants to use AppleScript.',
`${infoPlistPath}`
@@ -90,3 +92,3 @@ async function main(buildDir) {
'-string',
- 'An application in Visual Studio Code wants to use the Microphone.',
+ 'An application in VSCodium wants to use the Microphone.',
`${infoPlistPath}`
@@ -97,3 +99,3 @@ async function main(buildDir) {
'-string',
- 'An application in Visual Studio Code wants to use the Camera.',
+ 'An application in VSCodium wants to use the Camera.',
`${infoPlistPath}`

View File

@@ -1,383 +0,0 @@
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
index e42a6b12b1f..854445538ba 100755
--- a/build/azure-pipelines/linux/setup-env.sh
+++ b/build/azure-pipelines/linux/setup-env.sh
@@ -7,6 +7,10 @@ if [ "$SYSROOT_ARCH" == "x64" ]; then
SYSROOT_ARCH="amd64"
fi
+if [ "$npm_config_arch" == "riscv64" ] || [ "$npm_config_arch" == "ppc64" ]; then
+ exit 0
+fi
+
export VSCODE_SYSROOT_DIR=$PWD/.build/sysroots
SYSROOT_ARCH="$SYSROOT_ARCH" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index c2b81d0cf7c..fa5de83a076 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -44,6 +44,8 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
{ platform: 'alpine', arch: 'arm64' },
// legacy: we use to ship only one alpine so it was put in the arch, but now we ship
// multiple alpine images and moved to a better model (alpine as the platform)
@@ -210,6 +212,14 @@ function nodejs(platform, arch) {
.pipe(rename('node.exe'));
case 'darwin':
case 'linux':
+ if (arch === 'riscv64') {
+ return fetchUrls(`/download/release/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`,
+ { base: 'https://unofficial-builds.nodejs.org', checksumSha256 }).pipe(flatmap(stream => stream.pipe(gunzip()).pipe
+ (untar())))
+ .pipe(filter('**/node'))
+ .pipe(util.setExecutableBit('**'))
+ .pipe(rename('node'));
+ }
return (product.nodejsRepository !== 'https://nodejs.org' ?
fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: `node-v${nodeVersion}${glibcPrefix}-${platform}-${arch}.tar.gz`, checksumSha256 }) :
fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
index 6f8144b0954..8a8195e9b66 100644
--- a/build/gulpfile.scan.js
+++ b/build/gulpfile.scan.js
@@ -24,6 +24,8 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
BUILD_TARGETS.forEach(buildTarget => {
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index e1507e0424f..80ed8d91a41 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -429,6 +429,8 @@ const BUILD_TARGETS = [
{ platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' },
+ { platform: 'linux', arch: 'ppc64le' },
+ { platform: 'linux', arch: 'riscv64' },
];
BUILD_TARGETS.forEach(buildTarget => {
const dashed = (str) => (str ? `-${str}` : ``);
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 8c2b62f7b2a..a58ec3d7725 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -28,7 +28,7 @@ const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
* @param {string} arch
*/
function getDebPackageArch(arch) {
- return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
function prepareDebPackage(arch) {
@@ -134,7 +134,7 @@ function getRpmBuildPath(rpmArch) {
* @param {string} arch
*/
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
}
/**
@@ -295,6 +295,8 @@ const BUILD_TARGETS = [
{ arch: 'x64' },
{ arch: 'armhf' },
{ arch: 'arm64' },
+ { arch: 'ppc64le' },
+ { arch: 'riscv64' },
];
BUILD_TARGETS.forEach(({ arch }) => {
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
index 92f8065f262..529c1ec08bd 100644
--- a/build/linux/debian/calculate-deps.ts
+++ b/build/linux/debian/calculate-deps.ts
@@ -59,6 +59,18 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
`-l${vscodeSysroot}/usr/lib/aarch64-linux-gnu`,
`-l${vscodeSysroot}/lib/aarch64-linux-gnu`);
break;
+ case 'ppc64le':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/ppc64le-linux-gnu`,
+ `-l${chromiumSysroot}/lib/ppc64le-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/ppc64le-linux-gnu`,
+ `-l${vscodeSysroot}/lib/ppc64le-linux-gnu`);
+ break;
+ case 'riscv64':
+ cmd.push(`-l${chromiumSysroot}/usr/lib/riscv64-linux-gnu`,
+ `-l${chromiumSysroot}/lib/riscv64-linux-gnu`,
+ `-l${vscodeSysroot}/usr/lib/riscv64-linux-gnu`,
+ `-l${vscodeSysroot}/lib/riscv64-linux-gnu`);
+ break;
}
cmd.push(`-l${chromiumSysroot}/usr/lib`);
cmd.push(`-L${vscodeSysroot}/debian/libxkbfile1/DEBIAN/shlibs`);
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
index 3d6c2eba6e9..96e7707542e 100644
--- a/build/linux/debian/dep-lists.ts
+++ b/build/linux/debian/dep-lists.ts
@@ -140,5 +140,84 @@ export const referenceGeneratedDepsByArch = {
'libxkbfile1 (>= 1:1.1.0)',
'libxrandr2',
'xdg-utils (>= 1.0.2)'
- ]
+ ],
+ 'ppc64le': [
+ 'ca-certificates',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
+ 'riscv64': [
+ 'ca-certificates',
+ 'libatomic1',
+ 'libasound2 (>= 1.0.17)',
+ 'libatk-bridge2.0-0 (>= 2.5.3)',
+ 'libatk1.0-0 (>= 2.2.0)',
+ 'libatspi2.0-0 (>= 2.9.90)',
+ 'libc6 (>= 2.17)',
+ 'libc6 (>= 2.28)',
+ 'libcairo2 (>= 1.6.0)',
+ 'libcurl3-gnutls | libcurl3-nss | libcurl4 | libcurl3',
+ 'libdbus-1-3 (>= 1.0.2)',
+ 'libdrm2 (>= 2.4.60)',
+ 'libexpat1 (>= 2.0.1)',
+ 'libgbm1 (>= 17.1.0~rc2)',
+ 'libglib2.0-0 (>= 2.16.0)',
+ 'libglib2.0-0 (>= 2.39.4)',
+ 'libgtk-3-0 (>= 3.9.10)',
+ 'libgtk-3-0 (>= 3.9.10) | libgtk-4-1',
+ 'libnspr4 (>= 2:4.9-2~)',
+ 'libnss3 (>= 2:3.22)',
+ 'libnss3 (>= 3.26)',
+ 'libpango-1.0-0 (>= 1.14.0)',
+ 'libsecret-1-0 (>= 0.18)',
+ 'libstdc++6 (>= 4.1.1)',
+ 'libstdc++6 (>= 5)',
+ 'libstdc++6 (>= 5.2)',
+ 'libstdc++6 (>= 6)',
+ 'libx11-6',
+ 'libx11-6 (>= 2:1.4.99.1)',
+ 'libxcb1 (>= 1.9.2)',
+ 'libxcomposite1 (>= 1:0.4.4-1)',
+ 'libxdamage1 (>= 1:1.1)',
+ 'libxext6',
+ 'libxfixes3',
+ 'libxkbcommon0 (>= 0.4.1)',
+ 'libxkbfile1',
+ 'libxrandr2',
+ 'xdg-utils (>= 1.0.2)'
+ ],
};
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
index aa417dcc722..2e0eaa34f4f 100644
--- a/build/linux/debian/install-sysroot.ts
+++ b/build/linux/debian/install-sysroot.ts
@@ -151,6 +151,15 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
expectedName = `arm-rpi-linux-gnueabihf${prefix}.tar.gz`;
triple = 'arm-rpi-linux-gnueabihf';
break;
+ case 'riscv64':
+ expectedName = `DUMMY`;
+ triple = 'riscv64-linux-gnu';
+ break;
+ case 'ppc64le':
+ expectedName = `DUMMY`;
+ triple = 'ppc64le-linux-gnu';
+ break;
+
}
console.log(`Fetching ${expectedName} for ${triple}`);
const checksumSha256 = getVSCodeSysrootChecksum(expectedName);
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
index e97485ef128..01b121bc928 100644
--- a/build/linux/debian/types.ts
+++ b/build/linux/debian/types.ts
@@ -3,8 +3,8 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64';
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64le' | 'riscv64';
export function isDebianArchString(s: string): s is DebianArchString {
- return ['amd64', 'armhf', 'arm64'].includes(s);
+ return ['amd64', 'armhf', 'arm64', 'ppc64le', 'riscv64'].includes(s);
}
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
index 4bec13d6e86..51754e9203f 100644
--- a/cli/src/update_service.rs
+++ b/cli/src/update_service.rs
@@ -214,6 +214,8 @@ pub enum Platform {
LinuxARM64Legacy,
LinuxARM32,
LinuxARM32Legacy,
+ LinuxPPC64LE,
+ LinuxRISCV64,
DarwinX64,
DarwinARM64,
WindowsX64,
@@ -227,6 +229,8 @@ impl Platform {
Platform::LinuxX64 => Some("linux-x64".to_owned()),
Platform::LinuxARM64 => Some("linux-arm64".to_owned()),
Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
+ Platform::LinuxPPC64LE => Some("linux-ppc64le".to_owned()),
+ Platform::LinuxRISCV64 => Some("linux-riscv64".to_owned()),
Platform::DarwinX64 => Some("darwin".to_owned()),
Platform::DarwinARM64 => Some("darwin-arm64".to_owned()),
Platform::WindowsX64 => Some("win32-x64-archive".to_owned()),
@@ -245,6 +249,8 @@ impl Platform {
Platform::LinuxARM64Legacy => "server-linux-legacy-arm64",
Platform::LinuxARM32 => "server-linux-armhf",
Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
+ Platform::LinuxPPC64LE => "server-linux-ppc64le",
+ Platform::LinuxRISCV64 => "server-linux-riscv64",
Platform::DarwinX64 => "server-darwin",
Platform::DarwinARM64 => "server-darwin-arm64",
Platform::WindowsX64 => "server-win32-x64",
@@ -264,6 +270,8 @@ impl Platform {
Platform::LinuxARM64Legacy => "cli-linux-arm64",
Platform::LinuxARM32 => "cli-linux-armhf",
Platform::LinuxARM32Legacy => "cli-linux-armhf",
+ Platform::LinuxPPC64LE => "cli-linux-ppc64le",
+ Platform::LinuxRISCV64 => "cli-linux-riscv64",
Platform::DarwinX64 => "cli-darwin-x64",
Platform::DarwinARM64 => "cli-darwin-arm64",
Platform::WindowsARM64 => "cli-win32-arm64",
@@ -296,6 +304,10 @@ impl Platform {
Some(Platform::LinuxARM32)
} else if cfg!(all(target_os = "linux", target_arch = "aarch64")) {
Some(Platform::LinuxARM64)
+ } else if cfg!(all(target_os = "linux", target_arch = "ppc64le")) {
+ Some(Platform::LinuxPPC64LE)
+ } else if cfg!(all(target_os = "linux", target_arch = "riscv64")) {
+ Some(Platform::LinuxRISCV64)
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
Some(Platform::DarwinX64)
} else if cfg!(all(target_os = "macos", target_arch = "aarch64")) {
@@ -323,6 +335,8 @@ impl fmt::Display for Platform {
Platform::LinuxARM64Legacy => "LinuxARM64Legacy",
Platform::LinuxARM32 => "LinuxARM32",
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
Platform::DarwinX64 => "DarwinX64",
Platform::DarwinARM64 => "DarwinARM64",
Platform::WindowsX64 => "WindowsX64",
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
index 20a5bc94b37..b2f81257550 100644
--- a/cli/src/util/prereqs.rs
+++ b/cli/src/util/prereqs.rs
@@ -73,6 +73,10 @@ impl PreReqChecker {
Platform::LinuxX64
} else if cfg!(target_arch = "arm") {
Platform::LinuxARM32
+ } else if cfg!(target_arch = "ppc64le") {
+ Platform::LinuxPPC64LE
+ } else if cfg!(target_arch = "riscv64") {
+ Platform::LinuxRISCV64
} else {
Platform::LinuxARM64
});
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
index 079557869e3..2230f692dd3 100644
--- a/resources/server/bin/helpers/check-requirements-linux.sh
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
@@ -50,6 +50,7 @@ case $ARCH in
LDCONFIG_ARCH="AArch64"
fi
;;
+ riscv64) LDCONFIG_ARCH="RISC-V";;
esac
if [ "$OS_ID" != "alpine" ]; then
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
index 9dae82eba07..5302e4354ac 100644
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
@@ -33,6 +33,8 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
case TargetPlatform.LINUX_X64: return 'Linux 64 bit';
case TargetPlatform.LINUX_ARM64: return 'Linux ARM 64';
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PPC64LE';
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
case TargetPlatform.ALPINE_X64: return 'Alpine Linux 64 bit';
case TargetPlatform.ALPINE_ARM64: return 'Alpine ARM 64';
@@ -56,6 +58,8 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
case TargetPlatform.LINUX_X64: return TargetPlatform.LINUX_X64;
case TargetPlatform.LINUX_ARM64: return TargetPlatform.LINUX_ARM64;
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
case TargetPlatform.ALPINE_X64: return TargetPlatform.ALPINE_X64;
case TargetPlatform.ALPINE_ARM64: return TargetPlatform.ALPINE_ARM64;
@@ -91,6 +95,12 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
if (arch === 'arm') {
return TargetPlatform.LINUX_ARMHF;
}
+ if (arch === 'ppc64le') {
+ return TargetPlatform.LINUX_PPC64LE;
+ }
+ if (arch === 'riscv64') {
+ return TargetPlatform.LINUX_RISCV64;
+ }
return TargetPlatform.UNKNOWN;
case 'alpine':
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
index 331aba1b55f..cade78e6557 100644
--- a/src/vs/platform/extensions/common/extensions.ts
+++ b/src/vs/platform/extensions/common/extensions.ts
@@ -303,6 +303,8 @@ export const enum TargetPlatform {
LINUX_X64 = 'linux-x64',
LINUX_ARM64 = 'linux-arm64',
LINUX_ARMHF = 'linux-armhf',
+ LINUX_PPC64LE = 'linux-ppc64le',
+ LINUX_RISCV64 = 'linux-riscv64',
ALPINE_X64 = 'alpine-x64',
ALPINE_ARM64 = 'alpine-arm64',

View File

@@ -1,39 +1,22 @@
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
index 74f9939..341ef06 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterModel.ts
@@ -79,3 +79,3 @@ ${this._data.issueDescription}
${this.getExtensionVersion()}
-VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
+VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
OS version: ${this._data.versionInfo && this._data.versionInfo.os}
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
index 96ec5f7..5c091d9 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterPage.ts
@@ -18,3 +18,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
comment: [
- '{Locked="<a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
+ '{Locked="<a href=\"https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
'{Locked="</a>"}'
@@ -22,3 +22,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
},
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
+ 'Before you report an issue here please <a href="https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
);
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterService.ts b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
index d7f98f6..ed54042 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterService.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
@@ -517,5 +517,5 @@ export class IssueReporter extends Disposable {
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
index 87839a6..49727fc 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
@@ -153,3 +153,3 @@ class ReportExtensionSlowAction extends Action {
- OS Version: \`${osVersion}\`
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
+- VSCodium version: \`${this._productService.version}\`\n\n${message}`);
- private searchVSCodeIssues(title: string, issueDescription?: string): void {
+ private searchVSCodeIssues(title: string, _issueDescription?: string): void {
diff --git a/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts b/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
index ec21ac3..89fabe0 100644
--- a/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
+++ b/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
@@ -630,3 +630,3 @@ export class BaseIssueReporterService extends Disposable {
if (title) {
- this.searchDuplicates(title, issueDescription);
+ this.searchGitHub('VSCodium/vscodium', title);
} else {
@@ -611,33 +611,2 @@ export class IssueReporter extends Disposable {
@@ -722,33 +722,2 @@ export class BaseIssueReporterService extends Disposable {
- @debounce(300)
- private searchDuplicates(title: string, body?: string): void {
@@ -67,17 +50,93 @@ index d7f98f6..ed54042 100644
- }
-
private displaySearchResults(results: SearchResult[]) {
@@ -729,3 +698,3 @@ export class IssueReporter extends Disposable {
@@ -844,4 +813,4 @@ export class BaseIssueReporterService extends Disposable {
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false));
+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false));
sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false));
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
index 87839a6..49727fc 100644
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
@@ -153,3 +153,3 @@ class ReportExtensionSlowAction extends Action {
- OS Version: \`${osVersion}\`
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
+- VSCodium version: \`${this._productService.version}\`\n\n${message}`);
- sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "Visual Studio Code"), false));
- sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VS Code extension"), false));
+ sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "VSCodium"), false));
+ sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VSCodium extension"), false));
if (this.product.reportMarketplaceIssueUrl) {
@@ -905,3 +874,3 @@ export class BaseIssueReporterService extends Disposable {
hide(descriptionTextArea);
- reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VS Code"));
+ reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VSCodium"));
reset(descriptionSubtitle, localize('elsewhereDescription', "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.", selectedExtension.displayName));
diff --git a/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts b/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
index 4394874..a9c3f57 100644
--- a/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
+++ b/src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
@@ -93,3 +93,3 @@ ${this._data.issueDescription}
${this.getExtensionVersion()}
-VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
+VSCodium version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion}
OS version: ${this._data.versionInfo && this._data.versionInfo.os}
diff --git a/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts b/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts
index 195857e..68163c0 100644
--- a/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts
+++ b/src/vs/workbench/contrib/issue/browser/issueReporterPage.ts
@@ -18,3 +18,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
comment: [
- '{Locked="<a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
+ '{Locked="<a href=\"https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">"}',
'{Locked="</a>"}'
@@ -22,3 +22,3 @@ const reviewGuidanceLabel = localize( // intentionally not escaped because of it
},
- 'Before you report an issue here please <a href="https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
+ 'Before you report an issue here please <a href="https://github.com/VSCodium/vscodium/wiki/Submitting-Bugs-and-Suggestions" target="_blank">review the guidance we provide</a>.'
);
diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporterService.ts b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporterService.ts
index b923388..043a8ac 100644
--- a/src/vs/workbench/contrib/issue/electron-sandbox/issueReporterService.ts
+++ b/src/vs/workbench/contrib/issue/electron-sandbox/issueReporterService.ts
@@ -555,3 +555,3 @@ export class IssueReporter extends Disposable {
if (title) {
- this.searchDuplicates(title, issueDescription);
+ this.searchGitHub('VSCodium/vscodium', title);
} else {
@@ -647,33 +647,2 @@ export class IssueReporter extends Disposable {
- @debounce(300)
- private searchDuplicates(title: string, body?: string): void {
- const url = 'https://vscode-probot.westus.cloudapp.azure.com:7890/duplicate_candidates';
- const init = {
- method: 'POST',
- body: JSON.stringify({
- title,
- body
- }),
- headers: new Headers({
- 'Content-Type': 'application/json'
- })
- };
-
- fetch(url, init).then((response) => {
- response.json().then(result => {
- this.clearSearchResults();
-
- if (result && result.candidates) {
- this.displaySearchResults(result.candidates);
- } else {
- throw new Error('Unexpected response, no candidates property');
- }
- }).catch(_ => {
- // Ignore
- });
- }).catch(_ => {
- // Ignore
- });
- }
-
private displaySearchResults(results: SearchResult[]) {
@@ -769,4 +738,4 @@ export class IssueReporter extends Disposable {
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
- sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "Visual Studio Code"), false));
- sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VS Code extension"), false));
+ sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "VSCodium"), false));
+ sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VSCodium extension"), false));
if (this.configuration.product.reportMarketplaceIssueUrl) {
@@ -830,3 +799,3 @@ export class IssueReporter extends Disposable {
hide(descriptionTextArea);
- reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VS Code"));
+ reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VSCodium"));
reset(descriptionSubtitle, localize('elsewhereDescription', "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.", selectedExtension.displayName));

View File

@@ -1,9 +1,9 @@
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
index d45291e..74d4080 100644
index a2561be..a50958e 100644
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -55,3 +55,3 @@ export class Win32UpdateService extends AbstractUpdateService {
@@ -56,3 +56,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun
get cachePath(): Promise<string> {
- const result = path.join(tmpdir(), `vscode-${this.productService.quality}-${this.productService.target}-${process.arch}`);
+ const result = path.join(tmpdir(), `${this.productService.applicationName}-${this.productService.quality}-${this.productService.target}-${process.arch}`);
return pfs.Promises.mkdir(result, { recursive: true }).then(() => result);
return fs.promises.mkdir(result, { recursive: true }).then(() => result);

View File

@@ -5,6 +5,8 @@ set -e
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
. ./utils.sh
npm install -g checksum
sum_file() {
@@ -18,33 +20,58 @@ sum_file() {
mkdir -p assets
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${CI_BUILD}" != "no" ]]; then
cd "VSCode-darwin-${VSCODE_ARCH}"
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
if [[ "${CI_BUILD}" == "no" ]]; then
RUNNER_TEMP="${TMPDIR}"
fi
CERTIFICATE_P12="${APP_NAME}.p12"
KEYCHAIN="${RUNNER_TEMP}/build.keychain"
KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain"
AGENT_TEMPDIRECTORY="${RUNNER_TEMP}"
# shellcheck disable=SC2006
KEYCHAINS=`security list-keychains | xargs`
echo "${CERTIFICATE_OSX_P12}" | base64 --decode > "${CERTIFICATE_P12}"
rm -f "${KEYCHAIN}"
echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}"
echo "+ create temporary keychain"
security create-keychain -p mysecretpassword "${KEYCHAIN}"
security create-keychain -p pwd "${KEYCHAIN}"
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
security unlock-keychain -p mysecretpassword "${KEYCHAIN}"
security list-keychains -s "$(security list-keychains | xargs)" "${KEYCHAIN}"
# security list-keychains -d user
# security show-keychain-info ${KEYCHAIN}
security unlock-keychain -p pwd "${KEYCHAIN}"
# shellcheck disable=SC2086
security list-keychains -s $KEYCHAINS "${KEYCHAIN}"
# security show-keychain-info "${KEYCHAIN}"
echo "+ import certificate to keychain"
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_PASSWORD}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k mysecretpassword "${KEYCHAIN}" > /dev/null
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null
# security find-identity "${KEYCHAIN}"
CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )"
echo "+ signing"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME} - Insiders.app"
else
codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME}.app"
fi
export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )"
# codesign --display --entitlements :- ""
echo "+ notarize"
cd "VSCode-darwin-${VSCODE_ARCH}"
ZIP_FILE="./${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
zip -r -X -y "${ZIP_FILE}" ./*.app
xcrun notarytool store-credentials "${APP_NAME}" --apple-id "${CERTIFICATE_OSX_ID}" --team-id "${CERTIFICATE_OSX_TEAM_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" --keychain "${KEYCHAIN}"
# xcrun notarytool history --keychain-profile "${APP_NAME}" --keychain "${KEYCHAIN}"
xcrun notarytool submit "${ZIP_FILE}" --keychain-profile "${APP_NAME}" --wait --keychain "${KEYCHAIN}"
echo "+ attach staple"
xcrun stapler staple ./*.app
# spctl --assess -vv --type install ./*.app
rm "${ZIP_FILE}"
cd ..
fi
@@ -59,8 +86,8 @@ if [[ "${OS_NAME}" == "osx" ]]; then
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
echo "Building and moving DMG"
pushd "VSCode-darwin-${VSCODE_ARCH}"
npx create-dmg ./*.app ..
mv ../*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
npx create-dmg ./*.app .
mv ./*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
popd
fi
@@ -69,6 +96,13 @@ if [[ "${OS_NAME}" == "osx" ]]; then
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
fi
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
echo "+ clean"
security delete-keychain "${KEYCHAIN}"
# shellcheck disable=SC2086
security list-keychains -s $KEYCHAINS
fi
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
@@ -185,6 +219,13 @@ if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
cd ..
fi
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
echo "Building and moving REH-web"
cd "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
cd ..
fi
cd assets
for FILE in *; do

View File

@@ -48,14 +48,13 @@
],
"extensionEnabledApiProposals": {
"ms-vscode.vscode-selfhost-test-provider": [
"testObserver"
"testObserver",
"testRelatedCode",
"attributableCoverage"
],
"VisualStudioExptTeam.vscodeintellicode-completions": [
"inlineCompletionsAdditions"
],
"ms-toolsai.datawrangler": [
"debugFocus"
],
"ms-vsliveshare.vsliveshare": [
"contribMenuBarHome",
"contribShareMenu",
@@ -83,12 +82,12 @@
"contribEditorContentMenu",
"quickPickSortByLabel",
"portsAttributes",
"handleIssueUri",
"testObserver",
"quickPickItemTooltip",
"terminalDataWriteEvent",
"terminalExecuteCommandEvent",
"contribIssueReporter"
"contribIssueReporter",
"notebookReplDocument"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookMessaging"
@@ -178,23 +177,27 @@
],
"GitHub.vscode-pull-request-github": [
"activeComment",
"codiconDecoration",
"codeActionRanges",
"commentingRangeHint",
"commentReactor",
"commentReveal",
"commentThreadApplicability",
"contribAccessibilityHelpContent",
"contribCommentEditorActionsMenu",
"contribCommentPeekContext",
"contribCommentThreadAdditionalMenu",
"contribCommentsViewThreadMenus",
"tokenInformation",
"codeActionRanges",
"commentReactor",
"contribEditorContentMenu",
"contribMultiDiffEditorMenus",
"contribShareMenu",
"fileComments",
"contribCommentPeekContext",
"codiconDecoration",
"diffCommand",
"contribCommentEditorActionsMenu",
"treeViewMarkdownMessage",
"tabInputTextMerge",
"fileComments",
"quickDiffProvider",
"shareProvider",
"quickDiffProvider"
"tabInputTextMerge",
"tokenInformation",
"treeViewMarkdownMessage"
],
"GitHub.copilot": [
"inlineCompletionsAdditions"
@@ -203,15 +206,14 @@
"inlineCompletionsAdditions"
],
"GitHub.copilot-chat": [
"handleIssueUri",
"interactive",
"terminalDataWriteEvent",
"terminalExecuteCommandEvent",
"terminalSelection",
"terminalQuickFixProvider",
"chatParticipant",
"chatParticipantAdditions",
"defaultChatParticipant",
"embeddings",
"chatVariableResolver",
"chatProvider",
"mappedEditsProvider",
@@ -219,12 +221,22 @@
"codeActionAI",
"findTextInFiles",
"textSearchProvider",
"activeComment",
"commentReveal",
"contribSourceControlInputBoxMenu",
"contribCommentEditorActionsMenu",
"contribCommentThreadAdditionalMenu",
"contribCommentsViewThreadMenus",
"newSymbolNamesProvider",
"findFiles2",
"extensionsAny",
"authLearnMore",
"testObserver"
"testObserver",
"aiTextSearchProvider",
"documentFiltersExclusive",
"chatParticipantPrivate",
"lmTools",
"contribDebugCreateConfiguration"
],
"GitHub.remotehub": [
"contribRemoteHelp",
@@ -248,8 +260,10 @@
"notebookCellExecutionState"
],
"ms-python.debugpy": [
"portsAttributes",
"contribIssueReporter"
"contribIssueReporter",
"contribViewsWelcome",
"debugVisualization",
"portsAttributes"
],
"ms-toolsai.jupyter-renderers": [
"contribNotebookStaticPreloads"
@@ -268,7 +282,8 @@
"quickPickItemTooltip",
"notebookExecution",
"notebookCellExecution",
"notebookVariableProvider"
"notebookVariableProvider",
"notebookReplDocument"
],
"dbaeumer.vscode-eslint": [
"notebookCellExecutionState"
@@ -279,18 +294,22 @@
"ms-azuretools.vscode-azureappservice": [
"terminalDataWriteEvent"
],
"ms-azuretools.vscode-azureresourcegroups": [
"authGetSessions"
"ms-azuretools.vscode-azure-github-copilot": [
"lmTools"
],
"ms-vscode.anycode": [
"extensionsAny"
],
"ms-vscode.cpptools": [
"terminalDataWriteEvent"
"terminalDataWriteEvent",
"lmTools"
],
"redhat.java": [
"documentPaste"
],
"vscjava.vscode-java-pack": [
"lmTools"
],
"ms-dotnettools.csdevkit": [
"inlineCompletionsAdditions"
],
@@ -305,9 +324,9 @@
"fileSearchProvider",
"textSearchProvider"
],
"apidev.azure-api-center": [
"chatParticipant",
"languageModels"
"TeamsDevApp.ms-teams-vscode-extension": [
"chatParticipantAdditions",
"languageModelSystem"
],
"jeanp413.open-remote-ssh": [
"resolvers",

View File

@@ -2,7 +2,7 @@
set -e
if [[ -z "${GITHUB_TOKEN}" ]]; then
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
echo "Will not release because no GITHUB_TOKEN defined"
exit
fi

View File

@@ -2,7 +2,7 @@
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Exec=@@EXEC@@ %F
Icon=@@ICON@@
Type=Application
StartupNotify=false

View File

@@ -2,7 +2,7 @@
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Exec=@@EXEC@@ %F
Icon=@@ICON@@
Type=Application
StartupNotify=false

View File

@@ -1,4 +1,4 @@
{
"tag": "1.88.1",
"commit": "e170252f762678dec6ca2cc69aba1570769a5d39"
"tag": "1.93.1",
"commit": "38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40"
}

View File

@@ -7,10 +7,13 @@ export SHOULD_BUILD="no"
export SHOULD_DEPLOY_TO_RELEASE="no"
export SHOULD_DEPLOY_TO_STORE="no"
# Support for GitHub Enterprise
GH_HOST="${GH_HOST:-github.com}"
if [[ "${GENERATE_ASSETS}" == "true" ]]; then
export SHOULD_BUILD="yes"
else
wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json
wget --quiet "https://api.${GH_HOST}/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json
SNAP_URL=$( jq -r 'map(select(.tag_name == "'"${RELEASE_VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${ARCHITECTURE}.snap"'"))' gh_latest.json )
if [[ -z "${SNAP_URL}" ]]; then

View File

@@ -7,7 +7,7 @@ if [[ "${SHOULD_BUILD}" != "yes" ]]; then
exit 0
fi
if [[ -z "${GITHUB_TOKEN}" ]]; then
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
echo "Will not update ${VSCODE_QUALITY}.json because no GITHUB_TOKEN defined"
exit 0
fi

View File

@@ -8,11 +8,16 @@ if [[ "${SHOULD_BUILD}" != "yes" && "${FORCE_UPDATE}" != "true" ]]; then
exit 0
fi
if [[ -z "${GITHUB_TOKEN}" ]]; then
if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then
echo "Will not update version JSON because no GITHUB_TOKEN defined"
exit 0
else
GITHUB_TOKEN="${GH_TOKEN:-${GITHUB_TOKEN:-${GH_ENTERPRISE_TOKEN:-${GITHUB_ENTERPRISE_TOKEN}}}}"
fi
# Support for GitHub Enterprise
GH_HOST="${GH_HOST:-github.com}"
if [[ "${FORCE_UPDATE}" == "true" ]]; then
. version.sh
fi
@@ -23,7 +28,7 @@ if [[ -z "${BUILD_SOURCEVERSION}" ]]; then
fi
if [[ "${VSCODE_ARCH}" == "ppc64le" ]] || [[ "${VSCODE_ARCH}" == "riscv64" ]] ; then
echo "Skip ppc64le since only reh is published"
echo "Skip PPC64LE since only reh is published"
exit 0
fi
@@ -47,7 +52,7 @@ fi
# `sha256hash` in <filename>.sha256
REPOSITORY_NAME="${VERSIONS_REPOSITORY/*\//}"
URL_BASE="https://github.com/${ASSETS_REPOSITORY}/releases/download/${RELEASE_VERSION}"
URL_BASE="https://${GH_HOST}/${ASSETS_REPOSITORY}/releases/download/${RELEASE_VERSION}"
generateJson() {
local url name version productVersion sha1hash sha256hash timestamp
@@ -115,12 +120,12 @@ updateLatestVersion() {
# init versions repo for later commiting + pushing the json file to it
# thank you https://www.vinaygopinath.me/blog/tech/commit-to-master-branch-on-github-using-travis-ci/
git clone "https://github.com/${VERSIONS_REPOSITORY}.git"
git clone "https://${GH_HOST}/${VERSIONS_REPOSITORY}.git"
cd "${REPOSITORY_NAME}" || { echo "'${REPOSITORY_NAME}' dir not found"; exit 1; }
git config user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
git config user.name "${GITHUB_USERNAME} CI"
git remote rm origin
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPOSITORY}.git" &> /dev/null
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@${GH_HOST}/${VERSIONS_REPOSITORY}.git" &> /dev/null
cd ..
if [[ "${OS_NAME}" == "osx" ]]; then