Files
PKGBUILDS/zapzap-bin/PKGBUILD
T
Felitendo fa1c190d17 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].
2026-07-27 17:40:53 +02:00

58 lines
2.4 KiB
Bash

# Maintainer: Felitendo
# This PKGBUILD is updated automatically:
# https://github.com/Felitendo/PKGBUILDS
pkgname=zapzap-bin
pkgver=7.1
pkgrel=2
pkgdesc="WhatsApp desktop client written in PyQt6 + PyQt6-WebEngine (upstream wheel)"
arch=('any')
url="https://github.com/rafatosta/zapzap"
license=('GPL-3.0-or-later')
depends=('python' 'python-pyqt6' 'python-pyqt6-webengine' 'python-dbus'
'qt6-wayland')
optdepends=('hunspell: spell check')
provides=('zapzap')
conflicts=('zapzap')
source=("zapzap-${pkgver}-py3-none-any.whl::${url}/releases/download/${pkgver}/zapzap-${pkgver}-py3-none-any.whl"
"${pkgname}-${pkgver}-src.tar.gz::${url}/archive/refs/tags/${pkgver}.tar.gz")
noextract=("zapzap-${pkgver}-py3-none-any.whl")
sha256sums=('2d05afbd547b46ef1d8d9503655198f6d82da66f4a380bfa229891b54de12f74' '5de324039932f189a97f2463cde75bda55a72150e67328876b5689bf0590f60a')
package() {
local _entry _srctree="$srcdir/zapzap-${pkgver}"
# Upstream's wheel, unpacked into a fixed directory instead of
# site-packages: that path moves with every Python minor bump and would
# silently break a package that is only rebuilt on new upstream releases.
install -d "$pkgdir/usr/lib/zapzap"
bsdtar -xpf "$srcdir/zapzap-${pkgver}-py3-none-any.whl" -C "$pkgdir/usr/lib/zapzap"
# ... which also means the wheel's console script cannot be used
_entry="$(sed -n 's/^zapzap *= *//p' \
"$pkgdir/usr/lib/zapzap/zapzap-${pkgver}.dist-info/entry_points.txt")"
[[ -n "$_entry" ]] || { echo "no zapzap entry point in the wheel" >&2; return 1; }
install -d "$pkgdir/usr/bin"
cat > "$pkgdir/usr/bin/zapzap" << EOF
#!/usr/bin/python3
import sys
sys.path.insert(0, "/usr/lib/zapzap")
from ${_entry%%:*} import ${_entry#*:}
sys.exit(${_entry#*:}())
EOF
chmod 755 "$pkgdir/usr/bin/zapzap"
# icon, desktop file and metainfo are not part of the wheel
install -Dm644 "$_srctree/share/icons/com.rtosta.zapzap.svg" \
"$pkgdir/usr/share/icons/hicolor/scalable/apps/com.rtosta.zapzap.svg"
install -Dm644 "$_srctree/share/applications/com.rtosta.zapzap.desktop" \
"$pkgdir/usr/share/applications/com.rtosta.zapzap.desktop"
install -Dm644 "$_srctree/share/metainfo/com.rtosta.zapzap.appdata.xml" \
"$pkgdir/usr/share/metainfo/com.rtosta.zapzap.appdata.xml"
install -Dm644 "$pkgdir/usr/lib/zapzap/zapzap-${pkgver}.dist-info/licenses/LICENSE" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}