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> {

Reply via email to