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

# FIXME: zig-rpm-macros is not in koji srpm buildroot, and zig_arches has to be
# defined at this stage for valid ExclusiveArch
%if 0%{!?zig_arches:1}
%global zig_arches x86_64 aarch64 riscv64 %{mips64}

Name:           river
Version:        0.1.3
Release:        1%{?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
Source0:        %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source1:        %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz.sig
# Isaac Freund <>
Source3:        %{name}.desktop

ExclusiveArch:  %{zig_arches}

BuildRequires:  gcc
BuildRequires:  gnupg2
BuildRequires:  scdoc
BuildRequires:  zig >= 0.9
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.15.0 with pkgconfig(wlroots) < 0.16)
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

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

%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'

%zig_build \

%zig_install \
install -D -m755 -pv example/init %{buildroot}%{_datadir}/%{name}/init.example
install -D -m644 -pv %{SOURCE3} %{buildroot}%{_datadir}/wayland-sessions/%{name}.desktop


%license LICENSE
%dir %{_datadir}/%{name}
# shell completions
%dir %{_datadir}/fish
%dir %{_datadir}/fish/vendor_completions.d
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions

%files protocols-devel
%dir %{_datadir}/river-protocols

* Sun Sep 25 2022 Aleksei Bavshin <> - 0.1.3-1
- Initial import (#2051062)