## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 4; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %bcond check 1 Name: niri Version: 25.05 Release: %autorelease Summary: Scrollable-tiling Wayland compositor SourceLicense: GPL-3.0-or-later # (MIT OR Apache-2.0) AND BSD-3-Clause # (MIT OR Apache-2.0) AND Unicode-3.0 # 0BSD OR MIT OR Apache-2.0 # Apache-2.0 # Apache-2.0 OR BSL-1.0 # Apache-2.0 OR MIT # Apache-2.0 OR MIT OR Unlicense # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT # BSD-2-Clause # BSD-2-Clause OR Apache-2.0 OR MIT # BSD-3-Clause OR MIT OR Apache-2.0 # GPL-3.0-or-later # ISC # MIT # MIT OR Apache-2.0 # MIT OR Apache-2.0 OR LGPL-2.1-or-later # MIT OR Apache-2.0 OR Zlib # MIT OR Zlib OR Apache-2.0 # MPL-2.0 # Unicode-3.0 # Unlicense OR MIT # Zlib OR Apache-2.0 OR MIT License: %{shrink: GPL-3.0-or-later AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Unlicense) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (Unlicense OR MIT) } # LICENSE.dependencies contains a full license breakdown URL: https://github.com/YaLTeR/niri Source0: %{url}/archive/v%{version}/niri-%{version}.tar.gz # generated by "cargo vendor --versioned-dirs > vendor.toml" Source1: niri-%{version}-vendor.tar.xz Source2: vendor.toml ExcludeArch: %{ix86} BuildRequires: cargo-rpm-macros BuildRequires: clang BuildRequires: gcc BuildRequires: glibc-devel BuildRequires: systemd-rpm-macros BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(libadwaita-1) BuildRequires: pkgconfig(libdisplay-info) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libseat) BuildRequires: pkgconfig(libspa-0.2) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangocairo) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(xkbcommon) # required for portal support Recommends: gnome-keyring Recommends: xdg-desktop-portal-gnome Recommends: xdg-desktop-portal-gtk # required for xwayland support Recommends: xwayland-satellite # applications bound by keyboard shortcuts in default configuration Recommends: alacritty Recommends: fuzzel Recommends: swaylock Recommends: wireplumber # applications spawned at startup in default configuration Recommends: waybar %description A scrollable-tiling Wayland compositor. %prep %autosetup -n niri-%{version} -a1 -p1 %cargo_prep -N # include full configuration for vendored dependencies cat %{SOURCE2} >> .cargo/config.toml %build # set version string without commit information export NIRI_BUILD_VERSION_STRING="%{version}" %cargo_build # generate shell completions target/rpm/niri completions bash > niri.bash target/rpm/niri completions fish > niri.fish target/rpm/niri completions zsh > _niri # write license summary and breakdown %{cargo_license_summary} %{cargo_license} > LICENSE.dependencies %{cargo_vendor_manifest} # replace un-parseable git snapshot dependency information sed 's/\(.*\) (.*#\(.*\))/\1+git\2/' -i cargo-vendor.txt %install install -Dpm0755 target/rpm/niri -t %{buildroot}%{_bindir} install -Dpm0755 resources/niri-session -t %{buildroot}%{_bindir} install -Dpm0644 resources/niri.desktop -t %{buildroot}%{_datadir}/wayland-sessions install -Dpm0644 resources/niri-portals.conf -t %{buildroot}%{_datadir}/xdg-desktop-portal install -Dpm0644 resources/niri.service -t %{buildroot}%{_userunitdir} install -Dpm0644 resources/niri-shutdown.target -t %{buildroot}%{_userunitdir} install -Dpm0644 niri.bash -t %{buildroot}%{bash_completions_dir} install -Dpm0644 niri.fish -t %{buildroot}%{fish_completions_dir} install -Dpm0644 _niri -t %{buildroot}%{zsh_completions_dir} %if %{with check} %check # * skip tests that require a running session # * limit test parallelism to avoid "too many open files" errors export RAYON_NUM_THREADS=2 %cargo_test -- --workspace --exclude niri-visual-tests -- --test-threads 2 %endif %post %systemd_user_post niri.service %preun %systemd_user_preun niri.service %postun %systemd_user_postun_with_reload niri.service %files %license LICENSE %license LICENSE.dependencies %license cargo-vendor.txt %doc README.md %doc resources/default-config.kdl %doc wiki %{_bindir}/niri %{_bindir}/niri-session %dir %{_datadir}/wayland-sessions/ %{_datadir}/wayland-sessions/niri.desktop %dir %{_datadir}/xdg-desktop-portal/ %{_datadir}/xdg-desktop-portal/niri-portals.conf %{_userunitdir}/niri.service %{_userunitdir}/niri-shutdown.target %{bash_completions_dir}/niri.bash %{fish_completions_dir}/niri.fish %{zsh_completions_dir}/_niri %changelog ## START: Generated by rpmautospec * Tue May 20 2025 Fabio Valentini - 25.05-4 - Limit rayon-based parallelism internal to tests too * Tue May 20 2025 Fabio Valentini - 25.05-3 - Limit test parallelism even further * Tue May 20 2025 Fabio Valentini - 25.05-2 - Limit test parallelism to avoid "too many open files" errors * Mon May 19 2025 Fabio Valentini - 25.05-1 - Update to version 25.05 * Mon May 19 2025 Fabio Valentini - 25.02-1 - Initial import (#2362060) ## END: Generated by rpmautospec