Name: hyprland Version: 0.57.0 Release: 2%{?dist} Summary: A modern, independent, dynamic tiling Wayland compositor License: BSD-3-Clause URL: https://github.com/hyprwm/Hyprland # Upstream ships a dedicated release asset instead of the plain tag archive # because Hyprland vendors git submodules (subprojects/udis86, # subprojects/hyprland-protocols, subprojects/tracy) that a plain # archive/refs/tags/ tarball would not include. Source0: %{url}/releases/download/v%{version}/source-v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: python3 # same-ecosystem libraries (sibling Copr packages) BuildRequires: hyprutils-devel >= 0.13.1 BuildRequires: hyprlang-devel >= 0.6.7 BuildRequires: hyprcursor-devel >= 0.1.7 BuildRequires: hyprgraphics-devel >= 0.5.1 BuildRequires: aquamarine-devel >= 0.9.3 # hyprland-protocols and hyprwayland-scanner ship as single packages here (no # -devel subpackage), so require the virtual provides they actually ship # instead of a literal "-devel" package name that doesn't exist for either. # The hyprwayland-scanner floor must also exceed Fedora's own # hyprwayland-scanner-devel (0.4.2), which predates a codegen fix for empty # event/request vtables (used to emit an illegal C++ zero-size array). BuildRequires: pkgconfig(hyprland-protocols) >= 0.6.4 BuildRequires: pkgconfig(hyprwayland-scanner) >= 0.4.6 BuildRequires: hyprwire-devel # Wayland / graphics stack BuildRequires: pkgconfig(xkbcommon) >= 1.11.0 BuildRequires: pkgconfig(uuid) BuildRequires: pkgconfig(wayland-server) >= 1.22.91 BuildRequires: pkgconfig(wayland-protocols) >= 1.47 BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangocairo) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libinput) >= 1.28 BuildRequires: pkgconfig(libeis-1.0) BuildRequires: pkgconfig(libcanberra) BuildRequires: pkgconfig(sdbus-c++) >= 2.0.0 BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(re2) BuildRequires: pkgconfig(readline) BuildRequires: pkgconfig(muparser) BuildRequires: pkgconfig(lcms2) BuildRequires: pkgconfig(glslang) BuildRequires: libglvnd-devel # upstream's pkg_search_module tries "lua55" before falling back to a # version-locked ">=5.5,<5.6" lua; Fedora only ships lua 5.4 as plain # pkgconfig(lua), so CMakeLists.txt is patched below (lua55 -> lua) to put # the unversioned name first in the search order, matching how Fedora's own # hyprland-git packaging handles this (see src.fedoraproject.org). BuildRequires: pkgconfig(lua) BuildRequires: tomlplusplus-devel BuildRequires: glaze-devel # XWayland support BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-icccm) BuildRequires: pkgconfig(xcb-composite) BuildRequires: pkgconfig(xcb-res) BuildRequires: pkgconfig(xcb-errors) # soft runtime dependency: used for some permission/dialog prompts, only # prints a warning if missing Recommends: hyprland-guiutils %description Hyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks. It provides the latest Wayland features, extensive theming and animations, a powerful plugin system with its own plugin manager (hyprpm), and socket-based IPC (hyprctl), without depending on wlroots or any other compositor library. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel Headers and pkgconfig file for building Hyprland plugins, as used by hyprpm. %prep %autosetup -n hyprland-source # Fedora ships plain lua (5.4) as pkgconfig(lua), not lua5.5; put the # unversioned name first in CMake's pkg_search_module fallback list. sed -i 's/lua55/lua/g' CMakeLists.txt # Upstream pins glaze version range to 7...<8, but Copr ships glaze 8.x. sed -i 's/find_package(glaze 7\.\.\.<8 QUIET)/find_package(glaze REQUIRED)/g' CMakeLists.txt %build %cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF %cmake_build %install %cmake_install %check test -x %{buildroot}%{_bindir}/Hyprland test -x %{buildroot}%{_bindir}/hyprctl %files %license LICENSE %doc README.md %{_bindir}/Hyprland %{_bindir}/hyprland %{_bindir}/hyprctl %{_bindir}/hyprpm %{_bindir}/start-hyprland %{_datadir}/wayland-sessions/hyprland.desktop %{_datadir}/wayland-sessions/hyprland-uwsm.desktop %{_datadir}/hypr/ %{_datadir}/xdg-desktop-portal/hyprland-portals.conf %{_mandir}/man1/Hyprland.1* %{_mandir}/man1/hyprctl.1* %{bash_completions_dir}/hyprctl %{bash_completions_dir}/hyprpm %{_datadir}/fish/vendor_completions.d/hyprctl.fish %{_datadir}/fish/vendor_completions.d/hyprpm.fish %{_datadir}/zsh/site-functions/_hyprctl %{_datadir}/zsh/site-functions/_hyprpm %files devel %{_datadir}/pkgconfig/hyprland.pc %{_includedir}/hyprland/ %changelog * Thu Oct 29 2026 sachesi - 0.57.0-2 - Require libcanberra and sdbus-c++ for the CMake build. * Wed Oct 28 2026 sachesi - 0.57.0-1 - Update to 0.57.0. * Mon Sep 21 2026 sachesi - 0.56.2-4 - Split headers and hyprland.pc into a -devel subpackage. hyprland.pc requires aquamarine, cairo, libinput and other libraries, so RPM's pkgconfig generator made the main package depend on their -devel packages (62 packages on a plain runtime install). * Mon Aug 10 2026 sachesi - 0.56.2-2 - Patch CMakeLists.txt to accept system glaze 8.x. * Sun Aug 09 2026 sachesi - 0.56.2-1 - Update to 0.56.2. * Mon Jul 27 2026 sachesi - 0.56.1-1 - Update to 0.56.1. * Wed Jul 22 2026 sachesi - 0.56.0-6 - Rebuild. * Wed Jul 22 2026 sachesi - 0.56.0-5 - Rebuild. * Wed Jul 22 2026 sachesi - 0.56.0-4 - Rebuild. * Wed Jul 22 2026 sachesi - 0.56.0-3 - Rebuild. * Wed Jul 22 2026 sachesi - 0.56.0-2 - Rebuild. * Wed Jul 22 2026 sachesi - 0.56.0-1 - Update to 0.56.0. * Mon Jul 06 2026 sachesi - 0.55.4-1 - Initial package for Copr.