commit: 44a18de66343e0a893ad45325ede885395f82f5d Author: Takuya Wakazono <pastalian46 <AT> gmail <DOT> com> AuthorDate: Wed Nov 26 12:21:46 2025 +0000 Commit: Takuya Wakazono <pastalian46 <AT> gmail <DOT> com> CommitDate: Wed Nov 26 12:21:46 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=44a18de6
gui-wm/niri: update to libdisplay-info 0.3.0 https://github.com/YaLTeR/niri/commit/a1dccedbb72da372d2a8a84022f37ccaa4d4a6e6 Signed-off-by: Takuya Wakazono <pastalian46 <AT> gmail.com> gui-wm/niri/Manifest | 5 + .../files/niri-25.08-libdisplay-info-0.3.0.patch | 55 ++++++++ .../files/niri-25.08-libdisplay-info-smithay.patch | 13 ++ gui-wm/niri/niri-25.08-r1.ebuild | 157 +++++++++++++++++++++ 4 files changed, 230 insertions(+) diff --git a/gui-wm/niri/Manifest b/gui-wm/niri/Manifest index 86c8cdcf82..9663c33dd0 100644 --- a/gui-wm/niri/Manifest +++ b/gui-wm/niri/Manifest @@ -1,4 +1,9 @@ +DIST libdisplay-info-0.3.0.crate 40051 BLAKE2B b8542a25e20bcdf58ba7e8154766d760d197604c9ff5688ea75f50c88ff48ad4347f4b8d5c9f09735e2dd154b669527f277ee9a9aa5c1805b43f1c310c23b4d4 SHA512 71658ac780b59520864b0549f013d4d84ed01399f7fc2de4d3fc919fb065b1ffdeafe8c6244be06656dd1d212c08a548a68e780e3df6e2f788c84cb49514d767 +DIST libdisplay-info-derive-0.1.1.crate 4048 BLAKE2B 3889fe8517284d76c1a56d2a94eee8c97aaec48c024c35b42592c0a49b4fa390e43005aafbd2388f88c88fc467d3c07e610c66946d743fccfc30557ed8994b9c SHA512 5f23deb4b86c9a27f500dbb3b107bf5180ff4d3f4c8a55b12a3b5380deb344b4946a1fa2d464c91ba0e74bfd1bc0fbf96c51d0257f46f6e8702cfd60cf3e409c +DIST libdisplay-info-sys-0.3.0.crate 79126 BLAKE2B a42111136ea5a20722022130b98d79cdf238a7448d86803552b3ce399b6d55596cae6e3f2ef11494dc74daf65ade86bc27d19e1e977e84d3077c0f86a12b2bd3 SHA512 e7708674298e39f9d85423f3a14bedd3c9a93fee714557c822e3cff5cb68067f2be5db7aaca45f6cb12e0d796dfda4e89a046d8253ce3cd3fcb9cc6060cd8555 DIST niri-25.05.1-vendored-dependencies.tar.xz 48884152 BLAKE2B 210eff27af94a01d9058b98ae4a49fd730dabf1d571b7fc5c499522de52d84afaf2a52eabdc296f80bbcdaed15740839cbd1ae4d505f279e007b977135cfa1d1 SHA512 38a1448428c3bc16c238221b70a1df406b87acf72a513ad5f0babed2ac874ac11b88580e5c6a7f69a98354e20180e8a3c0f932ea35382a0254134d57578b199b DIST niri-25.05.1.tar.gz 716558 BLAKE2B 012c44351e6fa0e8631b3c44243da119cd03eb41a5ab81c787961df9f3456acb73c3cbb3639d620d19d8111e954797965c2a1bf4b0b3657142e3a1ab77413d7d SHA512 63f6f6e651d2a399259354f5a80fd8815c2be9c1c6b7d5038c03d89fac5966596d0da8b36d83fa7ea85b192e77e0ddfcf40ee9244a2c44cd55776a7a3f54de35 DIST niri-25.08-vendored-dependencies.tar.xz 54415568 BLAKE2B 906523cab0fd96ebb47c179efe93d34013ea8afc0b94603016cddfcb5fc4947610a26597c416e209aea48de3b13f8fafab821bcbeb9489135d2d5f7240a63085 SHA512 9d192525d5e07bffda2bfc8a0d9329055f2c3fa4ebe6b2897ec3fe9b9a74e1364120411534902eaf509e970c92d4791e676466bb9bdd0b93d7e5c5892ed11ce6 DIST niri-25.08.tar.gz 810302 BLAKE2B 39758d4ba4ff721d71a116cba0b8cdcd9e1f0a024257885879b5dc31bf439e91109133cc1650f3bd2376a6f8437fb07b4ee137b0b4d8ace98a1397c6b64d74ea SHA512 d8a10bb726d2e79f695544130cc9f55b1ac0f76dd9a9fb1cafb16cd7934b29a4fecf88656a3bc46ab6140aef7d2c58ed87f3ba43dfe8882df50de997283f2292 +DIST pipewire-rs-93138d01b23628521b29b5604bbebe991cba4c65.gl.tar.gz 114280 BLAKE2B 08cdbb0d837baf715c42b350f1d1f45416b4ad7aa1fb2bd3be7bcba3045d37b80b96b0a20be251314bdce19daae0b4614da8bda1b80355825fbe3bbd4fee65ae SHA512 83ad47c8452752f50b81cb8a9bc4765504721935500466007f47203fe1d0d476a07c6b5757eb854468a3a43a134256fa2ee047c17b6a29f6555b20df1a43ab43 +DIST smithay-20d2dacd71394b5f96f6ace0a70a6f20dc62c0c6.gh.tar.gz 793097 BLAKE2B f02b8a69ad7a942ee181c6f255a16573845763a9ea976ee518e72e2a582a615d1b2547bfdf5cf1b4b0f2f8a9aa3e85787eb9271c28adf2665f341e01cd47971f SHA512 aad183a64d6fc80b3bf2d1f6540ca31e2e79e934c386926befea21e7b1eb6a24fe040a55464f7d275af1c82b34746d1d7ee3ed97ca96b50e2fe645ab8b2e94db diff --git a/gui-wm/niri/files/niri-25.08-libdisplay-info-0.3.0.patch b/gui-wm/niri/files/niri-25.08-libdisplay-info-0.3.0.patch new file mode 100644 index 0000000000..1a711af550 --- /dev/null +++ b/gui-wm/niri/files/niri-25.08-libdisplay-info-0.3.0.patch @@ -0,0 +1,55 @@ +libdisplay-info 0.3.0 compat. +https://github.com/YaLTeR/niri/commit/a1dccedbb72da372d2a8a84022f37ccaa4d4a6e6 +diff --git a/Cargo.lock b/Cargo.lock +index 99fe561..9ee2a40 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -2082,9 +2082,9 @@ checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + + [[package]] + name = "libdisplay-info" +-version = "0.2.2" ++version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4210cfe93a0dc37228e08105e3c13171e5af816f7bd39e00e3d3adcf2b487a2b" ++checksum = "59fd96dbb2381ff31f314f07accbdf8550febdcc5cd8761ecaf7c1763361c359" + dependencies = [ + "bitflags 2.9.3", + "libc", +@@ -2095,9 +2095,9 @@ dependencies = [ + + [[package]] + name = "libdisplay-info-derive" +-version = "0.1.0" ++version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ea1cd31036b732a546d845f9485c56b1b606b5e476b0821c680dd66c8cd6fcee" ++checksum = "8dc2c710cf5819e91220a446d9e64acc6814386cc22c509c3f0df83c0b874a98" + dependencies = [ + "proc-macro2", + "quote", +@@ -2106,9 +2106,9 @@ dependencies = [ + + [[package]] + name = "libdisplay-info-sys" +-version = "0.2.2" ++version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "7f4f9264ece23c37ffa023ae635f48d588e1786745dad06dff10c9fb99dc646c" ++checksum = "26590d55b8819f9c6b0d95d9d12dc9edbfd1f2413e88814a33b631ac049bb51f" + dependencies = [ + "semver", + "system-deps", +diff --git a/Cargo.toml b/Cargo.toml +index 25967f9..f9c5b30 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -72,7 +74,7 @@ glam = "0.30.5" + input = { version = "0.9.1", features = ["libinput_1_21"] } + keyframe = { version = "1.1.1", default-features = false } + libc = "0.2.175" +-libdisplay-info = "0.2.2" ++libdisplay-info = "0.3.0" + log = { version = "0.4.27", features = ["max_level_trace", "release_max_level_debug"] } + niri-config = { version = "25.8.0", path = "niri-config" } + niri-ipc = { version = "25.8.0", path = "niri-ipc", features = ["clap"] } diff --git a/gui-wm/niri/files/niri-25.08-libdisplay-info-smithay.patch b/gui-wm/niri/files/niri-25.08-libdisplay-info-smithay.patch new file mode 100644 index 0000000000..4568d1356b --- /dev/null +++ b/gui-wm/niri/files/niri-25.08-libdisplay-info-smithay.patch @@ -0,0 +1,13 @@ +libdisplay-info 0.3.0 compat. +https://github.com/Smithay/smithay/commit/9ccbd35f51842934f22b5a85ca0e3be1b99b27f +--- a/smithay-drm-extras/Cargo.toml 2025-11-26 10:35:04.444836611 +0000 ++++ b/smithay-drm-extras/Cargo.toml 2025-11-26 10:35:21.151685214 +0000 +@@ -6,7 +6,7 @@ + authors = ["Bartłomiej Maryńczak <[email protected]>"] + + [dependencies] +-libdisplay-info = { version = "0.2.1", optional = true } ++libdisplay-info = { version = "0.3.0", optional = true } + drm = { version = "0.14.0" } + + [features] diff --git a/gui-wm/niri/niri-25.08-r1.ebuild b/gui-wm/niri/niri-25.08-r1.ebuild new file mode 100644 index 0000000000..1a573d3e5b --- /dev/null +++ b/gui-wm/niri/niri-25.08-r1.ebuild @@ -0,0 +1,157 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# libdisplay-info 0.3.0 compat +CRATES=" + [email protected] + [email protected] + [email protected] +" +declare -A GIT_CRATES=( + [libspa-sys]='https://gitlab.freedesktop.org/pipewire/pipewire-rs;93138d01b23628521b29b5604bbebe991cba4c65;pipewire-rs-%commit%/libspa-sys;gitlab' + [libspa]='https://gitlab.freedesktop.org/pipewire/pipewire-rs;93138d01b23628521b29b5604bbebe991cba4c65;pipewire-rs-%commit%/libspa;gitlab' + [pipewire-sys]='https://gitlab.freedesktop.org/pipewire/pipewire-rs;93138d01b23628521b29b5604bbebe991cba4c65;pipewire-rs-%commit%/pipewire-sys;gitlab' + [pipewire]='https://gitlab.freedesktop.org/pipewire/pipewire-rs;93138d01b23628521b29b5604bbebe991cba4c65;pipewire-rs-%commit%/pipewire;gitlab' + [smithay-drm-extras]='https://github.com/Smithay/smithay;20d2dacd71394b5f96f6ace0a70a6f20dc62c0c6;smithay-%commit%/smithay-drm-extras' + [smithay]='https://github.com/Smithay/smithay;20d2dacd71394b5f96f6ace0a70a6f20dc62c0c6;smithay-%commit%' +) + +LLVM_COMPAT=( {18..20} ) +RUST_MIN_VER="1.80.1" + +# used for version string +export NIRI_BUILD_COMMIT="01be0e6" + +inherit cargo llvm-r2 optfeature shell-completion systemd + +DESCRIPTION="Scrollable-tiling Wayland compositor" +HOMEPAGE="https://github.com/YaLTeR/niri" +SRC_URI=" + https://github.com/YaLTeR/niri/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/YaLTeR/niri/releases/download/v${PV}/${P}-vendored-dependencies.tar.xz + ${CARGO_CRATE_URIS} +" + +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" +KEYWORDS="~amd64" +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}') ) +" + +PATCHES=( + # libdisplay-info 0.3.0 compat + "${FILESDIR}/${P}-libdisplay-info-0.3.0.patch" +) + +ECARGO_VENDOR="${WORKDIR}/vendor" + +QA_FLAGS_IGNORED="usr/bin/niri" + +pkg_setup() { + llvm-r2_pkg_setup + rust_pkg_setup +} + +src_prepare() { + # libdisplay-info 0.3.0 compat + pushd "${WORKDIR}"/smithay-* >/dev/null || die + eapply "${FILESDIR}/${P}-libdisplay-info-smithay.patch" + popd >/dev/null || die + # sed -i 's/git = "[^ ]*"/version = "*"/' Cargo.toml || die + + # niri-session doesn't work on OpenRC + if ! use systemd; then + sed -i 's/niri-session/niri --session/' 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" +}
