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