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:
1 parent
c25c2790e8
commit
fa1c190d17
19 files changed
+428
-379
No files matched your search
+26
-24
@@ -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
@@ -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"
|
||||
}
|
||||
@@ -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
@@ -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"
|
||||
}
|
||||
Reference in new issue
Block a user