Name: hyprland Version: 0.52.2 Release: 3%{?dist} Summary: Dynamic tiling Wayland compositor License: BSD-3-Clause URL: https://github.com/hyprwm/Hyprland Source0: https://github.com/hyprwm/Hyprland/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: https://github.com/canihavesomecoffee/udis86/archive/refs/tags/v1.7.2.tar.gz#/udis86-1.7.2.tar.gz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja-build BuildRequires: meson BuildRequires: pkgconf-pkg-config BuildRequires: patchelf # prevent network fetch for glaze; prefer system/copr package via pkg-config BuildRequires: pkgconfig(glaze) # Hypr deps BuildRequires: hyprwayland-scanner-devel BuildRequires: hyprutils-devel BuildRequires: hyprlang-devel BuildRequires: hyprcursor-devel BuildRequires: hyprgraphics-devel BuildRequires: aquamarine-devel BuildRequires: hyprwire-devel BuildRequires: pkgconfig(hyprland-protocols) # System deps BuildRequires: cairo-devel BuildRequires: glm-devel BuildRequires: glslang-devel BuildRequires: hwdata BuildRequires: libdisplay-info-devel BuildRequires: libdrm-devel BuildRequires: libepoxy-devel BuildRequires: mesa-libgbm-devel BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGLES-devel BuildRequires: libinput-devel BuildRequires: libjxl-devel BuildRequires: libliftoff-devel BuildRequires: libspng-devel BuildRequires: libwebp-devel BuildRequires: libxcb-devel BuildRequires: libXcursor-devel BuildRequires: libxcvt-devel BuildRequires: libxkbcommon-devel BuildRequires: pango-devel BuildRequires: pixman-devel BuildRequires: pugixml-devel BuildRequires: re2-devel BuildRequires: scdoc BuildRequires: libseat-devel BuildRequires: systemd-devel BuildRequires: tomlplusplus-devel BuildRequires: wayland-devel BuildRequires: wayland-protocols-devel BuildRequires: libzip-devel BuildRequires: librsvg2-devel BuildRequires: libjpeg-turbo-devel BuildRequires: libpng-devel BuildRequires: file-devel BuildRequires: xcb-util-devel BuildRequires: xcb-util-errors-devel BuildRequires: xcb-util-image-devel BuildRequires: xcb-util-renderutil-devel BuildRequires: xcb-util-wm-devel BuildRequires: xorg-x11-server-Xwayland BuildRequires: libXfont2-devel BuildRequires: xkeyboard-config BuildRequires: glib2-devel BuildRequires: libuuid-devel %description Hyprland is a dynamic tiling Wayland compositor with modern Wayland features, high customizability, IPC, plugins, and visual effects. %prep %autosetup -n Hyprland-%{version} # Vendor udis86 into Hyprland's expected fallback path rm -rf subprojects/udis86 mkdir -p subprojects tar -xzf %{SOURCE1} -C subprojects mv subprojects/udis86-1.7.2 subprojects/udis86 # Inject CMakeLists if missing if [ ! -f subprojects/udis86/CMakeLists.txt ]; then cat > subprojects/udis86/CMakeLists.txt << 'EOF' cmake_minimum_required(VERSION 3.16) project(udis86 C) file(GLOB UDIS86_SRC "${CMAKE_CURRENT_SOURCE_DIR}/libudis86/*.c") add_library(udis86 STATIC ${UDIS86_SRC}) target_include_directories(udis86 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/libudis86 ) add_library(udis86::udis86 ALIAS udis86) EOF fi %build export CXXFLAGS="%{optflags} -Wno-zero-length-array" export CFLAGS="%{optflags} -Wno-zero-length-array" %cmake -G Ninja -B build \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=%{_prefix} %{__cmake} --build build --verbose -j%{?_smp_build_ncpus} %install %cmake_install -C build ln -sf Hyprland %{buildroot}%{_bindir}/hyprland install -d %{buildroot}%{_datadir}/wayland-sessions if [ ! -f %{buildroot}%{_datadir}/wayland-sessions/hyprland.desktop ]; then cat > %{buildroot}%{_datadir}/wayland-sessions/hyprland.desktop << 'EOF' [Desktop Entry] Name=Hyprland Comment=Dynamic tiling Wayland compositor Exec=Hyprland Type=Application DesktopNames=Hyprland EOF fi %files %license LICENSE %doc README.md %{_bindir}/Hyprland %{_bindir}/hyprland %{_bindir}/hyprctl %{_bindir}/hyprpm %{_datadir}/wayland-sessions/hyprland.desktop %{_datadir}/hypr/ %{_datadir}/xdg-desktop-portal/hyprland-portals.conf %changelog %autochangelog