Blob Blame History Raw
Name:           river
Version:        0.3.1
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}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source1:        %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz.sig
# Isaac Freund <mail@isaacfreund.com>
Source2:        https://isaacfreund.com/public_key.txt#/gpgkey-86DED400DDFD7A11.gpg
Source3:        %{name}.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.2 with pkgconfig(wlroots) < 0.18)
BuildRequires:  pkgconfig(xkbcommon)

# 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
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup


%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
* Sat May 18 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.3.1-1
- Update to 0.3.1 (#2281411)

* Tue Apr 16 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.3.0-1
- Update to 0.3.0

* Mon Feb 12 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.2.6-1
- Update to 0.2.6 (rhbz#2159117)

* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Sun Jan 08 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 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 <alebastr@fedoraproject.org> - 0.2.0-1
- Update to 0.2.0

* Sun Sep 25 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.1.3-1
- Initial import (#2051062)