%global zig_pixman_ver 0.3.0 %global zig_wayland_ver 0.4.0 %global zig_wlroots_ver 0.19.3 %global zig_xkbcommon_ver 0.3.0 Name: river-classic Version: 0.3.14 Release: %autorelease 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-classic Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz Source1: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz.sig # Isaac Freund Source2: https://isaacfreund.com/public_key.txt#/gpgkey-86DED400DDFD7A11.gpg Source3: %{name}.desktop Source4: https://codeberg.org/ifreund/zig-pixman/archive/v%{zig_pixman_ver}.tar.gz#/zig-pixman-%{zig_pixman_ver}.tar.gz Source5: https://codeberg.org/ifreund/zig-wayland/archive/v%{zig_wayland_ver}.tar.gz#/zig-wayland-%{zig_wayland_ver}.tar.gz Source6: https://codeberg.org/ifreund/zig-wlroots/archive/v%{zig_wlroots_ver}.tar.gz#/zig-wlroots-%{zig_wlroots_ver}.tar.gz Source7: https://codeberg.org/ifreund/zig-xkbcommon/archive/v%{zig_xkbcommon_ver}.tar.gz#/zig-xkbcommon-%{zig_xkbcommon_ver}.tar.gz ExclusiveArch: %{zig_arches} BuildRequires: gcc BuildRequires: gnupg2 BuildRequires: scdoc BuildRequires: (zig >= 0.15.2 with zig < 0.16) 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.19) BuildRequires: pkgconfig(xkbcommon) # Right now there is no established way of managing Zig dependencies systemwide # so for the time being they are bundled as part of the project. Provides: bundled(zig-pixman) = %{zig_pixman_ver} Provides: bundled(zig-wayland) = %{zig_wayland_ver} Provides: bundled(zig-wlroots) = %{zig_wlroots_ver} Provides: bundled(zig-xkbcommon) = %{zig_xkbcommon_ver} # Migration path for river < 0.4.0 Conflicts: river Obsoletes: river <= 0.3.14 Provides: river = %{version}-%{release} # 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-classic is a dynamic tiling Wayland compositor with flexible runtime configuration. It is a fork of river 0.3 intended for users that are happy with how river 0.3 works and do not wish to deal with the majorly breaking changes planned for the river 0.4.0 release. 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 %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %setup -q -a 4 -a 5 -a 6 -a 7 %zig_fetch zig-pixman %zig_fetch zig-wayland %zig_fetch zig-wlroots %zig_fetch zig-xkbcommon %build %zig_build \ -Dpie \ -Dxwayland %install %zig_install \ -Dpie \ -Dxwayland install -D -m755 -pv example/init %{buildroot}%{_datadir}/%{name}/init.example install -D -m644 -pv %{SOURCE3} %{buildroot}%{_datadir}/wayland-sessions/%{name}.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}/%{name} %{_datadir}/%{name}/init.example %{_datadir}/wayland-sessions/%{name}.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 %autochangelog