moondeckbuddy, moondeckbuddy-bin: new packages

This commit is contained in:
Felitendo committed 2026-09-14 23:38:11 +02:00
1 parent daafcddcd8
commit d6f63656f1
7 files changed
+273

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
pkgbase = moondeckbuddy-bin
pkgdesc = Host companion that lets the MoonDeck Steam Deck plugin control Steam and the PC (upstream AppImage)
pkgver = 1.10.0
pkgrel = 1
url = https://github.com/FrogTheFrog/moondeck-buddy
arch = x86_64
license = LGPL-3.0-only
depends = bash
depends = e2fsprogs
depends = fontconfig
depends = freetype2
depends = glibc
depends = hicolor-icon-theme
depends = libgcc
depends = libglvnd
depends = libgpg-error
depends = libstdc++
depends = libx11
depends = libxcb
depends = zlib
provides = moondeckbuddy
conflicts = moondeckbuddy
conflicts = moondeckbuddy-appimage
noextract = moondeckbuddy-bin-1.10.0.AppImage
options = !strip
options = !debug
source = moondeckbuddy-bin-1.10.0.AppImage::https://github.com/FrogTheFrog/moondeck-buddy/releases/download/v1.10.0/MoonDeckBuddy-1.10.0-x86_64.AppImage
source = LICENSE-1.10.0::https://raw.githubusercontent.com/FrogTheFrog/moondeck-buddy/v1.10.0/LICENSE
sha256sums = 51960ec27f897818e10f6e06a3c8994eebfd05c58c9c51ed89cad5b53caa5a46
sha256sums = a5681bf9b05db14d86776930017c647ad9e6e56ff6bbcfdf21e5848288dfaf1b
pkgname = moondeckbuddy-bin
+68
View File
@@ -0,0 +1,68 @@
# Maintainer: Felitendo
# This PKGBUILD is updated automatically:
# https://github.com/Felitendo/PKGBUILDS
pkgname=moondeckbuddy-bin
pkgver=1.10.0
pkgrel=1
pkgdesc="Host companion that lets the MoonDeck Steam Deck plugin control Steam and the PC (upstream AppImage)"
arch=('x86_64')
url="https://github.com/FrogTheFrog/moondeck-buddy"
license=('LGPL-3.0-only')
# the AppImage bundles Qt6, OpenSSL, glib, libproc2 and the xcb stack; these
# are what is left over (bash runs upstream's AppRun)
depends=('bash' 'e2fsprogs' 'fontconfig' 'freetype2' 'glibc'
'hicolor-icon-theme' 'libgcc' 'libglvnd' 'libgpg-error' 'libstdc++'
'libx11' 'libxcb' 'zlib')
provides=('moondeckbuddy')
conflicts=('moondeckbuddy' 'moondeckbuddy-appimage')
options=('!strip' '!debug')
source=("${pkgname}-${pkgver}.AppImage::https://github.com/FrogTheFrog/moondeck-buddy/releases/download/v${pkgver}/MoonDeckBuddy-${pkgver}-x86_64.AppImage"
"LICENSE-${pkgver}::https://raw.githubusercontent.com/FrogTheFrog/moondeck-buddy/v${pkgver}/LICENSE")
noextract=("${pkgname}-${pkgver}.AppImage")
sha256sums=('51960ec27f897818e10f6e06a3c8994eebfd05c58c9c51ed89cad5b53caa5a46' 'a5681bf9b05db14d86776930017c647ad9e6e56ff6bbcfdf21e5848288dfaf1b')
prepare() {
chmod +x "$srcdir/${pkgname}-${pkgver}.AppImage"
"$srcdir/${pkgname}-${pkgver}.AppImage" --appimage-extract > /dev/null
}
package() {
local _root="$srcdir/squashfs-root"
# upstream's AppImage payload, installed unchanged apart from the top-level
# icon/desktop symlinks only the AppImage runtime uses
install -d "$pkgdir/opt/$pkgname"
cp -a "$_root/." "$pkgdir/opt/$pkgname/"
rm -f "$pkgdir/opt/$pkgname/"{.DirIcon,MoonDeckBuddy.desktop,moondeckbuddy.png}
# the bundled libraries' copyright files are world-writable in the image,
# and linuxdeploy leaves a few empty directories behind
chmod -R go-w "$pkgdir/opt/$pkgname"
find "$pkgdir/opt/$pkgname" -type d -empty -delete
# The AppRun forces the bundled xcb platform plugin (there is no Wayland one
# in the bundle), so the binaries go through it. Buddy writes its own path
# into the autostart entry and systemd user service it creates and takes it
# from $APPIMAGE when set - pointing that at the wrapper keeps autostart on
# the AppRun too, just as the AppRun does with the AppImage's own path.
install -d "$pkgdir/usr/bin"
local _bin
for _bin in MoonDeckBuddy MoonDeckStream; do
cat > "$pkgdir/usr/bin/$_bin" << EOF
#!/bin/sh
APPIMAGE=/usr/bin/$_bin exec /opt/$pkgname/AppRun --exec $_bin "\$@"
EOF
chmod 755 "$pkgdir/usr/bin/$_bin"
done
install -Dm644 "$_root/usr/share/applications/MoonDeckBuddy.desktop" \
"$pkgdir/usr/share/applications/MoonDeckBuddy.desktop"
local _size
for _size in 16 32 64 128 256; do
install -Dm644 "$_root/usr/share/icons/hicolor/${_size}x${_size}/apps/moondeckbuddy.png" \
"$pkgdir/usr/share/icons/hicolor/${_size}x${_size}/apps/moondeckbuddy.png"
done
install -Dm644 "$srcdir/LICENSE-${pkgver}" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
+35
View File
@@ -0,0 +1,35 @@
# moondeckbuddy-bin - MoonDeck Buddy (https://github.com/FrogTheFrog/moondeck-buddy),
# the host-side companion of the MoonDeck Steam Deck plugin (C++23 + Qt6).
#
# Upstream publishes a linuxdeploy AppImage per release, which the PKGBUILD
# unpacks into /opt - so there is no build step here, only pkgver and the
# checksums are refreshed on a new version. The license text is not part of
# the AppImage and comes from the matching source tag.
#
# Releases are created as drafts by upstream's CI and published by hand, so
# /releases/latest never points at a release whose assets are still missing.
UPSTREAM_REPO="FrogTheFrog/moondeck-buddy"
# The AUR already carries moondeckbuddy-appimage, which ships the same upstream
# AppImage, so publishing this as well would be a second copy of one package.
# Flip this to true to publish; until then the PKGBUILD is still kept current
# and test-built here.
AUR_PUBLISH=false
latest_version() {
gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//'
}
# refresh_checksums <version> <pkgbuild-path>
refresh_checksums() {
local ver="$1" pkgbuild="$2"
local sha_img sha_lic
sha_img="$(curl -sfL "https://github.com/$UPSTREAM_REPO/releases/download/v$ver/MoonDeckBuddy-$ver-x86_64.AppImage" \
| sha256sum | cut -d' ' -f1)"
sha_lic="$(curl -sfL "https://raw.githubusercontent.com/$UPSTREAM_REPO/v$ver/LICENSE" \
| sha256sum | cut -d' ' -f1)"
sed -i "s|^sha256sums=.*|sha256sums=('$sha_img' '$sha_lic')|" "$pkgbuild"
}