%global basever 0.22.0 %global prerel beta %global tag v%{basever}%{?prerel} Name: hyprland Version: %{basever}%{?prerel:~%{prerel}} Release: %autorelease Summary: Dynamic tiling Wayland compositor that doesn't sacrifice on its looks # main source code is BSD-3-Clause # subprojects/hyprland-protocols is BSD-3-Clause # subprojects/wlroots is MIT License: BSD-3-Clause and MIT URL: https://github.com/hyprwm/Hyprland Source: %{url}/releases/download/%{tag}/source-%{tag}.tar.gz # Revert passing git information to meson to avoid a build requirment on git. # https://github.com/hyprwm/Hyprland/commit/0eebf3ab1614a34433cc4d208be84b930b88e25c Patch: 0001-Partially-revert-meson-add-DGIT-arguments-321.patch # The dependency is optional, and xcb-errors is not yet packaged in Fedora. # The system wlroots disables this dependency as well. Patch: 0002-Disable-xcb-errors-in-bundled-wlroots.patch BuildRequires: meson BuildRequires: gcc-c++ BuildRequires: jq BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangocairo) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-scanner) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xkbcommon) # bundled wlroots build requirements BuildRequires: glslang BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(hwdata) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(libseat) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-scanner) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-composite) BuildRequires: pkgconfig(xcb-dri3) BuildRequires: pkgconfig(xcb-icccm) BuildRequires: pkgconfig(xcb-present) BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-renderutil) BuildRequires: pkgconfig(xcb-res) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xinput) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(xwayland) # Upstream insists on always building against very current snapshots of # wlroots, and doesn't provide a method for building against a system copy. # https://github.com/hyprwm/Hyprland/issues/302 Provides: bundled(wlroots) = 0.17.0~^1.677a3f2 # Currently this library is only used by hyprland, so we'll keep it bundled for # now until something else needs it as a system package. Provides: bundled(hyprland-protocols) = 0~^1.301733a %description Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks. It supports multiple layouts, fancy effects, has a very flexible IPC model allowing for a lot of customization, and more. %prep %autosetup -p 1 -n hyprland-source cp subprojects/hyprland-protocols/LICENSE LICENSE-hyprland-protocols cp subprojects/wlroots/LICENSE LICENSE-wlroots %build %meson %meson_build %install %meson_install # remove wlroots development files rm -r %{buildroot}%{_includedir}/wlr rm -r %{buildroot}%{_libdir}/libwlroots.a rm -r %{buildroot}%{_libdir}/pkgconfig/wlroots.pc # remove hyprland-protocols development files rm %{buildroot}%{_datadir}/pkgconfig/hyprland-protocols.pc rm %{buildroot}%{_datadir}/protocols/hyprland-toplevel-export-v1.xml %files %license LICENSE LICENSE-hyprland-protocols LICENSE-wlroots %{_bindir}/Hyprland %{_bindir}/hyprctl %{_mandir}/man1/Hyprland.1* %{_mandir}/man1/hyprctl.1* %{_datadir}/hyprland %{_datadir}/wayland-sessions/hyprland.desktop %changelog %autochangelog