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

+26 -24
View File
@@ -1,32 +1,29 @@
pkgbase = chiaki-ng-bin
pkgdesc = Free and Open Source PlayStation Remote Play client (prebuilt)
pkgdesc = Free and Open Source PlayStation Remote Play client (upstream AppImage)
pkgver = 1.10.0
pkgrel = 1
pkgrel = 2
url = https://streetpea.github.io/chiaki-ng/
arch = x86_64
license = LicenseRef-AGPL-3.0-only-OpenSSL
depends = curl
depends = ffmpeg
depends = fftw
depends = gcc-libs
depends = glibc
depends = hicolor-icon-theme
depends = hidapi
depends = json-c
depends = libidn2
depends = libplacebo
depends = libpsl
depends = libssh2
depends = miniupnpc
depends = openssl
depends = opus
depends = qt6-base
depends = qt6-declarative
depends = qt6-svg
depends = qt6-webengine
depends = sdl2
depends = speexdsp
depends = gcc-libs
depends = zlib
depends = bzip2
depends = brotli
depends = expat
depends = libgpg-error
depends = e2fsprogs
depends = fontconfig
depends = freetype2
depends = alsa-lib
depends = libx11
depends = libxcb
depends = libdrm
depends = libva
depends = libglvnd
depends = mesa
depends = vulkan-icd-loader
depends = hicolor-icon-theme
optdepends = intel-media-driver: vaapi backend for Intel GPUs [>= Broadwell]
optdepends = libva-intel-driver: vaapi backend for Intel GPUs [<= Haswell]
optdepends = libva-mesa-driver: vaapi backend for AMD GPUs
@@ -34,7 +31,12 @@ pkgbase = chiaki-ng-bin
provides = chiaki
conflicts = chiaki-ng
conflicts = chiaki
source = chiaki-ng-bin-1.10.0-1.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/chiaki-ng-bin-1.10.0/chiaki-ng-bin-1.10.0.tar.zst
sha256sums = 76c55be0342c651a65ffe5df5ed14930d43b844590cac9f4ea67d23e80557599
noextract = chiaki-ng-bin-1.10.0.AppImage
options = !strip
options = !debug
source = chiaki-ng-bin-1.10.0.AppImage::https://github.com/streetpea/chiaki-ng/releases/download/v1.10.0/chiaki-ng.AppImage_x86_64
source = COPYING-1.10.0::https://raw.githubusercontent.com/streetpea/chiaki-ng/v1.10.0/COPYING
sha256sums = cac42c21a19a111f2f0729bb9eef7d3878c6d2a4f06e017d383aff2aba719fd3
sha256sums = fff3acb5eddbde97746cc1ad2082a1e95f50c2315a8748b26b8a81a499d8d216
pkgname = chiaki-ng-bin
+47 -9
View File
@@ -4,23 +4,61 @@
pkgname=chiaki-ng-bin
pkgver=1.10.0
pkgrel=1
pkgdesc="Free and Open Source PlayStation Remote Play client (prebuilt)"
pkgrel=2
pkgdesc="Free and Open Source PlayStation Remote Play client (upstream AppImage)"
arch=('x86_64')
url="https://streetpea.github.io/chiaki-ng/"
license=('LicenseRef-AGPL-3.0-only-OpenSSL')
depends=('curl' 'ffmpeg' 'fftw' 'gcc-libs' 'glibc' 'hicolor-icon-theme'
'hidapi' 'json-c' 'libidn2' 'libplacebo' 'libpsl' 'libssh2'
'miniupnpc' 'openssl' 'opus' 'qt6-base' 'qt6-declarative' 'qt6-svg'
'qt6-webengine' 'sdl2' 'speexdsp' 'zlib')
# the AppImage bundles Qt6, ffmpeg, SDL and the rest of the stack; these are
# what is left over
depends=('glibc' 'gcc-libs' 'zlib' 'bzip2' 'brotli' 'expat' 'libgpg-error'
'e2fsprogs' 'fontconfig' 'freetype2' 'alsa-lib' 'libx11' 'libxcb'
'libdrm' 'libva' 'libglvnd' 'mesa' 'vulkan-icd-loader'
'hicolor-icon-theme')
optdepends=('intel-media-driver: vaapi backend for Intel GPUs [>= Broadwell]'
'libva-intel-driver: vaapi backend for Intel GPUs [<= Haswell]'
'libva-mesa-driver: vaapi backend for AMD GPUs')
provides=('chiaki-ng' 'chiaki')
conflicts=('chiaki-ng' 'chiaki')
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
sha256sums=('76c55be0342c651a65ffe5df5ed14930d43b844590cac9f4ea67d23e80557599')
options=('!strip' '!debug')
source=("${pkgname}-${pkgver}.AppImage::https://github.com/streetpea/chiaki-ng/releases/download/v${pkgver}/chiaki-ng.AppImage_x86_64"
"COPYING-${pkgver}::https://raw.githubusercontent.com/streetpea/chiaki-ng/v${pkgver}/COPYING")
noextract=("${pkgname}-${pkgver}.AppImage")
sha256sums=('cac42c21a19a111f2f0729bb9eef7d3878c6d2a4f06e017d383aff2aba719fd3' 'fff3acb5eddbde97746cc1ad2082a1e95f50c2315a8748b26b8a81a499d8d216')
prepare() {
chmod +x "$srcdir/${pkgname}-${pkgver}.AppImage"
"$srcdir/${pkgname}-${pkgver}.AppImage" --appimage-extract > /dev/null
}
package() {
cp -a "$srcdir/usr" "$pkgdir/"
local _root="$srcdir/squashfs-root"
# upstream's AppImage payload, installed unchanged
install -d "$pkgdir/opt/$pkgname"
cp -a "$_root/." "$pkgdir/opt/$pkgname/"
rm -f "$pkgdir/opt/$pkgname/.DirIcon"
# the binaries carry a RUNPATH into the bundle and read the qt.conf next to
# them, so they have to be exec'd where they are
install -d "$pkgdir/usr/bin"
local _bin
for _bin in chiaki chiaki-cli; do
cat > "$pkgdir/usr/bin/$_bin" << EOF
#!/bin/sh
exec /opt/$pkgname/usr/bin/$_bin "\$@"
EOF
chmod 755 "$pkgdir/usr/bin/$_bin"
done
install -Dm644 "$_root/usr/share/applications/chiaking.desktop" \
"$pkgdir/usr/share/applications/chiaking.desktop"
install -Dm644 "$_root/usr/share/metainfo/io.github.streetpea.Chiaki4deck.appdata.xml" \
"$pkgdir/usr/share/metainfo/io.github.streetpea.Chiaki4deck.appdata.xml"
install -Dm644 "$_root/usr/share/icons/hicolor/512x512/apps/chiaking.png" \
"$pkgdir/usr/share/icons/hicolor/512x512/apps/chiaking.png"
# AGPL-3.0-only-OpenSSL is not a common license, ship the text
install -Dm644 "$srcdir/COPYING-${pkgver}" \
"$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-18
View File
@@ -1,18 +0,0 @@
--- a/gui/CMakeLists.txt 2025-10-11 20:52:37.048868767 +0100
+++ b/gui/CMakeLists.txt 2025-10-11 20:52:42.506427662 +0100
@@ -7,7 +7,7 @@
enable_language(OBJCXX)
endif()
-find_package(Qt6 REQUIRED COMPONENTS Core Gui Concurrent Svg Qml Quick Widgets)
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Concurrent Svg Qml Quick Widgets GuiPrivate)
find_package(Qt6 COMPONENTS WebEngineQuick)
find_package(Qt6 COMPONENTS DBus)
@@ -154,4 +154,4 @@
BUNDLE DESTINATION bin)
install(FILES chiaking.desktop DESTINATION share/applications)
install(FILES chiaking.png DESTINATION share/icons/hicolor/512x512/apps)
-install(FILES io.github.streetpea.Chiaki4deck.appdata.xml DESTINATION share/metainfo)
\ No newline at end of file
+install(FILES io.github.streetpea.Chiaki4deck.appdata.xml DESTINATION share/metainfo)
+15 -49
View File
@@ -1,60 +1,26 @@
# chiaki-ng-bin - prebuilt package of https://github.com/streetpea/chiaki-ng
# (free PlayStation Remote Play client, C/C++ + Qt6).
# chiaki-ng-bin - chiaki-ng (https://github.com/streetpea/chiaki-ng), a free
# PlayStation Remote Play client (C/C++ + Qt6).
#
# Upstream ships no plain Linux binaries (only AppImage/flatpak), so
# build_artifact() builds from a git checkout of the release tag (the source
# tarballs lack the required submodules). Mirrors the AUR source package:
# system curl instead of the vendored submodule, plus the Qt6GuiPrivate
# CMake fix carried in this directory.
# Upstream publishes an AppImage per release, which the PKGBUILD unpacks and
# installs into /opt - so there is no build step here, only pkgver and the
# checksums are refreshed on a new version. The license texts are not part of
# the AppImage and come from the matching source tag.
UPSTREAM_REPO="streetpea/chiaki-ng"
# Installed in CI (pacman) before build_artifact runs.
BUILD_DEPS=(cmake git python-protobuf python-setuptools protobuf
vulkan-headers qt6-base qt6-declarative qt6-svg qt6-webengine
sdl2 ffmpeg fftw hidapi json-c libplacebo miniupnpc opus speexdsp
openssl curl libssh2)
latest_version() {
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
}
# build_artifact <version> <output-file>
build_artifact() {
local ver="$1" outfile="$2"
local pkgdir workdir destdir srctree
pkgdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
workdir="$(mktemp -d)"
destdir="$(mktemp -d)"
srctree="$workdir/src"
# refresh_checksums <version> <pkgbuild-path>
refresh_checksums() {
local ver="$1" pkgbuild="$2"
local sha_img sha_lic
git clone --branch "v$ver" --depth 1 "https://github.com/$UPSTREAM_REPO.git" "$srctree"
sha_img="$(curl -sfL "https://github.com/$UPSTREAM_REPO/releases/download/v$ver/chiaki-ng.AppImage_x86_64" \
| sha256sum | cut -d' ' -f1)"
sha_lic="$(curl -sfL "https://raw.githubusercontent.com/$UPSTREAM_REPO/v$ver/COPYING" \
| sha256sum | cut -d' ' -f1)"
# use the system curl instead of the vendored submodule
git -C "$srctree" rm -q third-party/curl
sed -i 's:libcurl_shared:libcurl:' "$srctree/lib/CMakeLists.txt"
# newer tags (>= 1.10.0) carry the GuiPrivate fix themselves
if ! grep -q 'GuiPrivate' "$srctree/gui/CMakeLists.txt"; then
patch -d "$srctree" -p1 < "$pkgdir/Qt6GuiPrivate-fix.patch"
fi
git -C "$srctree" submodule update --init
CFLAGS="${CFLAGS:-} -std=gnu17" cmake -B "$workdir/build" -S "$srctree" -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCHIAKI_USE_SYSTEM_CURL=ON
cmake --build "$workdir/build" -j"$(nproc)"
DESTDIR="$destdir" cmake --install "$workdir/build"
# AGPL-3.0-only-OpenSSL: not a common license, ship the texts
mkdir -p "$destdir/usr/share/licenses/chiaki-ng-bin"
install -m644 "$srctree/LICENSES/"* "$destdir/usr/share/licenses/chiaki-ng-bin/"
rm -f "$destdir/usr/share/applications/mimeinfo.cache" \
"$destdir/usr/share/icons/hicolor/icon-theme.cache"
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
-cf "$outfile" -C "$destdir" usr
rm -rf "$workdir" "$destdir"
sed -i "s|^sha256sums=.*|sha256sums=('$sha_img' '$sha_lic')|" "$pkgbuild"
}