plezy-bin: new package

This commit is contained in:
Felitendo committed 2026-08-21 10:00:02 +02:00
1 parent 6d73022529
commit 237f41644e
4 files changed
+136

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
pkgbase = plezy-bin
pkgdesc = Modern client for Plex, Jellyfin and Emby (upstream binary)
pkgver = 2.16.0
pkgrel = 1
url = https://plezy.app
arch = x86_64
arch = aarch64
license = GPL-3.0-or-later
depends = alsa-lib
depends = glib2
depends = gtk3
depends = hicolor-icon-theme
depends = libdrm
depends = libepoxy
depends = libevdev
depends = libglvnd
depends = libva
depends = libx11
depends = libxcb
depends = libxext
depends = mesa
depends = wayland
provides = plezy=2.16.0
conflicts = plezy
noextract = plezy-bin-2.16.0-x86_64.deb
noextract = plezy-bin-2.16.0-aarch64.deb
options = !strip
options = !debug
source_x86_64 = plezy-bin-2.16.0-x86_64.deb::https://github.com/edde746/plezy/releases/download/2.16.0/plezy-linux-x64.deb
sha256sums_x86_64 = f07f95fe6df0fda280a0a0dd94a6315c326ed9613ad34696a61ede769cbac118
source_aarch64 = plezy-bin-2.16.0-aarch64.deb::https://github.com/edde746/plezy/releases/download/2.16.0/plezy-linux-arm64.deb
sha256sums_aarch64 = 883234b646763a235a6882d38983af31ba0b63a2200a3414b5af7ce81b36ca79
pkgname = plezy-bin
+54
View File
@@ -0,0 +1,54 @@
# Maintainer: Felitendo
# This PKGBUILD is updated automatically:
# https://github.com/Felitendo/PKGBUILDS
pkgname=plezy-bin
pkgver=2.16.0
pkgrel=1
pkgdesc="Modern client for Plex, Jellyfin and Emby (upstream binary)"
arch=('x86_64' 'aarch64')
url="https://plezy.app"
license=('GPL-3.0-or-later')
# Upstream's own pacman dependency list, taken from the manifest that produces
# the release packages (linux/packaging/build-packages.py) and kept in that
# shape on purpose: the .deb repackaged here is the same bundle upstream's
# .pkg.tar.zst carries. Almost everything the app links travels inside
# /opt/plezy/lib - including GTK, glib, libmpv and ffmpeg - so what is declared
# here is mostly what upstream deliberately does not bundle, because it is
# coupled to the running compositor and GPU driver. libmpv in particular has to
# be the bundled, Wayland-enabled build: a distro libmpv silently drops hwdec
# to vaapi-copy on the native video plane.
depends=('alsa-lib' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libdrm' 'libepoxy'
'libevdev' 'libglvnd' 'libva' 'libx11' 'libxcb' 'libxext' 'mesa'
'wayland')
provides=("plezy=${pkgver}")
conflicts=('plezy')
# prebuilt, and the runner finds its bundled libraries through the wrapper's
# LD_LIBRARY_PATH rather than an RPATH
options=('!strip' '!debug')
# Release tags carry no v prefix (2.16.0), so the tag is pkgver as-is.
source_x86_64=("${pkgname}-${pkgver}-x86_64.deb::https://github.com/edde746/plezy/releases/download/${pkgver}/plezy-linux-x64.deb")
source_aarch64=("${pkgname}-${pkgver}-aarch64.deb::https://github.com/edde746/plezy/releases/download/${pkgver}/plezy-linux-arm64.deb")
noextract=("${pkgname}-${pkgver}-x86_64.deb" "${pkgname}-${pkgver}-aarch64.deb")
sha256sums_x86_64=('f07f95fe6df0fda280a0a0dd94a6315c326ed9613ad34696a61ede769cbac118')
sha256sums_aarch64=('883234b646763a235a6882d38983af31ba0b63a2200a3414b5af7ce81b36ca79')
package() {
# the Flutter bundle in /opt/plezy plus the /usr/bin wrapper, desktop entry
# and icons upstream's .deb installs
bsdtar -xOf "$srcdir/${pkgname}-${pkgver}-${CARCH}.deb" 'data.tar.*' \
| bsdtar -xpf - -C "$pkgdir" --exclude './usr/share/doc' ./opt ./usr
# upstream ships this one non-executable and fixes it up in the .deb's
# postinst, which pacman never runs
chmod 755 "$pkgdir/opt/plezy/lib/crashpad_handler"
# GPL-3.0-or-later is a common license (/usr/share/licenses/common/GPL3) and
# the .deb carries no license text of its own.
# Upstream builds its release binaries with ENABLE_UPDATE_CHECK=true, so
# unlike the [extra] package this one does check GitHub for new versions.
# On Linux that only ever opens a dialog with a browser link - there is no
# in-app install path to collide with pacman - and the dialog can be
# dismissed per version or turned off in the app's settings.
}
+47
View File
@@ -0,0 +1,47 @@
# plezy-bin - Plezy (https://github.com/edde746/plezy), a Plex, Jellyfin and
# Emby client built with Flutter.
#
# Upstream builds the Linux release itself and publishes a .deb (plus .rpm,
# .pkg.tar.zst and a portable tarball) per release, so there is no build step
# here: on a new version only pkgver and the two checksums are refreshed and
# the PKGBUILD repackages the .deb directly.
#
# plezy itself is in [extra], built from source by an Arch packager, so only
# the -bin variant belongs in the AUR - a second source package would be a
# duplicate the AUR rejects outright. The two conflict, and plezy-bin provides
# plezy so either one satisfies a dependency on it. What it buys over the
# repository package is release-day updates without the Flutter build, which
# needs an fvm-pinned SDK and takes the better part of an hour.
#
# Release tags are plain versions with no v prefix (2.16.0), every release is a
# full release, and the asset names are fixed (plezy-linux-x64.deb /
# plezy-linux-arm64.deb), so /releases/latest is enough to track upstream.
UPSTREAM_REPO="edde746/plezy"
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 base sha_x64 sha_arm64
base="https://github.com/$UPSTREAM_REPO/releases/download/$ver"
sha_x64="$(curl -sfL "$base/plezy-linux-x64.deb" | sha256sum | cut -d' ' -f1)"
sha_arm64="$(curl -sfL "$base/plezy-linux-arm64.deb" | sha256sum | cut -d' ' -f1)"
# curl -f keeps a 404 page out of the sums; a missing asset ends up empty here
for sha in "$sha_x64" "$sha_arm64"; do
if [[ "$sha" == "$(printf '' | sha256sum | cut -d' ' -f1)" ]]; then
echo "one of the $ver .deb assets is missing or empty - try again" >&2
return 1
fi
done
sed -i \
-e "s|^sha256sums_x86_64=.*|sha256sums_x86_64=('$sha_x64')|" \
-e "s|^sha256sums_aarch64=.*|sha256sums_aarch64=('$sha_arm64')|" \
"$pkgbuild"
}