1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-23 19:25:25 +03:00
aports/testing/code-oss/APKBUILD
2025-05-17 21:47:29 +00:00

199 lines
6.4 KiB
Text

maintainer="lauren n. liberda <lauren@selfisekai.rocks>"
pkgname=code-oss
pkgver=1.100.2
pkgrel=0
# get this from vscodium
_productjson=bd3f4701ad86004512eca8714b3c38965cbd3520
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="
4f29f29e2184d6369da4e89d67e2de51327a13b091be6dda90edd5c0ca56dae6c0b6c294137070248179077ddb7a71a5fd59480f9f3c161d8d58c69fc4111f02 code-oss-1.100.2.tar.gz
c5246da77057562449c9d155f32fa897ae5e262066ef4e941d5968a41b7af8d982320b4c87d508212ab2b72e126649f9c065d9123b81746742013478ceed882b product-bd3f4701ad86004512eca8714b3c38965cbd3520.json
cca94a1762eec922b6fc4a93301087588455a82ea0e19733cb1067deec1fc64e05d466613860820d680dd8cf16e2aca30bc11afc84a315de1a9c2cb12854cbea launcher
9f36c7fa6f0fd6a516f8e22c47f53013337985e59085bf1ea70165d42a513a92aa2a7a99ef0715e752c7190fd39ba703d405838e61bcfb60cabe47c421781eb4 enable-extensions.patch
4f10b14aaab71e69652662dea0dd5ba00d996282bc864743210185d93a9b7c54c71942fe1e7cd630abd914e3c770eca6c2110c13fb6a8c5e728c5172d1d0cd9f no-git.patch
48e46bd2ec1490e456a9227c4d74eae5e5c6a7e48a98f8f463370bf60eb7fcb140337e3e02577dea1eabbc48174e2e3b31a4717a945d5dc21ccdbfd3a9807349 no-res.patch.noauto
7808076aff7037369c9dd40ee07374311a954be513ae08b4c152ff04cbd6fc20ab9e9799e0b62da91135084f98dc55fbe0b593f4a263c30dd12fd88d680f3db0 system-electron.patch.noauto
"