mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-13 20:28:18 +10:00
Compare commits
465 Commits
1.88.1.241
...
1.105.1699
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59e21c9cc6 | ||
|
|
2fccc0e2fe | ||
|
|
51ad421762 | ||
|
|
646b42473b | ||
|
|
068f270488 | ||
|
|
4ba37835b2 | ||
|
|
2487cd7ce2 | ||
|
|
75df078e52 | ||
|
|
9061e7e264 | ||
|
|
adef3f0534 | ||
|
|
dab94316d5 | ||
|
|
60b7a4640e | ||
|
|
f81d3d53ad | ||
|
|
a95e1ff14f | ||
|
|
36270ef9c3 | ||
|
|
c0ac4bd72e | ||
|
|
f60f14d085 | ||
|
|
a9167d21e2 | ||
|
|
e1f7642bcb | ||
|
|
94a6ad5495 | ||
|
|
73046b84aa | ||
|
|
22d1929f41 | ||
|
|
6264d064e4 | ||
|
|
578df58363 | ||
|
|
20382726b4 | ||
|
|
b943cab988 | ||
|
|
a69d10fa91 | ||
|
|
ac024726a3 | ||
|
|
e3c3b6fdf7 | ||
|
|
fbdc680c69 | ||
|
|
dd8511cc6b | ||
|
|
f6b143dbd6 | ||
|
|
cde9fd233a | ||
|
|
284d83b24e | ||
|
|
8cc366bb76 | ||
|
|
4c2b2b8a79 | ||
|
|
8e49f5f8b1 | ||
|
|
0ac07d6fcc | ||
|
|
bf53c50a5b | ||
|
|
d0973e3104 | ||
|
|
8e10409b4a | ||
|
|
bcd3d6bffa | ||
|
|
b3c1e8901a | ||
|
|
c2cff308aa | ||
|
|
0d1fecf0d4 | ||
|
|
5bf3fdcc05 | ||
|
|
acf298a9c2 | ||
|
|
2d9bbfb2f3 | ||
|
|
9d798626aa | ||
|
|
f574039dc4 | ||
|
|
e648323548 | ||
|
|
bc2c678d47 | ||
|
|
69fe88f58c | ||
|
|
43d4061cec | ||
|
|
471a81e89f | ||
|
|
e84017f36b | ||
|
|
e494154c9b | ||
|
|
dc302f89af | ||
|
|
0545b56f6f | ||
|
|
914f0da189 | ||
|
|
a3bf4232ba | ||
|
|
23683879d3 | ||
|
|
177bb9032d | ||
|
|
7245ccb8bd | ||
|
|
166e10c23b | ||
|
|
69fee0be29 | ||
|
|
68d5becf4d | ||
|
|
a425c2ca5d | ||
|
|
9b20ef5f08 | ||
|
|
242a448627 | ||
|
|
e298421027 | ||
|
|
51f1643852 | ||
|
|
279bb37012 | ||
|
|
2af82b8c5b | ||
|
|
930f570146 | ||
|
|
b1ee5b1428 | ||
|
|
23688ef492 | ||
|
|
fcffce5d9a | ||
|
|
3f44e3f4a3 | ||
|
|
9ffd0a3632 | ||
|
|
57832e4688 | ||
|
|
418209fe92 | ||
|
|
96af93b5de | ||
|
|
7bdf2348e1 | ||
|
|
e114e120f3 | ||
|
|
e4091b268c | ||
|
|
ed516ab087 | ||
|
|
c6eec8f00d | ||
|
|
4959ac2e25 | ||
|
|
2717404c48 | ||
|
|
ef86a20ce4 | ||
|
|
3c07d343da | ||
|
|
ae7ac2e35c | ||
|
|
29424ad4fb | ||
|
|
067a4d4e7d | ||
|
|
c31bc7e230 | ||
|
|
1d870bf372 | ||
|
|
bfdcc2257b | ||
|
|
abf3fc3fc2 | ||
|
|
5304abe421 | ||
|
|
2520a81540 | ||
|
|
4647664892 | ||
|
|
c377e8f70f | ||
|
|
fdc6d3bebc | ||
|
|
912c3f9173 | ||
|
|
0dfc93c35e | ||
|
|
6240fdfdc4 | ||
|
|
376bde0817 | ||
|
|
fe0394dea4 | ||
|
|
62554e05ac | ||
|
|
e645075872 | ||
|
|
203a782f9a | ||
|
|
2baf08383c | ||
|
|
866ffbe78e | ||
|
|
9058cdcc7d | ||
|
|
d9b77fcacc | ||
|
|
a31eb8e3dd | ||
|
|
f0ccf4ecd5 | ||
|
|
b8e20569f5 | ||
|
|
a23732caea | ||
|
|
b7b23e46c4 | ||
|
|
7be4f9ef01 | ||
|
|
7faa9a9a92 | ||
|
|
40e0612320 | ||
|
|
2b4b1ef94e | ||
|
|
a8a38988f4 | ||
|
|
19811fd824 | ||
|
|
be711f4223 | ||
|
|
0a6c00edaf | ||
|
|
f16b836998 | ||
|
|
bdee794538 | ||
|
|
dd046b275e | ||
|
|
18904d2319 | ||
|
|
f35cd2e4f9 | ||
|
|
9e38904cc5 | ||
|
|
f8462bb0a4 | ||
|
|
0fdce0c326 | ||
|
|
efd176d43d | ||
|
|
b1de0f1293 | ||
|
|
670a5ae8a6 | ||
|
|
7ef31896fd | ||
|
|
d3ac1bf13d | ||
|
|
e05bc77aff | ||
|
|
bc889a5b62 | ||
|
|
bd3f4701ad | ||
|
|
ab40f02ad6 | ||
|
|
db5536f14a | ||
|
|
61005f975b | ||
|
|
ff4a7c91a4 | ||
|
|
6931eea602 | ||
|
|
203923b6ac | ||
|
|
138b7979b4 | ||
|
|
02812dccdf | ||
|
|
dbb1e6f852 | ||
|
|
6c61163651 | ||
|
|
92b23ab7ed | ||
|
|
c7b5ab02b1 | ||
|
|
8f961b9288 | ||
|
|
8d01927a20 | ||
|
|
96d4cb9597 | ||
|
|
125e424d8d | ||
|
|
73d25f45c2 | ||
|
|
dd1773b631 | ||
|
|
892a698c11 | ||
|
|
f7f40b9f63 | ||
|
|
ec8648f4bc | ||
|
|
61a6d6c1b4 | ||
|
|
100f4c0288 | ||
|
|
5fb0752690 | ||
|
|
08ebe04167 | ||
|
|
7f17b5ca0e | ||
|
|
a64179d80b | ||
|
|
1fc99ea06a | ||
|
|
c699dfee82 | ||
|
|
68a4e26ded | ||
|
|
ab6dd4186b | ||
|
|
8884ddb324 | ||
|
|
1ce59dc161 | ||
|
|
b2ed4911fa | ||
|
|
345324bd68 | ||
|
|
a4f7e8e0e7 | ||
|
|
86336a51f4 | ||
|
|
821bc722f7 | ||
|
|
4401ea9121 | ||
|
|
8049c398bf | ||
|
|
a87892cee2 | ||
|
|
7d98a96494 | ||
|
|
fa8e51dc0d | ||
|
|
bd89e61489 | ||
|
|
1ddbacad96 | ||
|
|
479e3d8769 | ||
|
|
f30a9df3f4 | ||
|
|
f47684a94c | ||
|
|
91bb9d7184 | ||
|
|
3b764c31b7 | ||
|
|
e45f1ef420 | ||
|
|
6c5a8eb3fb | ||
|
|
bbc892183f | ||
|
|
bc47aeedce | ||
|
|
68a1ef4416 | ||
|
|
32aec3155b | ||
|
|
f9c35a6d6e | ||
|
|
c6ab439c07 | ||
|
|
e4bb5229f3 | ||
|
|
b8126f6313 | ||
|
|
83a701c025 | ||
|
|
f3959bd08b | ||
|
|
c05116e677 | ||
|
|
e93c8cd217 | ||
|
|
a9bdba172d | ||
|
|
14e40dbd37 | ||
|
|
d4b6a02c80 | ||
|
|
c6f10002f1 | ||
|
|
13633eca28 | ||
|
|
7eb89b4189 | ||
|
|
4102592509 | ||
|
|
1ed73dedda | ||
|
|
f6fc863b48 | ||
|
|
b67d4ad805 | ||
|
|
25ce08f318 | ||
|
|
ea37c213bd | ||
|
|
d285d1b68e | ||
|
|
f7ed0b2643 | ||
|
|
c8c89ba8f0 | ||
|
|
c9976ec085 | ||
|
|
b312c1742a | ||
|
|
6944a05db8 | ||
|
|
8edb591353 | ||
|
|
242452d5c9 | ||
|
|
e11db8cc6b | ||
|
|
67445281d7 | ||
|
|
0179179f72 | ||
|
|
993c7d1efa | ||
|
|
fb3d195874 | ||
|
|
1313e56599 | ||
|
|
89b4e9a712 | ||
|
|
b63c8404c3 | ||
|
|
bc784e7823 | ||
|
|
71edc8b5e2 | ||
|
|
ce9450ec98 | ||
|
|
c3ba8f9bb6 | ||
|
|
5ca1fc84d3 | ||
|
|
109d240f13 | ||
|
|
9c310cba11 | ||
|
|
addf837996 | ||
|
|
8c23c50846 | ||
|
|
336e9ce32f | ||
|
|
0af2244d05 | ||
|
|
27af1a39b3 | ||
|
|
0de1698e15 | ||
|
|
6192957778 | ||
|
|
03be485c33 | ||
|
|
b9975ba5d2 | ||
|
|
adaefe4ed5 | ||
|
|
7d6a521838 | ||
|
|
3bee276094 | ||
|
|
803289b688 | ||
|
|
2a016207cc | ||
|
|
5ef55c6c48 | ||
|
|
3150c6a9b0 | ||
|
|
ef81b3de3b | ||
|
|
05759066e3 | ||
|
|
c773d683f4 | ||
|
|
8d180a2888 | ||
|
|
b895f72f2c | ||
|
|
941e4a01a2 | ||
|
|
306c01d5cd | ||
|
|
1108d8ef70 | ||
|
|
6d7d20d5e7 | ||
|
|
30e3df2bdd | ||
|
|
a755da638b | ||
|
|
0a2efd96eb | ||
|
|
94187707d3 | ||
|
|
5094d6d12d | ||
|
|
79dfaf1991 | ||
|
|
30a637eb3f | ||
|
|
38de66d324 | ||
|
|
446d8ebc0e | ||
|
|
11f3d7c371 | ||
|
|
7fab58adba | ||
|
|
856c5e3dad | ||
|
|
624dc9436d | ||
|
|
6fdc08b665 | ||
|
|
b17a273e47 | ||
|
|
62e1bd290b | ||
|
|
a895ded49e | ||
|
|
6c79f57434 | ||
|
|
0b8e88072a | ||
|
|
d84b144ea6 | ||
|
|
b5928d7a3c | ||
|
|
50e1085c52 | ||
|
|
7bef72f48b | ||
|
|
dae0a9ebce | ||
|
|
13cedd5950 | ||
|
|
6818d7e831 | ||
|
|
2b8d91b170 | ||
|
|
092b639253 | ||
|
|
54a977bc14 | ||
|
|
097441843d | ||
|
|
e82135fa3e | ||
|
|
ddea3c8c24 | ||
|
|
fef4a9aa03 | ||
|
|
31f2fa2936 | ||
|
|
292d2783db | ||
|
|
d0d0da180d | ||
|
|
6aae07dad9 | ||
|
|
a6ae85fa52 | ||
|
|
3a9708856a | ||
|
|
52cc756ed2 | ||
|
|
1bff9fc2e9 | ||
|
|
169506fb8d | ||
|
|
91fa81be98 | ||
|
|
e53ab6ab9b | ||
|
|
5cdecc4b06 | ||
|
|
d0aed99033 | ||
|
|
33711f5a48 | ||
|
|
453b07c8c6 | ||
|
|
96905a4dec | ||
|
|
e5db309f8f | ||
|
|
e61cd2295d | ||
|
|
244841eb46 | ||
|
|
7df2a31432 | ||
|
|
93fd95feb2 | ||
|
|
7930db61b8 | ||
|
|
67fd09f6b8 | ||
|
|
573a70ede1 | ||
|
|
7ca11a2b2e | ||
|
|
8ddfccd6b8 | ||
|
|
8bcb412ec5 | ||
|
|
52601b91bf | ||
|
|
81562bbd3a | ||
|
|
1aa1ba1eba | ||
|
|
377ff77104 | ||
|
|
b9b5425af1 | ||
|
|
4317f99fc4 | ||
|
|
c4debee59f | ||
|
|
5537da3d42 | ||
|
|
e7ed2de4f8 | ||
|
|
1364ac4639 | ||
|
|
c9e2046201 | ||
|
|
e8abb85f36 | ||
|
|
023fee37a3 | ||
|
|
45927b08c7 | ||
|
|
aae1c62fe4 | ||
|
|
6cb2291016 | ||
|
|
e3a0ba975b | ||
|
|
d7e6fa1217 | ||
|
|
29779adedd | ||
|
|
d598450d02 | ||
|
|
da8a3ee91f | ||
|
|
ccec55599b | ||
|
|
5fb2dedcbd | ||
|
|
a023a24173 | ||
|
|
d736414896 | ||
|
|
1731aa55d1 | ||
|
|
cc540f9f83 | ||
|
|
fe2d6e465b | ||
|
|
77e58edfe0 | ||
|
|
2aae045dba | ||
|
|
7e79fdc303 | ||
|
|
0baf7a131d | ||
|
|
04a8a93152 | ||
|
|
820be10fd0 | ||
|
|
606a83c4c5 | ||
|
|
2b8134a202 | ||
|
|
1125a02e16 | ||
|
|
e4e4be70c9 | ||
|
|
b80aa30a35 | ||
|
|
85ce7aa131 | ||
|
|
7fbe30a3f5 | ||
|
|
9ed563921b | ||
|
|
34a8803363 | ||
|
|
33a2643e1b | ||
|
|
4418bab702 | ||
|
|
c910d1447d | ||
|
|
656d6cea58 | ||
|
|
3d2a91c693 | ||
|
|
b10b54d0be | ||
|
|
9eff6e1bc0 | ||
|
|
5db0194218 | ||
|
|
8386f6057b | ||
|
|
b4943a7ef5 | ||
|
|
773b81f25f | ||
|
|
f02532900b | ||
|
|
8aa6281b5d | ||
|
|
929efa9c89 | ||
|
|
a6cd884c37 | ||
|
|
e5d9fa5143 | ||
|
|
aa4d1fe3c9 | ||
|
|
6c5a93fd32 | ||
|
|
46b4f54548 | ||
|
|
7578449a67 | ||
|
|
95fd5b764a | ||
|
|
d5c18fc231 | ||
|
|
0489bd5ca1 | ||
|
|
d1f10c1c24 | ||
|
|
d54e101a92 | ||
|
|
826c2fab92 | ||
|
|
18ec65a491 | ||
|
|
3047fd50fb | ||
|
|
fc453f25f8 | ||
|
|
48cabed6ba | ||
|
|
5e4ba54b43 | ||
|
|
a3718a2039 | ||
|
|
30ee9c1f69 | ||
|
|
cdbf4e17bd | ||
|
|
e336b1a3ff | ||
|
|
b520aa1b9b | ||
|
|
5cb1be9c61 | ||
|
|
aa340c1b5b | ||
|
|
237be4bef0 | ||
|
|
318f111ff7 | ||
|
|
043f1c4c60 | ||
|
|
f10855ca77 | ||
|
|
be2896f6f9 | ||
|
|
ae80c0cd05 | ||
|
|
53ca646162 | ||
|
|
4aa7ec7928 | ||
|
|
c6f099228b | ||
|
|
98747a7251 | ||
|
|
5d1d56247d | ||
|
|
41b1e88740 | ||
|
|
9d70d6b0a2 | ||
|
|
a01f36bf8c | ||
|
|
7538e45f92 | ||
|
|
51f2ec84c1 | ||
|
|
092d1404e3 | ||
|
|
b70e809fb6 | ||
|
|
8451268bb4 | ||
|
|
f1bf0000b4 | ||
|
|
baa7fe4155 | ||
|
|
1709f8b501 | ||
|
|
aed67b3d81 | ||
|
|
60ebbedbf8 | ||
|
|
5a769efcb9 | ||
|
|
0c31a54dea | ||
|
|
8c9acad540 | ||
|
|
ffd7e631b0 | ||
|
|
8f2868d2ea | ||
|
|
6a38a6e9db | ||
|
|
7b846f5dd1 | ||
|
|
a652d7a26b | ||
|
|
a7c7014502 | ||
|
|
b5bbda7208 | ||
|
|
c3064a2cb3 | ||
|
|
3860f2832c | ||
|
|
8e077dc483 | ||
|
|
c703bf5868 | ||
|
|
b39a7be7a8 | ||
|
|
11b7b8dc40 | ||
|
|
e8a3ac3cab | ||
|
|
73ba20791e | ||
|
|
b6411b1af1 | ||
|
|
02a9d03154 | ||
|
|
f93746b300 | ||
|
|
0d28b4dfb7 | ||
|
|
39df447b12 | ||
|
|
ac0f6f2011 | ||
|
|
c8a5d87903 | ||
|
|
7733660b8a | ||
|
|
193d8e0a44 | ||
|
|
6c180b2903 | ||
|
|
07b7cb95cf | ||
|
|
a1f3d6ff6c | ||
|
|
ab01a1aa00 |
265
.github/workflows/insider-linux.yml
vendored
265
.github/workflows/insider-linux.yml
vendored
@@ -18,17 +18,21 @@ on:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
BINARY_NAME: codium-insiders
|
||||
DISABLE_UPDATE: 'yes'
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: linux
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
@@ -44,13 +48,16 @@ jobs:
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
@@ -61,12 +68,13 @@ jobs:
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
@@ -77,40 +85,46 @@ jobs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.17'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
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
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
@@ -123,7 +137,7 @@ jobs:
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
@@ -139,19 +153,35 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-arm64
|
||||
- vscode_arch: armhf
|
||||
image: vscodium/vscodium-linux-build-agent:focal-arm64
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-armhf
|
||||
image: vscodium/vscodium-linux-build-agent:focal-armhf
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
image: vscodium/vscodium-linux-build-agent:beige-loong64
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_APP_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
@@ -164,51 +194,62 @@ jobs:
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- 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'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
- name: Install dependencies
|
||||
run: ./build/linux/deps.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./package_linux_bin.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
run: ./build/linux/package_bin.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- 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')
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || 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 == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
@@ -216,35 +257,49 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_linux:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- vscode_arch: arm64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
- vscode_arch: armhf
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
# - vscode_arch: ppc64le
|
||||
# npm_arch: ppc64
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
- slug: S390X
|
||||
vscode_arch: s390x
|
||||
npm_arch: s390x
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_REH_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
@@ -254,52 +309,70 @@ jobs:
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: '18.17'
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.DISABLED != '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.DISABLED != 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ONLY_REH: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && (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'
|
||||
run: ./build/linux/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (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.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -307,25 +380,29 @@ jobs:
|
||||
name: reh-linux-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_alpine:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- vscode_arch: arm64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_INSIDER_ALPINE_REH_{0}', matrix.slug)] }}
|
||||
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 }}
|
||||
@@ -333,12 +410,23 @@ jobs:
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
@@ -348,28 +436,28 @@ 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
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && (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_alpine_reh.sh
|
||||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
|
||||
run: ./build/alpine/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (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.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -377,7 +465,7 @@ jobs:
|
||||
name: reh-alpine-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
aur:
|
||||
needs:
|
||||
@@ -414,16 +502,24 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SNAP_NAME: codium-insiders
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- uses: docker/setup-qemu-action@v3
|
||||
|
||||
@@ -433,10 +529,10 @@ jobs:
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
# - uses: diddlesnaps/snapcraft-review-action@v1
|
||||
# with:
|
||||
# snap: ${{ steps.build.outputs.snap }}
|
||||
# isClassic: 'true'
|
||||
|
||||
- uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
@@ -444,3 +540,18 @@ jobs:
|
||||
repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
file: ${{ steps.build.outputs.snap }}
|
||||
tag: ${{ env.RELEASE_VERSION }}
|
||||
|
||||
deploy-repo-dev:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
repository: VSCodium/repositories-linux
|
||||
event-type: deploy
|
||||
|
||||
44
.github/workflows/insider-macos.yml
vendored
44
.github/workflows/insider-macos.yml
vendored
@@ -18,6 +18,7 @@ on:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
@@ -26,7 +27,10 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
BINARY_NAME: codium-insiders
|
||||
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
@@ -40,29 +44,33 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: macos-12
|
||||
- runner: macos-13
|
||||
vscode_arch: x64
|
||||
- runner: macos-14
|
||||
- runner: [self-hosted, macOS, ARM64]
|
||||
vscode_arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.17'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: . get_pr.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.VSCODE_ARCH == 'x64'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
@@ -84,9 +92,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')
|
||||
|
||||
|
||||
39
.github/workflows/insider-spearhead.yml
vendored
39
.github/workflows/insider-spearhead.yml
vendored
@@ -24,21 +24,25 @@ jobs:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
BINARY_NAME: codium-insiders
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_ARCH: arm64
|
||||
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: insider
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: '18'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
@@ -56,17 +60,30 @@ jobs:
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Update <quality>.json
|
||||
run: ./update_qualityjson.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v6
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Update upstream version
|
||||
run: ./update_upstream.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Prepare source
|
||||
run: ./prepare_src.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload sourcemaps
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./upload_sourcemaps.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Release source
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
@@ -75,7 +92,7 @@ jobs:
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Dispatch builds
|
||||
uses: peter-evans/repository-dispatch@v3
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
event-type: 'insider'
|
||||
event-type: insider
|
||||
if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true')
|
||||
|
||||
219
.github/workflows/insider-windows.yml
vendored
219
.github/workflows/insider-windows.yml
vendored
@@ -18,6 +18,7 @@ on:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ insider ]
|
||||
paths-ignore:
|
||||
@@ -26,51 +27,35 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}-insiders
|
||||
BINARY_NAME: codium-insiders
|
||||
GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }}
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: windows
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: insider
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
# - ia32
|
||||
- arm64
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.17'
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
@@ -81,21 +66,187 @@ jobs:
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
VSCODE_ARCH: 'x64'
|
||||
outputs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Compress vscode artifact
|
||||
run: |
|
||||
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
|
||||
echo "vscode/.build/extensions/node_modules" >> vscode.txt
|
||||
echo "vscode/.git" >> vscode.txt
|
||||
tar -czf vscode.tar.gz -T vscode.txt
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: windows-2022
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- arm64
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
DISABLE_MSI: ${{ vars.DISABLE_INSIDER_MSI }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
run: ./build/windows/package.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Upload unsigned artifacts
|
||||
id: upload-unsigned-artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: unsigned-${{ matrix.vscode_arch }}
|
||||
path: |
|
||||
assets/*.exe
|
||||
assets/*.msi
|
||||
retention-days: 1
|
||||
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Signing
|
||||
uses: signpath/github-action-submit-signing-request@v1
|
||||
with:
|
||||
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
|
||||
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
|
||||
project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
|
||||
signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
|
||||
github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
|
||||
artifact-configuration-slug: ${{ matrix.vscode_arch }}
|
||||
wait-for-completion: true
|
||||
# 3h to manually approve the request
|
||||
wait-for-completion-timeout-in-seconds: 10800
|
||||
output-artifact-directory: assets/
|
||||
if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Prepare checksums
|
||||
run: ./prepare_checksums.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
@@ -121,7 +272,7 @@ jobs:
|
||||
|
||||
winget:
|
||||
needs: build
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -131,7 +282,7 @@ jobs:
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
@@ -141,7 +292,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 }}
|
||||
|
||||
268
.github/workflows/stable-linux.yml
vendored
268
.github/workflows/stable-linux.yml
vendored
@@ -18,16 +18,20 @@ on:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
DISABLE_UPDATE: 'yes'
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: linux
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
@@ -43,13 +47,16 @@ jobs:
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
@@ -60,12 +67,13 @@ jobs:
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
@@ -76,40 +84,48 @@ jobs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.17'
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
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
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
@@ -122,7 +138,7 @@ jobs:
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
@@ -138,19 +154,35 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-x64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-arm64
|
||||
- vscode_arch: armhf
|
||||
image: vscodium/vscodium-linux-build-agent:focal-arm64
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-armhf
|
||||
image: vscodium/vscodium-linux-build-agent:focal-armhf
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
image: vscodium/vscodium-linux-build-agent:beige-loong64
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_APP_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
@@ -163,51 +195,62 @@ jobs:
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- 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'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
- name: Install dependencies
|
||||
run: ./build/linux/deps.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./package_linux_bin.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
run: ./build/linux/package_bin.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- 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')
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || 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 == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
env:
|
||||
@@ -215,35 +258,49 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: bin-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_linux:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- vscode_arch: arm64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
- vscode_arch: armhf
|
||||
- slug: ARM32
|
||||
vscode_arch: armhf
|
||||
npm_arch: arm
|
||||
# - vscode_arch: ppc64le
|
||||
# npm_arch: ppc64
|
||||
- slug: PPC64
|
||||
vscode_arch: ppc64le
|
||||
npm_arch: ppc64
|
||||
- slug: RISCV64
|
||||
vscode_arch: riscv64
|
||||
npm_arch: riscv64
|
||||
- slug: LOONG64
|
||||
vscode_arch: loong64
|
||||
npm_arch: loong64
|
||||
- slug: S390X
|
||||
vscode_arch: s390x
|
||||
npm_arch: s390x
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_REH_{0}', matrix.slug)] }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
@@ -253,52 +310,70 @@ jobs:
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: '18.17'
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.DISABLED != '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.DISABLED != 'yes'
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ONLY_REH: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.DISABLED != 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && (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'
|
||||
run: ./build/linux/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (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.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -306,25 +381,29 @@ jobs:
|
||||
name: reh-linux-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
reh_alpine:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
- slug: X64
|
||||
vscode_arch: x64
|
||||
npm_arch: x64
|
||||
- vscode_arch: arm64
|
||||
- slug: ARM64
|
||||
vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
DISABLED: ${{ vars[format('DISABLE_STABLE_ALPINE_REH_{0}', matrix.slug)] }}
|
||||
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 }}
|
||||
@@ -332,12 +411,23 @@ jobs:
|
||||
if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
run: ./build/linux/install_gh.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
@@ -347,28 +437,28 @@ 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
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && (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_alpine_reh.sh
|
||||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true'
|
||||
run: ./build/alpine/package_reh.sh
|
||||
if: env.DISABLED != 'yes' && (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.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no')
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -376,7 +466,7 @@ jobs:
|
||||
name: reh-alpine-${{ matrix.vscode_arch }}
|
||||
path: assets/
|
||||
retention-days: 3
|
||||
if: env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true'
|
||||
|
||||
aur:
|
||||
needs:
|
||||
@@ -389,8 +479,8 @@ jobs:
|
||||
include:
|
||||
- package_name: vscodium
|
||||
package_type: stable
|
||||
- package_name: vscodium-git
|
||||
package_type: rolling
|
||||
# - package_name: vscodium-git
|
||||
# package_type: rolling
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
@@ -410,21 +500,30 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SNAP_NAME: codium
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Check version
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }}
|
||||
SNAPCRAFT_STORE_CHANNEL: ${{ vars.SNAP_STORE_CHANNEL }}
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
|
||||
@@ -457,18 +556,33 @@ 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:
|
||||
deploy-repo-rudy:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes'
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
env:
|
||||
GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }}
|
||||
run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline
|
||||
|
||||
deploy-repo-dev:
|
||||
needs:
|
||||
- check
|
||||
- build
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true'
|
||||
|
||||
steps:
|
||||
- name: Trigger repository rebuild
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
repository: VSCodium/repositories-linux
|
||||
event-type: deploy
|
||||
|
||||
44
.github/workflows/stable-macos.yml
vendored
44
.github/workflows/stable-macos.yml
vendored
@@ -18,6 +18,7 @@ on:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
@@ -26,6 +27,9 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
@@ -39,27 +43,33 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- runner: macos-12
|
||||
- runner: macos-13
|
||||
vscode_arch: x64
|
||||
- runner: macos-14
|
||||
- runner: [self-hosted, macOS, ARM64]
|
||||
vscode_arch: arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
node-version: '18.17'
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: . get_pr.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.VSCODE_ARCH == 'x64'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
@@ -81,9 +91,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')
|
||||
|
||||
|
||||
39
.github/workflows/stable-spearhead.yml
vendored
39
.github/workflows/stable-spearhead.yml
vendored
@@ -21,19 +21,23 @@ jobs:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
BINARY_NAME: codium
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: osx
|
||||
SOURCEMAPS_REPOSITORY: ${{ github.repository_owner }}/sourcemaps
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_ARCH: arm64
|
||||
VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }}
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: '18'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
@@ -51,17 +55,30 @@ jobs:
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Update <quality>.json
|
||||
run: ./update_qualityjson.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v6
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Update upstream version
|
||||
run: ./update_upstream.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true'
|
||||
|
||||
- name: Prepare source
|
||||
run: ./prepare_src.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload sourcemaps
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./upload_sourcemaps.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Release source
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
@@ -70,7 +87,7 @@ jobs:
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Dispatch builds
|
||||
uses: peter-evans/repository-dispatch@v3
|
||||
uses: peter-evans/repository-dispatch@v4
|
||||
with:
|
||||
event-type: 'stable'
|
||||
event-type: stable
|
||||
if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true'
|
||||
|
||||
225
.github/workflows/stable-windows.yml
vendored
225
.github/workflows/stable-windows.yml
vendored
@@ -18,6 +18,7 @@ on:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- 'upstream/*.json'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
@@ -26,49 +27,34 @@ on:
|
||||
env:
|
||||
APP_NAME: VSCodium
|
||||
ASSETS_REPOSITORY: ${{ github.repository }}
|
||||
BINARY_NAME: codium
|
||||
GH_REPO_PATH: ${{ github.repository }}
|
||||
ORG_NAME: ${{ github.repository_owner }}
|
||||
OS_NAME: windows
|
||||
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
|
||||
VSCODE_QUALITY: stable
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
# - ia32
|
||||
- arm64
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
MS_COMMIT: ${{ env.MS_COMMIT }}
|
||||
MS_TAG: ${{ env.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ env.SHOULD_BUILD }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
node-version: '18.17'
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
@@ -79,22 +65,187 @@ jobs:
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CHECK_ALL: 'yes'
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true'
|
||||
|
||||
compile:
|
||||
needs:
|
||||
- check
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
VSCODE_ARCH: 'x64'
|
||||
outputs:
|
||||
BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
|
||||
- name: Setup GCC
|
||||
uses: egor-tensin/setup-gcc@v1
|
||||
with:
|
||||
version: 10
|
||||
platform: x64
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Install libkrb5-dev
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SHOULD_BUILD_REH: 'no'
|
||||
SHOULD_BUILD_REH_WEB: 'no'
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Compress vscode artifact
|
||||
run: |
|
||||
find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt
|
||||
echo "vscode/.build/extensions/node_modules" >> vscode.txt
|
||||
echo "vscode/.git" >> vscode.txt
|
||||
tar -czf vscode.tar.gz -T vscode.txt
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Upload vscode artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: vscode
|
||||
path: ./vscode.tar.gz
|
||||
retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
build:
|
||||
needs:
|
||||
- check
|
||||
- compile
|
||||
runs-on: windows-2022
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch:
|
||||
- x64
|
||||
- arm64
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }}
|
||||
MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }}
|
||||
MS_TAG: ${{ needs.check.outputs.MS_TAG }}
|
||||
RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }}
|
||||
SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }}
|
||||
SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }}
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
outputs:
|
||||
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
|
||||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Switch to relevant branch
|
||||
env:
|
||||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }}
|
||||
run: ./get_pr.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Setup Python 3
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.11'
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
DISABLE_MSI: ${{ vars.DISABLE_STABLE_MSI }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Download vscode artifact
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: vscode
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
run: ./build/windows/package.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare assets
|
||||
run: ./prepare_assets.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Upload unsigned artifacts
|
||||
id: upload-unsigned-artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: unsigned-${{ matrix.vscode_arch }}
|
||||
path: |
|
||||
assets/*.exe
|
||||
assets/*.msi
|
||||
retention-days: 1
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Signing
|
||||
uses: signpath/github-action-submit-signing-request@v1
|
||||
with:
|
||||
api-token: ${{ secrets.SIGNPATH_API_TOKEN }}
|
||||
organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }}
|
||||
project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }}
|
||||
signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }}
|
||||
github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }}
|
||||
artifact-configuration-slug: ${{ matrix.vscode_arch }}
|
||||
wait-for-completion: true
|
||||
# 8h to manually approve the request
|
||||
wait-for-completion-timeout-in-seconds: 28800
|
||||
output-artifact-directory: assets/
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Prepare checksums
|
||||
run: ./prepare_checksums.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true')
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -107,7 +258,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
run: ./update_version.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Upload assets
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -119,7 +270,7 @@ jobs:
|
||||
|
||||
winget:
|
||||
needs: build
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
@@ -128,7 +279,9 @@ jobs:
|
||||
if: needs.build.outputs.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ env.GITHUB_BRANCH }}
|
||||
|
||||
- name: Check version
|
||||
run: ./stores/winget/check_version.sh
|
||||
@@ -136,7 +289,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 }}
|
||||
|
||||
6
.github/workflows/stale.yml
vendored
6
.github/workflows/stale.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
- uses: actions/stale@v10
|
||||
with:
|
||||
days-before-stale: 180
|
||||
days-before-close: 30
|
||||
@@ -21,5 +21,5 @@ jobs:
|
||||
This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment!
|
||||
close-issue-message: >
|
||||
This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue.
|
||||
exempt-issue-labels: discussion
|
||||
only-pr-labels: not-a-real-label
|
||||
exempt-issue-labels: discussion,never-stale
|
||||
only-pr-labels: needs-information
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -14,5 +14,6 @@ build/linux/appimage/VSCodium
|
||||
build/windows/msi/releasedir
|
||||
build/windows/msi/Files*.wxs
|
||||
build/windows/msi/Files*.wixobj
|
||||
sourcemaps/
|
||||
stores/snapcraft/insider/*.snap
|
||||
stores/snapcraft/stable/*.snap
|
||||
|
||||
@@ -34,9 +34,9 @@ If you want to update the existing patches, please follow the section [`Patch Up
|
||||
### Add a new patch
|
||||
|
||||
- first, you need to build VSCodium
|
||||
- then use the command `patch.sh <your patch name>`, to initiate a new patch
|
||||
- then use the command `./dev/patch.sh <your patch name>`, to initiate a new patch
|
||||
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
|
||||
- run `yarn watch`
|
||||
- run `npm run watch`
|
||||
- run `./script/code.sh`
|
||||
- make your changes
|
||||
- press any key to continue the script `patch.sh`
|
||||
|
||||
30
README.md
30
README.md
@@ -2,7 +2,7 @@
|
||||
<br />
|
||||
<img src="./icons/stable/codium_cnl.svg" alt="VSCodium Logo" width="200"/>
|
||||
<h1>VSCodium</h1>
|
||||
<h3>Free/Libre Open Source Software Binaries of VS Code</h3>
|
||||
<h3>Free/Libre Open Source Software Binaries of Visual Studio Code</h3>
|
||||
</div>
|
||||
|
||||
<div id="badges" align="center">
|
||||
@@ -56,12 +56,9 @@ If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
|
||||
brew install --cask vscodium
|
||||
|
||||
# insiders
|
||||
brew tap homebrew/cask-versions
|
||||
brew install --cask vscodium-insiders
|
||||
brew install --cask vscodium@insiders
|
||||
```
|
||||
|
||||
*Note for macOS users: if you can't open the App, please read [the following troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#macos).*
|
||||
|
||||
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
|
||||
|
||||
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
|
||||
@@ -134,7 +131,7 @@ Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob
|
||||
|
||||
## <a id="why"></a>Why Does This Exist
|
||||
|
||||
This repository contains build files to generate free release binaries of Microsoft's VS Code. When we speak of "free software", we're talking about freedom, not price.
|
||||
This repository contains build files to generate free release binaries of Microsoft's Visual Studio Code. When we speak of "free software", we're talking about freedom, not price.
|
||||
|
||||
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
|
||||
|
||||
@@ -144,7 +141,7 @@ Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS li
|
||||
|
||||
This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to [GitHub releases](https://github.com/VSCodium/vscodium/releases). __These binaries are licensed under the MIT license. Telemetry is disabled.__
|
||||
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VS Code.
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed Visual Studio Code.
|
||||
|
||||
Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:
|
||||
|
||||
@@ -168,9 +165,9 @@ If you have any issue, please check [the Troubleshooting page](https://github.co
|
||||
|
||||
### Extensions and the Marketplace
|
||||
|
||||
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
|
||||
According to the Visual Studio Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for Visual Studio Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#extensions-marketplace) section on the Docs page for more details.
|
||||
|
||||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
|
||||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
|
||||
|
||||
### How are the VSCodium binaries built?
|
||||
|
||||
@@ -187,13 +184,12 @@ The minimal version is limited by the core component Electron, you may want to c
|
||||
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `snap`, `tar.gz`)
|
||||
- [x] GNU/Linux arm64 (`deb`, `rpm`, `snap`, `tar.gz`)
|
||||
- [x] GNU/Linux armhf (`deb`, `rpm`, `tar.gz`)
|
||||
- [x] GNU/Linux riscv64 (`tar.gz`)
|
||||
- [x] GNU/Linux loong64 (`tar.gz`)
|
||||
- [x] GNU/Linux ppc64le (`tar.gz`)
|
||||
- [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,14 @@ 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>
|
||||
<tr>
|
||||
<td><a href="https://signpath.org/" target="_blank"><img src="https://avatars.githubusercontent.com/u/34448643" height="30" alt="SignPath logo" /></a></td>
|
||||
<td>free code signing on Windows provided by <a href="https://signpath.io/" target="_blank">SignPath.io</a>, certificate by <a href="https://signpath.org/" target="_blank">SignPath Foundation</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## <a id="license"></a>License
|
||||
|
||||
57
build.sh
57
build.sh
@@ -14,48 +14,71 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
|
||||
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
yarn monaco-compile-check
|
||||
yarn valid-layers-check
|
||||
npm run monaco-compile-check
|
||||
npm run valid-layers-check
|
||||
|
||||
yarn gulp compile-build
|
||||
yarn gulp compile-extension-media
|
||||
yarn gulp compile-extensions-build
|
||||
yarn gulp minify-vscode
|
||||
npm run gulp compile-build-without-mangling
|
||||
npm run gulp compile-extension-media
|
||||
npm run gulp compile-extensions-build
|
||||
npm run gulp minify-vscode
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
# remove win32 node modules
|
||||
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
|
||||
|
||||
# generate Group Policy definitions
|
||||
node build/lib/policies darwin
|
||||
|
||||
npm run gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
find "../VSCode-darwin-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
. ../build_cli.sh
|
||||
|
||||
VSCODE_PLATFORM="darwin"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
# generate Group Policy definitions
|
||||
node build/lib/policies win32
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
# in CI, packaging will be done by a different job
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
if [[ "${VSCODE_ARCH}" != "ia32" && "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_REH="no"
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_REH="no"
|
||||
SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
. ../build_cli.sh
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="win32"
|
||||
else # linux
|
||||
# remove win32 node modules
|
||||
rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
|
||||
|
||||
# in CI, packaging will be done by a different job
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
. ../build_cli.sh
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="linux"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
if [[ "${OS_NAME}" == "linux" ]]; then
|
||||
export VSCODE_NODE_GLIBC='-glibc-2.17'
|
||||
fi
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
98
build/alpine/package_reh.sh
Executable file
98
build/alpine/package_reh.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
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 )"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"
|
||||
|
||||
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
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
PA_NAME="linux-alpine"
|
||||
else
|
||||
PA_NAME="alpine-arm64"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-${PA_NAME}-min-ci"
|
||||
|
||||
pushd "../vscode-reh-${PA_NAME}"
|
||||
|
||||
echo "Archiving REH"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-${PA_NAME}-min-ci"
|
||||
|
||||
pushd "../vscode-reh-web-${PA_NAME}"
|
||||
|
||||
echo "Archiving REH-web"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -27,16 +27,20 @@ if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
# remove check so build in docker can succeed
|
||||
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
sed -i 's|@@NAME@@|VSCodium-Insiders|g' recipe.yml
|
||||
sed -i 's|@@APPNAME@@|codium-insiders|g' recipe.yml
|
||||
sed -i 's|@@ICON@@|vscodium-insiders|g' recipe.yml
|
||||
sed -i "s|@@NAME@@|${APP_NAME}-Insiders|g" recipe.yml
|
||||
sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
|
||||
sed -i "s|@@ICON@@|${APP_NAME_LC}-insiders|g" recipe.yml
|
||||
else
|
||||
sed -i 's|@@NAME@@|VSCodium|g' recipe.yml
|
||||
sed -i 's|@@APPNAME@@|codium|g' recipe.yml
|
||||
sed -i 's|@@ICON@@|vscodium|g' recipe.yml
|
||||
sed -i "s|@@NAME@@|${APP_NAME}|g" recipe.yml
|
||||
sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
|
||||
sed -i "s|@@ICON@@|${APP_NAME_LC}|g" recipe.yml
|
||||
fi
|
||||
|
||||
# workaround that enforces x86 ARCH for pkg2appimage having /__w/vscodium/vscodium/build/linux/appimage/VSCodium/VSCodium.AppDir/usr/share/codium/resources/app/node_modules/rc/index.js is of architecture armhf
|
||||
export ARCH=x86_64
|
||||
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
|
||||
|
||||
rm -f pkg2appimage-*.AppImage
|
||||
|
||||
13
build/linux/deps.sh
Executable file
13
build/linux/deps.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
sudo apt-get update -y
|
||||
|
||||
sudo apt-get install -y libkrb5-dev
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu crossbuild-essential-arm64
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf crossbuild-essential-armhf
|
||||
fi
|
||||
32
build/linux/install_gh.sh
Executable file
32
build/linux/install_gh.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
GH_ARCH="amd64"
|
||||
|
||||
for i in {1..5}; do
|
||||
TAG=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" 2>/dev/null | jq --raw-output '.tag_name' )
|
||||
|
||||
if [[ $? == 0 && "${TAG}" != "null" ]]; then
|
||||
break
|
||||
fi
|
||||
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "GH install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "GH install failed $i, trying again..."
|
||||
|
||||
sleep $(( 15 * (i + 1)))
|
||||
done
|
||||
|
||||
VERSION="${TAG#v}"
|
||||
|
||||
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/${TAG}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
|
||||
|
||||
gh --version
|
||||
13
build/linux/install_nodejs.sh
Executable file
13
build/linux/install_nodejs.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
NODEJS_VERSION=$( cat .nvmrc )
|
||||
|
||||
curl -fsSL "${NODEJS_SITE}${NODEJS_URLROOT}/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}.tar.xz" -o node.tar.xz
|
||||
|
||||
tar -xf node.tar.xz
|
||||
|
||||
sudo mv "node-v${NODEJS_VERSION}-linux-${NODEJS_ARCH}${NODEJS_URLSUFFIX}" /usr/local/node
|
||||
|
||||
echo "/usr/local/node/bin" >> $GITHUB_PATH
|
||||
6
build/linux/loong64/electron.sh
Normal file
6
build/linux/loong64/electron.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="37.2.5"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"
|
||||
11
build/linux/loong64/electron.sha256sums
Normal file
11
build/linux/loong64/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
0bc435a6989f120b1f748cd2f8d3fa7ed731c54a0ad797271e479539dca5c4fe *chromedriver-v37.2.5-linux-loong64.zip
|
||||
6a355cac6c8b02deb413d024ff3224f03717cc0790e3f5a872891ecf79ade20e *electron-v37.2.5-linux-loong64-debug.zip
|
||||
c091db1993b2bda5426a678c428c5ffc71af9228abc4891a493a1d318e250b0a *electron-v37.2.5-linux-loong64-symbols.zip
|
||||
d3f615c3ec265a2adbc0ed9088a65e96aa90b392ecd1ea17e8e4dc82728f4a5d *electron-v37.2.5-linux-loong64.zip
|
||||
17e05db81f5b0cff1327ac153bd20838b3332b78de1b2ffa235e27a30a15024d *ffmpeg-v37.2.5-linux-loong64.zip
|
||||
eaf1efb230cd9bfee7acd8b553c602ff396c2f667837e968b4c1d5542448b0b3 *hunspell-dictionaries.zip
|
||||
3eb8b3199f764c63f82960cb1e1945f70af348873133bf9fd70daeefa3ca1bfb *libcxx-headers.zip
|
||||
2a5ad06e845d59d89b74a97cd2befcfad02f951f8083f02645a9edbb4e7fdcb7 *libcxx-objects-v37.2.5-linux-loong64.zip
|
||||
24eec3c74d5a05eba53524866a009e257e52e65257caa8e6fda07b82321885eb *libcxxabi-headers.zip
|
||||
a4015814d6651cf5511b04307aeef51b739d05eed7ff8ab819739dabd0047309 *mksnapshot-v37.2.5-linux-loong64.zip
|
||||
d1ed2413e007d7adbcd7291158647cfd4908739b034d021c123ca3d11513c31a *node-v37.2.5-headers.tar.gz
|
||||
18
build/linux/loong64/ripgrep.sh
Executable file
18
build/linux/loong64/ripgrep.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt,
|
||||
# however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one.
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_node_modules>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RG_PATH="$1/@vscode/ripgrep/bin/rg"
|
||||
RG_VERSION="14.1.1"
|
||||
|
||||
echo "Replacing ripgrep binary with loong64 one"
|
||||
|
||||
rm "${RG_PATH}"
|
||||
curl --silent --fail -L https://github.com/darkyzhou/ripgrep-loongarch64-musl/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
|
||||
chmod +x "${RG_PATH}"
|
||||
140
build/linux/package_bin.sh
Executable file
140
build/linux/package_bin.sh
Executable file
@@ -0,0 +1,140 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
chown -R root:root vscode
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
export VSCODE_SYSROOT_PREFIX='-glibc-2.28-gcc-10.5.0'
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20240129-253798'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_ELECTRON_REPOSITORY='lex-ibm/electron-ppc64le-build-scripts'
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ELECTRON_REPOSITORY='riscv-forks/electron-riscv-releases'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
fi
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sh" ]]; then
|
||||
# add newline at the end of the file
|
||||
echo "" >> build/checksums/electron.txt
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sha256sums" ]]; then
|
||||
cat "../build/linux/${VSCODE_ARCH}/electron.sha256sums" >> build/checksums/electron.txt
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
source "../build/linux/${VSCODE_ARCH}/electron.sh"
|
||||
|
||||
TARGET=$( npm config get target )
|
||||
|
||||
# Only fails at different major versions
|
||||
if [[ "${ELECTRON_VERSION%%.*}" != "${TARGET%%.*}" ]]; then
|
||||
# Fail the pipeline if electron target doesn't match what is used.
|
||||
echo "Electron ${VSCODE_ARCH} binary version doesn't match target electron version!"
|
||||
echo "Releases available at: https://github.com/${VSCODE_ELECTRON_REPOSITORY}/releases"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "${ELECTRON_VERSION}" != "${TARGET}" ]]; then
|
||||
# Force version
|
||||
replace "s|target=\"${TARGET}\"|target=\"${ELECTRON_VERSION}\"|" .npmrc
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d "../patches/linux/client/" ]]; then
|
||||
for file in "../patches/linux/client/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "${USE_GNUPP2A}" ]]; then
|
||||
INCLUDES=$(cat <<EOF
|
||||
{
|
||||
"target_defaults": {
|
||||
"conditions": [
|
||||
["OS=='linux'", {
|
||||
'cflags_cc!': [ '-std=gnu++20' ],
|
||||
'cflags_cc': [ '-std=gnu++2a' ],
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ ! -d "$HOME/.gyp" ]; then
|
||||
mkdir -p "$HOME/.gyp"
|
||||
fi
|
||||
|
||||
echo "${INCLUDES}" > "$HOME/.gyp/include.gypi"
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci --prefix build && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
|
||||
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
|
||||
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
|
||||
else
|
||||
source ./build/azure-pipelines/linux/setup-env.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
npm run gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules"
|
||||
fi
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
. ../build_cli.sh
|
||||
|
||||
cd ..
|
||||
262
build/linux/package_reh.sh
Executable file
262
build/linux/package_reh.sh
Executable file
@@ -0,0 +1,262 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# include common functions
|
||||
. ./utils.sh
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
GLIBC_VERSION="2.28"
|
||||
GLIBCXX_VERSION="3.4.26"
|
||||
NODE_VERSION="22.15.1"
|
||||
|
||||
export VSCODE_NODEJS_URLROOT='/download/release'
|
||||
export VSCODE_NODEJS_URLSUFFIX=''
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
GLIBC_VERSION="2.17"
|
||||
GLIBCXX_VERSION="3.4.22"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-x64"
|
||||
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
export VSCODE_NODEJS_URLSUFFIX='-glibc-217'
|
||||
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
EXPECTED_GLIBC_VERSION="2.30"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-arm64"
|
||||
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
EXPECTED_GLIBC_VERSION="2.30"
|
||||
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-armhf"
|
||||
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-ppc64le"
|
||||
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20240129-253798'
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
NODE_VERSION="20.16.0"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
|
||||
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
NODE_VERSION="20.16.0"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:beige-devtoolset-loong64"
|
||||
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
|
||||
VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20241108'
|
||||
fi
|
||||
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
|
||||
if [[ -z "${VSCODE_SYSROOT_PREFIX}" ]]; then
|
||||
export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}-gcc-10.5.0"
|
||||
else
|
||||
export VSCODE_SYSROOT_PREFIX
|
||||
fi
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION:=GLIBC_VERSION}"
|
||||
VSCODE_HOST_MOUNT="$( pwd )"
|
||||
|
||||
export VSCODE_HOST_MOUNT
|
||||
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
|
||||
|
||||
sed -i "/target/s/\"22.*\"/\"${NODE_VERSION}\"/" remote/.npmrc
|
||||
|
||||
if [[ -d "../patches/linux/reh/" ]]; then
|
||||
for file in "../patches/linux/reh/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -d "../patches/linux/reh/${VSCODE_ARCH}/" ]]; then
|
||||
for file in "../patches/linux/reh/${VSCODE_ARCH}/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
apply_patch "${file}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "${USE_GNUPP2A}" ]]; then
|
||||
INCLUDES=$(cat <<EOF
|
||||
{
|
||||
"target_defaults": {
|
||||
"conditions": [
|
||||
["OS=='linux'", {
|
||||
'cflags_cc!': [ '-std=gnu++20' ],
|
||||
'cflags_cc': [ '-std=gnu++2a' ],
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ ! -d "${HOME}/.gyp" ]; then
|
||||
mkdir -p "${HOME}/.gyp"
|
||||
fi
|
||||
|
||||
echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
|
||||
fi
|
||||
|
||||
mv .npmrc .npmrc.bak
|
||||
cp ../npmrc .npmrc
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci --prefix build && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
|
||||
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
|
||||
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
|
||||
else
|
||||
source ./build/azure-pipelines/linux/setup-env.sh
|
||||
fi
|
||||
|
||||
export VSCODE_SYSROOT_DIR="${VSCODE_REMOTE_SYSROOT_DIR}"
|
||||
else
|
||||
mkdir -p .build/x86_64-linux-gnu/x86_64-linux-gnu/bin
|
||||
|
||||
ln -s $( which objdump ) .build/x86_64-linux-gnu/x86_64-linux-gnu/bin/objdump
|
||||
|
||||
export VSCODE_SYSROOT_DIR=".build"
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
|
||||
# remove dependencies that fail during cleanup
|
||||
rm -rf node_modules/@vscode node_modules/node-pty
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
pushd "remote"
|
||||
|
||||
for LIB in @parcel/watcher @vscode/spdlog kerberos node-pty
|
||||
do
|
||||
pushd "node_modules/${LIB}"
|
||||
|
||||
CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" npx node-gyp rebuild
|
||||
|
||||
popd
|
||||
done
|
||||
|
||||
popd
|
||||
|
||||
VERIFY_CXX11=1
|
||||
fi
|
||||
|
||||
mv .npmrc.bak .npmrc
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
|
||||
if [[ -n "${VERIFY_CXX11}" ]]; then
|
||||
SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
|
||||
fi
|
||||
|
||||
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
|
||||
fi
|
||||
|
||||
echo "Archiving REH"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${EXPECTED_GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
|
||||
if [[ -n "${VERIFY_CXX11}" ]]; then
|
||||
SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ../build/linux/verify_cxx11_requirements.sh
|
||||
fi
|
||||
|
||||
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "node_modules"
|
||||
fi
|
||||
|
||||
echo "Archiving REH-web"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
6
build/linux/ppc64le/electron.sh
Normal file
6
build/linux/ppc64le/electron.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="37.2.3"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"
|
||||
10
build/linux/ppc64le/electron.sha256sums
Normal file
10
build/linux/ppc64le/electron.sha256sums
Normal file
@@ -0,0 +1,10 @@
|
||||
877785ae2383a8a222fa37bda98c148b145931ff8714614aaf330d15d6f92710 *chromedriver-v37.2.3-linux-ppc64le.zip
|
||||
5ce746efac98a0d83699ef0e03497867ed34d936a268551f26eb2e2972c4d5f5 *electron-v37.2.3-linux-ppc64le-debug.zip
|
||||
f0ac8a9a9b6c1e330edd53fedaee29699c540691993ace4bb938cdd369895b89 *electron-v37.2.3-linux-ppc64le-symbols.zip
|
||||
6dc2ac4a8fd4565948ac330be371436d2534aaea633d17ac7743fce8aac42ef0 *electron-v37.2.3-linux-ppc64le.zip
|
||||
6358a83a03a801d6a85559179e4f12307dee693043ffb26fd40585f369f7db76 *electron.d.ts
|
||||
25a5ec559f683df305faa9eb082514a9e6dff9f983b7724ddbd82a34bef4890b *hunspell_dictionaries.zip
|
||||
9da591f8eabbdeba1a51f1b2ec7f2627eaa07d77d0263b6b16abc87a00e2f287 *libcxx-objects-v37.2.3-linux-ppc64le.zip
|
||||
519a41987f56c133b91affbb13f8fa5331eda9da8750325fae84444532177e02 *libcxx_headers.zip
|
||||
8607d01b3c828602b3f359458587d5ffa883695756edebf4547aadb0847fdaa9 *libcxxabi_headers.zip
|
||||
1d40ebef530616b35031333e569247dd265704b496f35ec256220ae081c340c1 *mksnapshot-v37.2.3-linux-ppc64le.zip
|
||||
6
build/linux/riscv64/electron.sh
Executable file
6
build/linux/riscv64/electron.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="37.2.3"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"
|
||||
11
build/linux/riscv64/electron.sha256sums
Normal file
11
build/linux/riscv64/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
bec3076d684af4ab7700f13861c3257dc17198970eb498ff2e388db71f61898e *chromedriver-v37.2.3-linux-riscv64.zip
|
||||
c670aba1b907ef9cbcdb2dccd742604f897eef4719f7ad46f34925197f7ae208 *electron-v37.2.3-linux-riscv64-debug.tar.zst
|
||||
3ee5a9d29c611a6c685caa291698c3b5f1041bd11b3726137d41931457d6a113 *electron-v37.2.3-linux-riscv64-symbols.tar.zst
|
||||
33f16380975b2087308f096e4329639f839c58aa1b9cccbee0a915bf3ed7b976 *electron-v37.2.3-linux-riscv64.zip
|
||||
0ef484d10dd15bb4b44e5862ff8070ec09d94ca0b7c6b062e88c64fa343e2408 *ffmpeg-v37.2.3-linux-riscv64.zip
|
||||
218a633300feb50ed57ab751374bac8693615ff192c2437067a4bceef84c9cf8 *hunspell-dictionaries.zip
|
||||
abe24654e394d057dc2bdea9533fcd1790becb822b53d543165c74470694e818 *libcxx-headers.zip
|
||||
1e6972b9125d1864f32d0f5d1084cf4ea56f7dd2227505271dde15439942c0e4 *libcxx-objects-v37.2.3-linux-riscv64.zip
|
||||
55fdbc0fc65e176e50c3492dd50a18c9d23e2bd0e45a00a34118d46ed583a8d0 *libcxxabi-headers.zip
|
||||
b017a16c8f0d8c8076ec71fba5a043951dd88e4fc7d8e8720906a0b9b4a141aa *mksnapshot-v37.2.3-linux-riscv64.zip
|
||||
0259b1abf0bc8aedb114bac75aadcbb1860fd13ae32a876702ca8e722581f8b2 *node-v37.2.3-headers.tar.gz
|
||||
18
build/linux/riscv64/ripgrep.sh
Executable file
18
build/linux/riscv64/ripgrep.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# microsoft/ripgrep-prebuilt doesn't support riscv64.
|
||||
# Tracking PR: https://github.com/microsoft/ripgrep-prebuilt/pull/41
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_node_modules>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RG_PATH="$1/@vscode/ripgrep/bin/rg"
|
||||
RG_VERSION="14.1.1-4"
|
||||
|
||||
echo "Replacing ripgrep binary with riscv64 one"
|
||||
|
||||
rm "${RG_PATH}"
|
||||
curl --silent --fail -L https://github.com/riscv-forks/ripgrep-riscv64-prebuilt/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
|
||||
chmod +x "${RG_PATH}"
|
||||
29
build/linux/verify_abi_requirements.sh
Executable file
29
build/linux/verify_abi_requirements.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
FILES=$(
|
||||
find "${SEARCH_PATH}" -type f -executable -name "node"
|
||||
find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*"
|
||||
)
|
||||
|
||||
echo "Verifying requirements for files: ${FILES}"
|
||||
|
||||
for FILE in ${FILES}; do
|
||||
CXXABI_VERSION="0.0.0"
|
||||
|
||||
while IFS= read -r LINE; do
|
||||
VERSION=${LINE#*_}
|
||||
|
||||
if [[ $( printf "%s\n%s" "${VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${VERSION}" ]]; then
|
||||
CXXABI_VERSION="${VERSION}"
|
||||
fi
|
||||
done < <( strings "${FILE}" | grep -i ^CXXABI )
|
||||
|
||||
if [[ $( printf "%s\n%s" "${EXPECTED_CXXABI_VERSION}" "${CXXABI_VERSION}" | sort -V | tail -n1 ) == "${EXPECTED_CXXABI_VERSION}" ]]; then
|
||||
echo "File ${FILE} has dependency on ABI ${CXXABI_VERSION} <= ${EXPECTED_CXXABI_VERSION}"
|
||||
else
|
||||
echo "Error: File ${FILE} has dependency on ABI ${CXXABI_VERSION} > ${EXPECTED_CXXABI_VERSION}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
14
build/linux/verify_cxx11_requirements.sh
Executable file
14
build/linux/verify_cxx11_requirements.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
FILES=$( find "${SEARCH_PATH}" -name "*.node" -not -path "*prebuilds*" -not -path "*extensions/node_modules/@parcel/watcher*" )
|
||||
|
||||
echo "Verifying requirements for files: ${FILES}"
|
||||
|
||||
for FILE in ${FILES}; do
|
||||
if [[ -n "$( strings "${FILE}" | grep cxx11 | tail -n1 )" ]]; then
|
||||
echo "Error: File ${FILE} has dependency on CXX11"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
11
build/osx/include.gypi
Normal file
11
build/osx/include.gypi
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
'target_defaults': {
|
||||
'conditions': [
|
||||
['OS=="mac"', {
|
||||
'xcode_settings': {
|
||||
'OTHER_CPLUSPLUSFLAGS': ['-std=c++20']
|
||||
}
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
done
|
||||
14
build/windows/appx/build.sh
Executable file
14
build/windows/appx/build.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Add Windows SDK to path
|
||||
SDK='/C/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64'
|
||||
export PATH="${SDK}:${PATH}"
|
||||
|
||||
APPX_NAME="${BINARY_NAME//-/_}"
|
||||
|
||||
makeappx pack /d "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest" /p "../../../VSCode-win32-${VSCODE_ARCH}/appx/${APPX_NAME}_${VSCODE_ARCH}.appx" /nv
|
||||
|
||||
# Remove the raw manifest folder
|
||||
rm -rf "../../../VSCode-win32-${VSCODE_ARCH}/appx/manifest"
|
||||
45
build/windows/package.sh
Executable file
45
build/windows/package.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 5 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
npm run gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
. ../build_cli.sh
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
npm run gulp minify-vscode-reh
|
||||
npm run gulp "vscode-reh-win32-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
npm run gulp minify-vscode-reh-web
|
||||
npm run gulp "vscode-reh-web-win32-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
95
build_cli.sh
Executable file
95
build_cli.sh
Executable file
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
cd cli
|
||||
|
||||
export CARGO_NET_GIT_FETCH_WITH_CLI="true"
|
||||
export VSCODE_CLI_APP_NAME="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
export VSCODE_CLI_BINARY_NAME="$( node -p "require(\"../product.json\").serverApplicationName" )"
|
||||
export VSCODE_CLI_UPDATE_ENDPOINT="https://raw.githubusercontent.com/VSCodium/versions/refs/heads/master"
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
export VSCODE_CLI_DOWNLOAD_ENDPOINT="https://github.com/VSCodium/vscodium-insiders/releases"
|
||||
else
|
||||
export VSCODE_CLI_DOWNLOAD_ENDPOINT="https://github.com/VSCodium/vscodium/releases"
|
||||
fi
|
||||
|
||||
TUNNEL_APPLICATION_NAME="$( node -p "require(\"../product.json\").tunnelApplicationName" )"
|
||||
NAME_SHORT="$( node -p "require(\"../product.json\").nameShort" )"
|
||||
|
||||
npm pack @vscode/openssl-prebuilt@0.0.11
|
||||
mkdir openssl
|
||||
tar -xvzf vscode-openssl-prebuilt-0.0.11.tgz --strip-components=1 --directory=openssl
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_CLI_TARGET="aarch64-apple-darwin"
|
||||
else
|
||||
VSCODE_CLI_TARGET="x86_64-apple-darwin"
|
||||
fi
|
||||
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-osx/include"
|
||||
|
||||
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
|
||||
|
||||
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-darwin-${VSCODE_ARCH}/${NAME_SHORT}.app/Contents/Resources/app/bin/${TUNNEL_APPLICATION_NAME}"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_CLI_TARGET="aarch64-pc-windows-msvc"
|
||||
export VSCODE_CLI_RUST="-C target-feature=+crt-static -Clink-args=/guard:cf -Clink-args=/CETCOMPAT:NO"
|
||||
else
|
||||
VSCODE_CLI_TARGET="x86_64-pc-windows-msvc"
|
||||
export VSCODE_CLI_RUSTFLAGS="-Ctarget-feature=+crt-static -Clink-args=/guard:cf -Clink-args=/CETCOMPAT"
|
||||
fi
|
||||
|
||||
export VSCODE_CLI_CFLAGS="/guard:cf /Qspectre"
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-windows-static/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-windows-static/include"
|
||||
|
||||
rustup target add "${VSCODE_CLI_TARGET}"
|
||||
|
||||
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
|
||||
|
||||
cp "target/${VSCODE_CLI_TARGET}/release/code.exe" "../../VSCode-win32-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}.exe"
|
||||
else
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-linux/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/${VSCODE_ARCH}-linux/include"
|
||||
export VSCODE_SYSROOT_DIR="../.build/sysroots"
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_CLI_TARGET="aarch64-unknown-linux-gnu"
|
||||
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
|
||||
export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc
|
||||
export CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
fi
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
VSCODE_CLI_TARGET="armv7-unknown-linux-gnueabihf"
|
||||
|
||||
export OPENSSL_LIB_DIR="$( pwd )/openssl/out/arm-linux/lib"
|
||||
export OPENSSL_INCLUDE_DIR="$( pwd )/openssl/out/arm-linux/include"
|
||||
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
|
||||
export CC_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc
|
||||
export CXX_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
fi
|
||||
elif [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
VSCODE_CLI_TARGET="x86_64-unknown-linux-gnu"
|
||||
fi
|
||||
|
||||
if [[ -n "${VSCODE_CLI_TARGET}" ]]; then
|
||||
rustup target add "${VSCODE_CLI_TARGET}"
|
||||
|
||||
cargo build --release --target "${VSCODE_CLI_TARGET}" --bin=code
|
||||
|
||||
cp "target/${VSCODE_CLI_TARGET}/release/code" "../../VSCode-linux-${VSCODE_ARCH}/bin/${TUNNEL_APPLICATION_NAME}"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
688
check_tags.sh
688
check_tags.sh
@@ -3,42 +3,60 @@
|
||||
|
||||
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)}' )"
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" )
|
||||
LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' )
|
||||
|
||||
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then
|
||||
if [[ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]]; then
|
||||
echo "New VSCode version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${NEW_RELEASE}" == "true" ]]; then
|
||||
echo "New release build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
|
||||
if [[ "${SHOULD_DEPLOY}" == "no" ]]; then
|
||||
ASSETS="null"
|
||||
else
|
||||
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}"
|
||||
|
||||
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
|
||||
if [[ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]]; then
|
||||
echo "New VSCode Insiders version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
if [[ "${LATEST_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5]) ]]; then
|
||||
if [[ "${MS_TAG}" != "${BASH_REMATCH[1]}" ]]; then
|
||||
echo "New VSCode version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${NEW_RELEASE}" == "true" ]]; then
|
||||
echo "New release build"
|
||||
export SHOULD_BUILD="yes"
|
||||
elif [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
BODY=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.body' )
|
||||
|
||||
if [[ "${BODY}" =~ \[([a-z0-9]+)\] ]]; then
|
||||
if [[ "${MS_COMMIT}" != "${BASH_REMATCH[1]}" ]]; then
|
||||
echo "New VSCode Insiders version, new build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
export RELEASE_VERSION="${LATEST_VERSION}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
export RELEASE_VERSION="${LATEST_VERSION}"
|
||||
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
|
||||
|
||||
echo "Switch to release version: ${RELEASE_VERSION}"
|
||||
echo "Switch to release version: ${RELEASE_VERSION}"
|
||||
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
elif [[ "${RECHECK_ASSETS}" == "yes" ]]; then
|
||||
export SHOULD_BUILD="no"
|
||||
|
||||
ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
else
|
||||
ASSETS="null"
|
||||
fi
|
||||
else
|
||||
ASSETS="null"
|
||||
echo "can't check assets"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -47,6 +65,7 @@ contains() {
|
||||
echo "${ASSETS}" | grep "${1}\""
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2153
|
||||
if [[ "${CHECK_ASSETS}" == "no" ]]; then
|
||||
echo "Don't check assets, yet"
|
||||
elif [[ "${ASSETS}" != "null" ]]; then
|
||||
@@ -79,6 +98,20 @@ 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 [[ -z $( contains "${APP_NAME_LC}-cli-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on MacOS because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the MacOS builds"
|
||||
fi
|
||||
@@ -108,59 +141,19 @@ elif [[ "${ASSETS}" != "null" ]]; then
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_REH="no"
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-cli-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
|
||||
# windows-ia32
|
||||
elif [[ "${VSCODE_ARCH}" == "ia32" ]]; then
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows ia32 builds"
|
||||
fi
|
||||
|
||||
# windows-x64
|
||||
else
|
||||
if [[ -z $( contains "${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe" ) ]]; then
|
||||
@@ -184,14 +177,18 @@ elif [[ "${ASSETS}" != "null" ]]; then
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
if [[ "${DISABLE_MSI}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
elif [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
if [[ "${DISABLE_MSI}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
elif [[ -z $( contains "${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
@@ -205,150 +202,408 @@ 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 [[ -z $( contains "${APP_NAME_LC}-cli-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "linux" ]]; then
|
||||
else
|
||||
if [[ "${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"
|
||||
else
|
||||
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
|
||||
|
||||
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"
|
||||
else
|
||||
echo "Already have the Linux REH ${VSCODE_ARCH} archive"
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
# linux-arm64
|
||||
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
# linux-arm64
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "aarch64.rpm" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "arm64.snap" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no SNAP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_SNAP="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux 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-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 [[ -z $( contains "${APP_NAME_LC}-cli-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-armhf
|
||||
if [[ "${VSCODE_ARCH}" == "armhf" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
|
||||
echo "Building on Linux arm because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm 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-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 [[ -z $( contains "${APP_NAME_LC}-cli-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-ppc64le
|
||||
if [[ "${VSCODE_ARCH}" == "ppc64le" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE 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-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
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux PowerPC64LE builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-riscv64
|
||||
if [[ "${VSCODE_ARCH}" == "riscv64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
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 [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-riscv64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
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 [[ "${CHECK_REH}" != "no" && -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
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux riscv64 builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-loong64
|
||||
if [[ "${VSCODE_ARCH}" == "loong64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux Loong64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux Loong64 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-linux-loong64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux Loong64 because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux Loong64 builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-s390x
|
||||
if [[ "${VSCODE_ARCH}" == "s390x" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
SHOULD_BUILD_APPIMAGE="no"
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_TAR="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-s390x-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux s390x 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-s390x-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux s390x because we have no REH-web archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux s390x builds"
|
||||
fi
|
||||
fi
|
||||
|
||||
# linux-x64
|
||||
if [[ "${VSCODE_ARCH}" == "x64" || "${CHECK_ALL}" == "yes" ]]; then
|
||||
if [[ -z $( contains "amd64.deb" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.rpm" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
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
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "amd64.snap" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no SNAP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_SNAP="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux 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-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 [[ -z $( contains "${APP_NAME_LC}-cli-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no CLI archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${OS_NAME}" == "alpine" ]] || [[ "${OS_NAME}" == "linux" && "${CHECK_ALL}" == "yes" ]]; 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
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "aarch64.rpm" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
# 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 [[ -z $( contains "${APP_NAME}-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="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
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-arm64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
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
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
|
||||
# linux-armhf
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
|
||||
echo "Building on Linux arm because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-armhf-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
|
||||
# linux-ppc64le
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
SHOULD_BUILD_APPIMAGE="no"
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_TAR="no"
|
||||
|
||||
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux PowerPC64LE because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux PowerPC64LE builds"
|
||||
fi
|
||||
|
||||
# linux-x64
|
||||
else
|
||||
if [[ -z $( contains "amd64.deb" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.rpm" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "${APP_NAME}-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no AppImage"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ "${CHECK_REH}" != "no" && -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no REH archive"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_REH="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
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
|
||||
fi
|
||||
@@ -360,13 +615,31 @@ else
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_TAR="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
|
||||
SHOULD_BUILD_DEB="no"
|
||||
SHOULD_BUILD_RPM="no"
|
||||
SHOULD_BUILD_CLI="no"
|
||||
fi
|
||||
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" != "x64" || "${DISABLE_APPIMAGE}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
export SHOULD_BUILD_REH="no"
|
||||
export SHOULD_BUILD_REH_WEB="no"
|
||||
fi
|
||||
if [[ "${DISABLE_MSI}" == "yes" ]]; then
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -384,7 +657,10 @@ 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_CLI=${SHOULD_BUILD_CLI}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_SNAP=${SHOULD_BUILD_SNAP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_SRC=${SHOULD_BUILD_SRC}" >> "${GITHUB_ENV}"
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
bash ./build/build.sh
|
||||
bash ./dev/build.sh
|
||||
@@ -2,12 +2,15 @@
|
||||
# shellcheck disable=SC1091,SC2129
|
||||
|
||||
### Windows
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./dev/build.sh
|
||||
###
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export ASSETS_REPOSITORY="VSCodium/vscodium"
|
||||
export BINARY_NAME="codium"
|
||||
export CI_BUILD="no"
|
||||
export GH_REPO_PATH="VSCodium/vscodium"
|
||||
export ORG_NAME="VSCodium"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export SKIP_BUILD="no"
|
||||
@@ -19,6 +22,7 @@ export VSCODE_SKIP_NODE_VERSION_CHECK="yes"
|
||||
while getopts ":ilops" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export ASSETS_REPOSITORY="VSCodium/vscodium-insiders"
|
||||
export BINARY_NAME="codium-insiders"
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
@@ -53,10 +57,16 @@ esac
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
if [[ "${UNAME_ARCH}" == "aarch64" || "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
export VSCODE_ARCH="arm64"
|
||||
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_ARCH="ppc64le"
|
||||
elif [[ "${UNAME_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ARCH="riscv64"
|
||||
elif [[ "${UNAME_ARCH}" == "loongarch64" ]]; then
|
||||
export VSCODE_ARCH="loong64"
|
||||
elif [[ "${UNAME_ARCH}" == "s390x" ]]; then
|
||||
export VSCODE_ARCH="s390x"
|
||||
else
|
||||
export VSCODE_ARCH="x64"
|
||||
fi
|
||||
@@ -78,16 +88,16 @@ if [[ "${SKIP_SOURCE}" == "no" ]]; then
|
||||
. version.sh
|
||||
|
||||
# save variables for later
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > dev/build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> dev/build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> dev/build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> dev/build.env
|
||||
else
|
||||
if [[ "${SKIP_ASSETS}" != "no" ]]; then
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode-* VSCode-*
|
||||
fi
|
||||
|
||||
. build.env
|
||||
. dev/build.env
|
||||
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
@@ -102,14 +112,34 @@ if [[ "${SKIP_BUILD}" == "no" ]]; then
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
rm -rf .build out*
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
echo "Installing custom ~/.gyp/include.gypi"
|
||||
|
||||
mkdir -p ~/.gyp
|
||||
|
||||
if [[ -f "${HOME}/.gyp/include.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi ~/.gyp/include.gypi.pre-vscodium
|
||||
else
|
||||
echo "{}" > ~/.gyp/include.gypi.pre-vscodium
|
||||
fi
|
||||
|
||||
cp ./build/osx/include.gypi ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
. build.sh
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi.pre-vscodium ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]]; then
|
||||
jsonTmp=$( cat "${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
|
||||
echo "${jsonTmp}" > "${VSCODE_QUALITY}.json" && unset jsonTmp
|
||||
jsonTmp=$( cat "./upstream/${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
|
||||
echo "${jsonTmp}" > "./upstream/${VSCODE_QUALITY}.json" && unset jsonTmp
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -118,5 +148,11 @@ if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
rm -rf build/windows/msi/releasedir
|
||||
fi
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" && -f "dev/osx/codesign.env" ]]; then
|
||||
. dev/osx/macos-codesign.env
|
||||
|
||||
echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}"
|
||||
fi
|
||||
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
@@ -20,20 +20,13 @@ while getopts ":ilp" opt; do
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! exists yarn; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
fi
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then
|
||||
12
dev/cli.sh
Executable file
12
dev/cli.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
export CARGO_NET_GIT_FETCH_WITH_CLI="true"
|
||||
export VSCODE_CLI_APP_NAME="vscodium"
|
||||
export VSCODE_CLI_BINARY_NAME="codium-server-insiders"
|
||||
export VSCODE_CLI_DOWNLOAD_URL="https://github.com/VSCodium/vscodium-insiders/releases"
|
||||
export VSCODE_CLI_QUALITY="insider"
|
||||
export VSCODE_CLI_UPDATE_URL="https://raw.githubusercontent.com/VSCodium/versions/refs/heads/master"
|
||||
|
||||
cargo build --release --target aarch64-apple-darwin --bin=code
|
||||
|
||||
cp target/aarch64-apple-darwin/release/code "../../VSCode-darwin-arm64/VSCodium - Insiders.app/Contents/Resources/app/bin/codium-tunnel-insiders"
|
||||
|
||||
"../../VSCode-darwin-arm64/VSCodium - Insiders.app/Contents/Resources/app/bin/codium-insiders" serve-web
|
||||
5
dev/osx/codesign.env.template
Normal file
5
dev/osx/codesign.env.template
Normal file
@@ -0,0 +1,5 @@
|
||||
CERTIFICATE_OSX_APP_PASSWORD=
|
||||
CERTIFICATE_OSX_ID=
|
||||
CERTIFICATE_OSX_P12_DATA=
|
||||
CERTIFICATE_OSX_P12_PASSWORD=
|
||||
CERTIFICATE_OSX_TEAM_ID=
|
||||
@@ -1,29 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "$#"
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
|
||||
git reset -q --hard HEAD~
|
||||
done
|
||||
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
while [ $# -gt 1 ]; do
|
||||
echo "Parameter: $1"
|
||||
if [[ "${1}" == *patch ]]; then
|
||||
FILE="../patches/${1}"
|
||||
else
|
||||
FILE="../patches/${1}.patch"
|
||||
fi
|
||||
|
||||
git apply --reject "${FILE}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
git add .
|
||||
git commit --no-verify -q -m "VSCODIUM HELPER"
|
||||
|
||||
if [[ "${1}" == *patch ]]; then
|
||||
FILE="../patches/${1}"
|
||||
else
|
||||
FILE="../patches/${1}.patch"
|
||||
fi
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
git apply --reject "${FILE}"
|
||||
fi
|
||||
if [[ -f "${FILE}.bak" ]]; then
|
||||
mv -f $FILE{.bak,}
|
||||
fi
|
||||
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
git apply --reject "${FILE}" || true
|
||||
fi
|
||||
|
||||
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}"
|
||||
|
||||
cd ..
|
||||
git reset -q --hard HEAD~
|
||||
|
||||
echo "The patch has been generated."
|
||||
95
dev/update_patches.sh
Executable file
95
dev/update_patches.sh
Executable file
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
check_file() {
|
||||
while [ $# -gt 1 ]; do
|
||||
git apply --reject "${1}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ -f "${1}.bak" ]]; then
|
||||
mv -f $1{.bak,}
|
||||
fi
|
||||
|
||||
if [[ -f "${1}" ]]; then
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
git add .
|
||||
git commit --no-verify -q -m "VSCODIUM HELPER"
|
||||
|
||||
echo applying patch: "${1}"
|
||||
|
||||
if ! git apply --ignore-whitespace "${1}"; then
|
||||
echo failed to apply patch "${1}"
|
||||
|
||||
git apply --reject "${1}"
|
||||
|
||||
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
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for FILE in ../patches/insider/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
fi
|
||||
|
||||
for ARCH in alpine linux osx windows; do
|
||||
for FILE in "../patches/${ARCH}/"*.patch; do
|
||||
if [[ "${ARCH}" == "linux" && "${FILE}" == *"/arch-"* ]] || [[ "${ARCH}" == "linux" && "${FILE}" == *"/fix-dependencies.patch" ]] || [[ "${ARCH}" == "windows" && "${FILE}" == *"/cli"* ]]; then
|
||||
echo "skip ${FILE}"
|
||||
else
|
||||
check_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${ARCH}" == "linux" ]]; then
|
||||
check_file "../patches/optional-tree-sitter.patch" "../patches/linux/fix-dependencies.patch"
|
||||
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch"
|
||||
check_file "../patches/cli.patch" "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch" "../patches/linux/arch-4-s390x.patch"
|
||||
elif [[ "${ARCH}" == "windows" ]]; then
|
||||
check_file "../patches/cli.patch" "../patches/windows/cli.patch"
|
||||
fi
|
||||
|
||||
for TARGET in client reh; do
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
done
|
||||
done
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- order: 0 -->
|
||||
|
||||
# Accounts authentication
|
||||
|
||||
## GitHub
|
||||
|
||||
@@ -1,28 +1,45 @@
|
||||
<!-- order: 0 -->
|
||||
|
||||
# Extensions compatibility
|
||||
|
||||
## Partial Compatibility
|
||||
## Table of Contents
|
||||
|
||||
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
|
||||
> [Since May 2021](https://devblogs.microsoft.com/python/python-in-visual-studio-code-may-2021-release/), Python is using a closed source language server ([Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance))
|
||||
- [Incompatibility](#incompatibility)
|
||||
- [Replacements](#replacements)
|
||||
- [C/C++](#cc)
|
||||
- [Python](#python)
|
||||
- [Remote](#remote)
|
||||
|
||||
## Incompatibility
|
||||
## <a id="incompatibility"></a>Incompatibility
|
||||
|
||||
Most MS extensions are limited to run on only MS products by their license and by running additional checks in their proprietary code.
|
||||
|
||||
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
|
||||
- [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)
|
||||
> It's officially unsupported: https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ#vscodium-is-not-officially-supported
|
||||
|
||||
## Incompatibility due to licensing
|
||||
|
||||
The following extensions are not compatible with VSCodium due to their licensing:
|
||||
|
||||
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
|
||||
- [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
|
||||
- [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
|
||||
- [Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh)
|
||||
- [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit)
|
||||
- [Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)
|
||||
|
||||
## Replacements
|
||||
## <a id="replacements"></a>Replacements
|
||||
|
||||
The following extensions are functional replacements for incompatible extensions:
|
||||
|
||||
### <a id="cc"></a>C/C++
|
||||
|
||||
- [clangd](https://open-vsx.org/extension/llvm-vs-code-extensions/vscode-clangd) for full featured editing (including IntelliSense)
|
||||
- [Native Debug](https://open-vsx.org/extension/webfreak/debug) for Debugging with GDB + LLDB
|
||||
Note that there are many working debugging extensions and specialized ones including for microcontrollers.
|
||||
|
||||
### <a id="python"></a>Python
|
||||
|
||||
- [BasedPyright](https://open-vsx.org/extension/detachhead/basedpyright)
|
||||
|
||||
### <a id="remote"></a>Remote Development
|
||||
|
||||
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh)
|
||||
> SSH server must be configured with the setting `AllowTcpForwarding yes`.
|
||||
- [Open Remote - WSL](https://open-vsx.org/extension/jeanp413/open-remote-wsl)
|
||||
|
||||
136
docs/extensions.md
Normal file
136
docs/extensions.md
Normal file
@@ -0,0 +1,136 @@
|
||||
<!-- order: 15 -->
|
||||
|
||||
# Extensions + Marketplace
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Marketplace](#marketplace)
|
||||
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
|
||||
- [How to use a different extension gallery](#howto-switch-marketplace)
|
||||
- [How to self host your own extension gallery](#howto-selfhost-marketplace)
|
||||
- [Visual Studio Marketplace](#visual-studio-marketplace)
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Using the "VSIX Manager" Extension](#vsix-manager)
|
||||
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
|
||||
## <a id="marketplace"></a>Marketplace
|
||||
|
||||
Being a vscode based editor, VSCodium gets additional features by installing Visual Studio Code extensions.
|
||||
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use Visual Studio Code extensions in non-Microsoft products those need to be installed differently.
|
||||
|
||||
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by Visual Studio Code. Since that is a rather new project, you will likely miss some extensions you know from the Visual Studio Marketplace. You have the following options to obtain such missing extensions:
|
||||
|
||||
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the Visual Studio Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
|
||||
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
|
||||
|
||||
## <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
|
||||
|
||||
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
|
||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||
|
||||
## <a id="howto-switch-marketplace"></a>How to use a different extension gallery
|
||||
|
||||
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
|
||||
|
||||
You can either use the following environment variables:
|
||||
- `VSCODE_GALLERY_SERVICE_URL` ***(required)***
|
||||
- `VSCODE_GALLERY_ITEM_URL` ***(required)***
|
||||
- `VSCODE_GALLERY_CACHE_URL`
|
||||
- `VSCODE_GALLERY_CONTROL_URL`
|
||||
- `VSCODE_GALLERY_EXTENSION_URL_TEMPLATE` ***(required)***
|
||||
- `VSCODE_GALLERY_RESOURCE_URL_TEMPLATE`
|
||||
|
||||
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
with the content like:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"extensionsGallery": {
|
||||
"serviceUrl": "", // required
|
||||
"itemUrl": "", // required
|
||||
"cacheUrl": "",
|
||||
"controlUrl": "",
|
||||
"extensionUrlTemplate": "", // required
|
||||
"resourceUrlTemplate": "",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
|
||||
|
||||
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery.
|
||||
|
||||
There are likely other options, but the following were reported to work:
|
||||
|
||||
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
|
||||
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
|
||||
|
||||
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [Visual Studio Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the Visual Studio Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
|
||||
|
||||
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
|
||||
|
||||
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
|
||||
|
||||
## <a id="visual-studio-marketplace"></a>Visual Studio Marketplace
|
||||
|
||||
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU) which include:
|
||||
> Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.
|
||||
|
||||
So, we can't provide any help if you intend to infringe their terms of use.
|
||||
|
||||
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
|
||||
|
||||
## <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||
|
||||
## <a id="proprietary-extensions"></a>Proprietary Extensions
|
||||
|
||||
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
|
||||
|
||||
```jsonc
|
||||
"extensionAllowedProposedApi": [
|
||||
// ...
|
||||
"ms-vscode-remote.vscode-remote-extensionpack",
|
||||
"ms-vscode-remote.remote-wsl",
|
||||
// ...
|
||||
],
|
||||
```
|
||||
|
||||
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
|
||||
|
||||
## <a id="vsix-manager"></a>Using the "VSIX Manager" Extension
|
||||
|
||||
The [**VSIX Manager**](https://github.com/zokugun/vscode-vsix-manager) extension provides a powerful and user-friendly interface for managing `.vsix` files directly within VSCodium. Its author is the main maintainer of VSCodium ;)
|
||||
|
||||
It is particularly beneficial for:
|
||||
- **Support for Multiple Marketplaces**: Seamlessly install and manage extensions from several marketplaces at the same time, allowing access to a broader range of extensions.
|
||||
- **Local Files**: Manage a collection of `.vsix` files stored locally.
|
||||
- **GitHub/Forgejo Release**: Install the extension directly from its GitHub/Forgejo release pages.
|
||||
- **Fallback Options**
|
||||
|
||||
### <a id="use-cases"></a>Use Cases
|
||||
|
||||
- Developers working offline can easily manage `.vsix` files.
|
||||
- Teams can distribute specific versions of extensions across systems.
|
||||
- Enterprises with restricted environments can maintain control over installed extensions.
|
||||
- Users can connect to multiple marketplaces and access a wider range of extensions or switch seamlessly between them.
|
||||
|
||||
### <a id="marketplace-support"></a>Marketplace Support
|
||||
|
||||
The **VSIX Manager** extension supports managing extensions from several marketplaces simultaneously. This feature enables:
|
||||
- **Access to Diverse Extensions**: Install extensions from different sources like Open VSX or private repositories.
|
||||
- **Fallback Options**: Ensure extension availability even if one marketplace is temporarily inaccessible.
|
||||
- **Enterprise Flexibility**: Use private or self-hosted marketplaces alongside public ones to meet security and compliance requirements.
|
||||
- **Custom Configurations**: Prioritize specific marketplaces for particular needs while keeping access to others.
|
||||
|
||||
## [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
|
||||
50
docs/getting-started.md
Normal file
50
docs/getting-started.md
Normal file
@@ -0,0 +1,50 @@
|
||||
<!-- order: 5 -->
|
||||
|
||||
# Getting Started with VSCodium
|
||||
|
||||
This guide will help you get started with VSCodium.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Installation](#installation)
|
||||
- [First Steps](#first-steps)
|
||||
- [Basic Usage](#basic-usage)
|
||||
- [Keyboard Shortcuts](#keyboard-shortcuts)
|
||||
- [Next Steps](#next-steps)
|
||||
|
||||
## <a id="installation"></a>Installation
|
||||
|
||||
VSCodium can be installed on Windows, macOS, and Linux. Visit the [download page](https://vscodium.com/#install) for installation instructions.
|
||||
|
||||
## <a id="first-steps"></a>First Steps
|
||||
|
||||
After installing VSCodium, here are some first steps to get started:
|
||||
|
||||
1. **Open a folder**: Use File > Open Folder to open your project
|
||||
2. **Install extensions**: Click on the Extensions icon in the sidebar to browse and install extensions
|
||||
3. **Configure settings**: Use File > Preferences > Settings to customize your editor
|
||||
|
||||
## <a id="basic-usage"></a>Basic Usage
|
||||
|
||||
VSCodium works just like Visual Studio Code, with a few differences:
|
||||
|
||||
- It uses Open VSX for extensions by default instead of the Visual Studio Marketplace
|
||||
- It doesn't include Microsoft telemetry or branding
|
||||
- Some proprietary features may not be available
|
||||
|
||||
## <a id="keyboard-shortcuts"></a>Keyboard Shortcuts
|
||||
|
||||
Here are some essential keyboard shortcuts to get you started:
|
||||
|
||||
- `Ctrl+P` (Windows/Linux) or `Cmd+P` (macOS): Quick Open, Go to File
|
||||
- `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (macOS): Show Command Palette
|
||||
- `Ctrl+,` (Windows/Linux) or `Cmd+,` (macOS): User Settings
|
||||
- `Ctrl+K Ctrl+S` (Windows/Linux) or `Cmd+K Cmd+S` (macOS): Keyboard Shortcuts
|
||||
|
||||
## <a id="next-steps"></a>Next Steps
|
||||
|
||||
Once you're comfortable with the basics, you might want to:
|
||||
|
||||
- Explore the [documentation](https://github.com/VSCodium/vscodium/blob/master/docs/index.md) for more details
|
||||
- Join the [community](https://github.com/VSCodium/vscodium/discussions) to ask questions and share tips
|
||||
- Contribute to the [project](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md) if you're interested
|
||||
@@ -1,3 +1,5 @@
|
||||
<!-- order: 35 -->
|
||||
|
||||
# How to build VSCodium
|
||||
|
||||
## Table of Contents
|
||||
@@ -6,10 +8,8 @@
|
||||
- [Linux](#dependencies-linux)
|
||||
- [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 for Development](#build-dev)
|
||||
- [Build for CI/Downstream](#build-ci)
|
||||
- [Build Snap](#build-snap)
|
||||
- [Patch Update Process](#patch-update-process)
|
||||
- [Semi-Automated](#patch-update-process-semiauto)
|
||||
@@ -17,11 +17,11 @@
|
||||
|
||||
## <a id="dependencies"></a>Dependencies
|
||||
|
||||
- node 18.15
|
||||
- yarn
|
||||
- node 20.18
|
||||
- jq
|
||||
- git
|
||||
- python3 3.11
|
||||
- rustup
|
||||
|
||||
### <a id="dependencies-linux"></a>Linux
|
||||
|
||||
@@ -52,23 +52,23 @@ see [the common dependencies](#dependencies)
|
||||
- [WiX Toolset](http://wixtoolset.org/releases/)
|
||||
- 'Tools for Native Modules' from the official Node.js installer
|
||||
|
||||
## <a id="build-scripts"></a>Build Scripts
|
||||
## <a id="build-dev"></a>Build for Development
|
||||
|
||||
A build helper script can be found at `build/build.sh`.
|
||||
A build helper script can be found at `dev/build.sh`.
|
||||
|
||||
- Linux: `./build/build.sh`
|
||||
- MacOS: `./build/build.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./build/build.sh`
|
||||
- Linux: `./dev/build.sh`
|
||||
- MacOS: `./dev/build.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\dev\build.ps1` or `"C:\Program Files\Git\bin\bash.exe" ./dev/build.sh`
|
||||
|
||||
### Insider
|
||||
|
||||
The `insider` version can be built with `./build/build.sh -i` on the `insider` branch.
|
||||
The `insider` version can be built with `./dev/build.sh -i` on the `insider` branch.
|
||||
|
||||
You can try the latest version with the command `./build/build.sh -il` but the patches might not be up to date.
|
||||
You can try the latest version with the command `./dev/build.sh -il` but the patches might not be up to date.
|
||||
|
||||
### Flags
|
||||
|
||||
The script `build/build.sh` provides several flags:
|
||||
The script `dev/build.sh` provides several flags:
|
||||
|
||||
- `-i`: build the Insiders version
|
||||
- `-l`: build with latest version of Visual Studio Code
|
||||
@@ -76,48 +76,30 @@ 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
|
||||
## <a id="build-ci"></a>Build for CI/Downstream
|
||||
|
||||
To build for Linux, you can alternatively build VSCodium in docker
|
||||
Here is the base script to build VSCodium:
|
||||
|
||||
### <a id="build-docker-x64"></a>X64
|
||||
```bash
|
||||
# Export necessary environment variables
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_BUILD_REH="no"
|
||||
export CI_BUILD="no"
|
||||
export OS_NAME="linux"
|
||||
export VSCODE_ARCH="${vscode_arch}"
|
||||
export VSCODE_QUALITY="stable"
|
||||
export RELEASE_VERSION="${version}"
|
||||
|
||||
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
|
||||
. get_repo.sh
|
||||
. build.sh
|
||||
```
|
||||
|
||||
When inside the container, you can use the following commands to build:
|
||||
```
|
||||
cd /root/vscodium
|
||||
To go further, you should look at how we build it:
|
||||
- Linux: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-linux.yml
|
||||
- macOS: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-macos.yml
|
||||
- Windows: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-windows.yml
|
||||
|
||||
./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
|
||||
```
|
||||
The `./dev/build.sh` script is for development purpose and must be avoided for a packaging purpose.
|
||||
|
||||
## <a id="build-snap"></a>Build Snap
|
||||
|
||||
@@ -139,24 +121,23 @@ review-tools.snap-review --allow-classic codium*.snap
|
||||
|
||||
## <a id="patch-update-process-semiauto"></a>Semi-Automated
|
||||
|
||||
- run `./build/build_<os>.sh`, if a patch is failing then,
|
||||
- run `./build/update_patches.sh`
|
||||
- run `./dev/build.sh`, if a patch is failing then,
|
||||
- run `./dev/update_patches.sh`
|
||||
- when the script pauses at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
|
||||
- fix all the `*.rej` files
|
||||
- run `yarn watch`
|
||||
- run `npm run watch`
|
||||
- run `./script/code.sh` until everything is ok
|
||||
- press any key to continue the script `update_patches.sh`
|
||||
|
||||
## <a id="patch-update-process-manual"></a>Manual
|
||||
|
||||
- run `./build/build_<os>.sh`, if a patch is failing then,
|
||||
- open `vscode` directory in **VSCodium**
|
||||
- revert all changes
|
||||
- run `git apply --reject ../patches/<name>.patch`
|
||||
- run `./dev/build.sh`, if a patch is failing then,
|
||||
- run `./dev/patch.sh <name>.patch` where `<name>.patch` is the failed patch
|
||||
- open `vscode` directory in a new **VSCodium**'s window
|
||||
- fix all the `*.rej` files
|
||||
- run `yarn watch`
|
||||
- run `npm run watch`
|
||||
- run `./script/code.sh` until everything is ok
|
||||
- run `git diff > ../patches/<name>.patch`
|
||||
- go back to the command line running `./dev/patch.sh`, press `enter` to validate the changes and it will update the patch
|
||||
|
||||
### <a id="icons"></a>icons/build_icons.sh
|
||||
|
||||
|
||||
259
docs/index.md
259
docs/index.md
@@ -1,224 +1,43 @@
|
||||
# More Info
|
||||
# Documentation
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Getting all the Telemetry Out](#disable-telemetry)
|
||||
- [Replacements to Microsoft Online Services](#replacement-online-services)
|
||||
- [Extensions + Marketplace](#extensions-marketplace)
|
||||
- [How to use the OpenVSX Marketplace](#howto-openvsx-marketplace)
|
||||
- [How to use the VS Code Marketplace](#howto-vscode-marketplace)
|
||||
- [How to self host your own VS Code Marketplace](#howto-selfhost-marketplace)
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||
- [Sign in with GitHub](#signin-github)
|
||||
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
|
||||
- [How do I run VSCodium in portable mode?](#portable)
|
||||
- [How do I fix the default file manager?](#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](#terminal-support)
|
||||
- [From Linux .tar.gz](#from-linux-targz)
|
||||
- [Getting Started with VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md)
|
||||
- [Installation](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#installation)
|
||||
- [First Steps](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#first-steps)
|
||||
- [Basic Usage](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#basic-usage)
|
||||
- [Keyboard Shortcuts](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#keyboard-shortcuts)
|
||||
- [Next Steps](https://github.com/VSCodium/vscodium/blob/master/docs/getting-started.md#next-steps)
|
||||
- [Getting all the Telemetry Out](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md)
|
||||
- [Telemetry in VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#telemetry)
|
||||
- [Replacements to Microsoft Online Services](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#replacements)
|
||||
- [Checking for Telemetry](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#checking)
|
||||
- [Additional Privacy Settings](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#additional-settings)
|
||||
- [VSCodium Announcements](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#announcements)
|
||||
- [Malicious & Deprecated Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/telemetry.md#malicious-extensions)
|
||||
- [Extensions and Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md)
|
||||
- [Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#marketplace)
|
||||
- [How to use the OpenVSX Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-openvsx-marketplace)
|
||||
- [How to use a different extension gallery](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-switch-marketplace)
|
||||
- [How to self host your own extension gallery](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#howto-selfhost-marketplace)
|
||||
- [Visual Studio Marketplace](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#visual-studio-marketplace)
|
||||
- [Proprietary Debugging Tools](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#proprietary-extensions)
|
||||
- [Using the "VSIX Manager" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/extensions.md#vsix-manager)
|
||||
- [Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)
|
||||
- [Migration](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md)
|
||||
- [Manual Migration from Visual Studio Code to VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#manual-migration)
|
||||
- [Semi-Automatic Migration with "Sync Settings" Extension](https://github.com/VSCodium/vscodium/blob/master/docs/migration.md#semi-automatic-migration)
|
||||
- [Usage](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md)
|
||||
- [Sign in with GitHub](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#signin-github)
|
||||
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
|
||||
- [How do I run VSCodium in portable mode?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#portable)
|
||||
- [How do I fix the default file manager?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](https://github.com/VSCodium/vscodium/blob/master/docs/usage.md#terminal-support)
|
||||
- [Troubleshooting](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md)
|
||||
- [Contributing](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
|
||||
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
|
||||
|
||||
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
|
||||
|
||||
Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
|
||||
|
||||
We do however set the default `telemetry.enableCrashReporter` and `telemetry.enableTelemetry` values to false. You can see those by viewing your VSCodium settings.json and searching for `telemetry`.
|
||||
|
||||
The instructions [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting) and [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-crash-reporting) help with explaining and toggling telemetry.
|
||||
|
||||
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
|
||||
|
||||
- Extensions auto check for updates and auto install updates
|
||||
- Searches within the app are sent to an online service for "natural language processing"
|
||||
- Updates to the app are fetched in the background
|
||||
|
||||
These can all be disabled.
|
||||
|
||||
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
||||
|
||||
### <a id="replacement-online-services"></a>Replacements to Microsoft Online Services
|
||||
|
||||
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L36) in `product.json` to that of VSCodium's own small [update server](https://github.com/VSCodium/update-api), so enabling that setting won't actually result in any calls to Microsoft servers.
|
||||
|
||||
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L42) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft, either.
|
||||
|
||||
## <a id="extensions-marketplace"></a>Extensions + Marketplace
|
||||
|
||||
Being a vscode based editor, VSCodium gets additional features by installing VS Code extensions.
|
||||
Unfortunately, as Microsoft [prohibits usages of the Microsoft marketplace by any other products](https://github.com/microsoft/vscode/issues/31168) or redistribution of `.vsix` files from it, in order to use VS Code extensions in non-Microsoft products those need to be installed differently.
|
||||
|
||||
By default, the `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
|
||||
|
||||
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
|
||||
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix), for example from the release page in their source repository.
|
||||
|
||||
### <a id="howto-openvsx-marketplace"></a>How to use the Open VSX Registry
|
||||
|
||||
As noted above, the [Open VSX Registry](https://open-vsx.org/) is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
|
||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||
|
||||
### <a id="howto-switch-marketplace"></a>How to use a different extension gallery
|
||||
|
||||
You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.
|
||||
These examples use the URLs for Microsoft's VS Code Marketplace, see [below](#howto-vscode-marketplace) for more information on that.
|
||||
|
||||
With the following environment variables:
|
||||
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
|
||||
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
|
||||
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
|
||||
- `VSCODE_GALLERY_CONTROL_URL=''`
|
||||
|
||||
Or by creating a custom `product.json` at the following location (replace `VSCodium` by `VSCodium - Insiders` if you use that):
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
with the content:
|
||||
|
||||
- Note: set `cacheUrl` to empty string for every other extension gallery
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"extensionsGallery": {
|
||||
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
|
||||
"itemUrl": "https://marketplace.visualstudio.com/items",
|
||||
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
|
||||
"controlUrl": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### <a id="howto-selfhost-marketplace"></a>How to self-host your own extension gallery
|
||||
|
||||
Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery. In all of these cases, you'd enter its endpoint URLs as noted above, replacing `marketplace.visualstudio.com` with `your-self-hosted-marketplace-address.example.com` (or IP address), setting `cacheUrl` / `VSCODE_GALLERY_CACHE_URL` to an empty string.
|
||||
|
||||
There are likely other options, but the following were reported to work:
|
||||
|
||||
* [Open VSX](https://github.com/eclipse/openvsx) eclipse open-source project
|
||||
While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.
|
||||
|
||||
> Open VSX is a [vendor-neutral](https://projects.eclipse.org/projects/ecd.openvsx) open-source alternative to the [Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). It provides a server application that manages [VS Code extensions](https://code.visualstudio.com/api) in a database, a web application similar to the VS Code Marketplace, and a command-line tool for publishing extensions similar to [vsce](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#vsce).
|
||||
|
||||
* [code-marketplace](https://coder.com/blog/running-a-private-vs-code-extension-marketplace) open-source project
|
||||
|
||||
> `code-marketplace` is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.
|
||||
|
||||
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
|
||||
|
||||
As with any online service, ensure you've understood [its terms of use](https://aka.ms/vsmarketplace-ToU).
|
||||
Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.
|
||||
|
||||
The endpoint URLs are given in the [example above](#howto-switch-marketplace).
|
||||
|
||||
|
||||
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||
|
||||
### <a id="proprietary-extensions"></a>Proprietary Extensions
|
||||
|
||||
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
|
||||
|
||||
```jsonc
|
||||
"extensionAllowedProposedApi": [
|
||||
// ...
|
||||
"ms-vscode-remote.vscode-remote-extensionpack",
|
||||
"ms-vscode-remote.remote-wsl",
|
||||
// ...
|
||||
],
|
||||
```
|
||||
|
||||
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
|
||||
|
||||
## <a id="migrating"></a>Migrating from Visual Studio Code to VSCodium
|
||||
|
||||
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can reinstall your extensions from the Marketplace in VSCodium, or copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
|
||||
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
|
||||
|
||||
- __Windows__: `%APPDATA%\Code\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/Code/User`
|
||||
- __Linux__: `$HOME/.config/Code/User`
|
||||
|
||||
You can copy these files to the VSCodium user settings folder:
|
||||
|
||||
- __Windows__: `%APPDATA%\VSCodium\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
|
||||
- __Linux__: `$HOME/.config/VSCodium/User`
|
||||
|
||||
To copy your settings manually:
|
||||
|
||||
- In Visual Studio Code, go to Settings (Command+, if on a Mac)
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <a id="signin-github"></a>Sign in with GitHub
|
||||
|
||||
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
|
||||
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
|
||||
Select the scopes dependending on the extension which needs access to GitHub. (GitLens requires the `repo` scope.)
|
||||
|
||||
### Linux
|
||||
|
||||
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
|
||||
- **Windows** / **Linux** : the instructions can be followed as written.
|
||||
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
|
||||
|
||||
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
|
||||
|
||||
In some cases, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
|
||||
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
|
||||
|
||||
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
|
||||
```
|
||||
[Default Applications]
|
||||
inode/directory=org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
You can find your regular file manager with the command:
|
||||
```
|
||||
> grep directory /usr/share/applications/mimeinfo.cache
|
||||
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
|
||||
|
||||
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
|
||||
|
||||
```bash
|
||||
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
For macOS and Windows:
|
||||
- Go to the command palette (View | Command Palette...)
|
||||
- Choose `Shell command: Install 'codium' command in PATH`.
|
||||
|
||||

|
||||
|
||||
This allows you to open files or directories in VSCodium directly from your terminal:
|
||||
|
||||
```bash
|
||||
~/in-my-project $ codium . # open this directory
|
||||
~/in-my-project $ codium file.txt # open this file
|
||||
```
|
||||
|
||||
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
|
||||
|
||||
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
|
||||
|
||||
### <a id="from-linux-targz"></a>From Linux .tar.gz
|
||||
|
||||
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.
|
||||
- [Linux](https://github.com/VSCodium/vscodium/blob/master/docs/troubleshooting.md#linux)
|
||||
- [Other Resources](https://github.com/VSCodium/vscodium/blob/master/docs/others.md)
|
||||
- [What are reh and reh-web archives?](https://github.com/VSCodium/vscodium/blob/master/docs/others.md#reh)
|
||||
- [Contributing Guidelines](https://github.com/VSCodium/vscodium/blob/master/CONTRIBUTING.md)
|
||||
- [Building VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/howto-build.md)
|
||||
|
||||
54
docs/migration.md
Normal file
54
docs/migration.md
Normal file
@@ -0,0 +1,54 @@
|
||||
<!-- order: 20 -->
|
||||
|
||||
# Migration
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Manual Migration from Visual Studio Code to VSCodium](#manual-migration)
|
||||
- [Semi-Automatic Migration with "Sync Settings" Extension](#semi-automatic-migration)
|
||||
|
||||
## <a id="manual-migration"></a>Manual Migration from Visual Studio Code to VSCodium
|
||||
|
||||
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
|
||||
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
|
||||
|
||||
- __Windows__: `%APPDATA%\Code\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/Code/User`
|
||||
- __Linux__: `$HOME/.config/Code/User`
|
||||
|
||||
You can copy these files to the VSCodium user settings folder:
|
||||
|
||||
- __Windows__: `%APPDATA%\VSCodium\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
|
||||
- __Linux__: `$HOME/.config/VSCodium/User`
|
||||
|
||||
To copy your settings manually:
|
||||
|
||||
- In Visual Studio Code, go to Settings (`Meta+,`)
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <a id="semi-automatic-migration"></a>Semi-Automatic Migration with "Sync Settings" Extension
|
||||
|
||||
The [**Sync Settings**](https://github.com/zokugun/vscode-sync-settings) extension can simplify the migration process by enabling synchronization of settings, keybindings, extensions, and more between Visual Studio Code and VSCodium. Its author is the main maintainer of VSCodium ;)
|
||||
|
||||
The extension is available in the Visual Studio Marketplace, OpenVSX or directly in its GitHub repository.
|
||||
|
||||
### Steps:
|
||||
|
||||
1. Install the **Sync Settings** extension in both Visual Studio Code and VSCodium.
|
||||
2. Configure the extension on both Visual Studio Code and VSCodium:
|
||||
- Open Command Palette (`Meta+Shift+P`).
|
||||
- Search for `Sync Settings: Open the repository settings` and execute the command.
|
||||
- Configure the repository
|
||||
3. Export your current settings from Visual Studio Code:
|
||||
- Open Command Palette (`Meta+Shift+P`).
|
||||
- Search for `Sync Settings: Upload (user -> repository)` and execute the command.
|
||||
4. Import the settings into VSCodium:
|
||||
- I recommend the setting `"syncSettings.openOutputOnActivity": true,`.
|
||||
- Open Command Palette (`Meta+Shift+P`).
|
||||
- Search for `Sync Settings: Download (repository -> user)` and execute the command.
|
||||
- Wait for all the extensions to be downloaded and installed (follow logs in the `Output` panel) before restarting VSCodium.
|
||||
|
||||
This method ensures that all supported configurations are seamlessly transferred.
|
||||
12
docs/others.md
Normal file
12
docs/others.md
Normal file
@@ -0,0 +1,12 @@
|
||||
<!-- order: 30 -->
|
||||
|
||||
# Other Resources
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [What are reh and reh-web archives?](#reh)
|
||||
|
||||
## <a id="reh"></a>What are reh and reh-web archives?
|
||||
|
||||
- Remote Host (`reh`) is the server component for remote ssh/wsl which runs it on a "remote" computer and makes that remote computer accessible via VSCodium.
|
||||
- Web Host (`reh-web`) is the server component of the command `codium serve-web` which runs it locally and makes VSCodium accessible via a browser.
|
||||
81
docs/telemetry.md
Normal file
81
docs/telemetry.md
Normal file
@@ -0,0 +1,81 @@
|
||||
<!-- order: 10 -->
|
||||
|
||||
# Getting all telemetry out
|
||||
|
||||
This page explains how VSCodium handles telemetry and how it enhances your privacy.
|
||||
|
||||
## Table of contents
|
||||
|
||||
- [Telemetry in VSCodium](#telemetry)
|
||||
- [Replacements to Microsoft Online Services](#replacements)
|
||||
- [Checking for telemetry](#checking)
|
||||
- [VSCodium announcements](#announcements)
|
||||
- [Malicious & deprecated extensions](#malicious-extensions)
|
||||
|
||||
## <a id="telemetry"></a>Telemetry in VSCodium
|
||||
|
||||
Even though we do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry, Microsoft still can track usage by default depending on your settings.
|
||||
|
||||
We disable all the following telemetry-related settings by default to enhance your privacy:
|
||||
```
|
||||
telemetry.telemetryLevel
|
||||
telemetry.enableCrashReporter
|
||||
telemetry.enableTelemetry
|
||||
telemetry.editStats.enabled
|
||||
workbench.enableExperiments
|
||||
workbench.settings.enableNaturalLanguageSearch
|
||||
workbench.commandPalette.experimental.enableNaturalLanguageSearch
|
||||
```
|
||||
It is also recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). You can use the search filter `@tag:usesOnlineServices` to show such settings and review what to change.
|
||||
|
||||
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__
|
||||
For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft. Be sure to check each extension's settings page to disable their telemetry if applicable.
|
||||
|
||||
### Update services
|
||||
By default, the app periodically fetches connections to check for the latest version available to download and install.
|
||||
Extensions are also checked for updates automatically from time to time.
|
||||
|
||||
If you want to prevent such behaviors, modify the following preferences:
|
||||
|
||||
For the app itself:
|
||||
- `update.mode` -> `manual` (or `none`)
|
||||
- `update.enableWindowsBackgroundUpdates` -> `false` (only applicable for Microsoft Windows)
|
||||
|
||||
For extensions:
|
||||
- `extensions.autoUpdate` -> `false`
|
||||
- `extensions.autoCheckUpdates` -> `false`
|
||||
|
||||
*Note: on Linux, the app update service is disabled completely at build-time even if the `update.mode` preference is configured. This is because users will more likely use their package managers to update the app rather than updating via the app itself.*
|
||||
|
||||
### Feedback telemetry
|
||||
By default, we keep the preference `telemetry.feedback.enabled` enabled. It's used to allow the button `Report Issue...` to be used on the app depending on the context. It does not send any data by having it enabled (other options already cover it). If you want, you can disable this behavior by toggling the preference value.
|
||||
|
||||
## <a id="replacements"></a>Replacements to Microsoft Online Services
|
||||
|
||||
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L132-L133) in `product.json` directly to the GitHub page, so enabling that setting won't actually result in any calls to the Microsoft online service.
|
||||
|
||||
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/8cc366bb76d6c0ddb64374f9530b42094646a660/prepare_vscode.sh#L119) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft either.
|
||||
|
||||
## <a id="checking"></a>Checking for telemetry
|
||||
|
||||
If you want to verify that no telemetry is being sent, you can use network monitoring tools like:
|
||||
|
||||
- Wireshark
|
||||
- Little Snitch (macOS)
|
||||
- GlassWire (Windows)
|
||||
|
||||
Look for connections to Microsoft domains and telemetry endpoints.
|
||||
|
||||
## <a id="announcements"></a>VSCodium anouncements
|
||||
|
||||
The welcome page in VSCodium displays announcements that are fetched via the internet from the project's GitHub repository.
|
||||
|
||||
If you prefer to disable this feature, you can disable the preference `workbench.welcomePage.extraAnnouncements`.
|
||||
|
||||
## <a id="malicious-extensions"></a>Malicious & deprecated extensions
|
||||
|
||||
The definitions for malicious and deprecated extensions are dynamically loaded from the following URL:
|
||||
https://raw.githubusercontent.com/EclipseFdn/publish-extensions/refs/heads/master/extension-control/extensions.json
|
||||
|
||||
If you prefer to avoid any external connections, you can disable the preference `extensions.excludeUnsafes`.
|
||||
However, this is not recommended as it may reduce the safety of your environment.
|
||||
@@ -1,19 +1,19 @@
|
||||
<!-- order: 25 -->
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Linux](#linux)
|
||||
- [Fonts showing up as rectangles](#linux-fonts-rectangle)
|
||||
- [Text and/or the entire interface not appearing](#linux-rendering-glitches)
|
||||
- [Global menu workaround for KDE](#linux-kde-global-menu)
|
||||
- [Flatpak most common issues](#linux-flatpak-most-common-issues)
|
||||
- [macOS](#macos)
|
||||
- [App can't be opened because Apple cannot check it for malicious software](#macos-unidentified-developer)
|
||||
- ["VSCodium.app" is damaged and can’t be opened. You should move it to the Bin](#macos-quarantine)
|
||||
|
||||
- [Remote SSH doesn't work](#linux-remote-ssh)
|
||||
|
||||
## <a id="linux"></a>Linux
|
||||
|
||||
#### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
|
||||
### <a id="linux-fonts-rectangle"></a>*Fonts showing up as rectangles*
|
||||
|
||||
The following command should help:
|
||||
|
||||
@@ -23,7 +23,15 @@ rm -rf ~/snap/codium/common/.cache
|
||||
fc-cache -r
|
||||
```
|
||||
|
||||
#### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
|
||||
### <a id="linux-rendering-glitches"></a>*Text and/or the entire interface not appearing*
|
||||
|
||||
You have likely encountered [a bug in Chromium and Electron](microsoft/vscode#190437) when compiling Mesa shaders, which has affected all Visual Studio Code and VSCodium versions for Linux distributions since 1.82. The current workaround (see microsoft/vscode#190437) is to delete the GPU cache as follows:
|
||||
|
||||
```bash
|
||||
rm -rf ~/.config/VSCodium/GPUCache
|
||||
```
|
||||
|
||||
### <a id="linux-kde-global-menu"></a>*Global menu workaround for KDE*
|
||||
|
||||
Install these packages on Fedora:
|
||||
|
||||
@@ -35,7 +43,7 @@ On Ubuntu this package is called `libdbusmenu-glib4`.
|
||||
|
||||
Credits: [Gerson](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/issues/91)
|
||||
|
||||
#### <a id="linux-flatpak-most-common-issues"></a>*Flatpak most common issues*
|
||||
### <a id="linux-flatpak-most-common-issues"></a>*Flatpak most common issues*
|
||||
|
||||
- blurry screen with HiDPI on wayland run:
|
||||
```bash
|
||||
@@ -55,18 +63,10 @@ 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="macos"></a>macOS
|
||||
### <a id="linux-remote-ssh"></a>*Remote SSH doesn't work*
|
||||
|
||||
Since the App is signed with a self-signed certificate, on the first launch, you might see the following messages:
|
||||
Use the VSCodium's compatible extension [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh).
|
||||
|
||||
#### <a id="macos-unidentified-developer"></a>*App can't be opened because Apple cannot check it for malicious software*
|
||||
On the server, in the `sshd` config, `AllowTcpForwarding` need to be set to `yes`.
|
||||
|
||||
You can right-click the App and choose `Open`.
|
||||
|
||||
#### <a id="macos-quarantine"></a>*"VSCodium.app" is damaged and can’t be opened. You should move it to the Bin.*
|
||||
|
||||
The following command will remove the quarantine attribute.
|
||||
|
||||
```
|
||||
xattr -r -d com.apple.quarantine /Applications/VSCodium.app
|
||||
```
|
||||
It might requires additional dependencies due to the OS/distro (alpine).
|
||||
|
||||
76
docs/usage.md
Normal file
76
docs/usage.md
Normal file
@@ -0,0 +1,76 @@
|
||||
<!-- order: 25 -->
|
||||
|
||||
# Usage
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Sign in with GitHub](#signin-github)
|
||||
- [Accounts authentication](https://github.com/VSCodium/vscodium/blob/master/docs/accounts-authentication.md)
|
||||
- [How do I run VSCodium in portable mode?](#portable)
|
||||
- [How do I fix the default file manager?](#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](#terminal-support)
|
||||
- [From Linux .tar.gz](#from-linux-targz)
|
||||
|
||||
## <a id="signin-github"></a>Sign in with GitHub
|
||||
|
||||
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
|
||||
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
|
||||
Select the scopes dependending on the extension which needs access to GitHub. (GitLens requires the `repo` scope.)
|
||||
|
||||
### Linux
|
||||
|
||||
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
|
||||
- **Windows** / **Linux** : the instructions can be followed as written.
|
||||
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
|
||||
|
||||
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
|
||||
|
||||
In some cases, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
|
||||
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
|
||||
|
||||
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
|
||||
```
|
||||
[Default Applications]
|
||||
inode/directory=org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
You can find your regular file manager with the command:
|
||||
```
|
||||
> grep directory /usr/share/applications/mimeinfo.cache
|
||||
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
|
||||
|
||||
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
|
||||
|
||||
```bash
|
||||
$ defaults write com.vscodium ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
For macOS and Windows:
|
||||
- Go to the command palette (View | Command Palette...)
|
||||
- Choose `Shell command: Install 'codium' command in PATH`.
|
||||
|
||||

|
||||
|
||||
This allows you to open files or directories in VSCodium directly from your terminal:
|
||||
|
||||
```bash
|
||||
~/in-my-project $ codium . # open this directory
|
||||
~/in-my-project $ codium file.txt # open this file
|
||||
```
|
||||
|
||||
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
|
||||
|
||||
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
|
||||
|
||||
### <a id="from-linux-targz"></a>From Linux .tar.gz
|
||||
|
||||
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.
|
||||
19
get_pr.sh
Executable file
19
get_pr.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# git workaround
|
||||
if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
git config --global --add safe.directory "/__w/$( echo "${GITHUB_REPOSITORY}" | awk '{print tolower($0)}' )"
|
||||
fi
|
||||
|
||||
if [[ -n "${PULL_REQUEST_ID}" ]]; then
|
||||
BRANCH_NAME=$( git rev-parse --abbrev-ref HEAD )
|
||||
|
||||
git config --global user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
|
||||
git config --global user.name "${GITHUB_USERNAME} CI"
|
||||
git fetch --unshallow
|
||||
git fetch origin "pull/${PULL_REQUEST_ID}/head"
|
||||
git checkout FETCH_HEAD
|
||||
git merge --no-edit "origin/${BRANCH_NAME}"
|
||||
fi
|
||||
33
get_repo.sh
33
get_repo.sh
@@ -8,25 +8,14 @@ if [[ "${CI_BUILD}" != "no" ]]; then
|
||||
git config --global --add safe.directory "/__w/$( echo "${GITHUB_REPOSITORY}" | awk '{print tolower($0)}' )"
|
||||
fi
|
||||
|
||||
if [[ -n "${PULL_REQUEST_ID}" ]]; then
|
||||
BRANCH_NAME=$( git rev-parse --abbrev-ref HEAD )
|
||||
|
||||
git config --global user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com"
|
||||
git config --global user.name "${GITHUB_USERNAME} CI"
|
||||
git fetch --unshallow
|
||||
git fetch origin "pull/${PULL_REQUEST_ID}/head"
|
||||
git checkout FETCH_HEAD
|
||||
git merge --no-edit "origin/${BRANCH_NAME}"
|
||||
fi
|
||||
|
||||
if [[ -z "${RELEASE_VERSION}" ]]; then
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "${VSCODE_QUALITY}.json" ]]; then
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]] || [[ ! -f "./upstream/${VSCODE_QUALITY}.json" ]]; then
|
||||
echo "Retrieve lastest version"
|
||||
UPDATE_INFO=$( curl --silent --fail "https://update.code.visualstudio.com/api/update/darwin/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" )
|
||||
else
|
||||
echo "Get version from ${VSCODE_QUALITY}.json"
|
||||
MS_COMMIT=$( jq -r '.commit' "${VSCODE_QUALITY}.json" )
|
||||
MS_TAG=$( jq -r '.tag' "${VSCODE_QUALITY}.json" )
|
||||
MS_COMMIT=$( jq -r '.commit' "./upstream/${VSCODE_QUALITY}.json" )
|
||||
MS_TAG=$( jq -r '.tag' "./upstream/${VSCODE_QUALITY}.json" )
|
||||
fi
|
||||
|
||||
if [[ -z "${MS_COMMIT}" ]]; then
|
||||
@@ -38,16 +27,16 @@ if [[ -z "${RELEASE_VERSION}" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
date=$( date +%Y%j )
|
||||
TIME_PATCH=$( printf "%04d" $(($(date +%-j) * 24 + $(date +%-H))) )
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
RELEASE_VERSION="${MS_TAG}.${date: -5}-insider"
|
||||
RELEASE_VERSION="${MS_TAG}${TIME_PATCH}-insider"
|
||||
else
|
||||
RELEASE_VERSION="${MS_TAG}.${date: -5}"
|
||||
RELEASE_VERSION="${MS_TAG}${TIME_PATCH}"
|
||||
fi
|
||||
else
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+-insider$ ]];
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5])[0-9]+-insider$ ]];
|
||||
then
|
||||
MS_TAG="${BASH_REMATCH[1]}"
|
||||
else
|
||||
@@ -55,7 +44,7 @@ else
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+$ ]];
|
||||
if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-5])[0-9]+$ ]];
|
||||
then
|
||||
MS_TAG="${BASH_REMATCH[1]}"
|
||||
else
|
||||
@@ -64,8 +53,8 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${MS_TAG}" == "$( jq -r '.tag' "${VSCODE_QUALITY}".json )" ]]; then
|
||||
MS_COMMIT=$( jq -r '.commit' "${VSCODE_QUALITY}".json )
|
||||
if [[ "${MS_TAG}" == "$( jq -r '.tag' "./upstream/${VSCODE_QUALITY}.json" )" ]]; then
|
||||
MS_COMMIT=$( jq -r '.commit' "./upstream/${VSCODE_QUALITY}.json" )
|
||||
else
|
||||
echo "Error: No MS_COMMIT for ${RELEASE_VERSION}"
|
||||
exit 1
|
||||
@@ -91,7 +80,7 @@ elif [[ -z "${MS_COMMIT}" ]]; then
|
||||
if [[ -z "${REFERENCE}" ]]; then
|
||||
echo "Error: The following tag can't be found: ${MS_TAG}"
|
||||
exit 1
|
||||
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
||||
elif [[ "${REFERENCE}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-5])$ ]]; then
|
||||
MS_COMMIT="${BASH_REMATCH[1]}"
|
||||
MS_TAG="${BASH_REMATCH[2]}"
|
||||
else
|
||||
|
||||
@@ -6,20 +6,22 @@ set -e
|
||||
# DEBUG
|
||||
# set -o xtrace
|
||||
|
||||
QUALITY="stable"
|
||||
COLOR="blue1"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export QUALITY="insider"
|
||||
export COLOR="orange1"
|
||||
QUALITY="insider"
|
||||
[[ -z "${COLOR}" ]] && COLOR="orange1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
[[ -z "${COLOR}" ]] && COLOR="blue1"
|
||||
[[ -z "${QUALITY}" ]] && QUALITY="stable"
|
||||
[[ -z "${SRC_PREFIX}" ]] && SRC_PREFIX=""
|
||||
[[ -z "${VSCODE_PREFIX}" ]] && VSCODE_PREFIX=""
|
||||
|
||||
check_programs() { # {{{
|
||||
for arg in "$@"; do
|
||||
if ! command -v "${arg}" &> /dev/null; then
|
||||
@@ -31,27 +33,47 @@ check_programs() { # {{{
|
||||
|
||||
check_programs "icns2png" "composite" "convert" "png2icns" "icotool" "rsvg-convert" "sed"
|
||||
|
||||
. ./utils.sh
|
||||
. "./${VSCODE_PREFIX}utils.sh"
|
||||
|
||||
SRC_PREFIX=""
|
||||
VSCODE_PREFIX=""
|
||||
if ! declare -F load_linux_png &>/dev/null; then
|
||||
load_linux_png() {
|
||||
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "$1"
|
||||
}
|
||||
fi
|
||||
|
||||
if ! declare -F load_windows_ico &>/dev/null; then
|
||||
load_windows_ico() {
|
||||
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "$1"
|
||||
}
|
||||
fi
|
||||
|
||||
build_darwin_main() { # {{{
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" ]]; then
|
||||
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite "code_logo.png" -gravity center "icons/template_macos.png" "code_1024.png"
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/darwin"
|
||||
|
||||
if [[ "$1" == "no-template" ]]; then
|
||||
rsvg-convert -w 1024 -h 1024 "icons/${QUALITY}/codium_cnl.svg" -o "code_1024.png"
|
||||
else
|
||||
rsvg-convert -w 655 -h 655 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
composite "code_logo.png" -gravity center "${VSCODE_PREFIX}icons/template_macos.png" "code_1024.png"
|
||||
fi
|
||||
|
||||
convert "code_1024.png" -resize 512x512 code_512.png
|
||||
convert "code_1024.png" -resize 256x256 code_256.png
|
||||
convert "code_1024.png" -resize 128x128 code_128.png
|
||||
|
||||
png2icns "${SRC_PREFIX}src/${QUALITY}/resources/darwin/code.icns" code_512.png code_256.png code_128.png
|
||||
|
||||
rm code_1024.png code_512.png code_256.png code_128.png code_logo.png
|
||||
rm -f code_1024.png code_512.png code_256.png code_128.png code_logo.png
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_darwin_types() { # {{{
|
||||
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
|
||||
if [[ "$1" == "no-border" ]]; then
|
||||
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
else
|
||||
rsvg-convert -w 128 -h 128 "icons/${QUALITY}/codium_cnl_w80_b8.svg" -o "code_logo.png"
|
||||
fi
|
||||
|
||||
for file in "${VSCODE_PREFIX}"vscode/resources/darwin/*; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
@@ -60,7 +82,7 @@ build_darwin_types() { # {{{
|
||||
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/darwin/${name}.icns" ]]; then
|
||||
icns2png -x -s 512x512 "${file}" -o .
|
||||
|
||||
composite -blend 100% -geometry +323+365 "icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
|
||||
composite -blend 100% -geometry +323+365 "${VSCODE_PREFIX}icons/corner_512.png" "${name}_512x512x32.png" "${name}.png"
|
||||
composite -geometry +359+374 "code_logo.png" "${name}.png" "${name}.png"
|
||||
|
||||
convert "${name}.png" -resize 256x256 "${name}_256.png"
|
||||
@@ -77,30 +99,52 @@ build_darwin_types() { # {{{
|
||||
|
||||
build_linux_main() { # {{{
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" ]]; then
|
||||
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/linux/circle1/${COLOR}/paulo22s.png" -O "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux"
|
||||
|
||||
load_linux_png "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png"
|
||||
fi
|
||||
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
|
||||
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm"
|
||||
|
||||
convert "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/linux/rpm/code.xpm"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_media() { # {{{
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media"
|
||||
|
||||
cp "icons/${QUALITY}/codium_clt.svg" "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
|
||||
gsed -i 's|width="100" height="100"|width="1024" height="1024"|' "${SRC_PREFIX}src/${QUALITY}/src/vs/workbench/browser/media/code-icon.svg"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_main() { # {{{
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]]; then
|
||||
wget "https://raw.githubusercontent.com/VSCodium/icons/main/icons/win32/nobg/${COLOR}/paulo22s.ico" -O "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
|
||||
build_server() { # {{{
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/server"
|
||||
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico" ]]; then
|
||||
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/server/favicon.ico"
|
||||
fi
|
||||
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png" ]]; then
|
||||
convert -size "192x192" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/server/code-192.png"
|
||||
fi
|
||||
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/server/code-512.png" ]]; then
|
||||
convert -size "512x512" "${SRC_PREFIX}src/${QUALITY}/resources/linux/code.png" "${SRC_PREFIX}src/${QUALITY}/resources/server/code-512.png"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_type() {
|
||||
build_windows_main() { # {{{
|
||||
if [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico" ]]; then
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
|
||||
|
||||
load_windows_ico "${SRC_PREFIX}src/${QUALITY}/resources/win32/code.ico"
|
||||
fi
|
||||
} # }}}
|
||||
|
||||
build_windows_type() { # {{{
|
||||
local FILE_PATH IMG_SIZE IMG_BG_COLOR LOGO_SIZE GRAVITY
|
||||
|
||||
FILE_PATH="$1"
|
||||
@@ -118,12 +162,16 @@ build_windows_type() {
|
||||
|
||||
rsvg-convert -w "${LOGO_SIZE}" -h "${LOGO_SIZE}" "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
|
||||
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
|
||||
if [[ "${GRAVITY}" == "center" ]]; then
|
||||
composite -gravity "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
|
||||
else
|
||||
composite -gravity NorthWest -geometry "${GRAVITY}" "code_logo.png" "${FILE_PATH}" "${FILE_PATH}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
} # }}}
|
||||
|
||||
build_windows_types() { # {{{
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32"
|
||||
mkdir -p "${SRC_PREFIX}src/${QUALITY}/resources/win32" "${SRC_PREFIX}build/windows/msi/resources/${QUALITY}"
|
||||
|
||||
rsvg-convert -b "#F5F6F7" -w 64 -h 64 "icons/${QUALITY}/codium_cnl.svg" -o "code_logo.png"
|
||||
|
||||
@@ -134,11 +182,11 @@ build_windows_types() { # {{{
|
||||
if [[ "${name}" != 'code' ]] && [[ ! -f "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico" ]]; then
|
||||
icotool -x -w 256 "${file}"
|
||||
|
||||
composite -geometry +150+185 "code_logo.png" "${name}_9_256x256x32.png" "${name}.png"
|
||||
composite -geometry +150+185 "code_logo.png" "${name}_1_256x256x32.png" "${name}.png"
|
||||
|
||||
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/${QUALITY}/resources/win32/${name}.ico"
|
||||
|
||||
rm "${name}_9_256x256x32.png" "${name}.png"
|
||||
rm "${name}_1_256x256x32.png" "${name}.png"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -174,4 +222,5 @@ if [[ "${0}" == "${BASH_SOURCE[0]}" ]]; then
|
||||
build_windows_types
|
||||
|
||||
build_media
|
||||
build_server
|
||||
fi
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"tag": "1.88.0",
|
||||
"commit": "d994aede3529f4d1af9eeaeb234d32fd936243e7"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
GH_ARCH="amd64"
|
||||
|
||||
VERSION=$( curl --retry 12 --retry-delay 30 "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2- )
|
||||
|
||||
curl --retry 12 --retry-delay 120 -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
|
||||
|
||||
gh --version
|
||||
3
npmrc
Normal file
3
npmrc
Normal file
@@ -0,0 +1,3 @@
|
||||
build_from_source="true"
|
||||
legacy-peer-deps="true"
|
||||
timeout=180000
|
||||
@@ -1,74 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='alpine'
|
||||
|
||||
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
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
yarn --frozen-lockfile --check-files && break
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "Yarn failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
yarn gulp minify-vscode-reh
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
PA_NAME="linux-alpine"
|
||||
else
|
||||
PA_NAME="alpine-arm64"
|
||||
fi
|
||||
|
||||
yarn gulp "vscode-reh-${PA_NAME}-min-ci"
|
||||
|
||||
cd ..
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
echo "Building and moving REH"
|
||||
cd "vscode-reh-${PA_NAME}"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
chown -R root:root vscode
|
||||
|
||||
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 [[ -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
|
||||
echo "Yarn failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
|
||||
./build/azure-pipelines/linux/setup-env.sh
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
yarn --frozen-lockfile --check-files && break
|
||||
if [ $i -eq 3 ]; then
|
||||
echo "Yarn failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
cd ..
|
||||
@@ -1,89 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
|
||||
|
||||
VSCODE_HOST_MOUNT="$( pwd )"
|
||||
|
||||
export VSCODE_HOST_MOUNT
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" || "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}"
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-arm32v7"
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-ppc64le"
|
||||
fi
|
||||
|
||||
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
yarn --cwd build --frozen-lockfile --check-files && break
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "Yarn failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Yarn failed $i, trying again..."
|
||||
done
|
||||
|
||||
./build/azure-pipelines/linux/setup-env.sh --only-remote
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
yarn --frozen-lockfile --check-files && break
|
||||
if [ $i -eq 3 ]; then
|
||||
echo "Yarn failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
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'
|
||||
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
cd ..
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
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
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
18
patches/add-remote-url.patch
Normal file
18
patches/add-remote-url.patch
Normal file
@@ -0,0 +1,18 @@
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index c1d64c0..3e60e80 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -321,3 +321,3 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
|
||||
const productJsonStream = gulp.src(['product.json'], { base: '.' })
|
||||
- .pipe(json({ commit, date: readISODate('out-build'), version }))
|
||||
+ .pipe(json({ commit, date: readISODate('out-build'), version, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
|
||||
.pipe(es.through(function (file) {
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 7046ee0..9aa7bb0 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -288,3 +288,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, serverDownloadUrlTemplate: 'https://github.com/!!ASSETS_REPOSITORY!!/releases/download/!!RELEASE_VERSION!!/!!APP_NAME_LC!!-reh-${os}-${arch}-!!RELEASE_VERSION!!.tar.gz' }))
|
||||
.pipe(es.through(function (file) {
|
||||
23
patches/alpine/reh/fix-node-docker.patch
Normal file
23
patches/alpine/reh/fix-node-docker.patch
Normal 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: 200 * 1024 * 1024, encoding: 'buffer' });
|
||||
return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]);
|
||||
@@ -1,35 +1,23 @@
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 2686509..4fedec2 100644
|
||||
index 7046ee0..faca888 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -289,7 +289,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
} else if (platform === 'darwin') {
|
||||
const shortcut = gulp.src('resources/darwin/bin/code.sh')
|
||||
@@ -376,3 +376,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
.pipe(replace('@@APPNAME@@', product.applicationName))
|
||||
- .pipe(rename('bin/code'));
|
||||
+ .pipe(rename('bin/' + product.applicationName));
|
||||
|
||||
all = es.merge(all, shortcut);
|
||||
}
|
||||
const policyDest = gulp.src('.build/policies/darwin/**', { base: '.build/policies/darwin' })
|
||||
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
index f7bd477..a489ae4 100644
|
||||
index 6324e98..3d2fba3 100644
|
||||
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
@@ -351,7 +351,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
}
|
||||
|
||||
@@ -445,3 +445,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
|
||||
- const target = resolve(this.environmentMainService.appRoot, 'bin', 'code');
|
||||
+ const target = resolve(this.environmentMainService.appRoot, 'bin', this.productService.applicationName);
|
||||
const source = `/usr/local/bin/${this.productService.applicationName}`;
|
||||
|
||||
// Ensure source exists
|
||||
@@ -545,7 +545,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
|
||||
// macOS
|
||||
@@ -680,3 +680,3 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
if (this.environmentMainService.isBuilt) {
|
||||
- return join(this.environmentMainService.appRoot, 'bin', 'code');
|
||||
+ return join(this.environmentMainService.appRoot, 'bin', `${this.productService.applicationName}`);
|
||||
}
|
||||
|
||||
return join(this.environmentMainService.appRoot, 'scripts', 'code-cli.sh');
|
||||
|
||||
1199
patches/brand.patch
1199
patches/brand.patch
File diff suppressed because it is too large
Load Diff
@@ -1,158 +0,0 @@
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index 595d0ce..99bfe30 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -290,4 +290,5 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
|
||||
const name = product.nameShort;
|
||||
+ const release = packageJson.release;
|
||||
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
|
||||
const productJsonStream = gulp.src(['product.json'], { base: '.' })
|
||||
- .pipe(json({ commit, date, version }));
|
||||
+ .pipe(json({ commit, date, version, release }));
|
||||
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index e1507e0..9a12a12 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -233,3 +233,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
|
||||
const name = product.nameShort;
|
||||
- const packageJsonUpdates = { name, version };
|
||||
+ 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 };
|
||||
|
||||
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
|
||||
index 8c2b62f..303fb16 100644
|
||||
--- a/build/gulpfile.vscode.linux.js
|
||||
+++ b/build/gulpfile.vscode.linux.js
|
||||
@@ -24,4 +24,2 @@ const commit = getVersion(root);
|
||||
|
||||
-const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
|
||||
-
|
||||
/**
|
||||
@@ -86,3 +84,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) {
|
||||
.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) {
|
||||
.pipe(replace('@@NAME@@', product.applicationName))
|
||||
- .pipe(replace('@@VERSION@@', commit.substr(0, 8)))
|
||||
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
|
||||
// Possible run-on values https://snapcraft.io/docs/architectures
|
||||
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
|
||||
index 5adfdfb..d6ddead 100644
|
||||
--- a/build/gulpfile.vscode.win32.js
|
||||
+++ b/build/gulpfile.vscode.win32.js
|
||||
@@ -90,4 +90,4 @@ function buildWin32Setup(arch, target) {
|
||||
DirName: product.win32DirName,
|
||||
- Version: pkg.version,
|
||||
- RawVersion: pkg.version.replace(/-\w+$/, ''),
|
||||
+ Version: `${pkg.version}.${pkg.release}`,
|
||||
+ 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
|
||||
--- a/src/vs/base/common/product.ts
|
||||
+++ b/src/vs/base/common/product.ts
|
||||
@@ -58,2 +58,3 @@ export interface IProductConfiguration {
|
||||
readonly version: string;
|
||||
+ 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
|
||||
--- 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 {
|
||||
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
|
||||
--- 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) {
|
||||
if (!product.version) {
|
||||
- const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string };
|
||||
+ const pkg = globalThis._VSCODE_PACKAGE_JSON as { version: string, release: string };
|
||||
|
||||
Object.assign(product, {
|
||||
- version: pkg.version
|
||||
+ version: pkg.version,
|
||||
+ release: pkg.release
|
||||
});
|
||||
diff --git a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||
index c064ebc..72a9fa9 100644
|
||||
--- a/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||
+++ b/src/vs/workbench/browser/parts/dialogs/dialogHandler.ts
|
||||
@@ -22,2 +22,3 @@ import { defaultButtonStyles, defaultCheckboxStyles, defaultDialogStyles, defaul
|
||||
import { ResultKind } from 'vs/platform/keybinding/common/keybindingResolver';
|
||||
+import { getReleaseString } from 'vs/workbench/common/release';
|
||||
|
||||
@@ -79,2 +80,4 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
|
||||
const detailString = (useAgo: boolean): string => {
|
||||
+ const releaseString = getReleaseString();
|
||||
+
|
||||
return localize('aboutDetail',
|
||||
@@ -85,3 +88,3 @@ export class BrowserDialogHandler extends AbstractDialogHandler {
|
||||
navigator.userAgent
|
||||
- );
|
||||
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
|
||||
};
|
||||
diff --git a/src/vs/workbench/common/release.ts b/src/vs/workbench/common/release.ts
|
||||
new file mode 100644
|
||||
index 0000000..2a8ea57
|
||||
--- /dev/null
|
||||
+++ b/src/vs/workbench/common/release.ts
|
||||
@@ -0,0 +1,14 @@
|
||||
+import { language } from 'vs/base/common/platform';
|
||||
+
|
||||
+const DEFAULT_LABEL = 'Release:';
|
||||
+const LABELS: { [key: string]: string } = {
|
||||
+ 'en': DEFAULT_LABEL,
|
||||
+ 'fr': 'Révision :',
|
||||
+ 'ru': 'Релиз:',
|
||||
+ 'zh-hans': '发布版本:',
|
||||
+ 'zh-hant': '發布版本:',
|
||||
+};
|
||||
+
|
||||
+export function getReleaseString(): string {
|
||||
+ return LABELS[language] ?? DEFAULT_LABEL;
|
||||
+}
|
||||
diff --git a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
|
||||
index f2cc82a..700d81a 100644
|
||||
--- a/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
|
||||
+++ b/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
|
||||
@@ -14,2 +14,3 @@ import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { process } from 'vs/base/parts/sandbox/electron-sandbox/globals';
|
||||
+import { getReleaseString } from 'vs/workbench/common/release';
|
||||
import { getActiveWindow } from 'vs/base/browser/dom';
|
||||
@@ -80,2 +81,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
|
||||
const osProps = await this.nativeHostService.getOSProperties();
|
||||
+ const releaseString = getReleaseString();
|
||||
|
||||
@@ -93,3 +95,3 @@ export class NativeDialogHandler extends AbstractDialogHandler {
|
||||
`${osProps.type} ${osProps.arch} ${osProps.release}${isLinuxSnap ? ' snap' : ''}`
|
||||
- );
|
||||
+ ).replace('\n', `\n${releaseString} ${this.productService.release || 'Unknown'}\n`);
|
||||
};
|
||||
9
patches/chat.patch
Normal file
9
patches/chat.patch
Normal file
@@ -0,0 +1,9 @@
|
||||
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
|
||||
index 549cfc6..9632509 100644
|
||||
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
|
||||
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
|
||||
@@ -171,3 +171,3 @@ configurationRegistry.registerConfiguration({
|
||||
markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control chat (requires {0}).", '`#window.commandCenter#`'),
|
||||
- default: true
|
||||
+ default: false
|
||||
},
|
||||
311
patches/cli.patch
Normal file
311
patches/cli.patch
Normal file
@@ -0,0 +1,311 @@
|
||||
diff --git a/cli/src/commands/serve_web.rs b/cli/src/commands/serve_web.rs
|
||||
index d3f7db8..988024b 100644
|
||||
--- a/cli/src/commands/serve_web.rs
|
||||
+++ b/cli/src/commands/serve_web.rs
|
||||
@@ -756,3 +756,3 @@ impl ConnectionManager {
|
||||
let dir_fut = cache.create(&args.release.commit, |target_dir| async move {
|
||||
- info!(log_for_fut, "Downloading server {}", release_for_fut.commit);
|
||||
+ info!(log_for_fut, "Downloading server {}/{}", release_for_fut.commit, release_for_fut.name);
|
||||
let tmpdir = tempfile::tempdir().unwrap();
|
||||
@@ -784,3 +784,3 @@ impl ConnectionManager {
|
||||
.join("bin")
|
||||
- .join(args.release.quality.server_entrypoint());
|
||||
+ .join(args.release.quality.server_entrypoint().unwrap());
|
||||
|
||||
diff --git a/cli/src/constants.rs b/cli/src/constants.rs
|
||||
index 1e277a8..97f17d3 100644
|
||||
--- a/cli/src/constants.rs
|
||||
+++ b/cli/src/constants.rs
|
||||
@@ -35,3 +35,6 @@ pub const DOCUMENTATION_URL: Option<&'static str> = option_env!("VSCODE_CLI_DOCU
|
||||
pub const VSCODE_CLI_COMMIT: Option<&'static str> = option_env!("VSCODE_CLI_COMMIT");
|
||||
-pub const VSCODE_CLI_UPDATE_ENDPOINT: Option<&'static str> = option_env!("VSCODE_CLI_UPDATE_URL");
|
||||
+pub const VSCODE_CLI_UPDATE_ENDPOINT: Option<&'static str> = option_env!("VSCODE_CLI_UPDATE_ENDPOINT");
|
||||
+pub const VSCODE_CLI_DOWNLOAD_ENDPOINT: Option<&'static str> = option_env!("VSCODE_CLI_DOWNLOAD_ENDPOINT");
|
||||
+pub const VSCODE_CLI_APP_NAME: Option<&'static str> = option_env!("VSCODE_CLI_APP_NAME");
|
||||
+pub const VSCODE_CLI_BINARY_NAME: Option<&'static str> = option_env!("VSCODE_CLI_BINARY_NAME");
|
||||
|
||||
diff --git a/cli/src/options.rs b/cli/src/options.rs
|
||||
index 7d152c0..c0f2fb2 100644
|
||||
--- a/cli/src/options.rs
|
||||
+++ b/cli/src/options.rs
|
||||
@@ -9,3 +9,3 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
-use crate::constants::SERVER_NAME_MAP;
|
||||
+use crate::{constants::VSCODE_CLI_BINARY_NAME, util::errors::CodeError};
|
||||
|
||||
@@ -21,2 +21,6 @@ pub enum Quality {
|
||||
|
||||
+fn get_binary_name() -> Result<&'static str, CodeError> {
|
||||
+ VSCODE_CLI_BINARY_NAME.ok_or_else(|| CodeError::UpdatesNotConfigured("no binary name"))
|
||||
+}
|
||||
+
|
||||
impl Quality {
|
||||
@@ -41,9 +45,4 @@ impl Quality {
|
||||
/// Server application name
|
||||
- pub fn server_entrypoint(&self) -> String {
|
||||
- let mut server_name = SERVER_NAME_MAP
|
||||
- .as_ref()
|
||||
- .and_then(|m| m.get(self))
|
||||
- .map(|s| s.server_application_name.as_str())
|
||||
- .unwrap_or("code-server-oss")
|
||||
- .to_string();
|
||||
+ pub fn server_entrypoint(&self) -> Result<String, CodeError> {
|
||||
+ let mut server_name = get_binary_name()?.to_string();
|
||||
|
||||
@@ -53,3 +52,3 @@ impl Quality {
|
||||
|
||||
- server_name
|
||||
+ Ok(server_name)
|
||||
}
|
||||
diff --git a/cli/src/tunnels/code_server.rs b/cli/src/tunnels/code_server.rs
|
||||
index cf00bc4..b564330 100644
|
||||
--- a/cli/src/tunnels/code_server.rs
|
||||
+++ b/cli/src/tunnels/code_server.rs
|
||||
@@ -457,3 +457,3 @@ impl<'a> ServerBuilder<'a> {
|
||||
.join("bin")
|
||||
- .join(self.server_params.release.quality.server_entrypoint()),
|
||||
+ .join(self.server_params.release.quality.server_entrypoint().unwrap()),
|
||||
&["--version"],
|
||||
diff --git a/cli/src/tunnels/paths.rs b/cli/src/tunnels/paths.rs
|
||||
index 3d7d718..98529bc 100644
|
||||
--- a/cli/src/tunnels/paths.rs
|
||||
+++ b/cli/src/tunnels/paths.rs
|
||||
@@ -100,3 +100,3 @@ impl InstalledServer {
|
||||
.join("bin")
|
||||
- .join(self.quality.server_entrypoint())
|
||||
+ .join(self.quality.server_entrypoint().unwrap())
|
||||
},
|
||||
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
|
||||
index 9033914..a39bbf7 100644
|
||||
--- a/cli/src/update_service.rs
|
||||
+++ b/cli/src/update_service.rs
|
||||
@@ -10,3 +10,3 @@ use serde::{Deserialize, Serialize};
|
||||
use crate::{
|
||||
- constants::VSCODE_CLI_UPDATE_ENDPOINT,
|
||||
+ constants::{VSCODE_CLI_APP_NAME, VSCODE_CLI_DOWNLOAD_ENDPOINT, VSCODE_CLI_UPDATE_ENDPOINT},
|
||||
debug, log, options, spanf,
|
||||
@@ -18,3 +18,3 @@ use crate::{
|
||||
zipper,
|
||||
- },
|
||||
+ }
|
||||
};
|
||||
@@ -58,4 +58,12 @@ fn quality_download_segment(quality: options::Quality) -> &'static str {
|
||||
|
||||
+fn get_app_name() -> Result<&'static str, CodeError> {
|
||||
+ VSCODE_CLI_APP_NAME.ok_or_else(|| CodeError::UpdatesNotConfigured("no app name"))
|
||||
+}
|
||||
+
|
||||
+fn get_download_endpoint() -> Result<&'static str, CodeError> {
|
||||
+ VSCODE_CLI_DOWNLOAD_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no download url"))
|
||||
+}
|
||||
+
|
||||
fn get_update_endpoint() -> Result<&'static str, CodeError> {
|
||||
- VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no service url"))
|
||||
+ VSCODE_CLI_UPDATE_ENDPOINT.ok_or_else(|| CodeError::UpdatesNotConfigured("no update url"))
|
||||
}
|
||||
@@ -67,3 +75,4 @@ impl UpdateService {
|
||||
|
||||
- pub async fn get_release_by_semver_version(
|
||||
+ /// Gets the latest commit for the target of the given quality.
|
||||
+ pub async fn get_latest_commit(
|
||||
&self,
|
||||
@@ -72,14 +81,10 @@ impl UpdateService {
|
||||
quality: options::Quality,
|
||||
- version: &str,
|
||||
) -> Result<Release, AnyError> {
|
||||
let update_endpoint = get_update_endpoint()?;
|
||||
- let download_segment = target
|
||||
- .download_segment(platform)
|
||||
- .ok_or_else(|| CodeError::UnsupportedPlatform(platform.to_string()))?;
|
||||
let download_url = format!(
|
||||
- "{}/api/versions/{}/{}/{}",
|
||||
+ "{}/{}/{}/{}/latest.json",
|
||||
update_endpoint,
|
||||
- version,
|
||||
- download_segment,
|
||||
quality_download_segment(quality),
|
||||
+ platform.os(),
|
||||
+ platform.arch(),
|
||||
);
|
||||
@@ -97,3 +102,3 @@ impl UpdateService {
|
||||
let res = response.json::<UpdateServerVersion>().await?;
|
||||
- debug!(self.log, "Resolved version {} to {}", version, res.version);
|
||||
+ debug!(self.log, "Resolved quality {} to {}", quality, res.version);
|
||||
|
||||
@@ -108,40 +113,17 @@ impl UpdateService {
|
||||
|
||||
- /// Gets the latest commit for the target of the given quality.
|
||||
- pub async fn get_latest_commit(
|
||||
- &self,
|
||||
- platform: Platform,
|
||||
- target: TargetKind,
|
||||
- quality: options::Quality,
|
||||
- ) -> Result<Release, AnyError> {
|
||||
- let update_endpoint = get_update_endpoint()?;
|
||||
- let download_segment = target
|
||||
- .download_segment(platform)
|
||||
- .ok_or_else(|| CodeError::UnsupportedPlatform(platform.to_string()))?;
|
||||
+ pub fn get_download_url(&self, release: &Release) -> Result<String, AnyError> {
|
||||
+ let app_name = get_app_name()?;
|
||||
+ let download_endpoint = get_download_endpoint()?;
|
||||
+
|
||||
let download_url = format!(
|
||||
- "{}/api/latest/{}/{}",
|
||||
- update_endpoint,
|
||||
- download_segment,
|
||||
- quality_download_segment(quality),
|
||||
+ "{}/download/{}/{}-reh-web-{}-{}-{}.tar.gz",
|
||||
+ download_endpoint,
|
||||
+ release.name,
|
||||
+ app_name,
|
||||
+ release.platform.os(),
|
||||
+ release.platform.arch(),
|
||||
+ release.name,
|
||||
);
|
||||
|
||||
- let mut response = spanf!(
|
||||
- self.log,
|
||||
- self.log.span("server.version.resolve"),
|
||||
- self.client.make_request("GET", download_url)
|
||||
- )?;
|
||||
-
|
||||
- if !response.status_code.is_success() {
|
||||
- return Err(response.into_err().await.into());
|
||||
- }
|
||||
-
|
||||
- let res = response.json::<UpdateServerVersion>().await?;
|
||||
- debug!(self.log, "Resolved quality {} to {}", quality, res.version);
|
||||
-
|
||||
- Ok(Release {
|
||||
- target,
|
||||
- platform,
|
||||
- quality,
|
||||
- name: res.name,
|
||||
- commit: res.version,
|
||||
- })
|
||||
+ Ok(download_url)
|
||||
}
|
||||
@@ -150,15 +132,3 @@ impl UpdateService {
|
||||
pub async fn get_download_stream(&self, release: &Release) -> Result<SimpleResponse, AnyError> {
|
||||
- let update_endpoint = get_update_endpoint()?;
|
||||
- let download_segment = release
|
||||
- .target
|
||||
- .download_segment(release.platform)
|
||||
- .ok_or_else(|| CodeError::UnsupportedPlatform(release.platform.to_string()))?;
|
||||
-
|
||||
- let download_url = format!(
|
||||
- "{}/commit:{}/{}/{}",
|
||||
- update_endpoint,
|
||||
- release.commit,
|
||||
- download_segment,
|
||||
- quality_download_segment(release.quality),
|
||||
- );
|
||||
+ let download_url = self.get_download_url(release)?;
|
||||
|
||||
@@ -196,13 +166,2 @@ pub enum TargetKind {
|
||||
|
||||
-impl TargetKind {
|
||||
- fn download_segment(&self, platform: Platform) -> Option<String> {
|
||||
- match *self {
|
||||
- TargetKind::Server => Some(platform.headless()),
|
||||
- TargetKind::Archive => platform.archive(),
|
||||
- TargetKind::Web => Some(platform.web()),
|
||||
- TargetKind::Cli => Some(platform.cli()),
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)]
|
||||
@@ -225,30 +184,17 @@ pub enum Platform {
|
||||
impl Platform {
|
||||
- pub fn archive(&self) -> Option<String> {
|
||||
- match self {
|
||||
- Platform::LinuxX64 => Some("linux-x64".to_owned()),
|
||||
- Platform::LinuxARM64 => Some("linux-arm64".to_owned()),
|
||||
- Platform::LinuxARM32 => Some("linux-armhf".to_owned()),
|
||||
- Platform::DarwinX64 => Some("darwin".to_owned()),
|
||||
- Platform::DarwinARM64 => Some("darwin-arm64".to_owned()),
|
||||
- Platform::WindowsX64 => Some("win32-x64-archive".to_owned()),
|
||||
- Platform::WindowsX86 => Some("win32-archive".to_owned()),
|
||||
- Platform::WindowsARM64 => Some("win32-arm64-archive".to_owned()),
|
||||
- _ => None,
|
||||
- }
|
||||
- }
|
||||
- pub fn headless(&self) -> String {
|
||||
+ pub fn arch(&self) -> String {
|
||||
match self {
|
||||
- Platform::LinuxAlpineARM64 => "server-alpine-arm64",
|
||||
- Platform::LinuxAlpineX64 => "server-linux-alpine",
|
||||
- Platform::LinuxX64 => "server-linux-x64",
|
||||
- Platform::LinuxX64Legacy => "server-linux-legacy-x64",
|
||||
- Platform::LinuxARM64 => "server-linux-arm64",
|
||||
- Platform::LinuxARM64Legacy => "server-linux-legacy-arm64",
|
||||
- Platform::LinuxARM32 => "server-linux-armhf",
|
||||
- Platform::LinuxARM32Legacy => "server-linux-legacy-armhf",
|
||||
- Platform::DarwinX64 => "server-darwin",
|
||||
- Platform::DarwinARM64 => "server-darwin-arm64",
|
||||
- Platform::WindowsX64 => "server-win32-x64",
|
||||
- Platform::WindowsX86 => "server-win32",
|
||||
- Platform::WindowsARM64 => "server-win32-arm64",
|
||||
+ Platform::LinuxAlpineARM64 => "arm64",
|
||||
+ Platform::LinuxAlpineX64 => "x64",
|
||||
+ Platform::LinuxX64 => "x64",
|
||||
+ Platform::LinuxX64Legacy => "x64",
|
||||
+ Platform::LinuxARM64 => "arm64",
|
||||
+ Platform::LinuxARM64Legacy => "arm64",
|
||||
+ Platform::LinuxARM32 => "armhf",
|
||||
+ Platform::LinuxARM32Legacy => "armhf",
|
||||
+ Platform::DarwinX64 => "x64",
|
||||
+ Platform::DarwinARM64 => "arm64",
|
||||
+ Platform::WindowsX64 => "x64",
|
||||
+ Platform::WindowsX86 => "ia42",
|
||||
+ Platform::WindowsARM64 => "arm64",
|
||||
}
|
||||
@@ -257,17 +203,17 @@ impl Platform {
|
||||
|
||||
- pub fn cli(&self) -> String {
|
||||
+ pub fn os(&self) -> String {
|
||||
match self {
|
||||
- Platform::LinuxAlpineARM64 => "cli-alpine-arm64",
|
||||
- Platform::LinuxAlpineX64 => "cli-alpine-x64",
|
||||
- Platform::LinuxX64 => "cli-linux-x64",
|
||||
- Platform::LinuxX64Legacy => "cli-linux-x64",
|
||||
- Platform::LinuxARM64 => "cli-linux-arm64",
|
||||
- Platform::LinuxARM64Legacy => "cli-linux-arm64",
|
||||
- Platform::LinuxARM32 => "cli-linux-armhf",
|
||||
- Platform::LinuxARM32Legacy => "cli-linux-armhf",
|
||||
- Platform::DarwinX64 => "cli-darwin-x64",
|
||||
- Platform::DarwinARM64 => "cli-darwin-arm64",
|
||||
- Platform::WindowsARM64 => "cli-win32-arm64",
|
||||
- Platform::WindowsX64 => "cli-win32-x64",
|
||||
- Platform::WindowsX86 => "cli-win32",
|
||||
+ Platform::LinuxAlpineARM64 => "alpine",
|
||||
+ Platform::LinuxAlpineX64 => "alpine",
|
||||
+ Platform::LinuxX64 => "linux",
|
||||
+ Platform::LinuxX64Legacy => "linux",
|
||||
+ Platform::LinuxARM64 => "linux",
|
||||
+ Platform::LinuxARM64Legacy => "linux",
|
||||
+ Platform::LinuxARM32 => "linux",
|
||||
+ Platform::LinuxARM32Legacy => "linux",
|
||||
+ Platform::DarwinX64 => "darwin",
|
||||
+ Platform::DarwinARM64 => "darwin",
|
||||
+ Platform::WindowsX64 => "win32",
|
||||
+ Platform::WindowsX86 => "win32",
|
||||
+ Platform::WindowsARM64 => "win32",
|
||||
}
|
||||
@@ -276,6 +222,2 @@ impl Platform {
|
||||
|
||||
- pub fn web(&self) -> String {
|
||||
- format!("{}-web", self.headless())
|
||||
- }
|
||||
-
|
||||
pub fn env_default() -> Option<Platform> {
|
||||
diff --git a/extensions/tunnel-forwarding/src/extension.ts b/extensions/tunnel-forwarding/src/extension.ts
|
||||
index 299c728..9fb635d 100644
|
||||
--- a/extensions/tunnel-forwarding/src/extension.ts
|
||||
+++ b/extensions/tunnel-forwarding/src/extension.ts
|
||||
@@ -28,3 +28,3 @@ const cliPath = process.env.VSCODE_FORWARDING_IS_DEV
|
||||
process.platform === 'darwin' ? 'bin' : '../../bin',
|
||||
- vscode.env.appQuality === 'stable' ? 'code-tunnel' : 'code-tunnel-insiders',
|
||||
+ '!!TUNNEL_APP_NAME!!'
|
||||
) + (process.platform === 'win32' ? '.exe' : '');
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/main.js b/src/main.js
|
||||
index 19dde20..d9611f2 100644
|
||||
--- a/src/main.js
|
||||
+++ b/src/main.js
|
||||
@@ -409,6 +409,8 @@ function configureCrashReporter() {
|
||||
argv.splice(endOfArgsMarkerIndex, 0, '--crash-reporter-id', crashReporterId);
|
||||
}
|
||||
}
|
||||
+ } else {
|
||||
+ return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,27 @@
|
||||
diff --git a/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts b/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
|
||||
index 00914aa..d5cfc18 100644
|
||||
index 1bb5eb3..70f1b37 100644
|
||||
--- a/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
|
||||
+++ b/src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts
|
||||
@@ -7,3 +7,3 @@ import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||
import { localize } from 'vs/nls';
|
||||
-import { Action2, MenuId, MenuRegistry, registerAction2 } from 'vs/platform/actions/common/actions';
|
||||
+import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions';
|
||||
import { ContextKeyExpr, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||
@@ -7,3 +7,3 @@ import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.j
|
||||
import { localize } from '../../../../nls.js';
|
||||
-import { Action2, MenuId, MenuRegistry, registerAction2 } from '../../../../platform/actions/common/actions.js';
|
||||
+import { Action2, MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';
|
||||
import { ContextKeyExpr, IContextKey, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
|
||||
@@ -17,3 +17,3 @@ import { AuthenticationSession, AuthenticationSessionsChangeEvent, IAuthenticati
|
||||
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
||||
-import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource, EDIT_SESSIONS_PENDING_KEY } from 'vs/workbench/contrib/editSessions/common/editSessions';
|
||||
+import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource } from 'vs/workbench/contrib/editSessions/common/editSessions';
|
||||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IExtensionService } from '../../../services/extensions/common/extensions.js';
|
||||
-import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource, EDIT_SESSIONS_PENDING_KEY } from '../common/editSessions.js';
|
||||
+import { EDIT_SESSIONS_SIGNED_IN, EditSession, EDIT_SESSION_SYNC_CATEGORY, IEditSessionsStorageService, EDIT_SESSIONS_SIGNED_IN_KEY, IEditSessionsLogService, SyncResource } from '../common/editSessions.js';
|
||||
import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
|
||||
@@ -93,3 +93,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
|
||||
|
||||
- this.registerSignInAction();
|
||||
this.registerResetAuthenticationAction();
|
||||
@@ -455,39 +454,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
|
||||
@@ -456,42 +455,2 @@ export class EditSessionsWorkbenchService extends Disposable implements IEditSes
|
||||
|
||||
- private registerSignInAction() {
|
||||
- if (!this.serverConfiguration?.url) {
|
||||
- return;
|
||||
- }
|
||||
- const that = this;
|
||||
- const id = 'workbench.editSessions.actions.signIn';
|
||||
- const when = ContextKeyExpr.and(ContextKeyExpr.equals(EDIT_SESSIONS_PENDING_KEY, false), ContextKeyExpr.equals(EDIT_SESSIONS_SIGNED_IN_KEY, false));
|
||||
|
||||
49
patches/disable-copilot.patch
Normal file
49
patches/disable-copilot.patch
Normal file
@@ -0,0 +1,49 @@
|
||||
diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
|
||||
index d5aa998..dab534b 100644
|
||||
--- a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
|
||||
+++ b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
|
||||
@@ -1876,3 +1876,3 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
|
||||
ChatContextKeys.Setup.disabled.negate(),
|
||||
- ChatContextKeys.Setup.installed.negate(),
|
||||
+ ChatContextKeys.Setup.installed,
|
||||
);
|
||||
diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
|
||||
index dbd2125..bceed38 100644
|
||||
--- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
|
||||
+++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
|
||||
@@ -696,3 +696,3 @@ configurationRegistry.registerConfiguration({
|
||||
description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat, code completions and next edit suggestions."),
|
||||
- default: false,
|
||||
+ default: true,
|
||||
scope: ConfigurationScope.WINDOW
|
||||
diff --git a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
|
||||
index 391a4de..a1489b2 100644
|
||||
--- a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
|
||||
+++ b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
|
||||
@@ -67,9 +67,8 @@ const chatViewDescriptor: IViewDescriptor[] = [{
|
||||
ctorDescriptor: new SyncDescriptor(ChatViewPane, [{ location: ChatAgentLocation.Chat }]),
|
||||
- when: ContextKeyExpr.or(
|
||||
- ContextKeyExpr.or(
|
||||
- ChatContextKeys.Setup.hidden,
|
||||
- ChatContextKeys.Setup.disabled
|
||||
- )?.negate(),
|
||||
+ when: ContextKeyExpr.and(
|
||||
+ ChatContextKeys.Setup.installed,
|
||||
+ ChatContextKeys.Setup.disabled.negate(),
|
||||
+ ChatContextKeys.Setup.hidden.negate(),
|
||||
ChatContextKeys.panelParticipantRegistered,
|
||||
- ChatContextKeys.extensionInvalid
|
||||
+ ChatContextKeys.extensionInvalid.negate()
|
||||
)
|
||||
diff --git a/src/vs/workbench/contrib/chat/browser/chatStatus.ts b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
|
||||
index 05f6f0e..7fe62fd 100644
|
||||
--- a/src/vs/workbench/contrib/chat/browser/chatStatus.ts
|
||||
+++ b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
|
||||
@@ -132,2 +132,7 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
|
||||
|
||||
+ const context = chatEntitlementService.context?.value;
|
||||
+ if (!context) {
|
||||
+ return; // disabled
|
||||
+ }
|
||||
+
|
||||
this.update();
|
||||
30
patches/disable-settingssync-logger.patch
Normal file
30
patches/disable-settingssync-logger.patch
Normal file
@@ -0,0 +1,30 @@
|
||||
diff --git a/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
|
||||
index 89d9736..b2a1623 100644
|
||||
--- a/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
|
||||
+++ b/src/vs/code/electron-utility/sharedProcess/sharedProcessMain.ts
|
||||
@@ -61,3 +61,3 @@ import { ExtensionStorageService, IExtensionStorageService } from '../../../plat
|
||||
import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from '../../../platform/userDataSync/common/ignoredExtensions.js';
|
||||
-import { IUserDataSyncLocalStoreService, IUserDataSyncLogService, IUserDataSyncEnablementService, IUserDataSyncService, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, IUserDataSyncUtilService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncResourceProviderService } from '../../../platform/userDataSync/common/userDataSync.js';
|
||||
+import { IUserDataSyncLocalStoreService, IUserDataSyncEnablementService, IUserDataSyncService, IUserDataSyncStoreManagementService, IUserDataSyncStoreService, IUserDataSyncUtilService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncResourceProviderService } from '../../../platform/userDataSync/common/userDataSync.js';
|
||||
import { IUserDataSyncAccountService, UserDataSyncAccountService } from '../../../platform/userDataSync/common/userDataSyncAccount.js';
|
||||
@@ -65,3 +65,2 @@ import { UserDataSyncLocalStoreService } from '../../../platform/userDataSync/co
|
||||
import { UserDataSyncAccountServiceChannel, UserDataSyncStoreManagementServiceChannel } from '../../../platform/userDataSync/common/userDataSyncIpc.js';
|
||||
-import { UserDataSyncLogService } from '../../../platform/userDataSync/common/userDataSyncLog.js';
|
||||
import { IUserDataSyncMachinesService, UserDataSyncMachinesService } from '../../../platform/userDataSync/common/userDataSyncMachines.js';
|
||||
@@ -366,3 +365,2 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter {
|
||||
services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService, undefined, true));
|
||||
- services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService, undefined, true));
|
||||
services.set(IUserDataSyncUtilService, ProxyChannel.toService(this.server.getChannel('userDataSyncUtil', client => client.ctx !== 'main')));
|
||||
diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts
|
||||
index 61d63db..ccd7ff7 100644
|
||||
--- a/src/vs/workbench/workbench.common.main.ts
|
||||
+++ b/src/vs/workbench/workbench.common.main.ts
|
||||
@@ -157,4 +157,2 @@ import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService
|
||||
import { ExtensionStorageService, IExtensionStorageService } from '../platform/extensionManagement/common/extensionStorage.js';
|
||||
-import { IUserDataSyncLogService } from '../platform/userDataSync/common/userDataSync.js';
|
||||
-import { UserDataSyncLogService } from '../platform/userDataSync/common/userDataSyncLog.js';
|
||||
import { AllowedExtensionsService } from '../platform/extensionManagement/common/allowedExtensionsService.js';
|
||||
@@ -164,3 +162,2 @@ import { AllowedMcpServersService } from '../platform/mcp/common/allowedMcpServe
|
||||
|
||||
-registerSingleton(IUserDataSyncLogService, UserDataSyncLogService, InstantiationType.Delayed);
|
||||
registerSingleton(IAllowedExtensionsService, AllowedExtensionsService, InstantiationType.Delayed);
|
||||
18
patches/disable-signature-verification.patch
Normal file
18
patches/disable-signature-verification.patch
Normal file
@@ -0,0 +1,18 @@
|
||||
diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
|
||||
index 0a50a2e..5ee6782 100644
|
||||
--- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts
|
||||
+++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
|
||||
@@ -36,3 +36,2 @@ import {
|
||||
IAllowedExtensionsService,
|
||||
- VerifyExtensionSignatureConfigKey,
|
||||
shouldRequireRepositorySignatureFor,
|
||||
@@ -89,2 +88,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
|
||||
@IFileService private readonly fileService: IFileService,
|
||||
+ // @ts-expect-error no-unused-variable
|
||||
@IConfigurationService private readonly configurationService: IConfigurationService,
|
||||
@@ -333,4 +333,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
|
||||
if (verifySignature) {
|
||||
- const value = this.configurationService.getValue(VerifyExtensionSignatureConfigKey);
|
||||
- verifySignature = isBoolean(value) ? value : true;
|
||||
+ verifySignature = false;
|
||||
}
|
||||
9
patches/disable-update.patch.yet
Normal file
9
patches/disable-update.patch.yet
Normal file
@@ -0,0 +1,9 @@
|
||||
diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.contribution.ts
|
||||
index d96926b..43f5d90 100644
|
||||
--- a/src/vs/platform/update/common/update.config.contribution.ts
|
||||
+++ b/src/vs/platform/update/common/update.config.contribution.ts
|
||||
@@ -20,3 +20,3 @@ configurationRegistry.registerConfiguration({
|
||||
enum: ['none', 'manual', 'start', 'default'],
|
||||
- default: 'default',
|
||||
+ default: 'none',
|
||||
scope: ConfigurationScope.APPLICATION,
|
||||
185
patches/disable-vscodedev.patch
Normal file
185
patches/disable-vscodedev.patch
Normal file
@@ -0,0 +1,185 @@
|
||||
diff --git a/extensions/github/package.json b/extensions/github/package.json
|
||||
index 726a882..b9a4969 100644
|
||||
--- a/extensions/github/package.json
|
||||
+++ b/extensions/github/package.json
|
||||
@@ -44,19 +44,2 @@
|
||||
},
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLink",
|
||||
- "title": "%command.copyVscodeDevLink%"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkFile",
|
||||
- "title": "%command.copyVscodeDevLink%"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkWithoutRange",
|
||||
- "title": "%command.copyVscodeDevLink%"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.openOnVscodeDev",
|
||||
- "title": "%command.openOnVscodeDev%",
|
||||
- "icon": "$(globe)"
|
||||
- },
|
||||
{
|
||||
@@ -72,11 +55,2 @@
|
||||
],
|
||||
- "continueEditSession": [
|
||||
- {
|
||||
- "command": "github.openOnVscodeDev",
|
||||
- "when": "github.hasGitHubRepo",
|
||||
- "qualifiedName": "Continue Working in vscode.dev",
|
||||
- "category": "Remote Repositories",
|
||||
- "remoteGroup": "virtualfs_44_vscode-vfs_2_web@2"
|
||||
- }
|
||||
- ],
|
||||
"menus": {
|
||||
@@ -91,18 +65,2 @@
|
||||
},
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLink",
|
||||
- "when": "false"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkFile",
|
||||
- "when": "false"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkWithoutRange",
|
||||
- "when": "false"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.openOnVscodeDev",
|
||||
- "when": "false"
|
||||
- },
|
||||
{
|
||||
@@ -112,42 +70,2 @@
|
||||
],
|
||||
- "file/share": [
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkFile",
|
||||
- "when": "github.hasGitHubRepo && remoteName != 'codespaces'",
|
||||
- "group": "0_vscode@0"
|
||||
- }
|
||||
- ],
|
||||
- "editor/context/share": [
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLink",
|
||||
- "when": "github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'",
|
||||
- "group": "0_vscode@0"
|
||||
- }
|
||||
- ],
|
||||
- "explorer/context/share": [
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkWithoutRange",
|
||||
- "when": "github.hasGitHubRepo && resourceScheme != untitled && !isInEmbeddedEditor && remoteName != 'codespaces'",
|
||||
- "group": "0_vscode@0"
|
||||
- }
|
||||
- ],
|
||||
- "editor/lineNumber/context": [
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLink",
|
||||
- "when": "github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editors.files.textFileEditor && config.editor.lineNumbers == on && remoteName != 'codespaces'",
|
||||
- "group": "1_cutcopypaste@2"
|
||||
- },
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLink",
|
||||
- "when": "github.hasGitHubRepo && resourceScheme != untitled && activeEditor == workbench.editor.notebook && remoteName != 'codespaces'",
|
||||
- "group": "1_cutcopypaste@2"
|
||||
- }
|
||||
- ],
|
||||
- "editor/title/context/share": [
|
||||
- {
|
||||
- "command": "github.copyVscodeDevLinkWithoutRange",
|
||||
- "when": "github.hasGitHubRepo && resourceScheme != untitled && remoteName != 'codespaces'",
|
||||
- "group": "0_vscode@0"
|
||||
- }
|
||||
- ],
|
||||
"scm/historyItem/context": [
|
||||
diff --git a/extensions/github/src/commands.ts b/extensions/github/src/commands.ts
|
||||
index 48e9574..aa853a5 100644
|
||||
--- a/extensions/github/src/commands.ts
|
||||
+++ b/extensions/github/src/commands.ts
|
||||
@@ -9,28 +9,3 @@ import { publishRepository } from './publish.js';
|
||||
import { DisposableStore, getRepositoryFromUrl } from './util.js';
|
||||
-import { LinkContext, getCommitLink, getLink, getVscodeDevHost } from './links.js';
|
||||
-
|
||||
-async function copyVscodeDevLink(gitAPI: GitAPI, useSelection: boolean, context: LinkContext, includeRange = true) {
|
||||
- try {
|
||||
- const permalink = await getLink(gitAPI, useSelection, true, getVscodeDevHost(), 'headlink', context, includeRange);
|
||||
- if (permalink) {
|
||||
- return vscode.env.clipboard.writeText(permalink);
|
||||
- }
|
||||
- } catch (err) {
|
||||
- if (!(err instanceof vscode.CancellationError)) {
|
||||
- vscode.window.showErrorMessage(err.message);
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-async function openVscodeDevLink(gitAPI: GitAPI): Promise<vscode.Uri | undefined> {
|
||||
- try {
|
||||
- const headlink = await getLink(gitAPI, true, false, getVscodeDevHost(), 'headlink');
|
||||
- return headlink ? vscode.Uri.parse(headlink) : undefined;
|
||||
- } catch (err) {
|
||||
- if (!(err instanceof vscode.CancellationError)) {
|
||||
- vscode.window.showErrorMessage(err.message);
|
||||
- }
|
||||
- return undefined;
|
||||
- }
|
||||
-}
|
||||
+import { getCommitLink } from './links.js';
|
||||
|
||||
@@ -70,14 +45,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
|
||||
|
||||
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLink', async (context: LinkContext) => {
|
||||
- return copyVscodeDevLink(gitAPI, true, context);
|
||||
- }));
|
||||
-
|
||||
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLinkFile', async (context: LinkContext) => {
|
||||
- return copyVscodeDevLink(gitAPI, false, context);
|
||||
- }));
|
||||
-
|
||||
- disposables.add(vscode.commands.registerCommand('github.copyVscodeDevLinkWithoutRange', async (context: LinkContext) => {
|
||||
- return copyVscodeDevLink(gitAPI, true, context, false);
|
||||
- }));
|
||||
-
|
||||
disposables.add(vscode.commands.registerCommand('github.openOnGitHub', async (url: string, historyItemId: string) => {
|
||||
@@ -113,6 +76,2 @@ export function registerCommands(gitAPI: GitAPI): vscode.Disposable {
|
||||
|
||||
- disposables.add(vscode.commands.registerCommand('github.openOnVscodeDev', async () => {
|
||||
- return openVscodeDevLink(gitAPI);
|
||||
- }));
|
||||
-
|
||||
return disposables;
|
||||
diff --git a/extensions/github/src/extension.ts b/extensions/github/src/extension.ts
|
||||
index 17906c5..86a0ca8 100644
|
||||
--- a/extensions/github/src/extension.ts
|
||||
+++ b/extensions/github/src/extension.ts
|
||||
@@ -17,3 +17,2 @@ import { GitHubBranchProtectionProviderManager } from './branchProtection.js';
|
||||
import { GitHubCanonicalUriProvider } from './canonicalUriProvider.js';
|
||||
-import { VscodeDevShareProvider } from './shareProviders.js';
|
||||
import { GitHubSourceControlHistoryItemDetailsProvider } from './historyItemDetailsProvider.js';
|
||||
@@ -109,3 +108,2 @@ function initializeGitExtension(context: ExtensionContext, octokitService: Octok
|
||||
disposables.add(new GitHubCanonicalUriProvider(gitAPI));
|
||||
- disposables.add(new VscodeDevShareProvider(gitAPI));
|
||||
setGitHubContext(gitAPI, disposables);
|
||||
diff --git a/extensions/github/src/remoteSourceProvider.ts b/extensions/github/src/remoteSourceProvider.ts
|
||||
index 291a3f1..6304ed8 100644
|
||||
--- a/extensions/github/src/remoteSourceProvider.ts
|
||||
+++ b/extensions/github/src/remoteSourceProvider.ts
|
||||
@@ -10,3 +10,3 @@ import { Octokit } from '@octokit/rest';
|
||||
import { getRepositoryFromQuery, getRepositoryFromUrl } from './util.js';
|
||||
-import { getBranchLink, getVscodeDevHost } from './links.js';
|
||||
+import { getBranchLink } from './links.js';
|
||||
|
||||
@@ -129,9 +129,2 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider {
|
||||
}
|
||||
- }, {
|
||||
- label: l10n.t('Checkout on vscode.dev'),
|
||||
- icon: 'globe',
|
||||
- run(branch: string) {
|
||||
- const link = getBranchLink(url, branch, getVscodeDevHost());
|
||||
- env.openExternal(Uri.parse(link));
|
||||
- }
|
||||
}];
|
||||
@@ -1,22 +1,19 @@
|
||||
diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js
|
||||
index 1b0adc4..b595123 100644
|
||||
index 249777c..129af8a 100644
|
||||
--- a/build/lib/builtInExtensions.js
|
||||
+++ b/build/lib/builtInExtensions.js
|
||||
@@ -47,5 +47,3 @@ function isUpToDate(extension) {
|
||||
function getExtensionDownloadStream(extension) {
|
||||
- const galleryServiceUrl = productjson.extensionsGallery?.serviceUrl;
|
||||
- return (galleryServiceUrl ? ext.fromMarketplace(galleryServiceUrl, extension) : ext.fromGithub(extension))
|
||||
- .pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
|
||||
+ return ext.fromGithub(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
|
||||
}
|
||||
@@ -87,5 +87,2 @@ function getExtensionDownloadStream(extension) {
|
||||
}
|
||||
- else if (productjson.extensionsGallery?.serviceUrl) {
|
||||
- input = ext.fromMarketplace(productjson.extensionsGallery.serviceUrl, extension);
|
||||
- }
|
||||
else {
|
||||
diff --git a/build/lib/builtInExtensions.ts b/build/lib/builtInExtensions.ts
|
||||
index fefed43..4ae553e 100644
|
||||
index e9a1180..b8348e3 100644
|
||||
--- a/build/lib/builtInExtensions.ts
|
||||
+++ b/build/lib/builtInExtensions.ts
|
||||
@@ -72,5 +72,3 @@ function isUpToDate(extension: IExtensionDefinition): boolean {
|
||||
function getExtensionDownloadStream(extension: IExtensionDefinition) {
|
||||
- const galleryServiceUrl = productjson.extensionsGallery?.serviceUrl;
|
||||
- return (galleryServiceUrl ? ext.fromMarketplace(galleryServiceUrl, extension) : ext.fromGithub(extension))
|
||||
- .pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
|
||||
+ return ext.fromGithub(extension).pipe(rename(p => p.dirname = `${extension.name}/${p.dirname}`));
|
||||
}
|
||||
@@ -75,4 +75,2 @@ function getExtensionDownloadStream(extension: IExtensionDefinition) {
|
||||
input = ext.fromVsix(path.join(root, extension.vsix), extension);
|
||||
- } else if (productjson.extensionsGallery?.serviceUrl) {
|
||||
- input = ext.fromMarketplace(productjson.extensionsGallery.serviceUrl, extension);
|
||||
} else {
|
||||
|
||||
11
patches/extensions-disable-mangler.patch
Normal file
11
patches/extensions-disable-mangler.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- vscode-1.80.1/extensions/mangle-loader.js.old 2023-07-12 18:45:52.000000000 +0200
|
||||
+++ vscode-1.80.1/extensions/mangle-loader.js 2023-07-28 11:55:01.177444702 +0200
|
||||
@@ -37,7 +37,7 @@ function getMangledFileContents(projectP
|
||||
* @type {webpack.LoaderDefinitionFunction}
|
||||
*/
|
||||
module.exports = async function (source, sourceMap, meta) {
|
||||
- if (this.mode !== 'production') {
|
||||
+ if (true) {
|
||||
// Only enable mangling in production builds
|
||||
return source;
|
||||
}
|
||||
@@ -1,21 +1,22 @@
|
||||
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 e025130..f42db8d 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({
|
||||
@@ -343,2 +343,9 @@ configurationRegistry.registerConfiguration({
|
||||
},
|
||||
+ 'workbench.welcomePage.extraAnnouncements': {
|
||||
+ scope: ConfigurationScope.MACHINE,
|
||||
+ type: 'boolean',
|
||||
+ default: true,
|
||||
+ description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from VSCodium's repository.")
|
||||
+ description: localize('workbench.welcomePage.extraAnnouncements', "When enabled, the get started page loads additional announcements from !!APP_NAME!!'s repository."),
|
||||
+ tags: ['usesOnlineServices']
|
||||
+ },
|
||||
'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 01778b2..615828d 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 = {
|
||||
@@ -117,4 +117,8 @@ type GettingStartedActionEvent = {
|
||||
type RecentEntry = (IRecentFolder | IRecentWorkspace) & { id: string };
|
||||
+type AnnouncementEntry = { id: string, title: string, url: string };
|
||||
|
||||
@@ -24,35 +25,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 {
|
||||
@@ -154,2 +158,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 {
|
||||
|
||||
@@ -880,2 +886,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 {
|
||||
@@ -890,3 +897,3 @@ export class GettingStartedPage extends EditorPane {
|
||||
this.container.classList.remove('noWalkthroughs');
|
||||
- reset(rightColumn, gettingStartedList.getDomElement());
|
||||
+ reset(rightColumn, gettingStartedList.getDomElement(), announcementList.getDomElement());
|
||||
}
|
||||
@@ -894,3 +901,3 @@ export class GettingStartedPage extends EditorPane {
|
||||
this.container.classList.add('noWalkthroughs');
|
||||
- reset(rightColumn);
|
||||
+ reset(rightColumn, announcementList.getDomElement());
|
||||
}
|
||||
@@ -1047,2 +1054,55 @@ export class GettingStartedPage extends EditorPane {
|
||||
|
||||
+ private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
|
||||
+ const renderAnnouncement = (announcement: AnnouncementEntry) => {
|
||||
@@ -71,7 +63,7 @@ index a73549a..fc95016 100644
|
||||
+ if (this.announcementList) { this.announcementList.dispose(); }
|
||||
+
|
||||
+ const announcementList = this.announcementList = new GettingStartedIndexList({
|
||||
+ title: localize('announcements', "VSCodium Announcements"),
|
||||
+ title: localize('announcements', "!!APP_NAME!! Announcements"),
|
||||
+ klass: 'announcements',
|
||||
+ limit: 5,
|
||||
+ empty: $('.empty-recent', {}, localize('noAnnouncements', "There are no current announcements.")),
|
||||
@@ -84,7 +76,7 @@ index a73549a..fc95016 100644
|
||||
+
|
||||
+ if (showExtras) {
|
||||
+ const branch = this.productService.quality === 'insider' ? 'insider' : 'master';
|
||||
+ await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`)
|
||||
+ await fetch(`https://raw.githubusercontent.com/!!GH_REPO_PATH!!/${branch}/announcements-extra.json`)
|
||||
+ .then(async res => {
|
||||
+ if (res.ok) {
|
||||
+ var extraAnnouncements = await res.json() as AnnouncementEntry[];
|
||||
|
||||
167
patches/feat-command-filter.patch
Normal file
167
patches/feat-command-filter.patch
Normal file
@@ -0,0 +1,167 @@
|
||||
diff --git a/src/vs/workbench/contrib/commands/common/commands.contribution.ts b/src/vs/workbench/contrib/commands/common/commands.contribution.ts
|
||||
index 3fd6b59..97a0e04 100644
|
||||
--- a/src/vs/workbench/contrib/commands/common/commands.contribution.ts
|
||||
+++ b/src/vs/workbench/contrib/commands/common/commands.contribution.ts
|
||||
@@ -9,2 +9,3 @@ import { Action2, registerAction2 } from '../../../../platform/actions/common/ac
|
||||
import { ICommandService } from '../../../../platform/commands/common/commands.js';
|
||||
+import { ConfigurationScope, IConfigurationRegistry } from '../../../../platform/configuration/common/configurationRegistry.js';
|
||||
import { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
|
||||
@@ -12,2 +13,3 @@ import { ILogService } from '../../../../platform/log/common/log.js';
|
||||
import { INotificationService } from '../../../../platform/notification/common/notification.js';
|
||||
+import { Registry } from '../../../../platform/registry/common/platform.js';
|
||||
|
||||
@@ -156,2 +158,30 @@ class RunCommands extends Action2 {
|
||||
|
||||
+Registry.as<IConfigurationRegistry>('base.contributions.configuration')
|
||||
+ .registerConfiguration({
|
||||
+ id: 'commands',
|
||||
+ order: 30,
|
||||
+ title: nls.localize('commandsConfigurationTitle', "Commands"),
|
||||
+ type: 'object',
|
||||
+ properties: {
|
||||
+ 'commands.filters': {
|
||||
+ additionalProperties: {
|
||||
+ type: 'string',
|
||||
+ enum: ['ask', 'off', 'on'],
|
||||
+ enumDescriptions: [
|
||||
+ nls.localize('commands.filters.ask', 'Ask the user before executing the command.'),
|
||||
+ nls.localize('commands.filters.off', 'The command is never authorized.'),
|
||||
+ nls.localize('commands.filters.on', 'The command is always authorized.'),
|
||||
+ ],
|
||||
+ description: nls.localize('commands.filters.value', "Authorization for the command."),
|
||||
+ },
|
||||
+ description: nls.localize('commands.filters', "Controls which commands are authorized to be executed."),
|
||||
+ default: {
|
||||
+ 'workbench.action.terminal.newLocal': 'off'
|
||||
+ },
|
||||
+ scope: ConfigurationScope.APPLICATION,
|
||||
+ tags: []
|
||||
+ },
|
||||
+ }
|
||||
+ });
|
||||
+
|
||||
registerAction2(RunCommands);
|
||||
diff --git a/src/vs/workbench/services/commands/common/commandService.ts b/src/vs/workbench/services/commands/common/commandService.ts
|
||||
index 93d1631..0533cf0 100644
|
||||
--- a/src/vs/workbench/services/commands/common/commandService.ts
|
||||
+++ b/src/vs/workbench/services/commands/common/commandService.ts
|
||||
@@ -8,3 +8,6 @@ import { Emitter, Event } from '../../../../base/common/event.js';
|
||||
import { Disposable } from '../../../../base/common/lifecycle.js';
|
||||
+import Severity from '../../../../base/common/severity.js';
|
||||
import { CommandsRegistry, ICommandEvent, ICommandService } from '../../../../platform/commands/common/commands.js';
|
||||
+import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
|
||||
+import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';
|
||||
import { InstantiationType, registerSingleton } from '../../../../platform/instantiation/common/extensions.js';
|
||||
@@ -20,2 +23,3 @@ export class CommandService extends Disposable implements ICommandService {
|
||||
private _starActivation: CancelablePromise<void> | null;
|
||||
+ private _commandFilters: Record<string, "ask" | "off" | "on">
|
||||
|
||||
@@ -30,3 +34,5 @@ export class CommandService extends Disposable implements ICommandService {
|
||||
@IExtensionService private readonly _extensionService: IExtensionService,
|
||||
- @ILogService private readonly _logService: ILogService
|
||||
+ @ILogService private readonly _logService: ILogService,
|
||||
+ @IConfigurationService private readonly _configurationService: IConfigurationService,
|
||||
+ @IDialogService private readonly _dialogService: IDialogService
|
||||
) {
|
||||
@@ -35,2 +41,9 @@ export class CommandService extends Disposable implements ICommandService {
|
||||
this._starActivation = null;
|
||||
+ this._commandFilters = this._configurationService.getValue('commands.filters') ?? { 'workbench.action.terminal.newLocal': 'off' };
|
||||
+
|
||||
+ this._configurationService.onDidChangeConfiguration(async (event) => {
|
||||
+ if (event.affectsConfiguration('commands.filters')) {
|
||||
+ this._commandFilters = this._configurationService.getValue('commands.filters') ?? { 'workbench.action.terminal.newLocal': 'off' };
|
||||
+ }
|
||||
+ })
|
||||
}
|
||||
@@ -57,2 +70,27 @@ export class CommandService extends Disposable implements ICommandService {
|
||||
|
||||
+ const filter = this._commandFilters[id];
|
||||
+ if (filter === 'off') {
|
||||
+ return Promise.reject(new Error(`command '${id}' not authorized`));
|
||||
+ }
|
||||
+ else if (filter === 'ask') {
|
||||
+ const { result } = await this._dialogService.prompt({
|
||||
+ type: Severity.Error,
|
||||
+ message: `Are you sure you want to execute the command "${id}"?`,
|
||||
+ buttons: [
|
||||
+ {
|
||||
+ label: 'Yes',
|
||||
+ run: () => true
|
||||
+ },
|
||||
+ {
|
||||
+ label: 'No',
|
||||
+ run: () => false
|
||||
+ }
|
||||
+ ],
|
||||
+ });
|
||||
+
|
||||
+ if (!result) {
|
||||
+ return Promise.reject(new Error(`command '${id}' not authorized`));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (commandIsRegistered) {
|
||||
diff --git a/src/vs/workbench/services/commands/test/common/commandService.test.ts b/src/vs/workbench/services/commands/test/common/commandService.test.ts
|
||||
index ca3be11..fb456a3 100644
|
||||
--- a/src/vs/workbench/services/commands/test/common/commandService.test.ts
|
||||
+++ b/src/vs/workbench/services/commands/test/common/commandService.test.ts
|
||||
@@ -12,2 +12,7 @@ import { NullExtensionService } from '../../../extensions/common/extensions.js';
|
||||
import { CommandService } from '../../common/commandService.js';
|
||||
+import { NullPolicyService } from '../../../../../platform/policy/common/policy.js';
|
||||
+import { FileService } from '../../../../../platform/files/common/fileService.js';
|
||||
+import { URI } from '../../../../../base/common/uri.js';
|
||||
+import { ConfigurationService } from '../../../../../platform/configuration/common/configurationService.js';
|
||||
+import { TestDialogService } from '../../../../../platform/dialogs/test/common/testDialogService.js';
|
||||
|
||||
@@ -16,4 +21,16 @@ suite('CommandService', function () {
|
||||
const store = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
+ const testDisposables = ensureNoDisposablesAreLeakedInTestSuite();
|
||||
+ let nullConfigService: ConfigurationService
|
||||
|
||||
setup(function () {
|
||||
+ const nullPolicyService = new NullPolicyService();
|
||||
+ const nullLogService = testDisposables.add(new NullLogService());
|
||||
+ const nullFileService = testDisposables.add(new FileService(nullLogService));
|
||||
+ nullConfigService = testDisposables.add(new ConfigurationService(
|
||||
+ URI.file('/config.json'),
|
||||
+ nullFileService,
|
||||
+ nullPolicyService,
|
||||
+ nullLogService,
|
||||
+ ));
|
||||
+
|
||||
store.add(CommandsRegistry.registerCommand('foo', function () { }));
|
||||
@@ -30,3 +47,3 @@ suite('CommandService', function () {
|
||||
}
|
||||
- }, new NullLogService()));
|
||||
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
@@ -50,3 +67,3 @@ suite('CommandService', function () {
|
||||
|
||||
- const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService()));
|
||||
+ const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
@@ -68,3 +85,3 @@ suite('CommandService', function () {
|
||||
}
|
||||
- }, new NullLogService()));
|
||||
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
@@ -85,3 +102,3 @@ suite('CommandService', function () {
|
||||
}
|
||||
- }, new NullLogService()));
|
||||
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
@@ -125,3 +142,3 @@ suite('CommandService', function () {
|
||||
|
||||
- }, new NullLogService()));
|
||||
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
@@ -166,3 +183,3 @@ suite('CommandService', function () {
|
||||
|
||||
- }, new NullLogService()));
|
||||
+ }, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
@@ -187,3 +204,3 @@ suite('CommandService', function () {
|
||||
};
|
||||
- const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService()));
|
||||
+ const service = store.add(new CommandService(new InstantiationService(), extensionService, new NullLogService(), nullConfigService, new TestDialogService()));
|
||||
|
||||
27
patches/feat-ext-unsafe.patch
Normal file
27
patches/feat-ext-unsafe.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
|
||||
index 5974768..876f779 100644
|
||||
--- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
|
||||
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts
|
||||
@@ -1788,2 +1788,8 @@ export abstract class AbstractExtensionGalleryService implements IExtensionGalle
|
||||
|
||||
+ const excludeUnsafes = this.configurationService.getValue('extensions.excludeUnsafes') ?? true;
|
||||
+
|
||||
+ if (!excludeUnsafes) {
|
||||
+ return { malicious: [], deprecated: {}, search: [] };
|
||||
+ }
|
||||
+
|
||||
const context = await this.requestService.request({
|
||||
diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
|
||||
index 4c44d3b..fe989e0 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
|
||||
@@ -294,2 +294,9 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
|
||||
},
|
||||
+ 'extensions.excludeUnsafes': {
|
||||
+ scope: ConfigurationScope.MACHINE,
|
||||
+ type: 'boolean',
|
||||
+ default: true,
|
||||
+ description: localize('extensionsExcludeUnsafes', "When enabled, it will download and cache the list of malicious and deprecated extensions. It's recommended to leave it enabled."),
|
||||
+ tags: ['usesOnlineServices']
|
||||
+ },
|
||||
}
|
||||
@@ -1,47 +1,41 @@
|
||||
diff --git a/src/main.js b/src/main.js
|
||||
index d986fee..1ad0ef0 100644
|
||||
--- a/src/main.js
|
||||
+++ b/src/main.js
|
||||
@@ -18,2 +18,3 @@ perf.mark('code/didStartMain');
|
||||
const path = require('path');
|
||||
+const { fileURLToPath } = require('url');
|
||||
const fs = require('fs');
|
||||
@@ -149,2 +150,14 @@ app.once('ready', function () {
|
||||
diff --git a/src/main.ts b/src/main.ts
|
||||
index deba4c4..1b41bde 100644
|
||||
--- a/src/main.ts
|
||||
+++ b/src/main.ts
|
||||
@@ -8,2 +8,3 @@ import * as fs from 'original-fs';
|
||||
import * as os from 'node:os';
|
||||
+import { createRequire } from 'node:module';
|
||||
import { performance } from 'node:perf_hooks';
|
||||
@@ -22,2 +23,4 @@ import { NativeParsedArgs } from './vs/platform/environment/common/argv.js';
|
||||
|
||||
+const require = createRequire(import.meta.url);
|
||||
+
|
||||
perf.mark('code/didStartMain');
|
||||
@@ -109,2 +112,14 @@ registerListeners();
|
||||
|
||||
+function resolveUserProduct() {
|
||||
+ const userDataPath = getUserDataPath({}, product.nameShort ?? 'code-oss-dev');
|
||||
+ const userProductPath = `file:///${userDataPath}/product.json`;
|
||||
+ const userProductPath = path.join(userDataPath, 'product.json');
|
||||
+
|
||||
+ try {
|
||||
+ // Assign the product configuration to the global scope
|
||||
+ const productPath = require(fileURLToPath(userProductPath));
|
||||
+ global["_VSCODE_USER_PRODUCT_JSON"] = productPath;
|
||||
+ const productJson = require(userProductPath);
|
||||
+ // @ts-expect-error
|
||||
+ globalThis._VSCODE_USER_PRODUCT_JSON = productJson;
|
||||
+ } catch (ex) {
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/**
|
||||
@@ -160,2 +173,3 @@ function startup(codeCachePath, nlsConfig) {
|
||||
@@ -205,2 +220,3 @@ async function startup(codeCachePath: string | undefined, nlsConfig: INLSConfigu
|
||||
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 5a6c171..275cbcf 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) {
|
||||
@@ -31,2 +31,25 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
|
||||
|
||||
+ const { serviceUrl, searchUrl, itemUrl, controlUrl } = product.extensionsGallery || {};
|
||||
+
|
||||
+ Object.assign(product, {
|
||||
+ extensionsGallery: {
|
||||
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
|
||||
+ searchUrl: env['VSCODE_GALLERY_SEARCH_URL'] || searchUrl,
|
||||
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
|
||||
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
|
||||
+ }
|
||||
+ });
|
||||
+
|
||||
+ // Merge user-customized product.json
|
||||
+ try {
|
||||
+ const merge = (...objects: any[]) =>
|
||||
@@ -1,57 +0,0 @@
|
||||
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
|
||||
index 8c2b62f..843e8d4 100644
|
||||
--- a/build/gulpfile.vscode.linux.js
|
||||
+++ b/build/gulpfile.vscode.linux.js
|
||||
@@ -187,2 +187,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)));
|
||||
- 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)));
|
||||
- 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
|
||||
--- 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
|
||||
@@ -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
|
||||
--- a/build/linux/dependencies-generator.ts
|
||||
+++ b/build/linux/dependencies-generator.ts
|
||||
@@ -25,3 +25,3 @@ import product = require('../../product.json');
|
||||
// are valid, are in dep-lists.ts
|
||||
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = true;
|
||||
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = false;
|
||||
|
||||
@@ -61,3 +61,3 @@ export async function getDependencies(packageType: 'deb' | 'rpm', buildDir: stri
|
||||
// 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/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
|
||||
index c9e57db..bda2604 100644
|
||||
--- a/resources/linux/rpm/code.spec.template
|
||||
+++ b/resources/linux/rpm/code.spec.template
|
||||
@@ -87 +87,3 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
|
||||
%{_datadir}/zsh/site-functions/_%{name}
|
||||
+
|
||||
+%config(noreplace) /usr/share/%{name}/resources/app/product.json
|
||||
\ No newline at end of file
|
||||
@@ -1,15 +1,15 @@
|
||||
diff --git a/src/vs/workbench/browser/parts/banner/bannerPart.ts b/src/vs/workbench/browser/parts/banner/bannerPart.ts
|
||||
index dda7c88..e01f09e 100644
|
||||
index 1f329c4..3e36bff 100644
|
||||
--- a/src/vs/workbench/browser/parts/banner/bannerPart.ts
|
||||
+++ b/src/vs/workbench/browser/parts/banner/bannerPart.ts
|
||||
@@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/
|
||||
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
|
||||
-import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
+import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||
@@ -30,2 +30,3 @@ import { widgetClose } from 'vs/platform/theme/common/iconRegistry';
|
||||
import { BannerFocused } from 'vs/workbench/common/contextkeys';
|
||||
+import { INeverShowAgainOptions, NeverShowAgainScope } from 'vs/platform/notification/common/notification';
|
||||
@@ -11,3 +11,3 @@ import { InstantiationType, registerSingleton } from '../../../../platform/insta
|
||||
import { IInstantiationService, ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';
|
||||
-import { IStorageService } from '../../../../platform/storage/common/storage.js';
|
||||
+import { IStorageService, StorageScope } from '../../../../platform/storage/common/storage.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
@@ -30,2 +30,3 @@ import { widgetClose } from '../../../../platform/theme/common/iconRegistry.js';
|
||||
import { BannerFocused } from '../../../common/contextkeys.js';
|
||||
+import { INeverShowAgainOptions, NeverShowAgainScope } from '../../../../platform/notification/common/notification.js';
|
||||
|
||||
@@ -67,3 +68,3 @@ export class BannerPart extends Part implements IBannerService {
|
||||
@IWorkbenchLayoutService layoutService: IWorkbenchLayoutService,
|
||||
@@ -48,12 +48,12 @@ index dda7c88..e01f09e 100644
|
||||
+
|
||||
toJSON(): object {
|
||||
diff --git a/src/vs/workbench/services/banner/browser/bannerService.ts b/src/vs/workbench/services/banner/browser/bannerService.ts
|
||||
index 9c1ab0d..688b1dc 100644
|
||||
index 2db0fa4..d179055 100644
|
||||
--- a/src/vs/workbench/services/banner/browser/bannerService.ts
|
||||
+++ b/src/vs/workbench/services/banner/browser/bannerService.ts
|
||||
@@ -10,2 +10,3 @@ import { ILinkDescriptor } from 'vs/platform/opener/browser/link';
|
||||
import { ThemeIcon } from 'vs/base/common/themables';
|
||||
+import { INeverShowAgainOptions } from 'vs/platform/notification/common/notification';
|
||||
@@ -10,2 +10,3 @@ import { ILinkDescriptor } from '../../../../platform/opener/browser/link.js';
|
||||
import { ThemeIcon } from '../../../../base/common/themables.js';
|
||||
+import { INeverShowAgainOptions } from '../../../../platform/notification/common/notification.js';
|
||||
|
||||
@@ -18,2 +19,3 @@ export interface IBannerItem {
|
||||
readonly onClose?: () => void;
|
||||
|
||||
42
patches/fix-gallery.patch
Normal file
42
patches/fix-gallery.patch
Normal file
@@ -0,0 +1,42 @@
|
||||
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
|
||||
index 3954823..f8026cd 100644
|
||||
--- a/src/vs/base/common/product.ts
|
||||
+++ b/src/vs/base/common/product.ts
|
||||
@@ -112,2 +112,4 @@ export interface IProductConfiguration {
|
||||
readonly accessSKUs?: string[];
|
||||
+ readonly itemUrl: string;
|
||||
+ readonly latestUrlTemplate?: string;
|
||||
};
|
||||
diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
|
||||
index 658219e..d1bf7a9 100644
|
||||
--- a/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
|
||||
+++ b/src/vs/platform/extensionManagement/common/extensionGalleryManifestService.ts
|
||||
@@ -19,2 +19,3 @@ type ExtensionGalleryConfig = {
|
||||
readonly nlsBaseUrl: string;
|
||||
+ readonly latestUrlTemplate?: string;
|
||||
};
|
||||
@@ -49,3 +50,3 @@ export class ExtensionGalleryManifestService extends Disposable implements IExte
|
||||
{
|
||||
- id: `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
|
||||
+ id: extensionsGallery.latestUrlTemplate ?? `${extensionsGallery.serviceUrl}/vscode/{publisher}/{name}/latest`,
|
||||
type: ExtensionGalleryResourceType.ExtensionLatestVersionUri
|
||||
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
|
||||
index 5a6c171..112b31b 100644
|
||||
--- a/src/vs/platform/product/common/product.ts
|
||||
+++ b/src/vs/platform/product/common/product.ts
|
||||
@@ -31,2 +31,15 @@ else if (globalThis._VSCODE_PRODUCT_JSON && globalThis._VSCODE_PACKAGE_JSON) {
|
||||
|
||||
+ const { serviceUrl, controlUrl, itemUrl, latestUrlTemplate, extensionUrlTemplate, resourceUrlTemplate } = product.extensionsGallery || {};
|
||||
+
|
||||
+ Object.assign(product, {
|
||||
+ extensionsGallery: {
|
||||
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
|
||||
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
|
||||
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
|
||||
+ latestUrlTemplate: env['VSCODE_GALLERY_LATEST_URL_TEMPLATE'] || latestUrlTemplate,
|
||||
+ extensionUrlTemplate: env['VSCODE_GALLERY_EXTENSION_URL_TEMPLATE'] || extensionUrlTemplate,
|
||||
+ resourceUrlTemplate: env['VSCODE_GALLERY_RESOURCE_URL_TEMPLATE'] || resourceUrlTemplate,
|
||||
+ }
|
||||
+ });
|
||||
+
|
||||
// Running out of sources
|
||||
25
patches/fix-remote-libs.patch
Normal file
25
patches/fix-remote-libs.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
diff --git a/remote/package-lock.json b/remote/package-lock.json
|
||||
index f0ed1cc..a973af3 100644
|
||||
--- a/remote/package-lock.json
|
||||
+++ b/remote/package-lock.json
|
||||
@@ -40,2 +40,3 @@
|
||||
"tas-client-umd": "0.2.0",
|
||||
+ "tslib": "^2.6.3",
|
||||
"vscode-oniguruma": "1.7.0",
|
||||
@@ -1109,2 +1110,8 @@
|
||||
},
|
||||
+ "node_modules/tslib": {
|
||||
+ "version": "2.7.0",
|
||||
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
|
||||
+ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
|
||||
+ "license": "0BSD"
|
||||
+ },
|
||||
"node_modules/tunnel-agent": {
|
||||
diff --git a/remote/package.json b/remote/package.json
|
||||
index 33afee9..525ed07 100644
|
||||
--- a/remote/package.json
|
||||
+++ b/remote/package.json
|
||||
@@ -35,2 +35,3 @@
|
||||
"tas-client-umd": "0.2.0",
|
||||
+ "tslib": "^2.6.3",
|
||||
"vscode-oniguruma": "1.7.0",
|
||||
@@ -1,9 +1,40 @@
|
||||
diff --git a/.vscode/settings.json b/.vscode/settings.json
|
||||
index 99e495a..996044a 100644
|
||||
index 31b1c4a..f808aa6 100644
|
||||
--- a/.vscode/settings.json
|
||||
+++ b/.vscode/settings.json
|
||||
@@ -10,5 +10,5 @@
|
||||
@@ -17,23 +17,23 @@
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||||
- "editor.formatOnSave": true
|
||||
+ // "editor.formatOnSave": true
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||||
- "editor.formatOnSave": true
|
||||
+ // "editor.formatOnSave": true
|
||||
},
|
||||
"[rust]": {
|
||||
"editor.defaultFormatter": "rust-lang.rust-analyzer",
|
||||
- "editor.formatOnSave": true,
|
||||
+ // "editor.formatOnSave": true,
|
||||
},
|
||||
"[github-issues]": {
|
||||
"editor.wordWrap": "on"
|
||||
},
|
||||
|
||||
// --- Files ---
|
||||
- "files.trimTrailingWhitespace": true,
|
||||
- "files.insertFinalNewline": true,
|
||||
+ // "files.trimTrailingWhitespace": true,
|
||||
+ // "files.insertFinalNewline": true,
|
||||
"files.exclude": {
|
||||
".git": true,
|
||||
".build": true,
|
||||
@@ -42,9 +42,9 @@
|
||||
".vscode-test": true,
|
||||
"cli/target": true,
|
||||
"build/**/*.js.map": true,
|
||||
- "build/**/*.js": {
|
||||
- "when": "$(basename).ts"
|
||||
- }
|
||||
@@ -11,27 +42,22 @@ index 99e495a..996044a 100644
|
||||
+ // "when": "$(basename).ts"
|
||||
+ // }
|
||||
},
|
||||
@@ -59,2 +59,3 @@
|
||||
"files.associations": {
|
||||
"cglicenses.json": "jsonc",
|
||||
@@ -55,7 +55,7 @@
|
||||
"**/yarn.lock": true,
|
||||
"**/package-lock.json": true,
|
||||
"**/Cargo.lock": true,
|
||||
- "build/**/*.js": true,
|
||||
+ // "build/**/*.js": true,
|
||||
"out/**": true,
|
||||
"out-build/**": true,
|
||||
"out-vscode/**": true,
|
||||
@@ -71,6 +71,7 @@
|
||||
"build/builtin/*.js": true,
|
||||
"build/monaco/*.js": true,
|
||||
"build/npm/*.js": true,
|
||||
+ "build/**/*.js": true,
|
||||
"build/*.js": true
|
||||
@@ -108,3 +109,3 @@
|
||||
"gulp.autoDetect": "off",
|
||||
- "files.insertFinalNewline": true,
|
||||
+ // "files.insertFinalNewline": true,
|
||||
"[plaintext]": {
|
||||
@@ -114,3 +115,3 @@
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||||
- "editor.formatOnSave": true
|
||||
+ // "editor.formatOnSave": true
|
||||
},
|
||||
@@ -118,3 +119,3 @@
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features",
|
||||
- "editor.formatOnSave": true
|
||||
+ // "editor.formatOnSave": true
|
||||
},
|
||||
@@ -122,3 +123,3 @@
|
||||
"editor.defaultFormatter": "rust-lang.rust-analyzer",
|
||||
- "editor.formatOnSave": true,
|
||||
+ // "editor.formatOnSave": true,
|
||||
},
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index 2a0c236..0f10f17 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -256,3 +256,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' }));
|
||||
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 0ca2cfd..9bf83a7 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' };
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
|
||||
index 5adfdfb..dfdb2af 100644
|
||||
--- a/build/gulpfile.vscode.win32.js
|
||||
+++ b/build/gulpfile.vscode.win32.js
|
||||
@@ -115,6 +115,6 @@ function buildWin32Setup(arch, target) {
|
||||
|
||||
- if (quality === 'insider') {
|
||||
- definitions['AppxPackage'] = `code_insiders_explorer_${arch}.appx`;
|
||||
- definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
|
||||
- }
|
||||
+ // if (quality === 'insider') {
|
||||
+ // definitions['AppxPackage'] = `code_insiders_explorer_${arch}.appx`;
|
||||
+ // definitions['AppxPackageFullname'] = `Microsoft.${product.win32RegValueName}_1.0.0.0_neutral__8wekyb3d8bbwe`;
|
||||
+ // }
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||
index 81bf4b2..5a88688 100644
|
||||
index 150908a..0759a8d 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
|
||||
@@ -233,7 +233,7 @@ export class Extension implements IExtension {
|
||||
return false;
|
||||
}
|
||||
@@ -104,2 +104,3 @@ export class Extension implements IExtension {
|
||||
@IFileService private readonly fileService: IFileService,
|
||||
+ // @ts-ignore
|
||||
@IProductService private readonly productService: IProductService
|
||||
@@ -325,3 +326,3 @@ export class Extension implements IExtension {
|
||||
// Do not allow updating system extensions in stable
|
||||
- if (this.type === ExtensionType.System && this.productService.quality === 'stable') {
|
||||
+ if (this.type === ExtensionType.System) {
|
||||
return false;
|
||||
}
|
||||
if (!this.local.preRelease && this.gallery.properties.isPreReleaseVersion) {
|
||||
|
||||
121
patches/linux/arch-0-support.patch
Normal file
121
patches/linux/arch-0-support.patch
Normal file
@@ -0,0 +1,121 @@
|
||||
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
|
||||
index 6805633..9d4b59f 100755
|
||||
--- a/build/azure-pipelines/linux/setup-env.sh
|
||||
+++ b/build/azure-pipelines/linux/setup-env.sh
|
||||
@@ -2,3 +2,3 @@
|
||||
|
||||
-set -e
|
||||
+set -ex
|
||||
|
||||
@@ -22,3 +22,3 @@ else
|
||||
echo "Downloading remote sysroot"
|
||||
- SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
|
||||
+ SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
|
||||
fi
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index 10b7b44..0ad7550 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -233,9 +233,23 @@ function nodejs(platform, arch) {
|
||||
case 'linux':
|
||||
- return (product.nodejsRepository !== 'https://nodejs.org' ?
|
||||
- fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 }) :
|
||||
- fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
|
||||
- ).pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
|
||||
- .pipe(filter('**/node'))
|
||||
- .pipe(util.setExecutableBit('**'))
|
||||
- .pipe(rename('node'));
|
||||
+ if (process.env.VSCODE_NODEJS_SITE && process.env.VSCODE_NODEJS_URLROOT) {
|
||||
+ return fetchUrls(`${process.env.VSCODE_NODEJS_URLROOT}/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}${process.env.VSCODE_NODEJS_URLSUFFIX}.tar.gz`, { base: process.env.VSCODE_NODEJS_SITE, checksumSha256 })
|
||||
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
|
||||
+ .pipe(filter('**/node'))
|
||||
+ .pipe(util.setExecutableBit('**'))
|
||||
+ .pipe(rename('node'));
|
||||
+ }
|
||||
+ if (product.nodejsRepository !== 'https://nodejs.org') {
|
||||
+ return fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 })
|
||||
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
|
||||
+ .pipe(filter('**/node'))
|
||||
+ .pipe(util.setExecutableBit('**'))
|
||||
+ .pipe(rename('node'));
|
||||
+ }
|
||||
+ else {
|
||||
+ return fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 })
|
||||
+ .pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar())))
|
||||
+ .pipe(filter('**/node'))
|
||||
+ .pipe(util.setExecutableBit('**'))
|
||||
+ .pipe(rename('node'));
|
||||
+ }
|
||||
case 'alpine':
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 25d8916..250ba7c 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -366,2 +366,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
|
||||
+ const electronOverride = {};
|
||||
+ if (process.env.VSCODE_ELECTRON_REPOSITORY) {
|
||||
+ // official electron doesn't support all arch, override the repo with `VSCODE_ELECTRON_REPOSITORY`.
|
||||
+ electronOverride.repo = process.env.VSCODE_ELECTRON_REPOSITORY;
|
||||
+ }
|
||||
+
|
||||
+ if (process.env.VSCODE_ELECTRON_TAG) {
|
||||
+ electronOverride.tag = process.env.VSCODE_ELECTRON_TAG;
|
||||
+ }
|
||||
+
|
||||
let result = all
|
||||
@@ -370,3 +380,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 }));
|
||||
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
|
||||
index f58d0f8..4edb371 100644
|
||||
--- a/build/linux/debian/dep-lists.js
|
||||
+++ b/build/linux/debian/dep-lists.js
|
||||
@@ -140,3 +140,3 @@ exports.referenceGeneratedDepsByArch = {
|
||||
'xdg-utils (>= 1.0.2)'
|
||||
- ]
|
||||
+ ],
|
||||
};
|
||||
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
|
||||
index 5b7ccd5..707129f 100644
|
||||
--- a/build/linux/debian/dep-lists.ts
|
||||
+++ b/build/linux/debian/dep-lists.ts
|
||||
@@ -140,3 +140,3 @@ export const referenceGeneratedDepsByArch = {
|
||||
'xdg-utils (>= 1.0.2)'
|
||||
- ]
|
||||
+ ],
|
||||
};
|
||||
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
|
||||
index d16e13b..18e409a 100644
|
||||
--- a/build/linux/debian/install-sysroot.js
|
||||
+++ b/build/linux/debian/install-sysroot.js
|
||||
@@ -73,3 +73,5 @@ 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}`, {
|
||||
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
|
||||
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
|
||||
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
|
||||
headers: ghApiHeaders,
|
||||
@@ -82,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 ${repository} @ ${actualVersion}`);
|
||||
}
|
||||
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
|
||||
index 670fb68..092fc68 100644
|
||||
--- a/build/linux/debian/install-sysroot.ts
|
||||
+++ b/build/linux/debian/install-sysroot.ts
|
||||
@@ -82,3 +82,5 @@ 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}`, {
|
||||
+ const repository = process.env['VSCODE_SYSROOT_REPOSITORY'] ?? 'Microsoft/vscode-linux-build-agent';
|
||||
+ const actualVersion = process.env['VSCODE_SYSROOT_VERSION'] ?? version;
|
||||
+ const response = await fetch(`https://api.github.com/repos/${repository}/releases/tags/v${actualVersion}`, {
|
||||
headers: ghApiHeaders,
|
||||
@@ -91,3 +93,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 ${repository} @ ${actualVersion}`);
|
||||
}
|
||||
540
patches/linux/arch-1-ppc64le.patch
Normal file
540
patches/linux/arch-1-ppc64le.patch
Normal file
@@ -0,0 +1,540 @@
|
||||
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
|
||||
index c27358a..3e33f75 100755
|
||||
--- a/build/azure-pipelines/linux/setup-env.sh
|
||||
+++ b/build/azure-pipelines/linux/setup-env.sh
|
||||
@@ -76,2 +76,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
|
||||
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf"
|
||||
+elif [ "$npm_config_arch" == "ppc64" ]; then
|
||||
+ # Set compiler toolchain for client native modules
|
||||
+ export CC=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
|
||||
+ export CXX=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
|
||||
+ export CXXFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
|
||||
+ export LDFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
|
||||
+
|
||||
+ # Set compiler toolchain for remote server
|
||||
+ export VSCODE_REMOTE_CC=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
|
||||
+ export VSCODE_REMOTE_CXX=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
|
||||
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
|
||||
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
|
||||
fi
|
||||
diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
index 5294177..1e33aeb 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 5744a5f..3fedbe9 100644
|
||||
--- a/build/checksums/vscode-sysroot.txt
|
||||
+++ b/build/checksums/vscode-sysroot.txt
|
||||
@@ -7 +7,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
|
||||
84acc5a15566c98ddf80631731d672e0ce9febcf3f2e969101e0dfd7ef2405e3 x86_64-linux-gnu-glibc-2.28-gcc-8.5.0.tar.gz
|
||||
+fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index 5ac9f95..cd04bdf 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -50,2 +50,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'arm64' },
|
||||
+ { platform: 'linux', arch: 'ppc64le' },
|
||||
{ platform: 'alpine', arch: 'arm64' },
|
||||
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
|
||||
index aafc64e..484d5f4 100644
|
||||
--- a/build/gulpfile.scan.js
|
||||
+++ b/build/gulpfile.scan.js
|
||||
@@ -26,2 +26,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'arm64' },
|
||||
+ { platform: 'linux', arch: 'ppc64le' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 004417f..c38fc1a 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -475,2 +475,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'arm64' },
|
||||
+ { platform: 'linux', arch: 'ppc64le' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
|
||||
index cd8610d..707581d 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' }[arch];
|
||||
}
|
||||
@@ -146,3 +146,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' }[arch];
|
||||
}
|
||||
@@ -304,2 +304,3 @@ const BUILD_TARGETS = [
|
||||
{ arch: 'arm64' },
|
||||
+ { arch: 'ppc64le' },
|
||||
];
|
||||
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
|
||||
index 34276ce..fdae163 100644
|
||||
--- a/build/linux/debian/calculate-deps.js
|
||||
+++ b/build/linux/debian/calculate-deps.js
|
||||
@@ -54,2 +54,5 @@ 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;
|
||||
}
|
||||
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
|
||||
index addc386..423c415 100644
|
||||
--- a/build/linux/debian/calculate-deps.ts
|
||||
+++ b/build/linux/debian/calculate-deps.ts
|
||||
@@ -61,2 +61,8 @@ 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;
|
||||
}
|
||||
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
|
||||
index 057961c..ed10661 100644
|
||||
--- a/build/linux/debian/dep-lists.js
|
||||
+++ b/build/linux/debian/dep-lists.js
|
||||
@@ -141,2 +141,41 @@ exports.referenceGeneratedDepsByArch = {
|
||||
],
|
||||
+ '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)'
|
||||
+ ],
|
||||
};
|
||||
diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
|
||||
index 707129f..7fe60be 100644
|
||||
--- a/build/linux/debian/dep-lists.ts
|
||||
+++ b/build/linux/debian/dep-lists.ts
|
||||
@@ -141,2 +141,41 @@ export const referenceGeneratedDepsByArch = {
|
||||
],
|
||||
+ '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)'
|
||||
+ ],
|
||||
};
|
||||
diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
|
||||
index 8fbdf3d..011b36f 100644
|
||||
--- a/build/linux/debian/install-sysroot.js
|
||||
+++ b/build/linux/debian/install-sysroot.js
|
||||
@@ -146,2 +146,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
|
||||
break;
|
||||
+ case 'ppc64le':
|
||||
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
|
||||
+ triple = `powerpc64le-linux-gnu`;
|
||||
+ break;
|
||||
}
|
||||
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
|
||||
index 9f3fd15..756b7fd 100644
|
||||
--- a/build/linux/debian/install-sysroot.ts
|
||||
+++ b/build/linux/debian/install-sysroot.ts
|
||||
@@ -159,2 +159,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
|
||||
break;
|
||||
+ case 'ppc64le':
|
||||
+ expectedName = `powerpc64le-linux-gnu${prefix}.tar.gz`;
|
||||
+ triple = `powerpc64le-linux-gnu`;
|
||||
+ break;
|
||||
}
|
||||
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
|
||||
index ce21d50..2c56b9c 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'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
|
||||
index e97485e..43f2434 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';
|
||||
|
||||
export function isDebianArchString(s: string): s is DebianArchString {
|
||||
- return ['amd64', 'armhf', 'arm64'].includes(s);
|
||||
+ return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
|
||||
index 1f19c85..43ac5a0 100644
|
||||
--- a/build/linux/rpm/dep-lists.js
|
||||
+++ b/build/linux/rpm/dep-lists.js
|
||||
@@ -316,2 +316,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 db52338..4231f09 100644
|
||||
--- a/build/linux/rpm/dep-lists.ts
|
||||
+++ b/build/linux/rpm/dep-lists.ts
|
||||
@@ -315,2 +315,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..7b58961 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'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
|
||||
index c6a01da..3f3c3f5 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';
|
||||
|
||||
export function isRpmArchString(s: string): s is RpmArchString {
|
||||
- return ['x86_64', 'armv7hl', 'aarch64'].includes(s);
|
||||
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].includes(s);
|
||||
}
|
||||
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
|
||||
index a39bbf7..84d3efe 100644
|
||||
--- a/cli/src/update_service.rs
|
||||
+++ b/cli/src/update_service.rs
|
||||
@@ -176,2 +176,3 @@ pub enum Platform {
|
||||
LinuxARM32Legacy,
|
||||
+ LinuxPPC64LE,
|
||||
DarwinX64,
|
||||
@@ -194,2 +195,3 @@ impl Platform {
|
||||
Platform::LinuxARM32Legacy => "armhf",
|
||||
+ Platform::LinuxPPC64LE => "ppc64le",
|
||||
Platform::DarwinX64 => "x64",
|
||||
@@ -213,2 +215,3 @@ impl Platform {
|
||||
Platform::LinuxARM32Legacy => "linux",
|
||||
+ Platform::LinuxPPC64LE => "linux",
|
||||
Platform::DarwinX64 => "darwin",
|
||||
@@ -241,2 +244,4 @@ impl Platform {
|
||||
Some(Platform::LinuxARM64)
|
||||
+ } else if cfg!(all(target_os = "linux", target_arch = "powerpc64")) {
|
||||
+ Some(Platform::LinuxPPC64LE)
|
||||
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
|
||||
@@ -268,2 +273,3 @@ impl fmt::Display for Platform {
|
||||
Platform::LinuxARM32Legacy => "LinuxARM32Legacy",
|
||||
+ Platform::LinuxPPC64LE => "LinuxPPC64LE",
|
||||
Platform::DarwinX64 => "DarwinX64",
|
||||
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
|
||||
index 44c8597..679aacb 100644
|
||||
--- a/cli/src/util/prereqs.rs
|
||||
+++ b/cli/src/util/prereqs.rs
|
||||
@@ -82,2 +82,4 @@ impl PreReqChecker {
|
||||
Platform::LinuxARM32
|
||||
+ } else if cfg!(target_arch = "powerpc64") {
|
||||
+ Platform::LinuxPPC64LE
|
||||
} else {
|
||||
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
index 8ea4c0b..b9d3b47 100644
|
||||
--- a/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
@@ -55,2 +55,3 @@ case $ARCH in
|
||||
;;
|
||||
+ ppc64el) LDCONFIG_ARCH="64bit";;
|
||||
esac
|
||||
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
index e91310f..a28beef 100644
|
||||
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
|
||||
case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
|
||||
+ case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
|
||||
|
||||
@@ -70,2 +71,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
|
||||
case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
|
||||
+ case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
|
||||
|
||||
@@ -105,2 +107,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
|
||||
}
|
||||
+ if (arch === 'ppc64le') {
|
||||
+ return TargetPlatform.LINUX_PPC64LE;
|
||||
+ }
|
||||
return TargetPlatform.UNKNOWN;
|
||||
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
|
||||
index 0b42527..69d6eb3 100644
|
||||
--- a/src/vs/platform/extensions/common/extensions.ts
|
||||
+++ b/src/vs/platform/extensions/common/extensions.ts
|
||||
@@ -329,2 +329,3 @@ export const enum TargetPlatform {
|
||||
LINUX_ARMHF = 'linux-armhf',
|
||||
+ LINUX_PPC64LE = 'linux-ppc64le',
|
||||
|
||||
293
patches/linux/arch-2-riscv64.patch
Normal file
293
patches/linux/arch-2-riscv64.patch
Normal file
@@ -0,0 +1,293 @@
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index cd04bdf..e284026 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -51,2 +51,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'ppc64le' },
|
||||
+ { platform: 'linux', arch: 'riscv64' },
|
||||
{ platform: 'alpine', arch: 'arm64' },
|
||||
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
|
||||
index 484d5f4..66c8e1f 100644
|
||||
--- a/build/gulpfile.scan.js
|
||||
+++ b/build/gulpfile.scan.js
|
||||
@@ -27,2 +27,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'ppc64le' },
|
||||
+ { platform: 'linux', arch: 'riscv64' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 3ed2182..f0614d0 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -492,2 +492,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'ppc64le' },
|
||||
+ { platform: 'linux', arch: 'riscv64' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
|
||||
index 707581d..298181d 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', ppc64le: 'ppc64el' }[arch];
|
||||
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
|
||||
}
|
||||
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
|
||||
function getRpmPackageArch(arch) {
|
||||
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le' }[arch];
|
||||
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
|
||||
}
|
||||
@@ -305,2 +305,3 @@ const BUILD_TARGETS = [
|
||||
{ arch: 'ppc64le' },
|
||||
+ { arch: 'riscv64' },
|
||||
];
|
||||
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
|
||||
index fdae163..a08ebda 100644
|
||||
--- a/build/linux/debian/calculate-deps.js
|
||||
+++ b/build/linux/debian/calculate-deps.js
|
||||
@@ -57,2 +57,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
|
||||
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 423c415..88ee2f0 100644
|
||||
--- a/build/linux/debian/calculate-deps.ts
|
||||
+++ b/build/linux/debian/calculate-deps.ts
|
||||
@@ -67,2 +67,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
|
||||
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 a85352e..4ccdcd9 100644
|
||||
--- a/build/linux/debian/dep-lists.js
|
||||
+++ b/build/linux/debian/dep-lists.js
|
||||
@@ -178,2 +178,42 @@ exports.referenceGeneratedDepsByArch = {
|
||||
],
|
||||
+ '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 0d0f11b..b765492 100644
|
||||
--- a/build/linux/debian/dep-lists.ts
|
||||
+++ b/build/linux/debian/dep-lists.ts
|
||||
@@ -178,2 +178,42 @@ export const referenceGeneratedDepsByArch = {
|
||||
],
|
||||
+ '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 ab6b826..fc2817a 100644
|
||||
--- a/build/linux/debian/install-sysroot.js
|
||||
+++ b/build/linux/debian/install-sysroot.js
|
||||
@@ -144,2 +144,6 @@ async function getVSCodeSysroot(arch) {
|
||||
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 c23db0f..50c28b2 100644
|
||||
--- a/build/linux/debian/install-sysroot.ts
|
||||
+++ b/build/linux/debian/install-sysroot.ts
|
||||
@@ -158,2 +158,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
|
||||
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 2c56b9c..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', 'ppc64el'].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 43f2434..24fe452 100644
|
||||
--- a/build/linux/debian/types.ts
|
||||
+++ b/build/linux/debian/types.ts
|
||||
@@ -5,6 +5,6 @@
|
||||
|
||||
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el';
|
||||
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
|
||||
|
||||
export function isDebianArchString(s: string): s is DebianArchString {
|
||||
- return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
|
||||
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/rpm/types.js b/build/linux/rpm/types.js
|
||||
index 7b58961..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', 'ppc64le'].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 3f3c3f5..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' | 'ppc64le';
|
||||
+export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64';
|
||||
|
||||
export function isRpmArchString(s: string): s is RpmArchString {
|
||||
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le'].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 84d3efe..4f2c8c2 100644
|
||||
--- a/cli/src/update_service.rs
|
||||
+++ b/cli/src/update_service.rs
|
||||
@@ -177,2 +177,3 @@ pub enum Platform {
|
||||
LinuxPPC64LE,
|
||||
+ LinuxRISCV64,
|
||||
DarwinX64,
|
||||
@@ -196,2 +197,3 @@ impl Platform {
|
||||
Platform::LinuxPPC64LE => "ppc64le",
|
||||
+ Platform::LinuxRISCV64 => "riscv64",
|
||||
Platform::DarwinX64 => "x64",
|
||||
@@ -216,2 +218,3 @@ impl Platform {
|
||||
Platform::LinuxPPC64LE => "linux",
|
||||
+ Platform::LinuxRISCV64 => "linux",
|
||||
Platform::DarwinX64 => "darwin",
|
||||
@@ -246,2 +249,4 @@ impl Platform {
|
||||
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")) {
|
||||
@@ -274,2 +279,3 @@ impl fmt::Display for Platform {
|
||||
Platform::LinuxPPC64LE => "LinuxPPC64LE",
|
||||
+ Platform::LinuxRISCV64 => "LinuxRISCV64",
|
||||
Platform::DarwinX64 => "DarwinX64",
|
||||
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
|
||||
index 679aacb..1a37552 100644
|
||||
--- a/cli/src/util/prereqs.rs
|
||||
+++ b/cli/src/util/prereqs.rs
|
||||
@@ -84,2 +84,4 @@ impl PreReqChecker {
|
||||
Platform::LinuxPPC64LE
|
||||
+ } else if cfg!(target_arch = "riscv64") {
|
||||
+ Platform::LinuxRISCV64
|
||||
} else {
|
||||
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
index b9d3b47..b18e402 100644
|
||||
--- a/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
@@ -56,2 +56,3 @@ 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 5400065..be95b04 100644
|
||||
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
@@ -45,2 +45,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
|
||||
case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
|
||||
+ case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
|
||||
|
||||
@@ -69,2 +70,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
|
||||
case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
|
||||
+ case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
|
||||
|
||||
@@ -107,2 +109,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
|
||||
}
|
||||
+ 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 23f1bea..10152de 100644
|
||||
--- a/src/vs/platform/extensions/common/extensions.ts
|
||||
+++ b/src/vs/platform/extensions/common/extensions.ts
|
||||
@@ -320,2 +320,3 @@ export const enum TargetPlatform {
|
||||
LINUX_PPC64LE = 'linux-ppc64le',
|
||||
+ LINUX_RISCV64 = 'linux-riscv64',
|
||||
|
||||
92
patches/linux/arch-3-loong64.patch
Normal file
92
patches/linux/arch-3-loong64.patch
Normal file
@@ -0,0 +1,92 @@
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index e284026..52f9a12 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -52,2 +52,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'riscv64' },
|
||||
+ { platform: 'linux', arch: 'loong64' },
|
||||
{ platform: 'alpine', arch: 'arm64' },
|
||||
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
|
||||
index 66c8e1f..8a8c1eb 100644
|
||||
--- a/build/gulpfile.scan.js
|
||||
+++ b/build/gulpfile.scan.js
|
||||
@@ -28,2 +28,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'riscv64' },
|
||||
+ { platform: 'linux', arch: 'loong64' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index f0614d0..1438867 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -493,2 +493,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'riscv64' },
|
||||
+ { platform: 'linux', arch: 'loong64' },
|
||||
];
|
||||
diff --git a/cli/src/update_service.rs b/cli/src/update_service.rs
|
||||
index 4f2c8c2..4ea1bd2 100644
|
||||
--- a/cli/src/update_service.rs
|
||||
+++ b/cli/src/update_service.rs
|
||||
@@ -178,2 +178,3 @@ pub enum Platform {
|
||||
LinuxRISCV64,
|
||||
+ LinuxLoong64,
|
||||
DarwinX64,
|
||||
@@ -198,2 +199,3 @@ impl Platform {
|
||||
Platform::LinuxRISCV64 => "riscv64",
|
||||
+ Platform::LinuxLoong64 => "loong64",
|
||||
Platform::DarwinX64 => "x64",
|
||||
@@ -219,2 +221,3 @@ impl Platform {
|
||||
Platform::LinuxRISCV64 => "linux",
|
||||
+ Platform::LinuxLoong64 => "linux",
|
||||
Platform::DarwinX64 => "darwin",
|
||||
@@ -251,2 +254,4 @@ impl Platform {
|
||||
Some(Platform::LinuxRISCV64)
|
||||
+ } else if cfg!(all(target_os = "linux", target_arch = "loongarch64")) {
|
||||
+ Some(Platform::LinuxLoong64)
|
||||
} else if cfg!(all(target_os = "macos", target_arch = "x86_64")) {
|
||||
@@ -280,2 +285,3 @@ impl fmt::Display for Platform {
|
||||
Platform::LinuxRISCV64 => "LinuxRISCV64",
|
||||
+ Platform::LinuxLoong64 => "LinuxLoong64",
|
||||
Platform::DarwinX64 => "DarwinX64",
|
||||
diff --git a/cli/src/util/prereqs.rs b/cli/src/util/prereqs.rs
|
||||
index 1a37552..ff191a1 100644
|
||||
--- a/cli/src/util/prereqs.rs
|
||||
+++ b/cli/src/util/prereqs.rs
|
||||
@@ -86,2 +86,4 @@ impl PreReqChecker {
|
||||
Platform::LinuxRISCV64
|
||||
+ } else if cfg!(target_arch = "loongarch64") {
|
||||
+ Platform::LinuxLoong64
|
||||
} else {
|
||||
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
index b18e402..0b7aa4e 100644
|
||||
--- a/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
@@ -57,2 +57,3 @@ case $ARCH in
|
||||
riscv64) LDCONFIG_ARCH="RISC-V";;
|
||||
+ loongarch64) LDCONFIG_ARCH="double-float";;
|
||||
esac
|
||||
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
index be95b04..1a0decd 100644
|
||||
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
@@ -46,2 +46,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
|
||||
case TargetPlatform.LINUX_RISCV64: return 'Linux RISC-V 64';
|
||||
+ case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
|
||||
|
||||
@@ -71,2 +72,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
|
||||
case TargetPlatform.LINUX_RISCV64: return TargetPlatform.LINUX_RISCV64;
|
||||
+ case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
|
||||
|
||||
@@ -112,2 +114,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
|
||||
}
|
||||
+ if (arch === 'loong64') {
|
||||
+ return TargetPlatform.LINUX_LOONG64;
|
||||
+ }
|
||||
return TargetPlatform.UNKNOWN;
|
||||
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
|
||||
index 10152de..3eb0412 100644
|
||||
--- a/src/vs/platform/extensions/common/extensions.ts
|
||||
+++ b/src/vs/platform/extensions/common/extensions.ts
|
||||
@@ -321,2 +321,3 @@ export const enum TargetPlatform {
|
||||
LINUX_RISCV64 = 'linux-riscv64',
|
||||
+ LINUX_LOONG64 = 'linux-loong64',
|
||||
|
||||
392
patches/linux/arch-4-s390x.patch
Normal file
392
patches/linux/arch-4-s390x.patch
Normal file
@@ -0,0 +1,392 @@
|
||||
diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
|
||||
index 3e33f75..052b38f 100755
|
||||
--- a/build/azure-pipelines/linux/setup-env.sh
|
||||
+++ b/build/azure-pipelines/linux/setup-env.sh
|
||||
@@ -88,2 +88,14 @@ elif [ "$npm_config_arch" == "ppc64" ]; then
|
||||
export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
|
||||
+elif [ "$npm_config_arch" == "s390x" ]; then
|
||||
+ # Set compiler toolchain for client native modules
|
||||
+ export CC=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
|
||||
+ export CXX=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
|
||||
+ export CXXFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
|
||||
+ export LDFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
|
||||
+
|
||||
+ # Set compiler toolchain for remote server
|
||||
+ export VSCODE_REMOTE_CC=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
|
||||
+ export VSCODE_REMOTE_CXX=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
|
||||
+ export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
|
||||
+ export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
|
||||
fi
|
||||
diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
|
||||
index 3fedbe9..3c4e291 100644
|
||||
--- a/build/checksums/vscode-sysroot.txt
|
||||
+++ b/build/checksums/vscode-sysroot.txt
|
||||
@@ -8 +8,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501 arm-rpi-linux-
|
||||
fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b powerpc64le-linux-gnu-glibc-2.28.tar.gz
|
||||
+7055f3d40e7195fb1e13f0fbaf5ffadf781bddaca5fd5e0d9972f4157a203fb5 s390x-linux-gnu-glibc-2.28.tar.gz
|
||||
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
|
||||
index 52f9a12..4b890f4 100644
|
||||
--- a/build/gulpfile.reh.js
|
||||
+++ b/build/gulpfile.reh.js
|
||||
@@ -53,2 +53,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'loong64' },
|
||||
+ { platform: 'linux', arch: 's390x' },
|
||||
{ platform: 'alpine', arch: 'arm64' },
|
||||
diff --git a/build/gulpfile.scan.js b/build/gulpfile.scan.js
|
||||
index 8a8c1eb..1ef390b 100644
|
||||
--- a/build/gulpfile.scan.js
|
||||
+++ b/build/gulpfile.scan.js
|
||||
@@ -29,2 +29,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'loong64' },
|
||||
+ { platform: 'linux', arch: 's390x' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index ee66585..c9f9ceb 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -478,2 +478,3 @@ const BUILD_TARGETS = [
|
||||
{ platform: 'linux', arch: 'loong64' },
|
||||
+ { platform: 'linux', arch: 's390x' },
|
||||
];
|
||||
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
|
||||
index 298181d..dcc42a8 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', ppc64le: 'ppc64el', riscv64: 'riscv64' }[arch];
|
||||
+ return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64', ppc64le: 'ppc64el', riscv64: 'riscv64', s390x: 's390x' }[arch];
|
||||
}
|
||||
@@ -146,3 +146,3 @@ function getRpmBuildPath(rpmArch) {
|
||||
function getRpmPackageArch(arch) {
|
||||
- return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64' }[arch];
|
||||
+ return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64', ppc64le: 'ppc64le', riscv64: 'riscv64', s390x: 's390x' }[arch];
|
||||
}
|
||||
@@ -306,2 +306,3 @@ const BUILD_TARGETS = [
|
||||
{ arch: 'riscv64' },
|
||||
+ { arch: 's390x' },
|
||||
];
|
||||
diff --git a/build/linux/debian/calculate-deps.js b/build/linux/debian/calculate-deps.js
|
||||
index a08ebda..9527119 100644
|
||||
--- a/build/linux/debian/calculate-deps.js
|
||||
+++ b/build/linux/debian/calculate-deps.js
|
||||
@@ -60,2 +60,5 @@ function calculatePackageDeps(binaryPath, arch, chromiumSysroot, vscodeSysroot)
|
||||
break;
|
||||
+ case 's390x':
|
||||
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`, `-l${chromiumSysroot}/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/usr/lib/s390x-linux-gnu`, `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
|
||||
+ break;
|
||||
}
|
||||
diff --git a/build/linux/debian/calculate-deps.ts b/build/linux/debian/calculate-deps.ts
|
||||
index 88ee2f0..8037cf2 100644
|
||||
--- a/build/linux/debian/calculate-deps.ts
|
||||
+++ b/build/linux/debian/calculate-deps.ts
|
||||
@@ -73,2 +73,8 @@ function calculatePackageDeps(binaryPath: string, arch: DebianArchString, chromi
|
||||
break;
|
||||
+ case 's390x':
|
||||
+ cmd.push(`-l${chromiumSysroot}/usr/lib/s390x-linux-gnu`,
|
||||
+ `-l${chromiumSysroot}/lib/s390x-linux-gnu`,
|
||||
+ `-l${vscodeSysroot}/usr/lib/s390x-linux-gnu`,
|
||||
+ `-l${vscodeSysroot}/lib/s390x-linux-gnu`);
|
||||
+ break;
|
||||
}
|
||||
diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
|
||||
index 13cf8f0..9ffd805 100644
|
||||
--- a/build/linux/debian/dep-lists.js
|
||||
+++ b/build/linux/debian/dep-lists.js
|
||||
@@ -220,2 +220,42 @@ exports.referenceGeneratedDepsByArch = {
|
||||
],
|
||||
+ 's390x': [
|
||||
+ '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 7e6938a..8a314ec 100644
|
||||
--- a/build/linux/debian/dep-lists.ts
|
||||
+++ b/build/linux/debian/dep-lists.ts
|
||||
@@ -220,2 +220,42 @@ export const referenceGeneratedDepsByArch = {
|
||||
],
|
||||
+ 's390x': [
|
||||
+ '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 e510426..ce7c75b 100644
|
||||
--- a/build/linux/debian/install-sysroot.js
|
||||
+++ b/build/linux/debian/install-sysroot.js
|
||||
@@ -154,2 +154,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
|
||||
break;
|
||||
+ case 's390x':
|
||||
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
|
||||
+ triple = 's390x-linux-gnu';
|
||||
+ break;
|
||||
}
|
||||
diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
|
||||
index 42841f6..cffae59 100644
|
||||
--- a/build/linux/debian/install-sysroot.ts
|
||||
+++ b/build/linux/debian/install-sysroot.ts
|
||||
@@ -167,2 +167,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
|
||||
break;
|
||||
+ case 's390x':
|
||||
+ expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
|
||||
+ triple = 's390x-linux-gnu';
|
||||
+ break;
|
||||
}
|
||||
diff --git a/build/linux/debian/types.js b/build/linux/debian/types.js
|
||||
index cadefc2..8132812 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', 'ppc64el', 'riscv64'].includes(s);
|
||||
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/debian/types.ts b/build/linux/debian/types.ts
|
||||
index 24fe452..9efba5b 100644
|
||||
--- a/build/linux/debian/types.ts
|
||||
+++ b/build/linux/debian/types.ts
|
||||
@@ -5,6 +5,6 @@
|
||||
|
||||
-export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64';
|
||||
+export type DebianArchString = 'amd64' | 'armhf' | 'arm64' | 'ppc64el' | 'riscv64' | 's390x';
|
||||
|
||||
export function isDebianArchString(s: string): s is DebianArchString {
|
||||
- return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64'].includes(s);
|
||||
+ return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
|
||||
index 4231f09..fc70433 100644
|
||||
--- a/build/linux/rpm/dep-lists.ts
|
||||
+++ b/build/linux/rpm/dep-lists.ts
|
||||
@@ -415,2 +415,102 @@ export const referenceGeneratedDepsByArch = {
|
||||
'xdg-utils'
|
||||
+ ],
|
||||
+ "s390x": [
|
||||
+ '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 99a8cff..e2f3548 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', 'ppc64le', 'riscv64'].includes(s);
|
||||
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
|
||||
}
|
||||
diff --git a/build/linux/rpm/types.ts b/build/linux/rpm/types.ts
|
||||
index d94537e..3834b94 100644
|
||||
--- a/build/linux/rpm/types.ts
|
||||
+++ b/build/linux/rpm/types.ts
|
||||
@@ -5,6 +5,6 @@
|
||||
|
||||
-export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64';
|
||||
+export type RpmArchString = 'x86_64' | 'armv7hl' | 'aarch64' | 'ppc64le' | 'riscv64' | 's390x';
|
||||
|
||||
export function isRpmArchString(s: string): s is RpmArchString {
|
||||
- return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64'].includes(s);
|
||||
+ return ['x86_64', 'armv7hl', 'aarch64', 'ppc64le', 'riscv64', 's390x'].includes(s);
|
||||
}
|
||||
diff --git a/resources/server/bin/helpers/check-requirements-linux.sh b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
index 0b7aa4e..e8b7ce0 100644
|
||||
--- a/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
+++ b/resources/server/bin/helpers/check-requirements-linux.sh
|
||||
@@ -58,2 +58,3 @@ case $ARCH in
|
||||
loongarch64) LDCONFIG_ARCH="double-float";;
|
||||
+ s390x) LDCONFIG_ARCH="64bit";;
|
||||
esac
|
||||
diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
index dedea4c..1043fe4 100644
|
||||
--- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
+++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
|
||||
@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
|
||||
case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
|
||||
+ case TargetPlatform.LINUX_S390X: return 'Linux S390X';
|
||||
|
||||
@@ -76,2 +77,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
|
||||
case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
|
||||
+ case TargetPlatform.LINUX_S390X: return TargetPlatform.LINUX_S390X;
|
||||
|
||||
@@ -120,2 +122,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
|
||||
}
|
||||
+ if (arch === 's390x') {
|
||||
+ return TargetPlatform.LINUX_S390X;
|
||||
+ }
|
||||
return TargetPlatform.UNKNOWN;
|
||||
diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
|
||||
index 6d554ce..51d23fa 100644
|
||||
--- a/src/vs/platform/extensions/common/extensions.ts
|
||||
+++ b/src/vs/platform/extensions/common/extensions.ts
|
||||
@@ -332,2 +332,3 @@ export const enum TargetPlatform {
|
||||
LINUX_LOONG64 = 'linux-loong64',
|
||||
+ LINUX_S390X = 'linux-s390x',
|
||||
|
||||
17
patches/linux/client/avoid-crash-16k-page-size.patch
Normal file
17
patches/linux/client/avoid-crash-16k-page-size.patch
Normal file
@@ -0,0 +1,17 @@
|
||||
diff --git a/src/main.ts b/src/main.ts
|
||||
index c132c9b..51a7290 100644
|
||||
--- a/src/main.ts
|
||||
+++ b/src/main.ts
|
||||
@@ -524,2 +524,12 @@ function getJSFlags(cliArgs: NativeParsedArgs): string | null {
|
||||
|
||||
+ // Fix cppgc crash on Linux with 16KB page size.
|
||||
+ // Refs https://issues.chromium.org/issues/378017037
|
||||
+ // The fix from https://github.com/electron/electron/commit/6c5b2ef55e08dc0bede02384747549c1eadac0eb
|
||||
+ // only affects non-renderer process.
|
||||
+ // The following will ensure that the flag will be
|
||||
+ // applied to the renderer process as well.
|
||||
+ // TODO: Remove this once we update to
|
||||
+ // Chromium >= 134.
|
||||
+ jsFlags.push('--nodecommit_pooled_pages');
|
||||
+
|
||||
return jsFlags.length > 0 ? jsFlags.join(' ') : null;
|
||||
@@ -1,10 +1,14 @@
|
||||
diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
|
||||
index 72dd74f..94d4957 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;
|
||||
diff --git a/build/npm/dirs.js b/build/npm/dirs.js
|
||||
index b9645e6..22f3450 100644
|
||||
--- a/build/npm/dirs.js
|
||||
+++ b/build/npm/dirs.js
|
||||
@@ -47,4 +47,2 @@ const dirs = [
|
||||
'extensions/vscode-test-resolver',
|
||||
- 'remote',
|
||||
- 'remote/web',
|
||||
'test/automation',
|
||||
@@ -59,4 +57,2 @@ if (fs.existsSync(`${__dirname}/../../.build/distro/npm`)) {
|
||||
dirs.push('.build/distro/npm');
|
||||
- dirs.push('.build/distro/npm/remote');
|
||||
- dirs.push('.build/distro/npm/remote/web');
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user