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