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"
+}

Reply via email to