[arch-commits] Commit in code/repos (5 files)

Nicola Squartini tensor5 at archlinux.org
Fri Jun 18 02:37:23 UTC 2021


    Date: Friday, June 18, 2021 @ 02:37:22
  Author: tensor5
Revision: 965092

archrelease: copy trunk to community-staging-x86_64

Added:
  code/repos/community-staging-x86_64/
  code/repos/community-staging-x86_64/PKGBUILD
    (from rev 965091, code/trunk/PKGBUILD)
  code/repos/community-staging-x86_64/code.js
    (from rev 965091, code/trunk/code.js)
  code/repos/community-staging-x86_64/code.sh
    (from rev 965091, code/trunk/code.sh)
  code/repos/community-staging-x86_64/product_json.diff
    (from rev 965091, code/trunk/product_json.diff)

-------------------+
 PKGBUILD          |  156 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 code.js           |   30 ++++++++++
 code.sh           |    4 +
 product_json.diff |   22 +++++++
 4 files changed, 212 insertions(+)

Copied: code/repos/community-staging-x86_64/PKGBUILD (from rev 965091, code/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2021-06-18 02:37:22 UTC (rev 965092)
@@ -0,0 +1,156 @@
+# Maintainer: Filipe Laíns (FFY00) <lains at archlinux.org>
+# Contributor: Michael Hansen <zrax0111 gmail com>
+# Contributor: Francisco Magalhães <franmagneto gmail com>
+
+pkgname=code
+pkgdesc='The Open Source build of Visual Studio Code (vscode) editor'
+# Important: Remember to check https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites for target node version
+# NodeJS versioning cheatsheet:
+#   - carbon: 8
+#   - dubnium: 10
+#   - erbium: 12
+#   - fermium: 14
+# Important: Remember to check https://github.com/microsoft/vscode/blob/master/.yarnrc (choose correct tag) for target electron version
+_electron=electron12
+pkgver=1.56.2
+pkgrel=3
+arch=('x86_64')
+url='https://github.com/microsoft/vscode'
+license=('MIT')
+depends=($_electron 'libsecret' 'libx11' 'libxkbfile' 'ripgrep')
+optdepends=('bash-completion: Bash completions'
+            'zsh-completions: ZSH completitons'
+            'x11-ssh-askpass: SSH authentication')
+makedepends=('git' 'gulp' 'npm' 'python2' 'yarn' 'nodejs-lts-dubnium')
+provides=('vscode')
+source=("$pkgname::git+$url.git#tag=$pkgver"
+        'code.js'
+        'code.sh'
+        'product_json.diff')
+sha512sums=('SKIP'
+            '6e8ee1df4dd982434a8295ca99e786a536457c86c34212546e548b115081798c5492a79f99cd5a3f1fa30fb71d29983aaabc2c79f4895d4a709d8354e9e2eade'
+            'ec26abacfa269eb89601ae17fb6a0a6c106b29b906ea781467e468b5b8fbe5a3bec048819cd0a0eff577807d989c461848cca7cdd2fb306a822afe9b0d058d5a'
+            'b1aa0d7c5b3e3e8ba1172822d75ea38e90efc431b270e0b4ca9e45bf9c0be0f60922c8618969ef071b5b6dbd9ac9f030294f1bf49bcc28c187b46d113dca63a7')
+
+# Even though we don't officially support other archs, let's
+# allow the user to use this PKGBUILD to compile the package
+# for his architecture
+case "$CARCH" in
+  i686)
+    _vscode_arch=ia32
+    ;;
+  x86_64)
+    _vscode_arch=x64
+    ;;
+  armv7h)
+    _vscode_arch=arm
+    ;;
+  *)
+    # Needed for mksrcinfo
+    _vscode_arch=DUMMY
+    ;;
+esac
+
+prepare() {
+  cd $pkgname
+
+  # Change electron binary name to the target electron
+  sed -i "s|exec electron |exec $_electron |" ../code.sh
+  sed -i "s|#!/usr/bin/electron|#!/usr/bin/$_electron|" ../code.js
+
+  # This patch no longer contains proprietary modifications.
+  # See https://github.com/Microsoft/vscode/issues/31168 for details.
+  patch -p0 < ../product_json.diff
+
+  # Set the commit and build date
+  local _commit=$(git rev-parse HEAD)
+  local _datestamp=$(date -u -Is | sed 's/\+00:00/Z/')
+  sed -e "s/@COMMIT@/$_commit/" -e "s/@DATE@/$_datestamp/" -i product.json
+
+  # Build native modules for system electron
+  local _target=$(</usr/lib/$_electron/version)
+  sed -i "s/^target .*/target \"${_target//v/}\"/" .yarnrc
+
+  # Patch appdata and desktop file
+  sed -i 's|/usr/share/@@NAME@@/@@NAME@@|@@NAME@@|g
+          s|@@NAME_SHORT@@|Code|g
+          s|@@NAME_LONG@@|Code - OSS|g
+          s|@@NAME@@|code-oss|g
+          s|@@ICON@@|com.visualstudio.code.oss|g
+          s|@@EXEC@@|/usr/bin/code-oss|g
+          s|@@LICENSE@@|MIT|g
+          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
+
+  # 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
+
+  # Patch completitions with correct names
+  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
+}
+
+build() {
+  # https://github.com/mapbox/node-sqlite3/issues/1044
+  mkdir -p path
+  ln -sf /usr/bin/python2 path/python
+  export PATH="$PWD/path:$PATH"
+
+  cd $pkgname
+
+  yarn install --arch=$_vscode_arch
+
+  # The default memory limit may be too low for current versions of node
+  # to successfully build vscode. Change it if this number still doesn't
+  # work for your system.
+  mem_limit="--max_old_space_size=6144"
+
+  if ! /usr/bin/node $mem_limit /usr/bin/gulp vscode-linux-$_vscode_arch-min
+  then
+      echo
+      echo "*** NOTE: If the build failed due to running out of file handles (EMFILE),"
+      echo "*** you will need to raise your max open file limit."
+      echo "*** You can check this for more information on how to increase this limit:"
+      echo "***    https://ro-che.info/articles/2017-03-26-increase-open-files-limit"
+      exit 1
+  fi
+}
+
+package() {
+  # Install resource files
+  install -dm 755 "$pkgdir"/usr/lib/$pkgname
+  cp -r --no-preserve=ownership --preserve=mode VSCode-linux-$_vscode_arch/resources/app/* "$pkgdir"/usr/lib/$pkgname/
+
+  # Replace statically included binary with system copy
+  ln -sf /usr/bin/rg "$pkgdir"/usr/lib/code/node_modules.asar.unpacked/vscode-ripgrep/bin/rg
+
+  # 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
+
+  # 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 VSCode-linux-$_vscode_arch/resources/app/resources/linux/code.png "$pkgdir"/usr/share/pixmaps/com.visualstudio.code.oss.png
+
+  # Install bash and zsh completions
+  install -Dm 644 $pkgname/resources/completions/bash/code "$pkgdir"/usr/share/bash-completion/completions/code
+  install -Dm 644 $pkgname/resources/completions/bash/code-oss "$pkgdir"/usr/share/bash-completion/completions/code-oss
+  install -Dm 644 $pkgname/resources/completions/zsh/_code "$pkgdir"/usr/share/zsh/site-functions/_code
+  install -Dm 644 $pkgname/resources/completions/zsh/_code-oss "$pkgdir"/usr/share/zsh/site-functions/_code-oss
+
+  # Install license files
+  install -Dm 644 VSCode-linux-$_vscode_arch/resources/app/LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+  install -Dm 644 VSCode-linux-$_vscode_arch/resources/app/ThirdPartyNotices.txt "$pkgdir"/usr/share/licenses/$pkgname/ThirdPartyNotices.txt
+}
+

Copied: code/repos/community-staging-x86_64/code.js (from rev 965091, code/trunk/code.js)
===================================================================
--- community-staging-x86_64/code.js	                        (rev 0)
+++ community-staging-x86_64/code.js	2021-06-18 02:37:22 UTC (rev 965092)
@@ -0,0 +1,30 @@
+#!/usr/bin/electron
+// don't edit the electron binary name here! simply change the variable in the PKGBUILD and we will sed it into the correct one :)
+
+const name = 'code-oss';
+
+const app = require('electron').app;
+const path = require('path');
+const fs = require("fs");
+
+// Change command name.
+const fd = fs.openSync("/proc/self/comm", fs.constants.O_WRONLY);
+fs.writeSync(fd, name);
+fs.closeSync(fd);
+
+// Remove first command line argument (/usr/lib/code/code.js). - We call the CLI file first
+process.argv.splice(0, 1);
+
+// Set application paths.
+const appPath = __dirname;
+const packageJson = require(path.join(appPath, 'package.json'));
+app.setAppPath(appPath);
+app.setDesktopName(name + '.desktop');
+app.setName(name);
+app.setPath('userCache', path.join(app.getPath('cache'), name));
+app.setPath('userData', path.join(app.getPath('appData'), name));
+app.setVersion(packageJson.version);
+
+// Run the application.
+require('module')._load(appPath, module, true);
+

Copied: code/repos/community-staging-x86_64/code.sh (from rev 965091, code/trunk/code.sh)
===================================================================
--- community-staging-x86_64/code.sh	                        (rev 0)
+++ community-staging-x86_64/code.sh	2021-06-18 02:37:22 UTC (rev 965092)
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# don't edit the electron binary name here! simply change the variable in the PKGBUILD and we will sed it into the correct one :)
+ELECTRON_RUN_AS_NODE=1 exec electron12 /usr/lib/code/out/cli.js /usr/lib/code/code.js "$@"

Copied: code/repos/community-staging-x86_64/product_json.diff (from rev 965091, code/trunk/product_json.diff)
===================================================================
--- community-staging-x86_64/product_json.diff	                        (rev 0)
+++ community-staging-x86_64/product_json.diff	2021-06-18 02:37:22 UTC (rev 965092)
@@ -0,0 +1,22 @@
+--- product.json	2019-04-06 13:26:49.879655883 +0100
++++ product.json	2019-04-06 13:26:37.399656243 +0100
+@@ -1,4 +1,19 @@
+ {
++	"quality": "stable",
++	"extensionsGallery": {
++		"serviceUrl": "https://open-vsx.org/vscode/gallery",
++		"itemUrl": "https://open-vsx.org/vscode/item"
++	},
++	"linkProtectionTrustedDomains": [
++		"https://open-vsx.org"
++	],
++	"documentationUrl": "https://code.visualstudio.com/docs",
++	"requestFeatureUrl": "https://github.com/Microsoft/vscode/issues",
++	"introductoryVideosUrl": "https://go.microsoft.com/fwlink/?linkid=832146",
++	"tipsAndTricksUrl": "https://go.microsoft.com/fwlink/?linkid=852118",
++	"keyboardShortcutsUrlLinux": "https://go.microsoft.com/fwlink/?linkid=832144",
++	"commit": "@COMMIT@",
++	"date": "@DATE@",
+ 	"nameShort": "Code - OSS",
+ 	"nameLong": "Code - OSS",
+ 	"applicationName": "code-oss",



More information about the arch-commits mailing list