mirror of
https://github.com/YaLTeR/niri.git
synced 2025-07-07 12:05:00 +00:00
150 lines
4.7 KiB
Text
150 lines
4.7 KiB
Text
%bcond_without check
|
|
|
|
%global cargo_install_lib 0
|
|
|
|
# We want panic backtraces to work without installing the debuginfo package,
|
|
# so we leave the debuginfo in the main binary.
|
|
%global debug_package %{nil}
|
|
%global __strip /bin/true
|
|
|
|
# To reduce the file size, do some convincing of rust-srpm-macros
|
|
# to leave alone the chosen debug settings from Cargo.toml.
|
|
%global rustflags_debuginfo please-remove-me
|
|
%global build_rustflags %{shrink:
|
|
-Copt-level=%rustflags_opt_level
|
|
-Ccodegen-units=%rustflags_codegen_units
|
|
-Cstrip=none
|
|
%{expr:0%{?_include_frame_pointers} && ("%{_arch}" != "ppc64le" && "%{_arch}" != "s390x" && "%{_arch}" != "i386") ? "-Cforce-frame-pointers=yes" : ""}
|
|
-Clink-arg=-Wl,-z,relro
|
|
-Clink-arg=-Wl,-z,now
|
|
%[0%{?_package_note_status} ? "-Clink-arg=%_package_note_flags" : ""]
|
|
--cap-lints=warn
|
|
}
|
|
|
|
# Convince rust-srpm-macros to use Cargo.lock with the Smithay commit.
|
|
%global __cargo_common_opts %{?_smp_mflags} -Z avoid-dev-deps --locked
|
|
|
|
%global version {{{ git_dir_version }}}
|
|
|
|
Name: niri
|
|
Version: %{version}
|
|
Release: 1%{?dist}
|
|
Summary: Scrollable-tiling Wayland compositor
|
|
|
|
SourceLicense: GPL-3.0-or-later
|
|
|
|
# 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 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 AND (MIT OR Apache-2.0)
|
|
# MIT OR Apache-2.0
|
|
# (MIT OR Apache-2.0) AND BSD-3-Clause
|
|
# (MIT OR Apache-2.0) AND Unicode-3.0
|
|
# 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: (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (GPL-3.0-or-later) AND (ISC) AND (MIT) AND (MIT AND (MIT OR Apache-2.0)) AND (MIT OR Apache-2.0) AND ((MIT OR Apache-2.0) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND (MPL-2.0) AND (Unicode-3.0) AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT)
|
|
# LICENSE.dependencies contains a full license breakdown
|
|
|
|
URL: https://github.com/YaLTeR/niri
|
|
VCS: {{{ git_dir_vcs }}}
|
|
Source: {{{ git_dir_pack }}}
|
|
|
|
BuildRequires: cargo-rpm-macros >= 26
|
|
BuildRequires: pkgconfig(udev)
|
|
BuildRequires: pkgconfig(gbm)
|
|
BuildRequires: pkgconfig(xkbcommon)
|
|
BuildRequires: wayland-devel
|
|
BuildRequires: pkgconfig(libinput)
|
|
BuildRequires: pkgconfig(dbus-1)
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(libseat)
|
|
BuildRequires: pkgconfig(libdisplay-info)
|
|
BuildRequires: pipewire-devel
|
|
BuildRequires: pango-devel
|
|
BuildRequires: cairo-gobject-devel
|
|
# Needed for pipewire-rs
|
|
BuildRequires: clang
|
|
|
|
Requires: mesa-dri-drivers
|
|
Requires: mesa-libEGL
|
|
|
|
# Portal implementations used by niri
|
|
Recommends: xdg-desktop-portal-gtk
|
|
Recommends: xdg-desktop-portal-gnome
|
|
Recommends: gnome-keyring
|
|
|
|
# Suggested utilities, bound in the default config
|
|
Recommends: alacritty
|
|
Recommends: fuzzel
|
|
Recommends: swaylock
|
|
Recommends: waybar
|
|
# Suggested utilities
|
|
Recommends: swaybg
|
|
Recommends: mako
|
|
Recommends: swayidle
|
|
|
|
%description
|
|
A scrollable-tiling Wayland compositor.
|
|
|
|
Windows are arranged in columns on an infinite strip going to the right.
|
|
Opening a new window never causes existing windows to resize.
|
|
|
|
%prep
|
|
{{{ git_dir_setup_macro }}}
|
|
|
|
%cargo_prep -N
|
|
|
|
# We're doing an online build.
|
|
sed -i 's/^offline = true$//' .cargo/config.toml
|
|
|
|
# Final step in leaving alone our debug settings.
|
|
sed -i 's/.*please-remove-me$//' .cargo/config.toml
|
|
|
|
# Set the commit string.
|
|
sed -i 's/\[env\]/[env]\nNIRI_BUILD_COMMIT="%{version}"/' .cargo/config.toml
|
|
|
|
%build
|
|
%cargo_build
|
|
|
|
%install
|
|
%cargo_install
|
|
|
|
install -Dm755 -t %{buildroot}%{_bindir} ./resources/niri-session
|
|
install -Dm644 -t %{buildroot}%{_datadir}/wayland-sessions ./resources/niri.desktop
|
|
install -Dm644 -t %{buildroot}%{_datadir}/xdg-desktop-portal ./resources/niri-portals.conf
|
|
install -Dm644 -t %{buildroot}%{_userunitdir} ./resources/niri.service
|
|
install -Dm644 -t %{buildroot}%{_userunitdir} ./resources/niri-shutdown.target
|
|
|
|
%if %{with check}
|
|
%check
|
|
%cargo_test -- --workspace --exclude niri-visual-tests
|
|
%endif
|
|
|
|
%files
|
|
%license LICENSE
|
|
%doc README.md
|
|
%doc resources/default-config.kdl
|
|
%doc wiki
|
|
%{_bindir}/niri
|
|
%{_bindir}/niri-session
|
|
%{_datadir}/wayland-sessions/niri.desktop
|
|
%dir %{_datadir}/xdg-desktop-portal
|
|
%{_datadir}/xdg-desktop-portal/niri-portals.conf
|
|
%{_userunitdir}/niri.service
|
|
%{_userunitdir}/niri-shutdown.target
|
|
|
|
%changelog
|
|
{{{ git_dir_changelog }}}
|
|
|