Date: Friday, April 28, 2023 @ 14:14:51 Author: mtorromeo Revision: 1449116
upgpkg: code 1.77.3-2: Fixed several issues around cli path / url handling (FS#68755, FS#63250, FS#70668) Added: code/trunk/clipath.patch Modified: code/trunk/PKGBUILD ---------------+ PKGBUILD | 27 ++++++++++++++----------- clipath.patch | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 12 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2023-04-28 13:54:55 UTC (rev 1449115) +++ PKGBUILD 2023-04-28 14:14:51 UTC (rev 1449116) @@ -14,7 +14,7 @@ # Important: Remember to check https://github.com/microsoft/vscode/blob/master/.yarnrc (choose correct tag) for target electron version _electron=electron19 pkgver=1.77.3 -pkgrel=1 +pkgrel=2 arch=('x86_64') url='https://github.com/microsoft/vscode' license=('MIT') @@ -22,16 +22,18 @@ optdepends=('bash-completion: Bash completions' 'zsh-completions: ZSH completitons' 'x11-ssh-askpass: SSH authentication') -makedepends=('git' 'gulp' 'npm' 'python' 'yarn' 'nodejs-lts-gallium') +makedepends=('git' 'gulp' 'npm' 'python' 'yarn' 'nodejs-lts-gallium' 'desktop-file-utils') provides=('vscode') source=("$pkgname::git+$url.git#tag=$pkgver" 'code.js' 'code.sh' - 'product_json.diff') + 'product_json.diff' + 'clipath.patch') sha512sums=('SKIP' '6e8ee1df4dd982434a8295ca99e786a536457c86c34212546e548b115081798c5492a79f99cd5a3f1fa30fb71d29983aaabc2c79f4895d4a709d8354e9e2eade' 'f949779dde4e3fe72f8a62db20edffc3e093c7209981e089f91e7d369274639a66b8cbf95cbdea4f3ea36e219d91e0abadb30f9c8e19e37d6077f9545e55a9a0' - 'b1aa0d7c5b3e3e8ba1172822d75ea38e90efc431b270e0b4ca9e45bf9c0be0f60922c8618969ef071b5b6dbd9ac9f030294f1bf49bcc28c187b46d113dca63a7') + 'b1aa0d7c5b3e3e8ba1172822d75ea38e90efc431b270e0b4ca9e45bf9c0be0f60922c8618969ef071b5b6dbd9ac9f030294f1bf49bcc28c187b46d113dca63a7' + '53c68ed0a4bffa4b19e5ca3de8322870611bca790db84ad60033f1a6ca79d2d95ddd00cfceec2ff4e922240537b5d002c6385e083cf1d0e69df867b5e1d8e197') # Even though we don't officially support other archs, let's # allow the user to use this PKGBUILD to compile the package @@ -59,7 +61,7 @@ sed -e "s|name=electron|name=$_electron |" \ -e '/PKGBUILD/d' \ -i ../code.sh - sed "s|#!/usr/bin/electron|#!/usr/bin/$_electron|" -i ../code.js + sed "1s|.*|#!/usr/lib/$_electron/electron|" -i ../code.js # This patch no longer contains proprietary modifications. # See https://github.com/Microsoft/vscode/issues/31168 for details. @@ -85,8 +87,11 @@ s|@@URLPROTOCOL@@|vscode|g s|inode/directory;||' resources/linux/code{.appdata.xml,.desktop,-url-handler.desktop} - sed -i 's|MimeType=.*|MimeType=x-scheme-handler/code-oss;|' resources/linux/code-url-handler.desktop + desktop-file-edit --set-key StartupWMClass --set-value code-oss resources/linux/code.desktop + cp resources/linux/{code,code-oss}-url-handler.desktop + desktop-file-edit --set-key MimeType --set-value x-scheme-handler/code-oss resources/linux/code-oss-url-handler.desktop + # Add completitions for code-oss cp resources/completions/bash/code resources/completions/bash/code-oss cp resources/completions/zsh/_code resources/completions/zsh/_code-oss @@ -95,10 +100,7 @@ sed -i 's|@@APPNAME@@|code|g' resources/completions/{bash/code,zsh/_code} sed -i 's|@@APPNAME@@|code-oss|g' resources/completions/{bash/code-oss,zsh/_code-oss} - # Fix bin path - sed -i "s|return path.join(path.dirname(execPath), 'bin', \`\${product.applicationName}\`);|return '/usr/bin/code';|g - s|return path.join(appRoot, 'scripts', 'code-cli.sh');|return '/usr/bin/code';|g" \ - src/vs/platform/environment/node/environmentService.ts + patch -p1 -i "$srcdir/clipath.patch" } build() { @@ -120,12 +122,13 @@ # Install binary install -Dm 755 code.sh "$pkgdir"/usr/bin/code-oss install -Dm 755 code.js "$pkgdir"/usr/lib/$pkgname/code.js - ln -sf /usr/bin/code-oss "$pkgdir"/usr/bin/code + ln -sf code-oss "$pkgdir"/usr/bin/code # Install appdata and desktop file install -Dm 644 $pkgname/resources/linux/code.appdata.xml "$pkgdir"/usr/share/metainfo/code-oss.appdata.xml install -Dm 644 $pkgname/resources/linux/code.desktop "$pkgdir"/usr/share/applications/code-oss.desktop - install -Dm 644 $pkgname/resources/linux/code-url-handler.desktop "$pkgdir"/usr/share/applications/code-oss-url-handler.desktop + install -Dm 644 $pkgname/resources/linux/code-url-handler.desktop "$pkgdir"/usr/share/applications/code-url-handler.desktop + install -Dm 644 $pkgname/resources/linux/code-oss-url-handler.desktop "$pkgdir"/usr/share/applications/code-oss-url-handler.desktop install -Dm 644 VSCode-linux-$_vscode_arch/resources/app/resources/linux/code.png "$pkgdir"/usr/share/pixmaps/com.visualstudio.code.oss.png # Install bash and zsh completions Added: clipath.patch =================================================================== --- clipath.patch (rev 0) +++ clipath.patch 2023-04-28 14:14:51 UTC (rev 1449116) @@ -0,0 +1,59 @@ +diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts +index 01f5c343bc6..acbc1789314 100644 +--- a/src/vs/code/node/cli.ts ++++ b/src/vs/code/node/cli.ts +@@ -44,7 +44,7 @@ export async function main(argv: string[]): Promise<any> { + let args: NativeParsedArgs; + + try { +- args = parseCLIProcessArgv(argv); ++ args = parseCLIProcessArgv(argv.slice(Math.max(0, argv.findIndex(a => a.endsWith('/code.js')) - 1))); + } catch (err) { + console.error(err.message); + return; +diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts +index c0f093010fc..9569dba5570 100644 +--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts ++++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts +@@ -12,7 +12,7 @@ import { Emitter, Event } from 'vs/base/common/event'; + import { Disposable } from 'vs/base/common/lifecycle'; + import { Schemas } from 'vs/base/common/network'; + import { dirname, join, resolve } from 'vs/base/common/path'; +-import { isLinux, isLinuxSnap, isMacintosh, isWindows } from 'vs/base/common/platform'; ++import { isLinuxSnap, isMacintosh, isWindows } from 'vs/base/common/platform'; + import { AddFirstParameterToFunctions } from 'vs/base/common/types'; + import { URI } from 'vs/base/common/uri'; + import { realpath } from 'vs/base/node/extpath'; +@@ -527,31 +527,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain + + @memoize + private get cliPath(): string { +- +- // Windows +- if (isWindows) { +- if (this.environmentMainService.isBuilt) { +- return join(dirname(process.execPath), 'bin', `${this.productService.applicationName}.cmd`); +- } +- +- return join(this.environmentMainService.appRoot, 'scripts', 'code-cli.bat'); +- } +- +- // Linux +- if (isLinux) { +- if (this.environmentMainService.isBuilt) { +- return join(dirname(process.execPath), 'bin', `${this.productService.applicationName}`); +- } +- +- return join(this.environmentMainService.appRoot, 'scripts', 'code-cli.sh'); +- } +- +- // macOS +- if (this.environmentMainService.isBuilt) { +- return join(this.environmentMainService.appRoot, 'bin', 'code'); +- } +- +- return join(this.environmentMainService.appRoot, 'scripts', 'code-cli.sh'); ++ return '/usr/bin/code'; + } + + async getOSStatistics(): Promise<IOSStatistics> {