commit:     5251e7a5db6b029848cab19af9f382e9cbda5da7
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  1 14:27:03 2025 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Wed Aug  6 17:34:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5251e7a5

dev-libs/libinput: Version bump to 1.29.0

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 dev-libs/libinput/Manifest                      |   1 +
 dev-libs/libinput/files/1.29.0-test-fixes.patch |  94 +++++++++++++++++++++
 dev-libs/libinput/libinput-1.29.0.ebuild        | 106 ++++++++++++++++++++++++
 3 files changed, 201 insertions(+)

diff --git a/dev-libs/libinput/Manifest b/dev-libs/libinput/Manifest
index 47fe1e08f2ca..4571005f6e1e 100644
--- a/dev-libs/libinput/Manifest
+++ b/dev-libs/libinput/Manifest
@@ -1 +1,2 @@
 DIST libinput-1.28.1.tar.bz2 864820 BLAKE2B 
fe245274951e8a010abfcd72722f8b5f96f9d879535374ee5180da56c575ca511c2007058a584d2b2336941f4242125876132a3bf398ccf2c855fb7a6ea69865
 SHA512 
354a91f2239da5e5bbb12bb7473bd1fb7adf69e6243e8da786ace9e80eda6c8f733620b5f1e20411c732fcfa4dedf5ccd2e722a78693e564a24771e80f1c72aa
+DIST libinput-1.29.0.tar.bz2 894737 BLAKE2B 
7184edf309aec31839f6d2cbf79cd4b673e2030b20de42a7b1449395482de1bde1b8cd87389368d95c6b9ca8cfd750af25f3e2377530bce5339dff78e9a98a0a
 SHA512 
22ce58d6d5e2a0550c788e487e6c27d31ee67b4d1c66c72339b348ebfb47a7d4d1b80e521a86e0fc4576273c3bb1e94b13f993b323f1c1a89788d2a0f68929cd

diff --git a/dev-libs/libinput/files/1.29.0-test-fixes.patch 
b/dev-libs/libinput/files/1.29.0-test-fixes.patch
new file mode 100644
index 000000000000..14cdfc85e6ee
--- /dev/null
+++ b/dev-libs/libinput/files/1.29.0-test-fixes.patch
@@ -0,0 +1,94 @@
+From 7f3aa8058a49c4dd50fe953e877d13dcf45000fe Mon Sep 17 00:00:00 2001
+From: Matt Turner <[email protected]>
+Date: Fri, 1 Aug 2025 10:58:12 -0400
+Subject: [PATCH 1/3] test: Accept mkdir_p("/proc/foo") might return EACCES
+
+... as it does under Gentoo's sandbox.
+
+Fixes: 6770131e ("util: fix a memleak in mkdir_p")
+Part-of: 
<https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1289>
+---
+ test/test-utils.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git ./test/test-utils.c ./test/test-utils.c
+index 36b4fd16..55a2e156 100644
+--- ./test/test-utils.c
++++ ./test/test-utils.c
+@@ -70,7 +70,10 @@ START_TEST(mkdir_p_test)
+       litest_assert_neg_errno_success(mkdir_p(testdir));
+       rmdir(testdir);
+ 
+-      litest_assert_int_eq(mkdir_p("/proc/foo"), -ENOENT);
++      int ret = mkdir_p("/proc/foo");
++      litest_assert_msg(ret == -ENOENT || ret == -EACCES,
++                        "mkdir_p(\"/proc/foo\") returned %d\n",
++                        ret);
+ }
+ END_TEST
+ 
+-- 
+2.49.1
+
+From 931dad76a90c46036374196c617ca6aca0d27fe9 Mon Sep 17 00:00:00 2001
+From: Adam Sampson <[email protected]>
+Date: Fri, 1 Aug 2025 13:11:50 +0100
+Subject: [PATCH 2/3] test: correct value type in atou64_test
+
+This needs to be an unsigned 64-bit value, given the constants that are
+stored in this field below; unsigned long is 32 bits on some platforms
+(e.g. ia32).
+
+Part-of: 
<https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1288>
+---
+ test/test-utils.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git ./test/test-utils.c ./test/test-utils.c
+index 55a2e156..7c938b0a 100644
+--- ./test/test-utils.c
++++ ./test/test-utils.c
+@@ -1445,7 +1445,7 @@ END_TEST
+ struct atou64_test {
+       char *str;
+       bool success;
+-      unsigned long val;
++      uint64_t val;
+ };
+ 
+ START_TEST(safe_atou64_test)
+-- 
+2.49.1
+
+From 47d4c563f4eacc9557904c3bf9bccfce519581b0 Mon Sep 17 00:00:00 2001
+From: Adam Sampson <[email protected]>
+Date: Fri, 1 Aug 2025 14:50:36 +0100
+Subject: [PATCH 3/3] evdev: remove duplicate sizeof
+
+This looks like a copy-and-paste error. In practice it was harmless on
+64-bit systems because evdev_event happens to be 64 bits long, but on
+32-bit systems it would allocate too little memory.
+
+Found by GCC 15 with _FORTIFY_SOURCE=3 on ia32.
+
+Part-of: 
<https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1288>
+---
+ src/evdev-frame.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git ./src/evdev-frame.h ./src/evdev-frame.h
+index 965dbc24..ccf6f385 100644
+--- ./src/evdev-frame.h
++++ ./src/evdev-frame.h
+@@ -509,7 +509,7 @@ static inline struct evdev_frame *
+ evdev_frame_new(size_t max_size)
+ {
+       struct evdev_frame *frame =
+-              zalloc(max_size * sizeof(sizeof(*frame->events)) + 
sizeof(*frame));
++              zalloc(max_size * sizeof(*frame->events) + sizeof(*frame));
+ 
+       frame->refcount = 1;
+       frame->max_size = max_size;
+-- 
+2.49.1
+

diff --git a/dev-libs/libinput/libinput-1.29.0.ebuild 
b/dev-libs/libinput/libinput-1.29.0.ebuild
new file mode 100644
index 000000000000..607d0353301f
--- /dev/null
+++ b/dev-libs/libinput/libinput-1.29.0.ebuild
@@ -0,0 +1,106 @@
+# Copyright 2014-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit meson optfeature python-any-r1 udev
+
+DESCRIPTION="Library to handle input devices in Wayland"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/libinput/ 
https://gitlab.freedesktop.org/libinput/libinput";
+SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2";
+
+LICENSE="MIT"
+SLOT="0/10"
+if [[ $(ver_cut 3) -lt 900 ]] ; then
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+IUSE="doc input_devices_wacom test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       input_devices_wacom? ( >=dev-libs/libwacom-2.15:= )
+       >=dev-libs/libevdev-1.9.902
+       >=sys-libs/mtdev-1.1
+       virtual/libudev:=
+       virtual/udev
+"
+DEPEND="
+       ${RDEPEND}
+       test? ( >=dev-libs/check-0.9.10 )
+"
+BDEPEND="
+       virtual/pkgconfig
+       doc? (
+               $(python_gen_any_dep '
+                       dev-python/commonmark[${PYTHON_USEDEP}]
+                       dev-python/recommonmark[${PYTHON_USEDEP}]
+                       dev-python/sphinx[${PYTHON_USEDEP}]
+                       >=dev-python/sphinx-rtd-theme-0.2.4[${PYTHON_USEDEP}]
+               ')
+               >=app-text/doxygen-1.8.3
+               >=media-gfx/graphviz-2.38.0
+       )
+       test? (
+               $(python_gen_any_dep '
+                       dev-python/pytest[${PYTHON_USEDEP}]
+                       dev-python/pytest-xdist[${PYTHON_USEDEP}]
+               ')
+       )
+"
+#      test? ( dev-debug/valgrind )
+
+PATCHES=(
+       "${FILESDIR}"/${PV}-test-fixes.patch
+)
+
+python_check_deps() {
+       if use doc; then
+               python_has_version \
+                       "dev-python/commonmark[${PYTHON_USEDEP}]" \
+                       "dev-python/recommonmark[${PYTHON_USEDEP}]" \
+                       "dev-python/sphinx[${PYTHON_USEDEP}]" \
+                       ">=dev-python/sphinx-rtd-theme-0.2.4[${PYTHON_USEDEP}]" 
\
+               || return
+       fi
+       if use test; then
+               python_has_version \
+                       "dev-python/pytest[${PYTHON_USEDEP}]" \
+                       "dev-python/pytest-xdist[${PYTHON_USEDEP}]" \
+               || return
+       fi
+}
+
+src_prepare() {
+       default
+       sed "s@, '-Werror'@@" -i meson.build || die #744250
+}
+
+src_configure() {
+       # gui can be built but will not be installed
+       local emesonargs=(
+               -Ddebug-gui=false
+               $(meson_use doc documentation)
+               $(meson_use input_devices_wacom libwacom)
+               $(meson_use test tests)
+               -Dudev-dir="${EPREFIX}$(get_udevdir)"
+       )
+       meson_src_configure
+}
+
+src_install() {
+       meson_src_install
+       if use doc ; then
+               docinto html
+               dodoc -r "${BUILD_DIR}"/Documentation/.
+       fi
+}
+
+pkg_postinst() {
+       optfeature "measure and replay tools" dev-python/libevdev
+       udev_reload
+}
+
+pkg_postrm() {
+       udev_reload
+}

Reply via email to