# SPDX-License-Identifier: MIT # ============================================================================= # Version definitions # ============================================================================= %global hyprpaper_version 0.8.3 %global hyprland_min_ver 0.54.2 %global hyprwayland_scanner_ver 0.4.5 %global hyprutils_ver 0.11.0 %global hyprlang_ver 0.6.8 %global hyprgraphics_ver 0.5.0 %global aquamarine_ver 0.10.0 %global hyprwire_ver 0.3.0 %global hyprtoolkit_ver 0.5.3 Name: hyprpaper Version: %{hyprpaper_version} Release: 1%{?dist} Summary: Blazing fast Wayland wallpaper utility for Hyprland License: BSD-3-Clause URL: https://github.com/hyprwm/hyprpaper # Main source Source0: https://github.com/hyprwm/hyprpaper/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz # Vendored Hyprland libs Source10: https://github.com/hyprwm/hyprwayland-scanner/archive/refs/tags/v%{hyprwayland_scanner_ver}.tar.gz#/hyprwayland-scanner-%{hyprwayland_scanner_ver}.tar.gz Source11: https://github.com/hyprwm/hyprutils/archive/refs/tags/v%{hyprutils_ver}.tar.gz#/hyprutils-%{hyprutils_ver}.tar.gz Source12: https://github.com/hyprwm/hyprlang/archive/refs/tags/v%{hyprlang_ver}.tar.gz#/hyprlang-%{hyprlang_ver}.tar.gz Source13: https://github.com/hyprwm/hyprwire/archive/refs/tags/v%{hyprwire_ver}.tar.gz#/hyprwire-%{hyprwire_ver}.tar.gz Source14: https://github.com/hyprwm/hyprtoolkit/archive/refs/tags/v%{hyprtoolkit_ver}.tar.gz#/hyprtoolkit-%{hyprtoolkit_ver}.tar.gz Source15: https://github.com/hyprwm/hyprgraphics/archive/refs/tags/v%{hyprgraphics_ver}.tar.gz#/hyprgraphics-%{hyprgraphics_ver}.tar.gz Source16: https://github.com/hyprwm/aquamarine/archive/refs/tags/v%{aquamarine_ver}.tar.gz#/aquamarine-%{aquamarine_ver}.tar.gz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja-build BuildRequires: pkgconf-pkg-config BuildRequires: cairo-devel BuildRequires: file-devel BuildRequires: iniparser-devel BuildRequires: libdrm-devel BuildRequires: libffi-devel BuildRequires: libglvnd-devel BuildRequires: libglvnd-gles BuildRequires: libjpeg-turbo-devel BuildRequires: libjxl-devel BuildRequires: libpng-devel BuildRequires: librsvg2-devel BuildRequires: libspng-devel BuildRequires: libwebp-devel BuildRequires: libxkbcommon-devel BuildRequires: libinput-devel BuildRequires: libseat-devel BuildRequires: libdisplay-info-devel BuildRequires: libliftoff-devel BuildRequires: mesa-libEGL-devel BuildRequires: hwdata BuildRequires: mesa-libgbm-devel BuildRequires: systemd-rpm-macros BuildRequires: pango-devel BuildRequires: pixman-devel BuildRequires: pugixml-devel BuildRequires: wayland-devel BuildRequires: wayland-protocols-devel Requires: hyprland >= %{hyprland_min_ver} Requires: cairo Requires: libdrm Requires: libxkbcommon Requires: mesa-libgbm Requires: pango Requires: pixman Requires: libwayland-client %description hyprpaper is a blazing fast wayland wallpaper utility with IPC controls, allowing runtime wallpaper changes through hyprctl. This package uses vendored Hyprland libraries installed by the hyprland package at /usr/libexec/hyprland/vendor/. %prep %autosetup -n %{name}-%{version} # Unpack vendored deps tar -xzf %{SOURCE10} tar -xzf %{SOURCE11} tar -xzf %{SOURCE12} tar -xzf %{SOURCE13} tar -xzf %{SOURCE14} tar -xzf %{SOURCE15} tar -xzf %{SOURCE16} %build VENDOR_PREFIX="$(pwd)/vendor" export PATH="$VENDOR_PREFIX/bin:$PATH" export PKG_CONFIG_PATH="$VENDOR_PREFIX/lib64/pkgconfig:$VENDOR_PREFIX/lib/pkgconfig:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig" export CMAKE_PREFIX_PATH="$VENDOR_PREFIX" GCC15_CXXFLAGS="%{optflags} -fpermissive" # OpenGL/EGL hints for libglvnd on Fedora export OPENGL_opengl_LIBRARY=%{_libdir}/libOpenGL.so export OPENGL_gles3_LIBRARY=%{_libdir}/libGLESv2.so export OPENGL_GLES3_INCLUDE_DIR=/usr/include export OPENGL_egl_LIBRARY=%{_libdir}/libEGL.so export OPENGL_EGL_INCLUDE_DIR=/usr/include export OPENGL_INCLUDE_DIR=/usr/include # 1) hyprwayland-scanner (build tool) pushd hyprwayland-scanner-%{hyprwayland_scanner_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_INSTALL_LIBDIR=lib64 cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # 2) hyprutils pushd hyprutils-%{hyprutils_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" -DCMAKE_INSTALL_LIBDIR=lib64 cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # 3) hyprlang pushd hyprlang-%{hyprlang_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" -DCMAKE_INSTALL_LIBDIR=lib64 cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # 4) hyprgraphics pushd hyprgraphics-%{hyprgraphics_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" -DCMAKE_INSTALL_LIBDIR=lib64 cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # hwdata has no .pc file — create one so aquamarine's CMake find_package succeeds mkdir -p "$(pwd)/pkgconfig" HWDATA_VERSION=$(rpm -q --qf '%{VERSION}' hwdata 2>/dev/null || echo "0.385") cat > "$(pwd)/pkgconfig/hwdata.pc" << 'EOF_HWDATA' prefix=/usr datarootdir=${prefix}/share pkgdatadir=${datarootdir}/hwdata Name: hwdata Description: Hardware identification databases Version: HWDATA_VERSION_PLACEHOLDER EOF_HWDATA sed -i "s/HWDATA_VERSION_PLACEHOLDER/$HWDATA_VERSION/" "$(pwd)/pkgconfig/hwdata.pc" export PKG_CONFIG_PATH="$VENDOR_PREFIX/lib64/pkgconfig:$VENDOR_PREFIX/lib/pkgconfig:$(pwd)/pkgconfig:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig" # 5) aquamarine (needs hyprwayland-scanner + OpenGL hints) pushd aquamarine-%{aquamarine_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" -DCMAKE_INSTALL_LIBDIR=lib64 \ -Dhyprwayland-scanner_DIR="$VENDOR_PREFIX/lib64/cmake/hyprwayland-scanner" \ -DCMAKE_CXX_FLAGS="$GCC15_CXXFLAGS" \ -DOpenGL_GL_PREFERENCE=GLVND \ -DOPENGL_opengl_LIBRARY=%{_libdir}/libOpenGL.so \ -DOPENGL_gles3_LIBRARY=%{_libdir}/libGLESv2.so \ -DOPENGL_GLES3_INCLUDE_DIR=/usr/include \ -DOPENGL_egl_LIBRARY=%{_libdir}/libEGL.so \ -DOPENGL_EGL_INCLUDE_DIR=/usr/include \ -DOPENGL_INCLUDE_DIR=/usr/include cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # 6) hyprwire pushd hyprwire-%{hyprwire_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" -DCMAKE_INSTALL_LIBDIR=lib64 cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # 7) hyprtoolkit pushd hyprtoolkit-%{hyprtoolkit_ver} cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$VENDOR_PREFIX" \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" -DCMAKE_INSTALL_LIBDIR=lib64 cmake --build build --parallel %{_smp_build_ncpus} cmake --install build popd # 8) hyprpaper # hyprtoolkit links against hyprgraphics + aquamarine; pass rpath-link so the # linker can resolve those transitive deps from the vendor prefix at build time. export LDFLAGS="${LDFLAGS:+$LDFLAGS }-Wl,-rpath-link,$VENDOR_PREFIX/lib64" VENDOR_RPATH='%{_libexecdir}/hyprland/vendor/lib64:%{_libexecdir}/hyprland/vendor/lib' cmake -B build \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DCMAKE_PREFIX_PATH="$VENDOR_PREFIX" \ -Dhyprwayland-scanner_DIR="$VENDOR_PREFIX/lib64/cmake/hyprwayland-scanner" \ -DCMAKE_CXX_FLAGS="$GCC15_CXXFLAGS" \ -DCMAKE_INSTALL_RPATH="$VENDOR_RPATH" \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DOpenGL_GL_PREFERENCE=GLVND \ -DOPENGL_opengl_LIBRARY=%{_libdir}/libOpenGL.so \ -DOPENGL_gles3_LIBRARY=%{_libdir}/libGLESv2.so \ -DOPENGL_GLES3_INCLUDE_DIR=/usr/include \ -DOPENGL_egl_LIBRARY=%{_libdir}/libEGL.so \ -DOPENGL_EGL_INCLUDE_DIR=/usr/include \ -DOPENGL_INCLUDE_DIR=/usr/include cmake --build build --parallel %{_smp_build_ncpus} %install DESTDIR=%{buildroot} cmake --install build %post %systemd_user_post %{name}.service %preun %systemd_user_preun %{name}.service %postun %systemd_user_postun %{name}.service %files %license LICENSE %doc README.md %{_bindir}/%{name} %{_userunitdir}/%{name}.service %changelog * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Tue Mar 17 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Mon Mar 16 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Mon Mar 16 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Mon Mar 16 2026 Automated Build - 0.54.2-1 - Update to Hyprland 0.54.2 * Mon Mar 16 2026 Automated Build - 0.8.3-1 - Initial package for jwpkg/Hyprland-Fedora COPR