Blob Blame History Raw
# zig neither sets build-id nor allows to override the linker flags
# ziglang/zig#3047
%undefine  _missing_build_ids_terminate_build

# 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

Name:           river
Version:        0.2.1
Release:        3%{?dist}
Summary:        Dynamic tiling Wayland compositor

# river: GPL-3.0-only
# 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}/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.9 with zig < 0.10)
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.16.0 with pkgconfig(wlroots) < 0.17)
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 \
   -Dxwayland


%install
%zig_install \
    -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
%{_datadir}/bash-completion/completions/riverctl
%{_datadir}/fish/vendor_completions.d/riverctl.fish
%{_datadir}/zsh/site-functions/_riverctl

%files protocols-devel
%{_datadir}/pkgconfig/river-protocols.pc
%dir %{_datadir}/river-protocols
%{_datadir}/river-protocols/*.xml

%changelog
* 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)