# SPDX-License-Identifier: MIT # ============================================================================= # Version definitions # ============================================================================= %global guiutils_version 0.2.1 %global hyprland_min_ver 0.54.2 %global hyprutils_ver 0.11.0 %global hyprlang_ver 0.6.8 %global hyprtoolkit_ver 0.5.3 Name: hyprland-guiutils Version: %{guiutils_version} Release: 1%{?dist} Summary: GUI utility apps for Hyprland (dialog, welcome, run launcher) License: BSD-3-Clause URL: https://github.com/hyprwm/hyprland-guiutils # Main source Source0: https://github.com/hyprwm/hyprland-guiutils/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 Source11: https://github.com/hyprwm/hyprlang/archive/refs/tags/v%{hyprlang_ver}.tar.gz#/hyprlang-%{hyprlang_ver}.tar.gz Source12: https://github.com/hyprwm/hyprtoolkit/archive/refs/tags/v%{hyprtoolkit_ver}.tar.gz#/hyprtoolkit-%{hyprtoolkit_ver}.tar.gz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: pkgconf-pkg-config BuildRequires: iniparser-devel BuildRequires: libdrm-devel BuildRequires: libxkbcommon-devel BuildRequires: pixman-devel Requires: hyprland >= %{hyprland_min_ver} # hyprland-qtutils installs the same binaries and is superseded upstream Conflicts: hyprland-qtutils %description hyprland-guiutils provides GUI utility applications for the Hyprland compositor: hyprland-dialog (crash recovery and system dialogs), hyprland-welcome (welcome screen), hyprland-run (application launcher), hyprland-donate-screen, and hyprland-update-screen. This is the C++ successor to hyprland-qtutils. It 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} %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" GCC15_CXXFLAGS="%{optflags} -fpermissive" # 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) 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 # 3) 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 # 4) hyprland-guiutils # rpath-link so the linker resolves hyprtoolkit's transitive vendor deps 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" \ -DCMAKE_CXX_FLAGS="$GCC15_CXXFLAGS" \ -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-run %{_bindir}/hyprland-update-screen %{_bindir}/hyprland-welcome %changelog * Wed Mar 18 2026 Automated Build - 0.2.1-1 - Update to hyprland-guiutils 0.2.1 * Wed Mar 18 2026 Automated Build - 0.2.1-1 - Initial package for jwpkg/Hyprland-Fedora COPR