# SPDX-License-Identifier: MIT # ============================================================================= # Version definitions # ============================================================================= %global qtutils_version 0.1.5 %global hyprland_min_ver 0.54.2 %global hyprutils_ver 0.11.0 # Qt cmake machinery appends $ORIGIN after our absolute RPATH (Fedora error 0008) %global __brp_check_rpaths %{nil} Name: hyprland-qtutils Version: %{qtutils_version} Release: 2%{?dist} Summary: Hyprland Qt/QML utility apps (dialog, update notifications) License: BSD-3-Clause URL: https://github.com/hyprwm/hyprland-qtutils # Main source Source0: https://github.com/hyprwm/hyprland-qtutils/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz # Vendored Hyprland libs Source10: https://github.com/hyprwm/hyprutils/archive/refs/tags/v%{hyprutils_ver}.tar.gz#/hyprutils-%{hyprutils_ver}.tar.gz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja-build BuildRequires: pkgconf-pkg-config BuildRequires: pixman-devel BuildRequires: wayland-devel BuildRequires: cmake(Qt6Quick) BuildRequires: cmake(Qt6QuickControls2) BuildRequires: cmake(Qt6WaylandClient) BuildRequires: cmake(Qt6Widgets) BuildRequires: qt6-qtbase-private-devel Requires: hyprland >= %{hyprland_min_ver} Requires: hyprland-qt-support%{?_isa} %description hyprland-qtutils provides Qt/QML utility applications used by the Hyprland compositor, including hyprland-dialog (used for crash recovery and system dialogs) and hyprland-update-screen. This package uses vendored Hyprland libraries installed by the hyprland package at /usr/libexec/hyprland/vendor/. %prep %autosetup -n %{name}-%{version} # Fix CMakeLists.txt: handle Qt6WaylandClientPrivate for Qt >= 6.10 patch -p1 << 'PATCH' --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,9 @@ set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 6.5 REQUIRED COMPONENTS Widgets Quick QuickControls2 WaylandClient) +if(Qt6WaylandClient_VERSION VERSION_GREATER_EQUAL "6.10.0") + find_package(Qt6WaylandClientPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) +endif() find_package(PkgConfig REQUIRED) pkg_check_modules(hyprutils REQUIRED IMPORTED_TARGET hyprutils) PATCH # Unpack vendored deps tar -xzf %{SOURCE10} %build VENDOR_PREFIX="$(pwd)/vendor" export PKG_CONFIG_PATH="$VENDOR_PREFIX/lib64/pkgconfig:$VENDOR_PREFIX/lib/pkgconfig:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig" export CMAKE_PREFIX_PATH="$VENDOR_PREFIX" # 1) 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 # 2) hyprland-qtutils 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" \ -DCMAKE_INSTALL_RPATH="$VENDOR_RPATH" \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON cmake --build build --parallel %{_smp_build_ncpus} %install DESTDIR=%{buildroot} cmake --install build %files %license LICENSE %doc README.md %{_bindir}/hyprland-dialog %{_bindir}/hyprland-donate-screen %{_bindir}/hyprland-update-screen %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 * Mon Mar 17 2026 Automated Build - 0.1.5-1 - Initial package for jwpkg/Hyprland-Fedora COPR