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
@@ -1,30 +1,23 @@
|
||||
pkgbase = waydroid-helper-bin
|
||||
pkgdesc = GUI application for Waydroid configuration and extension installation (prebuilt)
|
||||
pkgdesc = GUI application for Waydroid configuration and extension installation (upstream AppImage)
|
||||
pkgver = 0.2.9
|
||||
pkgrel = 1
|
||||
pkgrel = 2
|
||||
url = https://github.com/ayasa520/waydroid-helper
|
||||
arch = any
|
||||
arch = x86_64
|
||||
license = GPL-3.0-or-later
|
||||
depends = python
|
||||
depends = fakeroot
|
||||
depends = python-bidict
|
||||
depends = python-httpx
|
||||
depends = python-gobject
|
||||
depends = python-yaml
|
||||
depends = python-pywayland
|
||||
depends = python-cairo
|
||||
depends = gtk4
|
||||
depends = libadwaita
|
||||
depends = python-aiofiles
|
||||
depends = python-dbus
|
||||
depends = android-tools
|
||||
depends = vte4
|
||||
depends = glibc
|
||||
depends = wayland
|
||||
depends = libxcb
|
||||
depends = polkit
|
||||
depends = hicolor-icon-theme
|
||||
optdepends = bindfs: shared folders support
|
||||
optdepends = waydroid: the container this tool configures
|
||||
provides = waydroid-helper
|
||||
conflicts = waydroid-helper
|
||||
source = waydroid-helper-bin-0.2.9-1.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/waydroid-helper-bin-0.2.9/waydroid-helper-bin-0.2.9.tar.zst
|
||||
sha256sums = 8a02695c6a3f102d1fa2a0b6266bb1978874338eac5a33b3391ada3243c01e56
|
||||
noextract = waydroid-helper-bin-0.2.9.AppImage
|
||||
options = !strip
|
||||
options = !debug
|
||||
source = waydroid-helper-bin-0.2.9.AppImage::https://github.com/ayasa520/waydroid-helper/releases/download/v0.2.9/waydroid-helper-0.2.9-x86_64.AppImage
|
||||
sha256sums = 4e477a02f7fb52e879aec3ab582995ccb3d2003dce24d9e3e71ea7576b12ac33
|
||||
|
||||
pkgname = waydroid-helper-bin
|
||||
@@ -4,22 +4,72 @@
|
||||
|
||||
pkgname=waydroid-helper-bin
|
||||
pkgver=0.2.9
|
||||
pkgrel=1
|
||||
pkgdesc="GUI application for Waydroid configuration and extension installation (prebuilt)"
|
||||
arch=('any')
|
||||
pkgrel=2
|
||||
pkgdesc="GUI application for Waydroid configuration and extension installation (upstream AppImage)"
|
||||
arch=('x86_64')
|
||||
url="https://github.com/ayasa520/waydroid-helper"
|
||||
license=('GPL-3.0-or-later')
|
||||
depends=('python' 'fakeroot' 'python-bidict' 'python-httpx' 'python-gobject'
|
||||
'python-yaml' 'python-pywayland' 'python-cairo' 'gtk4' 'libadwaita'
|
||||
'python-aiofiles' 'python-dbus' 'android-tools' 'vte4'
|
||||
'hicolor-icon-theme')
|
||||
# the AppImage bundles Python, GTK4, VTE, adb and fakeroot; these are what is
|
||||
# left over
|
||||
depends=('glibc' 'wayland' 'libxcb' 'polkit' 'hicolor-icon-theme')
|
||||
optdepends=('bindfs: shared folders support'
|
||||
'waydroid: the container this tool configures')
|
||||
provides=('waydroid-helper')
|
||||
conflicts=('waydroid-helper')
|
||||
source=("${pkgname}-${pkgver}-${pkgrel}.tar.zst::https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst")
|
||||
sha256sums=('8a02695c6a3f102d1fa2a0b6266bb1978874338eac5a33b3391ada3243c01e56')
|
||||
options=('!strip' '!debug')
|
||||
source=("${pkgname}-${pkgver}.AppImage::${url}/releases/download/v${pkgver}/waydroid-helper-${pkgver}-x86_64.AppImage")
|
||||
noextract=("${pkgname}-${pkgver}.AppImage")
|
||||
sha256sums=('4e477a02f7fb52e879aec3ab582995ccb3d2003dce24d9e3e71ea7576b12ac33')
|
||||
|
||||
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 payload is a PyInstaller bundle that locates its data through
|
||||
# $APPDIR, and AppRun resolves nothing by itself - so both entry points get
|
||||
# a wrapper rather than a symlink. The paths match what upstream's systemd
|
||||
# unit (/usr/bin/waydroid-helper) and polkit policy (/usr/bin/waydroid-cli)
|
||||
# expect, so those files can be installed unmodified.
|
||||
install -d "$pkgdir/usr/bin"
|
||||
cat > "$pkgdir/usr/bin/waydroid-helper" << EOF
|
||||
#!/bin/sh
|
||||
export APPDIR=/opt/$pkgname
|
||||
exec "\$APPDIR/AppRun" "\$@"
|
||||
EOF
|
||||
cat > "$pkgdir/usr/bin/waydroid-cli" << EOF
|
||||
#!/bin/sh
|
||||
export APPDIR=/opt/$pkgname
|
||||
exec "\$APPDIR/usr/bin/waydroid-cli" "\$@"
|
||||
EOF
|
||||
chmod 755 "$pkgdir/usr/bin/waydroid-helper" "$pkgdir/usr/bin/waydroid-cli"
|
||||
|
||||
# desktop integration has to live in the system tree to have any effect
|
||||
install -Dm644 "$_root/usr/share/applications/com.jaoushingan.WaydroidHelper.desktop" \
|
||||
"$pkgdir/usr/share/applications/com.jaoushingan.WaydroidHelper.desktop"
|
||||
install -Dm644 "$_root/usr/share/metainfo/com.jaoushingan.WaydroidHelper.metainfo.xml" \
|
||||
"$pkgdir/usr/share/metainfo/com.jaoushingan.WaydroidHelper.metainfo.xml"
|
||||
install -Dm644 "$_root/usr/share/icons/hicolor/scalable/apps/com.jaoushingan.WaydroidHelper.svg" \
|
||||
"$pkgdir/usr/share/icons/hicolor/scalable/apps/com.jaoushingan.WaydroidHelper.svg"
|
||||
install -Dm644 "$_root/usr/share/icons/hicolor/symbolic/apps/com.jaoushingan.WaydroidHelper-symbolic.svg" \
|
||||
"$pkgdir/usr/share/icons/hicolor/symbolic/apps/com.jaoushingan.WaydroidHelper-symbolic.svg"
|
||||
install -Dm644 "$_root/usr/share/polkit-1/actions/com.jaoushingan.WaydroidHelper.policy" \
|
||||
"$pkgdir/usr/share/polkit-1/actions/com.jaoushingan.WaydroidHelper.policy"
|
||||
install -Dm644 "$_root/usr/share/dbus-1/system.d/id.waydro.Mount.conf" \
|
||||
"$pkgdir/usr/share/dbus-1/system.d/id.waydro.Mount.conf"
|
||||
install -Dm644 "$_root/usr/share/dbus-1/system-services/id.waydro.Mount.service" \
|
||||
"$pkgdir/usr/share/dbus-1/system-services/id.waydro.Mount.service"
|
||||
install -Dm644 "$_root/usr/lib/systemd/user/waydroid-monitor.service" \
|
||||
"$pkgdir/usr/lib/systemd/user/waydroid-monitor.service"
|
||||
|
||||
install -Dm644 "$_root/usr/LICENSE" \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
}
|
||||
+13
-30
@@ -1,39 +1,22 @@
|
||||
# waydroid-helper-bin - prebuilt package of https://github.com/ayasa520/waydroid-helper
|
||||
# (GTK4 + LibAdwaita GUI for Waydroid configuration/extensions, Python).
|
||||
# waydroid-helper-bin - Waydroid Helper
|
||||
# (https://github.com/ayasa520/waydroid-helper), a GTK4 + LibAdwaita GUI for
|
||||
# Waydroid configuration and extension installation.
|
||||
#
|
||||
# Upstream only ships AppImages, so build_artifact() builds the meson project
|
||||
# from the release tarball.
|
||||
# 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="ayasa520/waydroid-helper"
|
||||
|
||||
# Installed in CI (pacman) before build_artifact runs.
|
||||
BUILD_DEPS=(meson ninja python python-setuptools glib2 glib2-devel gettext)
|
||||
|
||||
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/waydroid-helper-$ver"
|
||||
|
||||
meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release
|
||||
meson install -C "$workdir/build" --destdir "$destdir"
|
||||
|
||||
# These caches are generated by pacman hooks; shipping them would cause
|
||||
# file conflicts on install.
|
||||
rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \
|
||||
"$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"
|
||||
# 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/waydroid-helper-$ver-x86_64.AppImage" \
|
||||
| sha256sum | cut -d' ' -f1)"
|
||||
sed -i "s|^sha256sums=.*|sha256sums=('$sha')|" "$pkgbuild"
|
||||
}
|
||||
Reference in new issue
Block a user