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

+27
View File
@@ -0,0 +1,27 @@
pkgbase = moondeckbuddy
pkgdesc = Host companion that lets the MoonDeck Steam Deck plugin control Steam and the PC
pkgver = 1.10.0
pkgrel = 1
url = https://github.com/FrogTheFrog/moondeck-buddy
arch = x86_64
license = LGPL-3.0-only
license = MIT
makedepends = cmake
makedepends = ninja
depends = glibc
depends = hicolor-icon-theme
depends = libgcc
depends = libstdc++
depends = procps-ng
depends = qt6-base
depends = qt6-httpserver
depends = qt6-websockets
conflicts = moondeckbuddy-appimage
source = moondeckbuddy-1.10.0.tar.gz::https://github.com/FrogTheFrog/moondeck-buddy/archive/refs/tags/v1.10.0.tar.gz
source = moondeck-keys-9d1cc7356181f6f6c0aa2a5e92ad7174f09fa539.tar.gz::https://github.com/FrogTheFrog/moondeck-keys/archive/9d1cc7356181f6f6c0aa2a5e92ad7174f09fa539.tar.gz
source = glaze-7.7.1.tar.gz::https://github.com/stephenberry/glaze/archive/refs/tags/v7.7.1.tar.gz
sha256sums = f68aff3e26c51618bd78e7656cfe3481fd0c4d2be377a26fc4e5db54e9541642
sha256sums = 80438b7cec54f89e3b03ad4bf1bf46edd36a8438e5ebcdb5333ecacd45aba7cc
sha256sums = c51217ca374f2a7d556c501a849d3a43dfffff47ba7711b6f0c22020e71ff63d
pkgname = moondeckbuddy
+55
View File
@@ -0,0 +1,55 @@
# Maintainer: Felitendo
# This PKGBUILD is updated automatically:
# https://github.com/Felitendo/PKGBUILDS
pkgname=moondeckbuddy
pkgver=1.10.0
pkgrel=1
pkgdesc="Host companion that lets the MoonDeck Steam Deck plugin control Steam and the PC"
arch=('x86_64')
url="https://github.com/FrogTheFrog/moondeck-buddy"
# MIT: glaze, a header-only JSON library compiled into both binaries
license=('LGPL-3.0-only' 'MIT')
depends=('glibc' 'hicolor-icon-theme' 'libgcc' 'libstdc++' 'procps-ng'
'qt6-base' 'qt6-httpserver' 'qt6-websockets')
makedepends=('cmake' 'ninja')
conflicts=('moondeckbuddy-appimage')
# The tag tarball carries neither the resources/ssl submodule (the self-signed
# certificate Buddy and MoonDeck share) nor glaze, which CMake would fetch at
# configure time. Both are pinned to what the tag references; see pkg.sh.
_keys_commit="9d1cc7356181f6f6c0aa2a5e92ad7174f09fa539"
_glaze_ver="7.7.1"
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/FrogTheFrog/moondeck-buddy/archive/refs/tags/v${pkgver}.tar.gz"
"moondeck-keys-${_keys_commit}.tar.gz::https://github.com/FrogTheFrog/moondeck-keys/archive/${_keys_commit}.tar.gz"
"glaze-${_glaze_ver}.tar.gz::https://github.com/stephenberry/glaze/archive/refs/tags/v${_glaze_ver}.tar.gz")
sha256sums=('f68aff3e26c51618bd78e7656cfe3481fd0c4d2be377a26fc4e5db54e9541642' '80438b7cec54f89e3b03ad4bf1bf46edd36a8438e5ebcdb5333ecacd45aba7cc' 'c51217ca374f2a7d556c501a849d3a43dfffff47ba7711b6f0c22020e71ff63d')
prepare() {
cd "moondeck-buddy-${pkgver}"
rm -rf resources/ssl
ln -s "$srcdir/moondeck-keys-${_keys_commit}" resources/ssl
# upstream builds with -Werror against GCC 13 and Qt 6.8; warnings that a
# newer toolchain adds must not fail the package build
sed -i 's/ -Werror)/)/' CMakeLists.txt
}
build() {
cmake -B build -S "moondeck-buddy-${pkgver}" -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DFETCHCONTENT_FULLY_DISCONNECTED=ON \
-DFETCHCONTENT_SOURCE_DIR_GLAZE="$srcdir/glaze-${_glaze_ver}"
cmake --build build
}
package() {
# both binaries, the desktop entry and the icons
DESTDIR="$pkgdir" cmake --install build
install -Dm644 "moondeck-buddy-${pkgver}/LICENSE" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 "glaze-${_glaze_ver}/LICENSE" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE.glaze"
}
+54
View File
@@ -0,0 +1,54 @@
# moondeckbuddy - MoonDeck Buddy (https://github.com/FrogTheFrog/moondeck-buddy),
# the host-side companion of the MoonDeck Steam Deck plugin (C++23 + Qt6).
#
# Source package: the PKGBUILD builds the release tag against Arch's Qt6 - the
# same CMake project upstream hands to linuxdeploy for the AppImage that
# moondeckbuddy-bin repackages.
#
# The tag tarball lacks two inputs of the build, both pinned per release:
# - resources/ssl is a git submodule (FrogTheFrog/moondeck-keys) holding the
# self-signed certificate compiled into Buddy; its commit is read from the
# tag's tree.
# - glaze is pulled by src/lib/json/CMakeLists.txt with FetchContent at
# configure time; its GIT_TAG is read from that file, and the PKGBUILD points
# FETCHCONTENT_SOURCE_DIR_GLAZE at the matching tarball so build() needs no
# network.
#
# Releases are created as drafts by upstream's CI and published by hand, so
# /releases/latest never points at a half-finished release.
UPSTREAM_REPO="FrogTheFrog/moondeck-buddy"
# Installed in CI (pacman) before the makepkg test build.
BUILD_DEPS=(cmake ninja procps-ng qt6-base qt6-httpserver qt6-websockets)
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 keys glaze sha_src sha_keys sha_glaze
keys="$(gh api "repos/$UPSTREAM_REPO/contents/resources/ssl?ref=v$ver" --jq '.sha')"
glaze="$(gh api "repos/$UPSTREAM_REPO/contents/src/lib/json/CMakeLists.txt?ref=v$ver" \
-H 'Accept: application/vnd.github.raw' | grep -Po 'GIT_TAG\s+v\K[0-9.]+$')"
if [[ ! "$keys" =~ ^[0-9a-f]{40}$ || -z "$glaze" ]]; then
echo "could not resolve the moondeck-keys commit ($keys) or glaze version ($glaze) of v$ver" >&2
return 1
fi
sha_src="$(curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/v$ver.tar.gz" \
| sha256sum | cut -d' ' -f1)"
sha_keys="$(curl -sfL "https://github.com/FrogTheFrog/moondeck-keys/archive/$keys.tar.gz" \
| sha256sum | cut -d' ' -f1)"
sha_glaze="$(curl -sfL "https://github.com/stephenberry/glaze/archive/refs/tags/v$glaze.tar.gz" \
| sha256sum | cut -d' ' -f1)"
sed -i \
-e "s|^_keys_commit=.*|_keys_commit=\"$keys\"|" \
-e "s|^_glaze_ver=.*|_glaze_ver=\"$glaze\"|" \
-e "s|^sha256sums=.*|sha256sums=('$sha_src' '$sha_keys' '$sha_glaze')|" \
"$pkgbuild"
}