feat: preparing for 1.86 (#1802)

This commit is contained in:
Baptiste Augrain 2024-02-07 00:51:19 +01:00 committed by GitHub
parent 799b71046d
commit d490b06bdb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 1111 additions and 330 deletions

View File

@ -23,6 +23,7 @@ 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' }}
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
@ -114,16 +115,16 @@ jobs:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:focal-x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:focal-arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:focal-armhf
image: vscodium/vscodium-linux-build-agent:bionic-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
container:
image: ${{ matrix.image }}
env:

View File

@ -26,6 +26,7 @@ on:
env:
APP_NAME: VSCodium
ASSETS_REPOSITORY: ${{ github.repository }}
BINARY_NAME: codium
OS_NAME: linux
VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions
VSCODE_QUALITY: stable
@ -118,16 +119,16 @@ jobs:
include:
- vscode_arch: x64
npm_arch: x64
image: vscodium/vscodium-linux-build-agent:focal-x64
image: vscodium/vscodium-linux-build-agent:bionic-x64
- vscode_arch: arm64
npm_arch: arm64
image: vscodium/vscodium-linux-build-agent:focal-arm64
image: vscodium/vscodium-linux-build-agent:bionic-arm64
- vscode_arch: armhf
npm_arch: arm
image: vscodium/vscodium-linux-build-agent:focal-armhf
image: vscodium/vscodium-linux-build-agent:bionic-armhf
- vscode_arch: ppc64le
npm_arch: ppc64
image: vscodium/vscodium-linux-build-agent:focal-ppc64le
image: vscodium/vscodium-linux-build-agent:bionic-ppc64le
container:
image: ${{ matrix.image }}
env:

2
.gitignore vendored
View File

@ -8,9 +8,11 @@ assets/
build/linux/appimage/out
build/linux/appimage/pkg2appimage.AppDir
build/linux/appimage/pkg2appimage-*.AppImage
build/linux/appimage/pkg2appimage.AppImage
build/linux/appimage/squashfs-root
build/linux/appimage/VSCodium
build/windows/msi/releasedir
build/windows/msi/Files*.wxs
build/windows/msi/Files*.wixobj
remote-dependencies.tar
stores/snapcraft/.build

1
.nvmrc.linux Normal file
View File

@ -0,0 +1 @@
16.20

View File

@ -6,6 +6,7 @@
###
export APP_NAME="VSCodium"
export BINARY_NAME="codium"
export CI_BUILD="no"
export SHOULD_BUILD="yes"
export SKIP_ASSETS="yes"
@ -13,10 +14,12 @@ export SKIP_BUILD="no"
export SKIP_SOURCE="no"
export VSCODE_LATEST="no"
export VSCODE_QUALITY="stable"
export VSCODE_SKIP_NODE_VERSION_CHECK="yes"
while getopts ":ilops" opt; do
case "$opt" in
i)
export BINARY_NAME="codium-insiders"
export VSCODE_QUALITY="insider"
;;
l)

View File

@ -239,6 +239,13 @@ if [[ "${ASSETS}" != "null" ]]; then
export SHOULD_BUILD_REH="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
export SHOULD_BUILD_APPIMAGE="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
@ -276,6 +283,7 @@ if [[ "${ASSETS}" != "null" ]]; then
fi
export SHOULD_BUILD_APPIMAGE="no"
export SHOULD_BUILD_SNAP="no"
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
echo "Already have all the Linux arm builds"
@ -283,9 +291,10 @@ if [[ "${ASSETS}" != "null" ]]; then
# linux-ppc64le
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_SNAP="no"
SHOULD_BUILD_TAR="no"
if [[ -z $( contains "${APP_NAME_LC}-reh-linux-ppc64le-${RELEASE_VERSION}.tar.gz" ) ]]; then
@ -322,13 +331,19 @@ if [[ "${ASSETS}" != "null" ]]; then
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
export SHOULD_BUILD_APPIMAGE="no"
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 [[ -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 [[ -z $( contains "${APP_NAME_LC}-reh-linux-x64-${RELEASE_VERSION}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH archive"
@ -348,12 +363,16 @@ else
elif [[ "${OS_NAME}" == "linux" ]]; then
if [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
SHOULD_BUILD_DEB="no"
SHOULD_BUILD_APPIMAGE="no"
SHOULD_BUILD_RPM="no"
SHOULD_BUILD_SNAP="no"
SHOULD_BUILD_TAR="no"
elif [[ "${VSCODE_ARCH}" != "x64" ]]; then
fi
if [[ "${VSCODE_ARCH}" != "x64" ]]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
if [[ "${VSCODE_ARCH}" != "arm64" && "${VSCODE_ARCH}" != "x64" ]]; then
export SHOULD_BUILD_SNAP="no"
fi
elif [[ "${OS_NAME}" == "windows" ]]; then
if [[ "${VSCODE_ARCH}" == "arm64" ]]; then
export SHOULD_BUILD_REH="no"
@ -375,6 +394,7 @@ 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_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}"

View File

@ -25,3 +25,4 @@ The following extensions are not compatible with VSCodium due to their licensing
The following extensions are functional replacements for incompatible extensions:
- [Open Remote - SSH](https://open-vsx.org/extension/jeanp413/open-remote-ssh)
- [Open Remote - WSL](https://open-vsx.org/extension/jeanp413/open-remote-wsl)

View File

@ -17,31 +17,31 @@
## <a id="dependencies"></a>Dependencies
- node 16
- node 18.15
- yarn
- jq
- git
- python3 3.11
### <a id="dependencies-linux"></a>Linux
- GCC
- gcc
- g++
- make
- pkg-config
- libx11-dev
- libxkbfile-dev
- libsecret-1-dev
- libkrb5-dev
- fakeroot
- rpm
- rpmbuild
- dpkg
- python3
- imagemagick (for AppImage)
### <a id="dependencies-macos"></a>MacOS
- imagemagick
- png2icns (`npm install png2icns -g`)
- librsvg
see [the common dependencies](#dependencies)
### <a id="dependencies-windows"></a>Windows
@ -49,8 +49,7 @@
- sed
- 7z
- [WiX Toolset](http://wixtoolset.org/releases/)
- python3
- 'Tools for Native Modules' from hte official Node.js installer
- 'Tools for Native Modules' from the official Node.js installer
## <a id="build-scripts"></a>Build Scripts
@ -66,6 +65,16 @@ The `insider` version can be built with `./build/build.sh -i` on the `insider` b
You can try the latest version with the command `./build/build.sh -il` but the patches might not be up to date.
### Flags
The script `build/build.sh` provides several flags:
- `-i`: build the Insiders version
- `-l`: build with latest version of Visual Studio Code
- `-o`: skip the build step
- `-p`: generate the packages/assets/installers
- `-s`: do not retrieve the source code of Visual Studio Code, it won't delete the existing build
## <a id="build-docker"></a>Build in Docker
To build for Linux, you can alternatively build VSCodium in docker
@ -147,3 +156,11 @@ review-tools.snap-review --allow-classic codium*.snap
- run `yarn watch`
- run `./script/code.sh` until everything is ok
- run `git diff > ../patches/<name>.patch`
### <a id="icons"></a>icons/build_icons.sh
To run `icons/build_icons.sh`, you will need:
- imagemagick
- png2icns (`npm install png2icns -g`)
- librsvg

View File

@ -1,4 +1,4 @@
{
"tag": "1.87.0",
"commit": "2af613979f646fc4dcebfeaedc7d14f138c7b072"
"tag": "1.86.0",
"commit": "05047486b6df5eb8d44b2ecd70ea3bdf775fd937"
}

View File

@ -1,5 +1,5 @@
diff --git a/extensions/configuration-editing/src/configurationEditingMain.ts b/extensions/configuration-editing/src/configurationEditingMain.ts
index f791557..04f138d 100644
index 30e7fd4..76eae3c 100644
--- a/extensions/configuration-editing/src/configurationEditingMain.ts
+++ b/extensions/configuration-editing/src/configurationEditingMain.ts
@@ -54,4 +54,4 @@ function registerVariableCompletions(pattern: string): vscode.Disposable {
@ -354,27 +354,27 @@ index 6259b15..385797a 100644
+ "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VSCodium / Atom, see https://github.com/textmate/swift.tmbundle/issues/29",
"name": "support.variable.swift",
diff --git a/extensions/typescript-language-features/package.nls.json b/extensions/typescript-language-features/package.nls.json
index 796b524..ee7235f 100644
index 0bd09aa..965c131 100644
--- a/extensions/typescript-language-features/package.nls.json
+++ b/extensions/typescript-language-features/package.nls.json
@@ -74,4 +74,4 @@
@@ -84,4 +84,4 @@
"configuration.tsserver.experimental.enableProjectDiagnostics": "(Experimental) Enables project wide error reporting.",
- "typescript.locale": "Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.",
- "typescript.locale.auto": "Use VS Code's configured display language",
+ "typescript.locale": "Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VSCodium's locale.",
+ "typescript.locale.auto": "Use VSCodium's configured display language",
"configuration.implicitProjectConfig.module": "Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.",
@@ -158,3 +158,3 @@
@@ -168,3 +168,3 @@
"typescript.workspaceSymbols.excludeLibrarySymbols": "Exclude symbols that come from library files in Go to Symbol in Workspace results. Requires using TypeScript 5.3+ in the workspace.",
- "typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in VS Code.",
+ "typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in VSCodium.",
"typescript.updateImportsOnFileMove.enabled.prompt": "Prompt on each rename.",
@@ -164,3 +164,3 @@
@@ -174,3 +174,3 @@
"typescript.suggest.enabled": "Enabled/disable autocomplete suggestions.",
- "configuration.surveys.enabled": "Enabled/disable occasional surveys that help us improve VS Code's JavaScript and TypeScript support.",
+ "configuration.surveys.enabled": "Enabled/disable occasional surveys that help us improve VSCodium's JavaScript and TypeScript support.",
"configuration.suggest.completeJSDocs": "Enable/disable suggestion to complete JSDoc comments.",
@@ -216,5 +216,5 @@
@@ -226,5 +226,5 @@
"configuration.suggest.objectLiteralMethodSnippets.enabled": "Enable/disable snippet completions for methods in object literals.",
- "configuration.tsserver.web.projectWideIntellisense.enabled": "Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.",
+ "configuration.tsserver.web.projectWideIntellisense.enabled": "Enable/disable project-wide IntelliSense on web. Requires that VSCodium is running in a trusted context.",
@ -382,7 +382,7 @@ index 796b524..ee7235f 100644
- "configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want VS Code to detect a Node installation.",
+ "configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want VSCodium to detect a Node installation.",
"configuration.experimental.tsserver.web.typeAcquisition.enabled": "Enable/disable package acquisition on the web.",
@@ -229,6 +229,6 @@
@@ -239,6 +239,6 @@
"walkthroughs.nodejsWelcome.debugJsFile.title": "Run and Debug your JavaScript",
- "walkthroughs.nodejsWelcome.debugJsFile.description": "Once you've installed Node.js, you can run JavaScript programs at a terminal by entering ``node your-file-name.js``\nAnother easy way to run Node.js programs is by using VS Code's debugger which lets you run your code, pause at different points, and help you understand what's going on step-by-step.\n[Start Debugging](command:javascript-walkthrough.commands.debugJsFile)",
+ "walkthroughs.nodejsWelcome.debugJsFile.description": "Once you've installed Node.js, you can run JavaScript programs at a terminal by entering ``node your-file-name.js``\nAnother easy way to run Node.js programs is by using VSCodium's debugger which lets you run your code, pause at different points, and help you understand what's going on step-by-step.\n[Start Debugging](command:javascript-walkthrough.commands.debugJsFile)",
@ -438,7 +438,7 @@ index 0796bef..f8061fa 100644
+ vscode.l10n.t("The JS/TS language service crashed.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VSCodium.", pluginExtensionList));
} else {
diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json
index abb85f8..fcac1b0 100644
index fc973ba..59f0076 100644
--- a/extensions/vscode-api-tests/package.json
+++ b/extensions/vscode-api-tests/package.json
@@ -2,3 +2,3 @@
@ -525,22 +525,22 @@ index 6f02aa6..6dbb371 100644
+ this.logService.debug('Starting VSCodium');
this.logService.debug(`from: ${this.environmentMainService.appRoot}`);
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterService.ts b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
index 82de2be..7dc25b4 100644
index 1924ff8..6e3ea1d 100644
--- a/src/vs/code/electron-sandbox/issue/issueReporterService.ts
+++ b/src/vs/code/electron-sandbox/issue/issueReporterService.ts
@@ -800,3 +800,3 @@ export class IssueReporter extends Disposable {
@@ -798,3 +798,3 @@ export class IssueReporter extends Disposable {
hide(descriptionTextArea);
- reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VS Code"));
+ reset(descriptionTitle, localize('handlesIssuesElsewhere', "This extension handles issues outside of VSCodium"));
reset(descriptionSubtitle, localize('elsewhereDescription', "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.", selectedExtension.displayName));
diff --git a/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts b/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts
index 64f4b30..26dccf9 100644
index 2dfd230..5ef5694 100644
--- a/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts
+++ b/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.ts
@@ -19,3 +19,3 @@ export class ToggleTabFocusModeAction extends Action2 {
id: ToggleTabFocusModeAction.ID,
- title: nls.localize2({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, 'Toggle Tab Key Moves Focus'),
+ title: nls.localize2({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VSCodium'] }, 'Toggle Tab Key Moves Focus'),
- title: { value: nls.localize({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, 'Toggle Tab Key Moves Focus'), original: 'Toggle Tab Key Moves Focus' },
+ title: { value: nls.localize({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VSCodium'] }, 'Toggle Tab Key Moves Focus'), original: 'Toggle Tab Key Moves Focus' },
precondition: undefined,
diff --git a/src/vs/platform/contextkey/common/contextkeys.ts b/src/vs/platform/contextkey/common/contextkeys.ts
index 296245b..cf03674 100644
@ -552,7 +552,7 @@ index 296245b..cf03674 100644
+export const ProductQualityContext = new RawContextKey<string>('productQualityType', '', localize('productQualityType', "Quality type of VSCodium"));
diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
index 217d772..09022c8 100644
index c713791..fad2850 100644
--- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts
+++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts
@@ -151,3 +151,3 @@ export class ExtensionManagementService extends AbstractExtensionManagementServi
@ -565,12 +565,12 @@ index 217d772..09022c8 100644
- throw new Error(nls.localize('removeError', "Error while removing the extension: {0}. Please Quit and Start VS Code before trying again.", toErrorMessage(e)));
+ throw new Error(nls.localize('removeError', "Error while removing the extension: {0}. Please Quit and Start VSCodium before trying again.", toErrorMessage(e)));
}
@@ -987,3 +987,3 @@ class InstallVSIXTask extends InstallExtensionTask {
@@ -981,3 +981,3 @@ class InstallVSIXTask extends InstallExtensionTask {
} catch (e) {
- throw new Error(nls.localize('restartCode', "Please restart VS Code before reinstalling {0}.", this.manifest.displayName || this.manifest.name));
+ throw new Error(nls.localize('restartCode', "Please restart VSCodium before reinstalling {0}.", this.manifest.displayName || this.manifest.name));
}
@@ -1000,3 +1000,3 @@ class InstallVSIXTask extends InstallExtensionTask {
@@ -994,3 +994,3 @@ class InstallVSIXTask extends InstallExtensionTask {
} catch (e) {
- throw new Error(nls.localize('restartCode', "Please restart VS Code before reinstalling {0}.", this.manifest.displayName || this.manifest.name));
+ throw new Error(nls.localize('restartCode', "Please restart VSCodium before reinstalling {0}.", this.manifest.displayName || this.manifest.name));
@ -632,10 +632,10 @@ index 6695c4b..e46be6e 100644
+ console.error('Unable to connect to VSCodium server: ' + message);
console.error(err);
diff --git a/src/vs/workbench/api/browser/viewsExtensionPoint.ts b/src/vs/workbench/api/browser/viewsExtensionPoint.ts
index 03ab97c..6c2f974 100644
index c51db51..4ddc16c 100644
--- a/src/vs/workbench/api/browser/viewsExtensionPoint.ts
+++ b/src/vs/workbench/api/browser/viewsExtensionPoint.ts
@@ -48,3 +48,3 @@ const viewsContainerSchema: IJSONSchema = {
@@ -49,3 +49,3 @@ const viewsContainerSchema: IJSONSchema = {
id: {
- description: localize({ key: 'vscode.extension.contributes.views.containers.id', comment: ['Contribution refers to those that an extension contributes to VS Code through an extension/contribution point. '] }, "Unique id used to identify the container in which views can be contributed using 'views' contribution point"),
+ description: localize({ key: 'vscode.extension.contributes.views.containers.id', comment: ['Contribution refers to those that an extension contributes to VSCodium through an extension/contribution point. '] }, "Unique id used to identify the container in which views can be contributed using 'views' contribution point"),
@ -668,7 +668,7 @@ index 806a6b6..3ea5aa5 100644
+ test('Opening a notebook results in VSCodium firing the event onDidChangeActiveNotebookEditor twice #118470', function () {
let count = 0;
diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts
index c0f3952..a85e147 100644
index c3ec65e..170b994 100644
--- a/src/vs/workbench/browser/workbench.contribution.ts
+++ b/src/vs/workbench/browser/workbench.contribution.ts
@@ -610,3 +610,3 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
@ -695,7 +695,7 @@ index 8b49ea2..308dc4a 100644
+ template.navbar.push(ExtensionEditorTab.Contributions, localize('contributions', "Feature Contributions"), localize('contributionstooltip', "Lists contributions to VSCodium by this extension"));
}
diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
index aeb392d..95dbac9 100644
index 2254a20..5a8f04e 100644
--- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
@@ -300,3 +300,3 @@ CommandsRegistry.registerCommand({
@ -724,7 +724,7 @@ index aeb392d..95dbac9 100644
+ const message = requireReload ? localize('InstallVSIXAction.successReload', "Completed installing {0} extension from VSIX. Please reload VSCodium to enable it.", extension.displayName || extension.name)
: localize('InstallVSIXAction.success', "Completed installing {0} extension from VSIX.", extension.displayName || extension.name);
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
index af3bd7f..53587ae 100644
index eed284e..232eb7a 100644
--- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
@@ -103,3 +103,3 @@ export class PromptExtensionInstallFailureAction extends Action {
@ -739,8 +739,8 @@ index af3bd7f..53587ae 100644
@@ -768,3 +768,3 @@ export class UninstallAction extends ExtensionAction {
await this.extensionsWorkbenchService.uninstall(this.extension);
- alert(localize('uninstallExtensionComplete', "Please reload Visual Studio Code to complete the uninstallation of the extension {0}.", this.extension.displayName));
+ alert(localize('uninstallExtensionComplete', "Please reload VSCodium to complete the uninstallation of the extension {0}.", this.extension.displayName));
- alert(localize('uninstallExtensionComplete', "Please reload Visual Studio Code to complete the uninstallation of the extension {0}.", this.extension!.displayName));
+ alert(localize('uninstallExtensionComplete', "Please reload VSCodium to complete the uninstallation of the extension {0}.", this.extension!.displayName));
} catch (error) {
@@ -2316,3 +2316,3 @@ export class ExtensionStatusAction extends ExtensionAction {
const link = `[${localize('settings', "settings")}](${URI.parse(`command:workbench.action.openSettings?${encodeURIComponent(JSON.stringify([this.extension.deprecationInfo.settings.map(setting => `@id:${setting}`).join(' ')]))}`)})`;
@ -758,7 +758,7 @@ index af3bd7f..53587ae 100644
+ const message = requireReload ? localize('ReinstallAction.successReload', "Please reload VSCodium to complete reinstalling the extension {0}.", extension.identifier.id)
: localize('ReinstallAction.success', "Reinstalling the extension {0} is completed.", extension.identifier.id);
diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
index 7787578..40d6864 100644
index bb3f66c..5d01908 100644
--- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
+++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
@@ -360,3 +360,3 @@ export class Extension implements IExtension {
@ -782,22 +782,22 @@ index 7787578..40d6864 100644
+ return nls.localize('postUpdateTooltip', "Please reload VSCodium to enable the updated extension.");
}
@@ -1141,3 +1141,3 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
if (runningExtensionServer === this.extensionManagementServerService.remoteExtensionManagementServer && this.extensionManifestPropertiesService.prefersExecuteOnUI(extension.local.manifest) && extensionInOtherServer.server === this.extensionManagementServerService.localExtensionManagementServer) {
if (runningExtensionServer === this.extensionManagementServerService.remoteExtensionManagementServer && this.extensionManifestPropertiesService.prefersExecuteOnUI(extension.local!.manifest) && extensionInOtherServer.server === this.extensionManagementServerService.localExtensionManagementServer) {
- return nls.localize('enable locally', "Please reload Visual Studio Code to enable this extension locally.");
+ return nls.localize('enable locally', "Please reload VSCodium to enable this extension locally.");
}
@@ -1146,3 +1146,3 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
if (runningExtensionServer === this.extensionManagementServerService.localExtensionManagementServer && this.extensionManifestPropertiesService.prefersExecuteOnWorkspace(extension.local.manifest) && extensionInOtherServer.server === this.extensionManagementServerService.remoteExtensionManagementServer) {
if (runningExtensionServer === this.extensionManagementServerService.localExtensionManagementServer && this.extensionManifestPropertiesService.prefersExecuteOnWorkspace(extension.local!.manifest) && extensionInOtherServer.server === this.extensionManagementServerService.remoteExtensionManagementServer) {
- return nls.localize('enable remote', "Please reload Visual Studio Code to enable this extension in {0}.", this.extensionManagementServerService.remoteExtensionManagementServer?.label);
+ return nls.localize('enable remote', "Please reload VSCodium to enable this extension in {0}.", this.extensionManagementServerService.remoteExtensionManagementServer?.label);
}
@@ -1156,3 +1156,3 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
if (this.extensionManifestPropertiesService.prefersExecuteOnUI(extension.local.manifest)) {
if (this.extensionManifestPropertiesService.prefersExecuteOnUI(extension.local!.manifest)) {
- return nls.localize('postEnableTooltip', "Please reload Visual Studio Code to enable this extension.");
+ return nls.localize('postEnableTooltip', "Please reload VSCodium to enable this extension.");
}
@@ -1162,3 +1162,3 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
if (this.extensionManifestPropertiesService.prefersExecuteOnWorkspace(extension.local.manifest)) {
if (this.extensionManifestPropertiesService.prefersExecuteOnWorkspace(extension.local!.manifest)) {
- return nls.localize('postEnableTooltip', "Please reload Visual Studio Code to enable this extension.");
+ return nls.localize('postEnableTooltip', "Please reload VSCodium to enable this extension.");
}
@ -831,7 +831,7 @@ index 3e8cd71..6142f61 100644
+ '\t// List of extensions recommended by VSCodium that should not be recommended for users of this workspace.',
'\t"unwantedRecommendations": [',
diff --git a/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts b/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts
index e58341f..0146ef9 100644
index 7b36ebb..d4c9602 100644
--- a/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts
+++ b/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts
@@ -107,3 +107,3 @@ export class ExternalTerminalContribution implements IWorkbenchContribution {
@ -866,7 +866,7 @@ index 568c39f..7660d3f 100644
+ patternErrorMessage: localize('vscode.extension.contributes.localizations.translations.id.pattern', "Id should be `vscode` or in format `publisherId.extensionName` for translating VSCodium or an extension respectively.")
},
diff --git a/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.ts b/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.ts
index 6d1349a..4905782 100644
index fdbef87..0f6a6fa 100644
--- a/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.ts
+++ b/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.ts
@@ -95,4 +95,4 @@ interface IUnknownLayout {
@ -877,10 +877,10 @@ index 6d1349a..4905782 100644
+ `// ${nls.localize('doc', 'Open VSCodium and run "Developer: Inspect Key Mappings (JSON)" from Command Palette.')}`,
``,
diff --git a/src/vs/workbench/contrib/remoteTunnel/electron-sandbox/remoteTunnel.contribution.ts b/src/vs/workbench/contrib/remoteTunnel/electron-sandbox/remoteTunnel.contribution.ts
index 305f9ba..f4f2ee2 100644
index a1123af..e040bb7 100644
--- a/src/vs/workbench/contrib/remoteTunnel/electron-sandbox/remoteTunnel.contribution.ts
+++ b/src/vs/workbench/contrib/remoteTunnel/electron-sandbox/remoteTunnel.contribution.ts
@@ -559,3 +559,3 @@ export class RemoteTunnelWorkbenchContribution extends Disposable implements IWo
@@ -563,3 +563,3 @@ export class RemoteTunnelWorkbenchContribution extends Disposable implements IWo
},
- "You can now access this machine anywhere via the secure tunnel [{0}](command:{4}). To connect via a different machine, use the generated [{1}]({2}) link or use the [{6}]({7}) extension in the desktop or web. You can [configure](command:{3}) or [turn off](command:{5}) this access via the VS Code Accounts menu.",
+ "You can now access this machine anywhere via the secure tunnel [{0}](command:{4}). To connect via a different machine, use the generated [{1}]({2}) link or use the [{6}]({7}) extension in the desktop or web. You can [configure](command:{3}) or [turn off](command:{5}) this access via the VSCodium Accounts menu.",
@ -895,10 +895,10 @@ index b24d91f..a098a62 100644
+ const message = await this.tasExperimentService?.getTreatment<string>('CESSurveyMessage') ?? nls.localize('cesSurveyQuestion', 'Got a moment to help the VSCodium team? Please tell us about your experience with VSCodium so far.');
const button = await this.tasExperimentService?.getTreatment<string>('CESSurveyButton') ?? nls.localize('giveFeedback', "Give Feedback");
diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
index 27f92a6..4298f45 100644
index d96c5ab..2078244 100644
--- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
+++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
@@ -3164,3 +3164,3 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
@@ -3161,3 +3161,3 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
if (response.code && response.code === TerminateResponseCode.ProcessNotFound) {
- this._notificationService.error(nls.localize('TerminateAction.noProcess', 'The launched process doesn\'t exist anymore. If the task spawned background tasks exiting VS Code might result in orphaned processes.'));
+ this._notificationService.error(nls.localize('TerminateAction.noProcess', 'The launched process doesn\'t exist anymore. If the task spawned background tasks exiting VSCodium might result in orphaned processes.'));
@ -1008,7 +1008,7 @@ index 2117ec5..6ad1388 100644
+ localize({ key: 'newThemeNotification', comment: ['{0} is the name of the new default theme'] }, "VSCodium now ships with a new default theme '{0}'. Do you want to give it a try?", theme.label),
choices,
diff --git a/src/vs/workbench/contrib/update/browser/update.ts b/src/vs/workbench/contrib/update/browser/update.ts
index d57afcd..43c0249 100644
index b0ada2a..b922fc7 100644
--- a/src/vs/workbench/contrib/update/browser/update.ts
+++ b/src/vs/workbench/contrib/update/browser/update.ts
@@ -555,4 +555,4 @@ export class SwitchProductQualityContribution extends Disposable implements IWor
@ -1024,7 +1024,7 @@ index d57afcd..43c0249 100644
+ detail: nls.localize('selectSyncService.detail', "The Insiders version of VSCodium will synchronize your settings, keybindings, extensions, snippets and UI State using separate insiders settings sync service by default."),
buttons: [
diff --git a/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts b/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts
index c5c2258..fb5045b 100644
index c13d93e..206e46a 100644
--- a/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts
+++ b/src/vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider.ts
@@ -55,3 +55,3 @@ function computeTrustedDomainContent(defaultTrustedDomains: string[], trustedDom
@ -1038,7 +1038,7 @@ index c5c2258..fb5045b 100644
+ content += `// By default, VSCodium trusts "localhost".\n`;
}
diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
index a804657..5378d4c 100644
index 3d0ae3e..6b3dd83 100644
--- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
+++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
@@ -310,3 +310,3 @@ configurationRegistry.registerConfiguration({
@ -1161,15 +1161,15 @@ index e3fe20c..b879dca 100644
+Well if you have got this far then you will have touched on some of the editing features in VSCodium. But don't stop now :) We have lots of additional [documentation](https://code.visualstudio.com/docs), [introductory videos](https://code.visualstudio.com/docs/getstarted/introvideos) and [tips and tricks](https://go.microsoft.com/fwlink/?linkid=852118) for the product that will help you learn how to use it. And while you are here, here are a few additional things you can try:
- Open the Integrated Terminal by pressing kb(workbench.action.terminal.toggleTerminal), then see what's possible by [reviewing the terminal documentation](https://code.visualstudio.com/docs/editor/integrated-terminal)
diff --git a/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts b/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts
index 74f1866..3e419cb 100644
index dbb1822..10a7f41 100644
--- a/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts
+++ b/src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts
@@ -735,3 +735,3 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
@@ -731,3 +731,3 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
default: true,
- description: localize('workspace.trust.description', "Controls whether or not Workspace Trust is enabled within VS Code."),
+ description: localize('workspace.trust.description', "Controls whether or not Workspace Trust is enabled within VSCodium."),
tags: [WORKSPACE_TRUST_SETTING_TAG],
@@ -781,3 +781,3 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
@@ -777,3 +777,3 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration)
default: true,
- markdownDescription: localize('workspace.trust.emptyWindow.description', "Controls whether or not the empty window is trusted by default within VS Code. When used with `#{0}#`, you can enable the full functionality of VS Code without prompting in an empty window.", WORKSPACE_TRUST_UNTRUSTED_FILES),
+ markdownDescription: localize('workspace.trust.emptyWindow.description', "Controls whether or not the empty window is trusted by default within VSCodium. When used with `#{0}#`, you can enable the full functionality of VSCodium without prompting in an empty window.", WORKSPACE_TRUST_UNTRUSTED_FILES),
@ -1198,10 +1198,10 @@ index 5dcc2ff..8b02544 100644
+ const productName = localize('VSCodium for Web', "{0} for the Web", this.productService.nameLong);
const virtualWorkspaceSupport = this.extensionManifestPropertiesService.getExtensionVirtualWorkspaceSupportType(manifest);
diff --git a/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts b/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts
index 11e368b..537beec 100644
index ecc45f8..30df37d 100644
--- a/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts
+++ b/src/vs/workbench/services/extensions/browser/extensionUrlHandler.ts
@@ -88,3 +88,3 @@ type ExtensionUrlHandlerClassification = {
@@ -90,3 +90,3 @@ type ExtensionUrlHandlerClassification = {
readonly extensionId: { classification: 'PublicNonPersonalData'; purpose: 'FeatureInsight'; comment: 'The ID of the extension that should handle the URI' };
- comment: 'This is used to understand the drop funnel of extension URI handling by the OS & VS Code.';
+ comment: 'This is used to understand the drop funnel of extension URI handling by the OS & VSCodium.';
@ -1265,7 +1265,7 @@ index ed8bae3..863e6dd 100644
+ description: nls.localize('vscode.extension.scripts.uninstall', 'Uninstall hook for VSCodium extension. Script that gets executed when the extension is completely uninstalled from VSCodium which is when VSCodium is restarted (shutdown and start) after the extension is uninstalled. Only Node scripts are supported.'),
type: 'string'
diff --git a/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts b/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts
index cdd507e..c390af5 100644
index 123f189..1c73250 100644
--- a/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts
+++ b/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts
@@ -174,3 +174,3 @@ export class NativeExtensionService extends AbstractExtensionService implements

View File

@ -35,7 +35,7 @@ index bfd5c89..bc84f18 100644
+ const productJsonUpdate = { commit, date, checksums, version, release };
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 8c2b62f..098f8d9 100644
index 8c2b62f..303fb16 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -24,4 +24,2 @@ const commit = getVersion(root);
@ -48,11 +48,13 @@ index 8c2b62f..098f8d9 100644
- .pipe(replace('@@VERSION@@', packageJson.version + '-' + linuxPackageRevision))
+ .pipe(replace('@@VERSION@@', `${packageJson.version}.${packageJson.release}`))
.pipe(replace('@@ARCHITECTURE@@', debArch))
@@ -196,2 +194,3 @@ function prepareRpmPackage(arch) {
.pipe(replace('@@RELEASE@@', linuxPackageRevision))
@@ -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 +269,3 @@ function prepareSnapPackage(arch) {
@@ -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}`))
@ -95,7 +97,7 @@ index 0be311f..d6c4a18 100644
+ 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 9482a2c..c3ef5bd 100644
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) {

View File

@ -1,21 +1,25 @@
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 8c2b62f..4e1d6ff 100644
index 8c2b62f..843e8d4 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -302,4 +302,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
@@ -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 +307,3 @@ BUILD_TARGETS.forEach(({ arch }) => {
@@ -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 e40ed70..7bbd195 100644
index e40ed70..3e7dbc9 100644
--- a/build/linux/dependencies-generator.js
+++ b/build/linux/dependencies-generator.js
@@ -24,3 +24,3 @@ const product = require("../../product.json");
@ -23,8 +27,13 @@ index e40ed70..7bbd195 100644
-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/118.0.5993.159: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 12bc3c0..3c69e43 100644
index 12bc3c0..4c3a4ac 100644
--- a/build/linux/dependencies-generator.ts
+++ b/build/linux/dependencies-generator.ts
@@ -25,3 +25,3 @@ import product = require('../../product.json');
@ -32,6 +41,11 @@ index 12bc3c0..3c69e43 100644
-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

View File

@ -0,0 +1,42 @@
diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
index df18cf0..7f485a0 100644
--- a/build/gulpfile.reh.js
+++ b/build/gulpfile.reh.js
@@ -374,10 +374,2 @@ function packageTask(type, platform, arch, sourceFolderName, destinationFolderNa
- if (platform === 'linux' || platform === 'alpine') {
- result = es.merge(result,
- gulp.src(`resources/server/bin/helpers/check-requirements-linux.sh`, { base: '.' })
- .pipe(rename(`bin/helpers/check-requirements.sh`))
- .pipe(util.setExecutableBit())
- );
- }
-
return result.pipe(vfs.dest(destination));
diff --git a/resources/server/bin/code-server-linux.sh b/resources/server/bin/code-server-linux.sh
index e3d96bd..3df32df 100644
--- a/resources/server/bin/code-server-linux.sh
+++ b/resources/server/bin/code-server-linux.sh
@@ -11,22 +11,2 @@ ROOT="$(dirname "$(dirname "$(readlink -f "$0")")")"
-# Do not remove this check.
-# Provides a way to skip the server requirements check from
-# outside the install flow. A system process can create this
-# file before the server is downloaded and installed.
-skip_check=0
-if [ -f "/tmp/vscode-skip-server-requirements-check" ]; then
- echo "!!! WARNING: Skipping server pre-requisite check !!!"
- echo "!!! Server stability is not guaranteed. Proceed at your own risk. !!!"
- skip_check=1
-fi
-
-# Check platform requirements
-if [ "$(echo "$@" | grep -c -- "--skip-requirements-check")" -eq 0 ] && [ $skip_check -eq 0 ]; then
- $ROOT/bin/helpers/check-requirements.sh
- exit_code=$?
- if [ $exit_code -ne 0 ]; then
- exit $exit_code
- fi
-fi
-
"$ROOT/node" ${INSPECT:-} "$ROOT/out/server-main.js" "$@"

View File

@ -0,0 +1,17 @@
diff --git a/build/lib/fetch.js b/build/lib/fetch.js
index ba23e78..9b8a5a1 100644
--- a/build/lib/fetch.js
+++ b/build/lib/fetch.js
@@ -13,2 +13,3 @@ const crypto = require("crypto");
const through2 = require("through2");
+const fetch = require("node-fetch");
function fetchUrls(urls, options) {
diff --git a/remote/.yarnrc b/remote/.yarnrc
index adbe2d2..dfc3bd7 100644
--- a/remote/.yarnrc
+++ b/remote/.yarnrc
@@ -1,3 +1,3 @@
disturl "https://nodejs.org/dist"
-target "18.17.1"
+target "16.20.2"
ms_build_id "252256"

View File

@ -125,7 +125,7 @@ elif [[ "${OS_NAME}" == "windows" ]]; then
else
cd vscode || { echo "'vscode' dir not found"; exit 1; }
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" || "${SHOULD_BUILD_SNAP}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
fi
@ -133,9 +133,13 @@ else
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
fi
# if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
# . ../build/linux/appimage/build.sh
# fi
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
. ../build/linux/appimage/build.sh
fi
if [[ "${SHOULD_BUILD_SNAP}" != "no" ]]; then
. ../stores/snapcraft/build.sh
fi
cd ..
@ -156,12 +160,17 @@ else
mv vscode/.build/linux/rpm/*/*.rpm assets/
fi
# if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
# echo "Moving AppImage"
# mv build/linux/appimage/out/*.AppImage* assets/
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
echo "Moving AppImage"
mv build/linux/appimage/out/*.AppImage* assets/
# find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
# fi
find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
fi
if [[ "${SHOULD_BUILD_SNAP}" != "no" ]]; then
echo "Moving Snap"
mv stores/snapcraft/.build/*.snap assets/
fi
VSCODE_PLATFORM="linux"
fi

View File

@ -61,6 +61,18 @@ export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
if [[ "${OS_NAME}" == "linux" ]]; then
export VSCODE_SKIP_NODE_VERSION_CHECK=1
mv ../.nvmrc.linux ../.nvmrc
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}" >&2
exit 1
fi
fi
done
fi
if [[ "${OS_NAME}" == "osx" ]]; then

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Name=@@NAME_LONG@@ - URL Handler
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --open-url %U
Icon=@@ICON@@
Type=Application
NoDisplay=true
StartupNotify=true
Categories=Utility;TextEditor;Development;IDE;
MimeType=x-scheme-handler/@@URLPROTOCOL@@;
Keywords=vscodium;codium;vscode;

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>@@NAME@@.desktop</id>
<metadata_license>@@LICENSE@@</metadata_license>
<project_license>@@LICENSE@@</project_license>
<name>@@NAME_LONG@@</name>
<url type="homepage">https://www.vscodium.com</url>
<summary>VSCodium. Code editing. Redefined.</summary>
<description>
<p>VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's editor VS Code.</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://www.vscodium.com/img/vscodium.png</image>
<caption>Editing C</caption>
</screenshot>
</screenshots>
</component>

View File

@ -0,0 +1,27 @@
[Desktop Entry]
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Icon=@@ICON@@
Type=Application
StartupNotify=false
StartupWMClass=@@NAME_SHORT@@
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-@@NAME@@-workspace;
Actions=new-empty-window;
Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide
Name[it]=Nuova finestra vuota
Name[ja]=
Name[ko]=
Name[ru]=Новое пустое окно
Name[zh_CN]=
Name[zh_TW]=
Exec=@@EXEC@@ --new-window %F
Icon=@@ICON@@

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Name=@@NAME_LONG@@ - URL Handler
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --open-url %U
Icon=@@ICON@@
Type=Application
NoDisplay=true
StartupNotify=true
Categories=Utility;TextEditor;Development;IDE;
MimeType=x-scheme-handler/@@URLPROTOCOL@@;
Keywords=vscodium;codium;vscode;

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>@@NAME@@.desktop</id>
<metadata_license>@@LICENSE@@</metadata_license>
<project_license>@@LICENSE@@</project_license>
<name>@@NAME_LONG@@</name>
<url type="homepage">https://www.vscodium.com</url>
<summary>VSCodium. Code editing. Redefined.</summary>
<description>
<p>VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's editor VS Code.</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://www.vscodium.com/img/vscodium.png</image>
<caption>Editing C</caption>
</screenshot>
</screenshots>
</component>

View File

@ -0,0 +1,27 @@
[Desktop Entry]
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Icon=@@ICON@@
Type=Application
StartupNotify=false
StartupWMClass=@@NAME_SHORT@@
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-@@NAME@@-workspace;
Actions=new-empty-window;
Keywords=vscodium;codium;vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Name[de]=Neues leeres Fenster
Name[es]=Nueva ventana vacía
Name[fr]=Nouvelle fenêtre vide
Name[it]=Nuova finestra vuota
Name[ja]=
Name[ko]=
Name[ru]=Новое пустое окно
Name[zh_CN]=
Name[zh_TW]=
Exec=@@EXEC@@ --new-window %F
Icon=@@ICON@@

75
stores/snapcraft/build.sh Executable file
View File

@ -0,0 +1,75 @@
#!/usr/bin/env bash
set -ex
CALLER_DIR=$( pwd )
cd "$( dirname "${BASH_SOURCE[0]}" )"
# Include utilities
. ../../utils.sh
ICON_NAME="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
ICON_NAME="${ICON_NAME}-insiders"
fi
rm -rf .build
mkdir -p .build/snap/gui
DEB_ARCHIVE=$( ls ../../assets/*.deb )
if [[ -z "${DEB_ARCHIVE}" ]]; then
ARCHITECTURE=$( dpkg --print-architecture )
# Get GitHub releases
wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O latest.json
DEB_URL=$( jq -r 'map(select(.tag_name == "'"${RELEASE_VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${ARCHITECTURE}.deb"'"))' latest.json )
DEB_ARCHIVE=$( basename "${DEB_URL}" )
# Downloading .deb
wget "${DEB_URL}" -O "${DEB_ARCHIVE}"
rm latest.json
fi
# Unpacking .deb
dpkg -x "${DEB_ARCHIVE}" .build/deb
mkdir -p .build/snap/usr/share
mv ".build/deb/usr/share/${BINARY_NAME}" ".build/snap/usr/share/${BINARY_NAME}"
# Prepare snapcraft.yaml
cp ${VSCODE_QUALITY}/snapcraft.yaml .build/snap/snapcraft.yaml
SNAP_VERSION=$( echo "${RELEASE_VERSION}" | sed 's|\-insider||' )
replace "s|@@SNAP_NAME@@|${BINARY_NAME}|g" .build/snap/snapcraft.yaml
replace "s|@@SNAP_VERSION@@|${SNAP_VERSION}|g" .build/snap/snapcraft.yaml
# Prepare electron-launch
cp ${VSCODE_QUALITY}/electron-launch .build/snap/electron-launch
# Prepare GUI
cp "../../src/${VSCODE_QUALITY}/resources/linux/code.png" ".build/snap/gui/${BINARY_NAME}.png"
cp .build/deb/usr/share/applications/*.desktop .build/snap/gui
sed -i "s|Exec=/usr/share/${BINARY_NAME}/${BINARY_NAME}|Exec=${BINARY_NAME} --force-user-env|g" ".build/snap/gui/${BINARY_NAME}.desktop"
sed -i "s|Exec=/usr/share/${BINARY_NAME}/${BINARY_NAME}|Exec=${BINARY_NAME} --force-user-env|g" ".build/snap/gui/${BINARY_NAME}-url-handler.desktop"
sed -i "s|Icon=${ICON_NAME}|Icon=\${SNAP}/meta/gui/${BINARY_NAME}.png|g" ".build/snap/gui/${BINARY_NAME}.desktop"
sed -i "s|Icon=${ICON_NAME}|Icon=\${SNAP}/meta/gui/${BINARY_NAME}.png|g" ".build/snap/gui/${BINARY_NAME}-url-handler.desktop"
# Clean up
rm -rf .build/deb
cd .build
if [[ "${CI_BUILD}" != "no" ]]; then
snapcraft
else
snapcraft --use-lxd --debug
fi
cd "${CALLER_DIR}"

View File

@ -0,0 +1,264 @@
#!/usr/bin/env bash
# On Fedora $SNAP is under /var and there is some magic to map it to /snap.
# We need to handle that case and reset $SNAP
SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
#
# Exports are based on https://github.com/snapcore/snapcraft/blob/master/extensions/desktop/common/desktop-exports
#
# ensure_dir_exists calls `mkdir -p` if the given path is not a directory.
# This speeds up execution time by avoiding unnecessary calls to mkdir.
#
# Usage: ensure_dir_exists <path> [<mkdir-options>]...
#
function ensure_dir_exists() {
[ -d "$1" ] || mkdir -p "$@"
}
declare -A PIDS
function async_exec() {
"$@" &
PIDS[$!]=$*
}
function wait_for_async_execs() {
for pid in "${!PIDS[@]}"
do
wait "$pid" && continue || echo "ERROR: ${PIDS[$pid]} exited abnormally with status $?"
done
}
function prepend_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${dir}${var:+:$var}"
fi
}
function append_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${var:+$var:}${dir}"
fi
}
function copy_env_variable() {
local -n var="$1"
if [[ "+$var" ]]; then
export "${!var}_VSCODE_SNAP_ORIG=${var}"
else
export "${!var}_VSCODE_SNAP_ORIG=''"
fi
}
# shellcheck source=/dev/null
source "$SNAP_USER_DATA/.last_revision" 2>/dev/null || true
if [ "$SNAP_DESKTOP_LAST_REVISION" = "$SNAP_VERSION" ]; then
needs_update=false
else
needs_update=true
fi
# Set $REALHOME to the users real home directory
REALHOME=$(getent passwd $UID | cut -d ':' -f 6)
# Set config folder to local path
ensure_dir_exists "$SNAP_USER_DATA/.config"
chmod 700 "$SNAP_USER_DATA/.config"
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
ARCH="arm-linux-gnueabihf"
elif [ "$SNAP_ARCH" == "arm64" ]; then
ARCH="aarch64-linux-gnu"
else
ARCH="$SNAP_ARCH-linux-gnu"
fi
export SNAP_LAUNCHER_ARCH_TRIPLET="$ARCH"
function is_subpath() {
dir="$(realpath "$1")"
parent="$(realpath "$2")"
[ "${dir##"${parent}"/}" != "${dir}" ] && return 0 || return 1
}
function can_open_file() {
[ -f "$1" ] && [ -r "$1" ]
}
# Preserve system variables that get modified below
copy_env_variable XDG_CONFIG_DIRS
copy_env_variable XDG_DATA_DIRS
copy_env_variable LOCPATH
copy_env_variable GIO_MODULE_DIR
copy_env_variable GSETTINGS_SCHEMA_DIR
copy_env_variable GDK_PIXBUF_MODULE_FILE
copy_env_variable GDK_PIXBUF_MODULEDIR
copy_env_variable GDK_BACKEND
copy_env_variable GTK_PATH
copy_env_variable GTK_EXE_PREFIX
copy_env_variable GTK_IM_MODULE_FILE
# XDG Config
prepend_dir XDG_CONFIG_DIRS "$SNAP/etc/xdg"
# Define snaps' own data dir
prepend_dir XDG_DATA_DIRS "$SNAP/usr/share"
prepend_dir XDG_DATA_DIRS "$SNAP/share"
prepend_dir XDG_DATA_DIRS "$SNAP/data-dir"
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA"
# Set XDG_DATA_HOME to local path
ensure_dir_exists "$SNAP_USER_DATA/.local/share"
# Workaround for GLib < 2.53.2 not searching for schemas in $XDG_DATA_HOME:
# https://bugzilla.gnome.org/show_bug.cgi?id=741335
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA/.local/share"
# Set cache folder to local path
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$SNAP_USER_COMMON/.cache" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
ensure_dir_exists "$SNAP_USER_COMMON/.cache"
# Create $XDG_RUNTIME_DIR if not exists (to be removed when LP: #1656340 is fixed)
# shellcheck disable=SC2174
ensure_dir_exists "$XDG_RUNTIME_DIR" -m 700
# Ensure the app finds locale definitions (requires locales-all to be installed)
append_dir LOCPATH "$SNAP/usr/lib/locale"
# If detect wayland server socket, then set environment so applications prefer
# wayland, and setup compat symlink (until we use user mounts. Remember,
# XDG_RUNTIME_DIR is /run/user/<uid>/snap.$SNAP so look in the parent directory
# for the socket. For details:
# https://forum.snapcraft.io/t/wayland-dconf-and-xdg-runtime-dir/186/10
# Applications that don't support wayland natively may define DISABLE_WAYLAND
# (to any non-empty value) to skip that logic entirely.
wayland_available=false
if [[ -n "$XDG_RUNTIME_DIR" && -z "$DISABLE_WAYLAND" ]]; then
wdisplay="wayland-0"
if [ -n "$WAYLAND_DISPLAY" ]; then
wdisplay="$WAYLAND_DISPLAY"
fi
wayland_sockpath="$XDG_RUNTIME_DIR/../$wdisplay"
wayland_snappath="$XDG_RUNTIME_DIR/$wdisplay"
if [ -S "$wayland_sockpath" ]; then
# if running under wayland, use it
#export WAYLAND_DEBUG=1
# shellcheck disable=SC2034
wayland_available=true
# create the compat symlink for now
if [ ! -e "$wayland_snappath" ]; then
ln -s "$wayland_sockpath" "$wayland_snappath"
fi
fi
fi
# Keep an array of data dirs, for looping through them
IFS=':' read -r -a data_dirs_array <<< "$XDG_DATA_DIRS"
# Build mime.cache
# needed for gtk and qt icon
if [ "$needs_update" = true ]; then
rm -rf "$SNAP_USER_DATA/.local/share/mime"
if [ ! -f "$SNAP/usr/share/mime/mime.cache" ]; then
if command -v update-mime-database >/dev/null; then
cp --preserve=timestamps -dR "$SNAP/usr/share/mime" "$SNAP_USER_DATA/.local/share"
async_exec update-mime-database "$SNAP_USER_DATA/.local/share/mime"
fi
fi
fi
# Gio modules and cache (including gsettings module)
export GIO_MODULE_DIR="$SNAP_USER_COMMON/.cache/gio-modules"
function compile_giomodules {
if [ -f "$1/glib-2.0/gio-querymodules" ]; then
rm -rf "$GIO_MODULE_DIR"
ensure_dir_exists "$GIO_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gio/modules/*.so "$GIO_MODULE_DIR"
"$1/glib-2.0/gio-querymodules" "$GIO_MODULE_DIR"
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_giomodules "/snap/core20/current/usr/lib/$ARCH"
fi
# Setup compiled gsettings schema
export GSETTINGS_SCHEMA_DIR="$SNAP_USER_DATA/.local/share/glib-2.0/schemas"
function compile_schemas {
if [ -f "$1" ]; then
rm -rf "$GSETTINGS_SCHEMA_DIR"
ensure_dir_exists "$GSETTINGS_SCHEMA_DIR"
for ((i = 0; i < ${#data_dirs_array[@]}; i++)); do
schema_dir="${data_dirs_array[$i]}/glib-2.0/schemas"
if [ -f "$schema_dir/gschemas.compiled" ]; then
# This directory already has compiled schemas
continue
fi
if [ -n "$(ls -A "$schema_dir"/*.xml 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.xml "$GSETTINGS_SCHEMA_DIR"
fi
if [ -n "$(ls -A "$schema_dir"/*.override 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.override "$GSETTINGS_SCHEMA_DIR"
fi
done
# Only compile schemas if we copied anything
if [ -n "$(ls -A "$GSETTINGS_SCHEMA_DIR"/*.xml "$GSETTINGS_SCHEMA_DIR"/*.override 2>/dev/null)" ]; then
"$1" "$GSETTINGS_SCHEMA_DIR"
fi
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_schemas "/snap/core20/current/usr/lib/$ARCH/glib-2.0/glib-compile-schemas"
fi
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$SNAP_USER_COMMON/.cache/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ "$needs_update" = true ] || [ ! -f "$GDK_PIXBUF_MODULE_FILE" ]; then
rm -f "$GDK_PIXBUF_MODULE_FILE"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
async_exec "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
fi
# shellcheck disable=SC2154
if [ "$wayland_available" = true ]; then
export GDK_BACKEND="wayland"
fi
append_dir GTK_PATH "$SNAP/usr/lib/$ARCH/gtk-3.0"
append_dir GTK_PATH "$SNAP/usr/lib/gtk-3.0"
# We don't have gtk libraries in this path but
# enforcing this environment variable will disallow
# gtk binaries like `gtk-query-immodules` to not search
# in system default library paths.
# Based on https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkmodules.c#L104-136
export GTK_EXE_PREFIX="$SNAP/usr"
# ibus and fcitx integration
GTK_IM_MODULE_DIR="$SNAP_USER_COMMON/.cache/immodules"
export GTK_IM_MODULE_FILE="$GTK_IM_MODULE_DIR/immodules.cache"
# shellcheck disable=SC2154
if [ "$needs_update" = true ]; then
rm -rf "$GTK_IM_MODULE_DIR"
ensure_dir_exists "$GTK_IM_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gtk-3.0/3.0.0/immodules/*.so "$GTK_IM_MODULE_DIR"
async_exec "$SNAP/usr/lib/$ARCH/libgtk-3-0/gtk-query-immodules-3.0" > "$GTK_IM_MODULE_FILE"
fi
# shellcheck disable=SC2154
[ "$needs_update" = true ] && echo "SNAP_DESKTOP_LAST_REVISION=$SNAP_VERSION" > "$SNAP_USER_DATA/.last_revision"
wait_for_async_execs
exec "$@"

View File

@ -1,34 +0,0 @@
#!/usr/bin/env bash
# On Fedora $SNAP is under /var and there is some magic to map it to /snap.
# We need to handle that case and reset $SNAP
SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
ARCH="arm-linux-gnueabihf"
elif [ "$SNAP_ARCH" == "arm64" ]; then
ARCH="aarch64-linux-gnu"
else
ARCH="$SNAP_ARCH-linux-gnu"
fi
GDK_CACHE_DIR="$SNAP_USER_COMMON/.cache"
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$GDK_CACHE_DIR" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
[ ! -d "$GDK_CACHE_DIR" ] && mkdir -p "$GDK_CACHE_DIR"
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$GDK_CACHE_DIR/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
"$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
# Create $XDG_RUNTIME_DIR if not exists (to be removed when https://pad.lv/1656340 is fixed)
[ -n "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" -m 700
exec "$@"

View File

@ -1,86 +0,0 @@
name: codium-insiders
adopt-info: codium-insiders
summary: Code editing. Redefined.
description: |
Binary releases of Code Insiders without branding/telemetry/licensing
base: core18
grade: stable
confinement: classic
compression: lzo
parts:
codium-insiders:
plugin: nil
override-build: |
set -eu
ARCHITECTURE=$(dpkg --print-architecture)
# Get GitHub releases
wget --quiet https://api.github.com/repos/VSCodium/vscodium-insiders/releases -O latest.json
VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' latest.json)
DEB_URL=$(jq -r 'map(select(.tag_name == "'"$VERSION"'"))|first.assets[].browser_download_url|select(endswith("'"_$ARCHITECTURE.deb"'"))' latest.json)
DEB=$(basename "${DEB_URL}")
# Downloading .deb"
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
# Unpacking .deb"
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
rm -f latest.json
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}"
# Set version
snapcraftctl set-version "$(echo "${VERSION}" | sed 's|\-insider||')"
# Correct path to icon.
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/usr/share/pixmaps/vscodium-insiders.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop
sed -i 's|Exec=/usr/share/codium-insiders/codium-insiders|Exec=codium-insiders|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders.desktop
sed -i 's|Icon=vscodium-insiders|Icon=${SNAP}/usr/share/pixmaps/vscodium-insiders.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-insiders-url-handler.desktop
build-packages:
- wget
- jq
stage-packages:
- fcitx-frontend-gtk3
- gvfs-libs
- libasound2
- libgconf-2-4
- libglib2.0-bin
- libgnome-keyring0
- libgtk-3-0
- libnotify4
- libnspr4
- libnss3
- libpcre3
- libpulse0
- libsecret-1-0
- libxshmfence1
- libxss1
- libxtst6
- zlib1g
- libx11-xcb1
- libxkbfile1
- libdrm2
- libgbm1
- libxcb-dri3-0
prime:
- -usr/share/doc
- -usr/share/fonts
- -usr/share/icons
- -usr/share/lintian
- -usr/share/man
- -usr/share/codium/chrome-sandbox
electron-launch:
after:
- codium-insiders
plugin: dump
source: snap/local
apps:
codium-insiders:
command: electron-launch $SNAP/usr/share/codium-insiders/bin/codium-insiders --no-sandbox
desktop: usr/share/applications/codium-insiders.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas
url-handler:
command: electron-launch $SNAP/usr/share/codium-insiders/bin/codium-insiders --open-url --no-sandbox
desktop: usr/share/applications/codium-insiders-url-handler.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

View File

@ -0,0 +1,81 @@
name: @@SNAP_NAME@@
version: '@@SNAP_VERSION@@'
summary: Code editing. Redefined.
description: |
Binary releases of Visual Studio Code - Insiders without branding/telemetry/licensing
base: core20
grade: stable
confinement: classic
compression: lzo
parts:
@@SNAP_NAME@@:
plugin: dump
source: .
stage-packages:
- ca-certificates
- libasound2
- libatk-bridge2.0-0
- libatk1.0-0
- libatspi2.0-0
- libcairo2
- libcanberra-gtk3-module
- libcurl3-gnutls
- libcurl3-nss
- libcurl4
- libdrm2
- libgbm1
- libgl1
- libglib2.0-0
- libgtk-3-0
- libibus-1.0-5
- libnss3
- libpango-1.0-0
- libsecret-1-0
- libxcomposite1
- libxdamage1
- libxfixes3
- libxkbcommon0
- libxkbfile1
- libxrandr2
- libxss1
- locales-all
- packagekit-gtk3-module
- xdg-utils
prime:
- -usr/share/doc
- -usr/share/fonts
- -usr/share/icons
- -usr/share/lintian
- -usr/share/man
build-attributes:
- enable-patchelf
build-packages:
- patchelf
override-build: |
snapcraftctl build
patchelf --force-rpath --set-rpath '$ORIGIN/../../lib/x86_64-linux-gnu:$ORIGIN:/snap/core20/current/lib/x86_64-linux-gnu' $SNAPCRAFT_PART_INSTALL/snap/usr/share/@@SNAP_NAME@@/chrome_crashpad_handler
cleanup:
after:
- @@SNAP_NAME@@
plugin: nil
build-snaps:
- core20
build-packages:
- patchelf
override-prime: |
set -eux
for snap in "core20"; do
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" \;
done
patchelf --print-rpath $SNAPCRAFT_PRIME/snap/usr/share/@@SNAP_NAME@@/chrome_crashpad_handler
apps:
@@SNAP_NAME@@:
command: electron-launch $SNAP/snap/usr/share/@@SNAP_NAME@@/bin/@@SNAP_NAME@@ --no-sandbox
common-id: @@SNAP_NAME@@.desktop
url-handler:
command: electron-launch $SNAP/snap/usr/share/@@SNAP_NAME@@/bin/@@SNAP_NAME@@ --open-url --no-sandbox

View File

@ -0,0 +1,264 @@
#!/usr/bin/env bash
# On Fedora $SNAP is under /var and there is some magic to map it to /snap.
# We need to handle that case and reset $SNAP
SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
#
# Exports are based on https://github.com/snapcore/snapcraft/blob/master/extensions/desktop/common/desktop-exports
#
# ensure_dir_exists calls `mkdir -p` if the given path is not a directory.
# This speeds up execution time by avoiding unnecessary calls to mkdir.
#
# Usage: ensure_dir_exists <path> [<mkdir-options>]...
#
function ensure_dir_exists() {
[ -d "$1" ] || mkdir -p "$@"
}
declare -A PIDS
function async_exec() {
"$@" &
PIDS[$!]=$*
}
function wait_for_async_execs() {
for pid in "${!PIDS[@]}"
do
wait "$pid" && continue || echo "ERROR: ${PIDS[$pid]} exited abnormally with status $?"
done
}
function prepend_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${dir}${var:+:$var}"
fi
}
function append_dir() {
local -n var="$1"
local dir="$2"
# We can't check if the dir exists when the dir contains variables
if [[ "$dir" == *"\$"* || -d "$dir" ]]; then
export "${!var}=${var:+$var:}${dir}"
fi
}
function copy_env_variable() {
local -n var="$1"
if [[ "+$var" ]]; then
export "${!var}_VSCODE_SNAP_ORIG=${var}"
else
export "${!var}_VSCODE_SNAP_ORIG=''"
fi
}
# shellcheck source=/dev/null
source "$SNAP_USER_DATA/.last_revision" 2>/dev/null || true
if [ "$SNAP_DESKTOP_LAST_REVISION" = "$SNAP_VERSION" ]; then
needs_update=false
else
needs_update=true
fi
# Set $REALHOME to the users real home directory
REALHOME=$(getent passwd $UID | cut -d ':' -f 6)
# Set config folder to local path
ensure_dir_exists "$SNAP_USER_DATA/.config"
chmod 700 "$SNAP_USER_DATA/.config"
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
ARCH="arm-linux-gnueabihf"
elif [ "$SNAP_ARCH" == "arm64" ]; then
ARCH="aarch64-linux-gnu"
else
ARCH="$SNAP_ARCH-linux-gnu"
fi
export SNAP_LAUNCHER_ARCH_TRIPLET="$ARCH"
function is_subpath() {
dir="$(realpath "$1")"
parent="$(realpath "$2")"
[ "${dir##"${parent}"/}" != "${dir}" ] && return 0 || return 1
}
function can_open_file() {
[ -f "$1" ] && [ -r "$1" ]
}
# Preserve system variables that get modified below
copy_env_variable XDG_CONFIG_DIRS
copy_env_variable XDG_DATA_DIRS
copy_env_variable LOCPATH
copy_env_variable GIO_MODULE_DIR
copy_env_variable GSETTINGS_SCHEMA_DIR
copy_env_variable GDK_PIXBUF_MODULE_FILE
copy_env_variable GDK_PIXBUF_MODULEDIR
copy_env_variable GDK_BACKEND
copy_env_variable GTK_PATH
copy_env_variable GTK_EXE_PREFIX
copy_env_variable GTK_IM_MODULE_FILE
# XDG Config
prepend_dir XDG_CONFIG_DIRS "$SNAP/etc/xdg"
# Define snaps' own data dir
prepend_dir XDG_DATA_DIRS "$SNAP/usr/share"
prepend_dir XDG_DATA_DIRS "$SNAP/share"
prepend_dir XDG_DATA_DIRS "$SNAP/data-dir"
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA"
# Set XDG_DATA_HOME to local path
ensure_dir_exists "$SNAP_USER_DATA/.local/share"
# Workaround for GLib < 2.53.2 not searching for schemas in $XDG_DATA_HOME:
# https://bugzilla.gnome.org/show_bug.cgi?id=741335
prepend_dir XDG_DATA_DIRS "$SNAP_USER_DATA/.local/share"
# Set cache folder to local path
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$SNAP_USER_COMMON/.cache" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
ensure_dir_exists "$SNAP_USER_COMMON/.cache"
# Create $XDG_RUNTIME_DIR if not exists (to be removed when LP: #1656340 is fixed)
# shellcheck disable=SC2174
ensure_dir_exists "$XDG_RUNTIME_DIR" -m 700
# Ensure the app finds locale definitions (requires locales-all to be installed)
append_dir LOCPATH "$SNAP/usr/lib/locale"
# If detect wayland server socket, then set environment so applications prefer
# wayland, and setup compat symlink (until we use user mounts. Remember,
# XDG_RUNTIME_DIR is /run/user/<uid>/snap.$SNAP so look in the parent directory
# for the socket. For details:
# https://forum.snapcraft.io/t/wayland-dconf-and-xdg-runtime-dir/186/10
# Applications that don't support wayland natively may define DISABLE_WAYLAND
# (to any non-empty value) to skip that logic entirely.
wayland_available=false
if [[ -n "$XDG_RUNTIME_DIR" && -z "$DISABLE_WAYLAND" ]]; then
wdisplay="wayland-0"
if [ -n "$WAYLAND_DISPLAY" ]; then
wdisplay="$WAYLAND_DISPLAY"
fi
wayland_sockpath="$XDG_RUNTIME_DIR/../$wdisplay"
wayland_snappath="$XDG_RUNTIME_DIR/$wdisplay"
if [ -S "$wayland_sockpath" ]; then
# if running under wayland, use it
#export WAYLAND_DEBUG=1
# shellcheck disable=SC2034
wayland_available=true
# create the compat symlink for now
if [ ! -e "$wayland_snappath" ]; then
ln -s "$wayland_sockpath" "$wayland_snappath"
fi
fi
fi
# Keep an array of data dirs, for looping through them
IFS=':' read -r -a data_dirs_array <<< "$XDG_DATA_DIRS"
# Build mime.cache
# needed for gtk and qt icon
if [ "$needs_update" = true ]; then
rm -rf "$SNAP_USER_DATA/.local/share/mime"
if [ ! -f "$SNAP/usr/share/mime/mime.cache" ]; then
if command -v update-mime-database >/dev/null; then
cp --preserve=timestamps -dR "$SNAP/usr/share/mime" "$SNAP_USER_DATA/.local/share"
async_exec update-mime-database "$SNAP_USER_DATA/.local/share/mime"
fi
fi
fi
# Gio modules and cache (including gsettings module)
export GIO_MODULE_DIR="$SNAP_USER_COMMON/.cache/gio-modules"
function compile_giomodules {
if [ -f "$1/glib-2.0/gio-querymodules" ]; then
rm -rf "$GIO_MODULE_DIR"
ensure_dir_exists "$GIO_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gio/modules/*.so "$GIO_MODULE_DIR"
"$1/glib-2.0/gio-querymodules" "$GIO_MODULE_DIR"
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_giomodules "/snap/core20/current/usr/lib/$ARCH"
fi
# Setup compiled gsettings schema
export GSETTINGS_SCHEMA_DIR="$SNAP_USER_DATA/.local/share/glib-2.0/schemas"
function compile_schemas {
if [ -f "$1" ]; then
rm -rf "$GSETTINGS_SCHEMA_DIR"
ensure_dir_exists "$GSETTINGS_SCHEMA_DIR"
for ((i = 0; i < ${#data_dirs_array[@]}; i++)); do
schema_dir="${data_dirs_array[$i]}/glib-2.0/schemas"
if [ -f "$schema_dir/gschemas.compiled" ]; then
# This directory already has compiled schemas
continue
fi
if [ -n "$(ls -A "$schema_dir"/*.xml 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.xml "$GSETTINGS_SCHEMA_DIR"
fi
if [ -n "$(ls -A "$schema_dir"/*.override 2>/dev/null)" ]; then
ln -s "$schema_dir"/*.override "$GSETTINGS_SCHEMA_DIR"
fi
done
# Only compile schemas if we copied anything
if [ -n "$(ls -A "$GSETTINGS_SCHEMA_DIR"/*.xml "$GSETTINGS_SCHEMA_DIR"/*.override 2>/dev/null)" ]; then
"$1" "$GSETTINGS_SCHEMA_DIR"
fi
fi
}
if [ "$needs_update" = true ]; then
async_exec compile_schemas "/snap/core20/current/usr/lib/$ARCH/glib-2.0/glib-compile-schemas"
fi
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$SNAP_USER_COMMON/.cache/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ "$needs_update" = true ] || [ ! -f "$GDK_PIXBUF_MODULE_FILE" ]; then
rm -f "$GDK_PIXBUF_MODULE_FILE"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
async_exec "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
fi
# shellcheck disable=SC2154
if [ "$wayland_available" = true ]; then
export GDK_BACKEND="wayland"
fi
append_dir GTK_PATH "$SNAP/usr/lib/$ARCH/gtk-3.0"
append_dir GTK_PATH "$SNAP/usr/lib/gtk-3.0"
# We don't have gtk libraries in this path but
# enforcing this environment variable will disallow
# gtk binaries like `gtk-query-immodules` to not search
# in system default library paths.
# Based on https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkmodules.c#L104-136
export GTK_EXE_PREFIX="$SNAP/usr"
# ibus and fcitx integration
GTK_IM_MODULE_DIR="$SNAP_USER_COMMON/.cache/immodules"
export GTK_IM_MODULE_FILE="$GTK_IM_MODULE_DIR/immodules.cache"
# shellcheck disable=SC2154
if [ "$needs_update" = true ]; then
rm -rf "$GTK_IM_MODULE_DIR"
ensure_dir_exists "$GTK_IM_MODULE_DIR"
ln -s "$SNAP"/usr/lib/"$ARCH"/gtk-3.0/3.0.0/immodules/*.so "$GTK_IM_MODULE_DIR"
async_exec "$SNAP/usr/lib/$ARCH/libgtk-3-0/gtk-query-immodules-3.0" > "$GTK_IM_MODULE_FILE"
fi
# shellcheck disable=SC2154
[ "$needs_update" = true ] && echo "SNAP_DESKTOP_LAST_REVISION=$SNAP_VERSION" > "$SNAP_USER_DATA/.last_revision"
wait_for_async_execs
exec "$@"

View File

@ -1,34 +0,0 @@
#!/usr/bin/env bash
# On Fedora $SNAP is under /var and there is some magic to map it to /snap.
# We need to handle that case and reset $SNAP
SNAP=$(echo "$SNAP" | sed -e "s|/var/lib/snapd||g")
if [ "$SNAP_ARCH" == "amd64" ]; then
ARCH="x86_64-linux-gnu"
elif [ "$SNAP_ARCH" == "armhf" ]; then
ARCH="arm-linux-gnueabihf"
elif [ "$SNAP_ARCH" == "arm64" ]; then
ARCH="aarch64-linux-gnu"
else
ARCH="$SNAP_ARCH-linux-gnu"
fi
GDK_CACHE_DIR="$SNAP_USER_COMMON/.cache"
if [[ -d "$SNAP_USER_DATA/.cache" && ! -e "$GDK_CACHE_DIR" ]]; then
# the .cache directory used to be stored under $SNAP_USER_DATA, migrate it
mv "$SNAP_USER_DATA/.cache" "$SNAP_USER_COMMON/"
fi
[ ! -d "$GDK_CACHE_DIR" ] && mkdir -p "$GDK_CACHE_DIR"
# Gdk-pixbuf loaders
export GDK_PIXBUF_MODULE_FILE="$GDK_CACHE_DIR/gdk-pixbuf-loaders.cache"
export GDK_PIXBUF_MODULEDIR="$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/2.10.0/loaders"
if [ -f "$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" ]; then
"$SNAP/usr/lib/$ARCH/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" > "$GDK_PIXBUF_MODULE_FILE"
fi
# Create $XDG_RUNTIME_DIR if not exists (to be removed when https://pad.lv/1656340 is fixed)
[ -n "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" -m 700
exec "$@"

View File

@ -1,86 +0,0 @@
name: codium
adopt-info: codium
summary: Code editing. Redefined.
description: |
Binary releases of Code without branding/telemetry/licensing
base: core18
grade: stable
confinement: classic
compression: lzo
parts:
codium:
plugin: nil
override-build: |
set -eu
ARCHITECTURE=$(dpkg --print-architecture)
# Get GitHub releases
wget --quiet https://api.github.com/repos/VSCodium/vscodium/releases -O latest.json
VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' latest.json)
DEB_URL=$(jq -r 'map(select(.tag_name == "'"$VERSION"'"))|first.assets[].browser_download_url|select(endswith("'"_$ARCHITECTURE.deb"'"))' latest.json)
DEB=$(basename "${DEB_URL}")
# Downloading .deb"
wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
# Unpacking .deb"
dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
rm -f latest.json
rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}"
# Set version
snapcraftctl set-version "$VERSION"
# Correct path to icon.
sed -i 's|Icon=vscodium|Icon=${SNAP}/usr/share/pixmaps/vscodium.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop
sed -i 's|Exec=/usr/share/codium/codium|Exec=codium|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop
sed -i 's|Icon=vscodium|Icon=/usr/share/pixmaps/vscodium.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop
build-packages:
- wget
- jq
stage-packages:
- fcitx-frontend-gtk3
- gvfs-libs
- libasound2
- libgconf-2-4
- libglib2.0-bin
- libgnome-keyring0
- libgtk-3-0
- libnotify4
- libnspr4
- libnss3
- libpcre3
- libpulse0
- libsecret-1-0
- libxshmfence1
- libxss1
- libxtst6
- zlib1g
- libx11-xcb1
- libxkbfile1
- libdrm2
- libgbm1
- libxcb-dri3-0
prime:
- -usr/share/doc
- -usr/share/fonts
- -usr/share/icons
- -usr/share/lintian
- -usr/share/man
- -usr/share/codium/chrome-sandbox
electron-launch:
after:
- codium
plugin: dump
source: snap/local
apps:
codium:
command: electron-launch $SNAP/usr/share/codium/bin/codium --no-sandbox
desktop: usr/share/applications/codium.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas
url-handler:
command: electron-launch $SNAP/usr/share/codium/bin/codium --open-url --no-sandbox
desktop: usr/share/applications/codium-url-handler.desktop
environment:
GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

View File

@ -0,0 +1,81 @@
name: @@SNAP_NAME@@
version: '@@SNAP_VERSION@@'
summary: Code editing. Redefined.
description: |
Binary releases of Visual Studio Code without branding/telemetry/licensing
base: core20
grade: stable
confinement: classic
compression: lzo
parts:
@@SNAP_NAME@@:
plugin: dump
source: .
stage-packages:
- ca-certificates
- libasound2
- libatk-bridge2.0-0
- libatk1.0-0
- libatspi2.0-0
- libcairo2
- libcanberra-gtk3-module
- libcurl3-gnutls
- libcurl3-nss
- libcurl4
- libdrm2
- libgbm1
- libgl1
- libglib2.0-0
- libgtk-3-0
- libibus-1.0-5
- libnss3
- libpango-1.0-0
- libsecret-1-0
- libxcomposite1
- libxdamage1
- libxfixes3
- libxkbcommon0
- libxkbfile1
- libxrandr2
- libxss1
- locales-all
- packagekit-gtk3-module
- xdg-utils
prime:
- -usr/share/doc
- -usr/share/fonts
- -usr/share/icons
- -usr/share/lintian
- -usr/share/man
build-attributes:
- enable-patchelf
build-packages:
- patchelf
override-build: |
snapcraftctl build
patchelf --force-rpath --set-rpath '$ORIGIN/../../lib/x86_64-linux-gnu:$ORIGIN:/snap/core20/current/lib/x86_64-linux-gnu' $SNAPCRAFT_PART_INSTALL/snap/usr/share/@@SNAP_NAME@@/chrome_crashpad_handler
cleanup:
after:
- @@SNAP_NAME@@
plugin: nil
build-snaps:
- core20
build-packages:
- patchelf
override-prime: |
set -eux
for snap in "core20"; do
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" \;
done
patchelf --print-rpath $SNAPCRAFT_PRIME/snap/usr/share/@@SNAP_NAME@@/chrome_crashpad_handler
apps:
@@SNAP_NAME@@:
command: electron-launch $SNAP/snap/usr/share/@@SNAP_NAME@@/bin/@@SNAP_NAME@@ --no-sandbox
common-id: @@SNAP_NAME@@.desktop
url-handler:
command: electron-launch $SNAP/snap/usr/share/@@SNAP_NAME@@/bin/@@SNAP_NAME@@ --open-url --no-sandbox