# Version is substituted by scripts/make-srpm.sh. %global upstream_version 2.17.0 %global appdir /opt/plezy # Prebuilt payload: nothing to strip, nothing to extract debuginfo from. %global debug_package %{nil} %global __os_install_post %{nil} # The bundle carries ~200 private shared objects. Without these, RPM would # advertise Provides for every bundled soname and generate Requires for # libraries that exist only inside the bundle. %global __provides_exclude_from ^%{appdir}/.*$ %global __requires_exclude_from ^%{appdir}/.*$ Name: plezy Version: %{upstream_version} Release: 1%{?dist} Summary: Modern cross-platform Plex, Jellyfin and Emby client License: GPL-3.0-only URL: https://github.com/edde746/plezy Source0: %{url}/releases/download/%{upstream_version}/plezy-linux-x64.tar.gz Source1: com.edde746.plezy.desktop Source2: %{url}/raw/%{upstream_version}/LICENSE # For aarch64: add the arm64 tarball as Source3 and wrap the %%setup in # %%ifarch. Both tarballs would then ship in every SRPM. ExclusiveArch: x86_64 BuildRequires: ImageMagick BuildRequires: desktop-file-utils # From upstream's linux/packaging/build-packages.py. These are deliberately not # bundled: Wayland, EGL and VA-API are coupled to the compositor and GPU driver. # Fedora splits glvnd, so libglvnd (libGLdispatch.so.0) is needed alongside # libglvnd-egl (libEGL.so.1). Requires: gtk3 Requires: libepoxy Requires: alsa-lib Requires: libevdev Requires: glib2 Requires: libwayland-client Requires: libwayland-cursor Requires: libwayland-egl Requires: libglvnd Requires: libglvnd-egl Requires: libva Requires: libdrm Requires: mesa-libgbm Requires: libX11 Requires: libX11-xcb Requires: libXext Requires: libxcb Requires: hicolor-icon-theme # Upstream's own libmpv build, pinned for Wayland support. Provides: bundled(libmpv) %description Plezy is a modern client for Plex, Jellyfin and Emby, built with Flutter for native performance and a clean interface. This package repackages the official upstream Linux build. The application and its private libraries are installed under %{appdir}; /usr/bin/plezy is a wrapper that points the dynamic loader and the GTK/GLib runtime at them. %prep # The tarball has no leading directory component. %setup -q -c -n %{name}-%{upstream_version} %build # The app icon travels inside the bundle, so generate the hicolor sizes from it # rather than carrying duplicate binaries in git. for size in 16 32 48 64 128 256 512; do mkdir -p icons/${size} magick data/flutter_assets/assets/plezy.png \ -resize ${size}x${size} icons/${size}/plezy.png done %install install -d %{buildroot}%{appdir} cp -a data lib share plezy %{buildroot}%{appdir}/ # Upstream ships crashpad_handler as 0644 and repairs it with a %%post chmod, # which desynchronises the file from the RPM database and makes rpm -V fail. chmod 0755 %{buildroot}%{appdir}/plezy chmod 0755 %{buildroot}%{appdir}/lib/crashpad_handler # The wrapper switches to %{appdir} when installed as /usr/bin/plezy. Rewrite # its /usr/bin/env shebang, which the packaging guidelines disallow. install -d %{buildroot}%{_bindir} sed -e '1s|^#!/usr/bin/env bash$|#!/usr/bin/bash|' plezy.sh \ > %{buildroot}%{_bindir}/%{name} chmod 0755 %{buildroot}%{_bindir}/%{name} install -m0644 %{SOURCE2} LICENSE desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE1} for size in 16 32 48 64 128 256 512; do install -Dm0644 icons/${size}/plezy.png \ %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/%{name}.png done # No scriptlets: Fedora's file triggers refresh the icon cache and desktop # database. Upstream's after-install.sh exists because it must also run on Debian. %files %license LICENSE %{_bindir}/%{name} %{appdir}/ %{_datadir}/applications/com.edde746.plezy.desktop %{_datadir}/icons/hicolor/*/apps/%{name}.png %changelog * Mon Aug 24 2026 Squiddim <82903357+Squiddim@users.noreply.github.com> - 2.17.0-1 - Repackage upstream release 2.17.0 - https://github.com/edde746/plezy/releases/tag/2.17.0