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

+13 -46
View File
@@ -1,55 +1,22 @@
# wiiudownloader-bin - prebuilt package of https://github.com/Xpl0itU/WiiUDownloader
# (Go + GTK3 downloader for Wii U titles from Nintendo's official servers).
# wiiudownloader-bin - WiiUDownloader
# (https://github.com/Xpl0itU/WiiUDownloader), a Go + GTK3 downloader for
# Wii U titles from Nintendo's official servers.
#
# Upstream only ships AppImages, so build_artifact() builds the Go binary
# from the release tarball (grabTitles.py generates the title database that
# is compiled in).
# 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
# checksum are refreshed on a new version.
UPSTREAM_REPO="Xpl0itU/WiiUDownloader"
# Installed in CI (pacman) before build_artifact runs.
BUILD_DEPS=(go gtk3 python)
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 workdir destdir srctree
workdir="$(mktemp -d)"
destdir="$(mktemp -d)"
curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" | tar -xz -C "$workdir"
srctree="$workdir/WiiUDownloader-$ver"
(cd "$srctree" && python3 grabTitles.py)
(cd "$srctree/cmd/WiiUDownloader" && \
GOPATH="$workdir/gopath" \
GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" \
go build -v -o "$destdir/wiiudownloader" .)
install -Dm755 "$destdir/wiiudownloader" "$destdir/usr/bin/wiiudownloader"
rm "$destdir/wiiudownloader"
install -Dm644 "$srctree/data/WiiUDownloader.png" \
"$destdir/usr/share/icons/hicolor/256x256/apps/wiiudownloader.png"
mkdir -p "$destdir/usr/share/applications"
cat > "$destdir/usr/share/applications/wiiudownloader.desktop" << 'EOF'
[Desktop Entry]
Type=Application
Name=WiiUDownloader
Comment=Download Wii U titles from Nintendo's official servers
Exec=wiiudownloader
Icon=wiiudownloader
Terminal=false
Categories=Utility;
EOF
tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \
-cf "$outfile" -C "$destdir" usr
rm -rf "$workdir" "$destdir"
# refresh_checksums <version> <pkgbuild-path>
refresh_checksums() {
local ver="$1" pkgbuild="$2"
local sha
sha="$(curl -sfL "https://github.com/$UPSTREAM_REPO/releases/download/v$ver/WiiUDownloader-Linux-x86_64.AppImage" \
| sha256sum | cut -d' ' -f1)"
sed -i "s|^sha256sums=.*|sha256sums=('$sha')|" "$pkgbuild"
}