summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorCurve2021-02-07 20:18:17 +0100
committerCurve2021-02-07 20:18:17 +0100
commitd81d83098e6a78e50a0eb810e7287b62ae3a7516 (patch)
tree8114dd75c30ffed1f3e11425607eb39269ddc361 /PKGBUILD
downloadaur-d81d83098e6a78e50a0eb810e7287b62ae3a7516.tar.gz
initial commit
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD178
1 files changed, 178 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..8701d452ccf4
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,178 @@
+# Maintainer: Curve <curve.platin at gmail.com>
+# Contributor: Filipe Laíns (FFY00) <lains@archlinux.org>
+# Contributor: Michael Hansen <zrax0111 gmail com>
+# Contributor: Francisco Magalhães <franmagneto gmail com>
+# Contributor: Curve <curve.platin at gmail.com>
+
+pkgname=vscode-transparent-insiders
+_pkgname=code
+pkgdesc='The Open Source build of Visual Studio Code (vscode) editor - with transparency enabled - based on insiders commit'
+# 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
+# - ?: 11 (not in repos)
+# - erbium: 12
+# Important: Remember to check https://github.com/microsoft/vscode/blob/master/.yarnrc (choose correct tag) for target electron version
+_electron=electron9
+_commit=52838cf6799cc448e738677ec37e86cf62a5bd89
+pkgver=1.54.0
+pkgrel=1
+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-erbium')
+conflicts=('code')
+provides=('code')
+install='code-transparent.install'
+source=("$_pkgname::git+$url.git#commit=$_commit"
+ 'code.js'
+ 'code.sh'
+ 'product_json.diff'
+ 'transparent.diff'
+ 'fix-first-window-not-transparent.diff')
+sha512sums=('SKIP'
+ '814c9554427183cd893a33cd2cbe91f6e0ea71921ef0717c86217b1d3058d265f9ff7a9ace3e7b76f122e60b7686475cf4d999e581a1845face3033afb9f745f'
+ '0e75ee88274cbaf48c59ef6f363f6b8ac2ea83f8b17a61155008db773b709a1f0233754fa63a136ec0417313ba90a7eb17db000ec22a38ca8840d8ba6c47cab1'
+ 'b1aa0d7c5b3e3e8ba1172822d75ea38e90efc431b270e0b4ca9e45bf9c0be0f60922c8618969ef071b5b6dbd9ac9f030294f1bf49bcc28c187b46d113dca63a7'
+ 'ae7fc5d2d1851bf9353c3f531a4de05cc5b41496468e908776b7a17cf85e889c601b94499bd6165efb902578af1ebf37443a03881f98d8c6120cb4f8667d8fe7'
+ 'e662f0bf3f55a82ce9bce98f22c6be80ee83c1e2241d2eca596326478887ec6b73c7d0041903e17f35a424578ccc22674354931166dc7c7d7e76bb97135e009e')
+
+# 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
+
+pkgver() {
+ cd "${srcdir}/code"
+ # Get the version number.
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd $_pkgname
+
+ # Change electron binary name to the target electron
+ sed -i "s|exec electron |exec $_electron |" ../code.sh
+
+ # This patch no longer contains proprietary modifications.
+ # See https://github.com/Microsoft/vscode/issues/31168 for details.
+ patch -p0 < ../product_json.diff
+
+ # enable window transparency
+ patch -p1 <../transparent.diff
+
+ # fixes sometimes the first code window is not transparent
+ # https://aur.archlinux.org/packages/code-transparent/#comment-775691
+ # https://github.com/electron/electron/issues/16809
+ patch -p1 <../fix-first-window-not-transparent.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=8192"
+
+ 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
+}