Group A: source upstream binaries instead of self-built artifacts

The AUR does not allow packages to ship a binary tarball built by the
maintainer - a -bin package must repackage a deliverable published by
upstream. These six packages now do that:

  snapx-bin            upstream's self-contained Linux tar.zst
  zapzap-bin           upstream's pure-Python wheel
  faugus-launcher-bin  upstream's arch-independent .deb
  wiiudownloader-bin   upstream's AppImage
  waydroid-helper-bin  upstream's AppImage
  chiaki-ng-bin        upstream's AppImage

All six drop build_artifact() and switch to refresh_checksums(), so CI no
longer builds or hosts anything - it only tracks upstream's assets.

Where the asset name carries build metadata that does not follow from
pkgver (snapx, faugus-launcher), refresh_checksums() resolves it via the
GitHub API and syncs an _asset variable in the PKGBUILD.

Dependency lists are re-derived from what the bundles actually resolve
outside themselves; the AppImage payloads land in /opt with wrappers in
/usr/bin, because their entry points resolve paths relative to argv[0].
This commit is contained in:
Felitendo committed 2026-07-27 17:40:53 +02:00
1 parent c25c2790e8
commit fa1c190d17
19 files changed
+428 -379

No files matched your search

+27 -5
View File
@@ -4,7 +4,7 @@
pkgname=snapx-bin
pkgver=0.4.0
pkgrel=1
pkgrel=2
pkgdesc="Screenshot tool that handles images, text, and video - ShareX fork, Avalonia UI (upstream binary)"
arch=('x86_64')
url="https://github.com/SnapXL/SnapX"
@@ -13,10 +13,32 @@ depends=('glibc' 'gcc-libs' 'hicolor-icon-theme')
provides=('snapx-ui')
conflicts=('snapx-ui')
options=('!strip' '!debug')
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
sha256sums=('d2098cac542bca82e68be0a4fa98db22f2d84d35c683d18582382dc9206eb5ee')
# Upstream asset names embed build metadata that cannot be derived from
# pkgver, so the exact name is tracked here and refreshed automatically.
_asset="SnapX-UI-Release-Linux-0.4.0-alpha.0+g7eafb0f-X64.tar.zst"
source=("${pkgname}-${pkgver}.tar.zst::${url}/releases/download/v${pkgver}/${_asset}"
"${pkgname}-${pkgver}-src.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz")
noextract=("${pkgname}-${pkgver}.tar.zst")
sha256sums=('1cbecd1caca21e611030eedbb8e5a43cc4bf62d55cfa56a2e5c2ac31b3d21e35' 'd85f4d2c3ea55ed5040f166fdf44ce03dd0270dc6ab05ee26771dbd02eaacc06')
package() {
cp -a "$srcdir/usr" "$pkgdir/"
cp -a "$srcdir/opt" "$pkgdir/"
# upstream's self-contained bundle, installed unchanged
install -d "$pkgdir/opt/snapx"
bsdtar -xpf "$srcdir/${pkgname}-${pkgver}.tar.zst" -C "$pkgdir/opt/snapx"
chmod 755 "$pkgdir/opt/snapx/snapx-ui"
# upstream's launcher resolves its own directory, so a symlink from
# /usr/bin would break it - use a wrapper instead
install -d "$pkgdir/usr/bin"
cat > "$pkgdir/usr/bin/snapx-ui" << 'EOF'
#!/bin/sh
exec /opt/snapx/snapx-ui "$@"
EOF
chmod 755 "$pkgdir/usr/bin/snapx-ui"
# desktop entry, icons and metainfo ship in the source tree only
cp -a "$srcdir/SnapX-${pkgver}/packaging/usr/share" "$pkgdir/usr/"
install -Dm644 "$pkgdir/opt/snapx/LICENSE.md" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE.md"
}