# 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 ed99d7bc14d1f77e3e49bb84ddbc7459c5b4182e %global date 20240322 %global name1 zig-pixman %global date1 20240212 %global commit1 70bff91beec4ad4c026dfc4465613e360dc85527 %global forgeurl1 https://codeberg.org/ifreund/%{name1} %global name2 zig-wayland %global date2 20240315 %global commit2 73fed093301b2e5f58998aa4797ce952bd148676 %global forgeurl2 https://codeberg.org/ifreund/%{name2} %global name3 zig-wlroots %global date3 20240320 %global commit3 a579f9f7dae72c960e8804737109815c78e471f4 %global forgeurl3 https://codeberg.org/ifreund/%{name3} %global name4 zig-xkbcommon %global date4 20240212 %global commit4 7e09b389373b060148c0ca050e0b525e118d91e7 %global forgeurl4 https://codeberg.org/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://codeberg.org/river/river Source0: %{url}/archive/%{commit}.tar.gz#/%{srcname}-%{snapver}.tar.gz Source1: %{forgeurl1}/archive/%{commit1}.tar.gz#/%{name1}-%{snapver 1}.tar.gz Source2: %{forgeurl2}/archive/%{commit2}.tar.gz#/%{name2}-%{snapver 2}.tar.gz Source3: %{forgeurl3}/archive/%{commit3}.tar.gz#/%{name3}-%{snapver 3}.tar.gz Source4: %{forgeurl4}/archive/%{commit4}.tar.gz#/%{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} 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)