# rhbz#2142334: zig_arches is not defined in the srpm buildroot %if 0%{!?zig_arches:1} %global zig_arches x86_64 aarch64 riscv64 %{mips64} %endif %global commit 60f4cafad089b59c4791898670b723e3e133574d %global date 20240302 %global name1 zig-pixman %global date1 20230812 %global commit1 b0a961079d80059ef56565e23c5f7a8b6a911196 %global forgeurl1 https://github.com/ifreund/%{name1} %global name2 zig-wayland %global date2 20240302 %global commit2 70285787ce871a5f2bc91151a610f54b537c8857 %global forgeurl2 https://github.com/ifreund/%{name2} %global name3 zig-wlroots %global date3 20240302 %global commit3 4094b86f6ec705e2f3974406601ec986364e87a3 %global forgeurl3 https://github.com/swaywm/%{name3} %global name4 zig-xkbcommon %global date4 20240107 %global commit4 7b188de0ba794b52eb70340abf2469b858630816 %global forgeurl4 https://github.com/ifreund/%{name4} %define snapver() %{lua: src = rpm.expand('%{?1}') commit = rpm.expand(('%%{commit%s}'):format(src)):sub(0,7) date = rpm.expand(('%%{date%s}'):format(src)) print(('%sgit%s'):format(date, commit)) } %global srcname river Name: %{srcname}-git Version: 0.3.0~%{snapver} Release: 1%{?dist} Summary: Dynamic tiling Wayland compositor # river: GPL-3.0-only # deps/zig-pixman: MIT # deps/zig-wayland: MIT # deps/zig-wlroots: MIT # deps/zig-xkbcommon: MIT # protocol/river-control-unstable-v1.xml: ISC # protocol/river-layout-v3.xml: ISC # protocol/river-status-unstable-v1.xml: ISC # protocol/wlr-layer-shell-unstable-v1.xml: HPND-sell-variant # protocol/wlr-output-power-management-unstable-v1.xml: MIT License: GPL-3.0-only AND HPND-sell-variant AND ISC AND MIT URL: https://github.com/riverwm/river Source0: %{url}/archive/%{commit}/%{srcname}-%{snapver}.tar.gz Source1: %{forgeurl1}/archive/%{commit1}/%{name1}-%{snapver 1}.tar.gz Source2: %{forgeurl2}/archive/%{commit2}/%{name2}-%{snapver 2}.tar.gz Source3: %{forgeurl3}/archive/%{commit3}/%{name3}-%{snapver 3}.tar.gz Source4: %{forgeurl4}/archive/%{commit4}/%{name4}-%{snapver 4}.tar.gz Source100: river.desktop ExclusiveArch: %{zig_arches} BuildRequires: gcc BuildRequires: gnupg2 BuildRequires: scdoc BuildRequires: (zig >= 0.11 with zig < 0.12) BuildRequires: zig-rpm-macros BuildRequires: pkgconfig(libevdev) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-server) BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18) BuildRequires: pkgconfig(xkbcommon) Conflicts: %{srcname} # As of now, zig does not provide a package manager or any other official way # to consume a library code other than referencing it directly by file path. # There are some community-maintained tools, but this project does not use # any of those. # # In theory we can unbundle the libs by patching paths in build.zig, but given # that there's no standard location for system packages and the fact that all # of the libs below are git snapshots from the same upstream, it's not worth # the effort. Provides: bundled(zig-pixman) Provides: bundled(zig-wayland) Provides: bundled(zig-wlroots) Provides: bundled(zig-xkbcommon) # Lack of graphical drivers may hurt the common use case Recommends: mesa-dri-drivers # Logind needs polkit to create a graphical session Recommends: polkit # Compatibility layer for X11 applications Recommends: xorg-x11-server-Xwayland %description river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm. Design goals: * Simplicity and minimalism, river should not overstep the bounds of a window manager. * Window management based on a stack of views and tags. * Dynamic layouts generated by external, user-written executables. (A default rivertile layout generator is provided.) * Scriptable configuration and control through a custom wayland protocol and separate riverctl binary implementing it. %package protocols-devel Summary: Protocol files for the river wayland compositor License: ISC %description protocols-devel %{summary}. %prep %autosetup -n %{srcname}-%{commit} tar -xaf %SOURCE1 --strip-components=1 -C deps/%{name1} tar -xaf %SOURCE2 --strip-components=1 -C deps/%{name2} tar -xaf %SOURCE3 --strip-components=1 -C deps/%{name3} tar -xaf %SOURCE4 --strip-components=1 -C deps/%{name4} %{_fixperms} . %build %zig_build \ -Dxwayland %install %zig_install \ -Dxwayland install -D -m755 -pv example/init %{buildroot}%{_datadir}/river/init.example install -D -m644 -pv %{SOURCE100} %{buildroot}%{_datadir}/wayland-sessions/river.desktop %check %zig_test %files %license LICENSE %doc README.md %{_bindir}/river %{_bindir}/riverctl %{_bindir}/rivertile %{_mandir}/man1/river.1* %{_mandir}/man1/riverctl.1* %{_mandir}/man1/rivertile.1* %dir %{_datadir}/river %{_datadir}/river/init.example %{_datadir}/wayland-sessions/river.desktop # shell completions %{bash_completions_dir}/riverctl %{fish_completions_dir}/riverctl.fish %{zsh_completions_dir}/_riverctl %files protocols-devel %{_datadir}/pkgconfig/river-protocols.pc %dir %{_datadir}/river-protocols %{_datadir}/river-protocols/*.xml %changelog * Wed Jan 24 2024 Aleksei Bavshin - 0.3.0~20240113g69a51ca-1 - Update to 0.3.0 git snapshot * Mon Jan 22 2024 Aleksei Bavshin - 0.2.6-1 - Update to 0.2.6 (rhbz#2159117) * Mon Jan 22 2024 Fedora Release Engineering - 0.2.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Fri Jul 21 2023 Fedora Release Engineering - 0.2.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Fri Jan 20 2023 Fedora Release Engineering - 0.2.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Sun Jan 08 2023 Aleksei Bavshin - 0.2.1-1 - Update to 0.2.1 - Drop ownership of shell completion dirs. filesystem >= 3.18 provides these. * Sun Jan 01 2023 Aleksei Bavshin - 0.2.0-1 - Update to 0.2.0 * Sun Sep 25 2022 Aleksei Bavshin - 0.1.3-1 - Initial import (#2051062)