moondeckbuddy, moondeckbuddy-bin: new packages
This commit is contained in:
1 parent
daafcddcd8
commit
d6f63656f1
7 files changed
+273
No files matched your search
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
Reference in new issue
Block a user