forked from ceres-sees-all/ceres-ebuilds
gui-wm/niri: new package, add 9999
Signed-off-by: Ceres <ceres@ceressees.dev>
This commit is contained in:
parent
ecaa1ca6ba
commit
e7c2c077fc
1 changed files with 152 additions and 0 deletions
152
gui-wm/niri/niri-9999.ebuild
Normal file
152
gui-wm/niri/niri-9999.ebuild
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
# Copyright 2024-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CRATES="
|
||||
"
|
||||
|
||||
LLVM_COMPAT=( {18..21} )
|
||||
RUST_MIN_VER="1.82.0"
|
||||
|
||||
inherit cargo llvm-r2 optfeature shell-completion systemd
|
||||
|
||||
DESCRIPTION="Scrollable-tiling Wayland compositor"
|
||||
HOMEPAGE="https://github.com/YaLTeR/niri"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/Naxdy/niri.git"
|
||||
else
|
||||
SRC_URI="
|
||||
https://github.com/Naxdy/niri/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://github.com/Naxdy/niri/releases/download/v${PV}/${P}-vendored-dependencies.tar.xz
|
||||
${CARGO_CRATE_URIS}
|
||||
"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
# used for version string
|
||||
export NIRI_BUILD_COMMIT="b35bcae"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
# Dependent crate licenses
|
||||
LICENSE+="
|
||||
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT MPL-2.0
|
||||
Unicode-3.0 ZLIB
|
||||
"
|
||||
SLOT="0"
|
||||
IUSE="+dbus screencast systemd"
|
||||
REQUIRED_USE="
|
||||
screencast? ( dbus )
|
||||
systemd? ( dbus )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
dev-libs/glib:2
|
||||
dev-libs/libinput:=
|
||||
dev-libs/wayland
|
||||
<media-libs/libdisplay-info-0.4.0:=
|
||||
media-libs/mesa
|
||||
sys-auth/seatd:=
|
||||
virtual/libudev:=
|
||||
x11-libs/cairo
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/pango
|
||||
x11-libs/pixman
|
||||
screencast? ( media-video/pipewire:= )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
screencast? ( sys-apps/xdg-desktop-portal-gnome )
|
||||
"
|
||||
# libclang is required for bindgen
|
||||
BDEPEND="
|
||||
screencast? ( $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}') )
|
||||
"
|
||||
|
||||
ECARGO_VENDOR="${WORKDIR}/vendor"
|
||||
|
||||
QA_FLAGS_IGNORED="usr/bin/niri"
|
||||
|
||||
pkg_setup() {
|
||||
llvm-r2_pkg_setup
|
||||
rust_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
cargo_live_src_unpack
|
||||
else
|
||||
cargo_src_unpack
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
sed -i 's/git = "[^ ]*"/version = "*"/' Cargo.toml || die
|
||||
# niri-session doesn't work on OpenRC
|
||||
if ! use systemd; then
|
||||
local cmd="niri --session"
|
||||
use dbus && cmd="dbus-run-session $cmd"
|
||||
sed -i "s/niri-session/$cmd/" resources/niri.desktop || die
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myfeatures=(
|
||||
$(usev dbus)
|
||||
$(usev screencast xdp-gnome-screencast)
|
||||
$(usev systemd)
|
||||
)
|
||||
cargo_src_configure --no-default-features
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cargo_src_compile
|
||||
|
||||
"$(cargo_target_dir)"/niri completions bash > niri || die
|
||||
"$(cargo_target_dir)"/niri completions fish > niri.fish || die
|
||||
"$(cargo_target_dir)"/niri completions zsh > _niri || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cargo_src_install
|
||||
|
||||
dobin resources/niri-session
|
||||
systemd_douserunit resources/niri{.service,-shutdown.target}
|
||||
|
||||
insinto /usr/share/wayland-sessions
|
||||
doins resources/niri.desktop
|
||||
|
||||
insinto /usr/share/xdg-desktop-portal
|
||||
doins resources/niri-portals.conf
|
||||
|
||||
dobashcomp niri
|
||||
dofishcomp niri.fish
|
||||
dozshcomp _niri
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# tests create a wayland socket in the xdg runtime dir
|
||||
local -x XDG_RUNTIME_DIR="${T}/xdg"
|
||||
mkdir "${XDG_RUNTIME_DIR}" || die
|
||||
chmod 0700 "${XDG_RUNTIME_DIR}" || die
|
||||
|
||||
# bug 950626
|
||||
# https://yalter.github.io/niri/Packaging-niri.html#running-tests
|
||||
local -x RAYON_NUM_THREADS=2
|
||||
local skip=(
|
||||
# requires surfacesless EGL to be available
|
||||
--skip=::egl
|
||||
)
|
||||
cargo_src_test -- --test-threads=2 "${skip[@]}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
optfeature "Default application launcher" "gui-apps/fuzzel"
|
||||
optfeature "Default status bar" "gui-apps/waybar"
|
||||
optfeature "Default terminal" "x11-terms/alacritty"
|
||||
optfeature "Xwayland support" "gui-apps/xwayland-satellite"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue