maintainer="lauren n. liberda " pkgname=code-oss pkgver=1.101.0 pkgrel=0 # get this from vscodium _productjson=9058cdcc7dcbe45e08c4a3232922877729f89539 pkgdesc="Visual Studio Code (OSS, with VSX)" url="https://github.com/microsoft/vscode" arch="aarch64 x86_64" # electron license="MIT" depends="electron ripgrep" makedepends=" electron-dev jq krb5-dev libsecret-dev libxkbfile-dev nodejs npm oxipng pngquant python3 swc vips-tools " subpackages=" $pkgname-bash-completion $pkgname-zsh-completion " install="$pkgname.post-install" source="$pkgname-$pkgver.tar.gz::https://github.com/microsoft/vscode/archive/refs/tags/$pkgver.tar.gz product-$_productjson.json::https://github.com/VSCodium/vscodium/raw/$_productjson/product.json launcher enable-extensions.patch no-git.patch no-res.patch.noauto system-electron.patch.noauto " builddir="$srcdir/vscode-$pkgver" options="!check net" # no tests (that make sense to run..) export ELECTRON_SKIP_BINARY_DOWNLOAD=1 export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 export SWC_BINARY_PATH=/usr/bin/swc export npm_config_nodedir=/usr/include/electron/node_headers export npm_config_build_from_source=true prepare() { default_prepare sed -i '/^disturl\b/d' .npmrc echo 'ignore-engines="true"' >> .npmrc # block husky git init . # electron 20+ workaround for bad gyp usage # XXX: LARGEFILE64 fixme export CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE" export CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE" export CXXFLAGS="$CXXFLAGS -std=c++20 -D_LARGEFILE64_SOURCE" npm ci --ignore-scripts # repeats the above in each workspace npm_command=ci \ npm_config_ignore_scripts=true \ node build/npm/postinstall.js msg "Removing the binaries" scanelf -RA -F "%F" "$builddir" | while read -r elf; do rm -f "$elf" done patch -Np1 < "$srcdir"/no-res.patch.noauto patch -Np1 < "$srcdir"/system-electron.patch.noauto # patch out telemetry # backported from https://github.com/VSCodium/vscodium/blob/master/undo_telemetry.sh rg --no-ignore -l "\.data\.microsoft\.com" . \ | grep -v "\.map\$" | xargs -t -n 1 -P ${JOBS:-2} sed -i -E "s|//[^/]+\.data\.microsoft\.com|//0\.0\.0\.0|g" # merge the product.json from the repo with one from vscodium repo # this fixes some extensions, including python cp product.json original_product.json jq -s '.[0] * .[1]' original_product.json "$srcdir"/product-$_productjson.json > product.json } build() { npm rebuild \ @parcel/watcher \ @vscode/deviceid \ @vscode/policy-watcher \ @vscode/spdlog \ @vscode/sqlite3 \ kerberos \ native-is-elevated \ native-keymap \ native-watchdog \ node-pty \ windows-foreground-love ( cd build npm rebuild \ esbuild \ keytar ) ( cd extensions npm rebuild \ @parcel/watcher \ esbuild node postinstall.mjs ) ( cd remote npm rebuild \ @parcel/watcher \ kerberos \ node-pty ) node --max_old_space_size=4096 --optimize-for-size ./node_modules/.bin/gulp vscode-linux-x64-min cd resources/linux mv code.png code-1024.png local size for size in 16 24 32 48 64 128 192 256 512; do vips thumbnail code-1024.png code-$size.png $size done pngquant --speed 1 --ext=.png -f code-*.png oxipng -qo max -s safe code-*.png } package() { mkdir -p "$pkgdir"/usr/share/applications sed -e "s|@@NAME_LONG@@|Code - OSS|g" \ -e "s|@@NAME_SHORT@@|Code - OSS|g" \ -e "s|@@NAME@@|code-oss|g" \ -e "s|@@EXEC@@|/usr/bin/code-oss|g" \ -e "s|@@ICON@@|com.visualstudio.code.oss|g" \ -e "s|@@URLPROTOCOL@@|code-oss|g" \ resources/linux/code.desktop > "$pkgdir"/usr/share/applications/code-oss.desktop sed -e "s|@@NAME_LONG@@|Code - OSS|g" \ -e "s|@@NAME_SHORT@@|Code - OSS|g" \ -e "s|@@NAME@@|code-oss|g" \ -e "s|@@EXEC@@|/usr/bin/code-oss|g" \ -e "s|@@ICON@@|com.visualstudio.code.oss|g" \ -e "s|@@URLPROTOCOL@@|code-oss|g" \ resources/linux/code-url-handler.desktop > "$pkgdir"/usr/share/applications/code-oss-url-handler.desktop for size in 16 24 32 48 64 128 192 256 512 1024; do install -Dm644 resources/linux/code-$size.png \ "$pkgdir"/usr/share/icons/hicolor/${size}x$size/apps/com.visualstudio.code.oss.png done mkdir -p "$pkgdir"/usr/share/metainfo sed -e "s|@@NAME_LONG@@|Code - OSS|g" \ -e "s|@@NAME@@|code-oss|g" \ -e "s|@@LICENSE@@|MIT|g" \ resources/linux/code.appdata.xml > "$pkgdir"/usr/share/metainfo/code-oss.appdata.xml mkdir -p "$pkgdir"/usr/share/mime/packages sed -e "s|@@NAME_LONG@@|Code - OSS|g" \ -e "s|@@NAME@@|code-oss|g" \ resources/linux/code-workspace.xml > "$pkgdir"/usr/share/mime/packages/code-oss-workspace.xml mkdir -p "$pkgdir"/usr/share/bash-completion/completions sed -e "s|@@APPNAME@@|code-oss|g" \ resources/completions/bash/code > "$pkgdir"/usr/share/bash-completion/completions/code-oss mkdir -p "$pkgdir"/usr/share/zsh/site-functions sed -e "s|@@APPNAME@@|code-oss|g" \ resources/completions/zsh/_code > "$pkgdir"/usr/share/zsh/site-functions/_code-oss mkdir -p "$pkgdir"/usr/lib/code-oss/resources cp -a ../VSCode-linux-x64/resources/app "$pkgdir"/usr/lib/code-oss/resources/ # disable update server sed -i "/updateUrl/d" "$pkgdir"/usr/lib/code-oss/resources/app/product.json # link to system rg mkdir -p "$pkgdir"/usr/lib/code-oss/resources/app/node_modules/@vscode/ripgrep/bin/ ln -sfv /usr/bin/rg \ "$pkgdir"/usr/lib/code-oss/resources/app/node_modules/@vscode/ripgrep/bin/rg install -Dm755 "$srcdir"/launcher "$pkgdir"/usr/bin/code-oss } sha512sums=" 2f716bade5b72e0abcd524de864b8200ec48aefed8fde45dfddfefea8d274ca4e6d67da260b1e14dc999f49cd39ef23df002d8e9bda25004452673cd40a4d153 code-oss-1.101.0.tar.gz bd88399fd0e7ad2999b195e28016e0d8c0bdc2ffffcffc357357bd17389d7833b6ccd8dc8023752c0f6168a0bc4e28e316bafd0c3550b5bb1279c2ab00509a4b product-9058cdcc7dcbe45e08c4a3232922877729f89539.json cca94a1762eec922b6fc4a93301087588455a82ea0e19733cb1067deec1fc64e05d466613860820d680dd8cf16e2aca30bc11afc84a315de1a9c2cb12854cbea launcher 9f36c7fa6f0fd6a516f8e22c47f53013337985e59085bf1ea70165d42a513a92aa2a7a99ef0715e752c7190fd39ba703d405838e61bcfb60cabe47c421781eb4 enable-extensions.patch 4f10b14aaab71e69652662dea0dd5ba00d996282bc864743210185d93a9b7c54c71942fe1e7cd630abd914e3c770eca6c2110c13fb6a8c5e728c5172d1d0cd9f no-git.patch 48e46bd2ec1490e456a9227c4d74eae5e5c6a7e48a98f8f463370bf60eb7fcb140337e3e02577dea1eabbc48174e2e3b31a4717a945d5dc21ccdbfd3a9807349 no-res.patch.noauto 7808076aff7037369c9dd40ee07374311a954be513ae08b4c152ff04cbd6fc20ab9e9799e0b62da91135084f98dc55fbe0b593f4a263c30dd12fd88d680f3db0 system-electron.patch.noauto "