From a03c423de4a50646de5c3f756ab9b51718945533 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 19 Nov 2024 14:40:02 +1000 Subject: [PATCH 01/22] libinput 1.27.0 drop the check-devel dependency, no longer needed libinput 1.27.0 drop the check-devel dependency, no longer needed libinput 1.27.0 drop the check-devel dependency, no longer needed libinput 1.27.0 drop the check-devel dependency, no longer needed --- libinput.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index c1b293d..84bae06 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.26.2 +Version: 1.27.0 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -28,7 +28,6 @@ BuildRequires: pkgconfig(libevdev) >= 0.4 BuildRequires: pkgconfig(libwacom) >= 0.20 BuildRequires: pkgconfig(udev) BuildRequires: python3-rpm-macros -BuildRequires: check-devel %description libinput is a library that handles input devices for display servers and other @@ -157,6 +156,10 @@ intended to be run by users. %changelog +* Tue Nov 19 2024 Peter Hutterer - 1.27.0-1 +- libinput 1.27.0 +- drop the check-devel dependency, no longer needed + * Mon Aug 19 2024 Peter Hutterer - 1.26.2-1 - libinput 1.26.2 From 225720c01fd88e9935b8511e8617e6b8638a003b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 22 Nov 2024 16:03:08 +1000 Subject: [PATCH 02/22] libinput 1.27.0, with sources libinput 1.27.0, with sources libinput 1.27.0, with sources libinput 1.27.0, with sources --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index 84bae06..8cfd767 100644 --- a/libinput.spec +++ b/libinput.spec @@ -5,7 +5,7 @@ Name: libinput Version: 1.27.0 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Fri Nov 22 2024 Peter Hutterer - 1.27.0-2 +- libinput 1.27.0, with sources + * Tue Nov 19 2024 Peter Hutterer - 1.27.0-1 - libinput 1.27.0 - drop the check-devel dependency, no longer needed diff --git a/sources b/sources index e4e44bb..acaa1f8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.26.2.tar.bz2) = 51fab62e1bfb6007287e1219bf458a351806ce685e6e7ba5360062c863f0811da75acc6ec92aef7f9e0556dac0413fbe43a4744885f7449e38036130112907a6 +SHA512 (libinput-1.27.0.tar.bz2) = ddfb4a16cbd40f8e55a536f8e18e77bb26113690bd4188d2e6ea04c1a906d8392d4df340d4e24f20c5152b3ef7d727702229a86fc27ad50c5ea9a85a58d3e24a From fb85b1c89c65e20da087b7ac16532494b306085b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 6 Jan 2025 15:12:47 +1000 Subject: [PATCH 03/22] libinput 1.27.1 --- libinput.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libinput.spec b/libinput.spec index 8cfd767..185d9aa 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,8 +4,8 @@ %global gitversion 58abea394 Name: libinput -Version: 1.27.0 -Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.27.1 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Mon Jan 06 2025 Peter Hutterer - 1.27.1-1 +- libinput 1.27.1 + * Fri Nov 22 2024 Peter Hutterer - 1.27.0-2 - libinput 1.27.0, with sources diff --git a/sources b/sources index acaa1f8..b95a138 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.27.0.tar.bz2) = ddfb4a16cbd40f8e55a536f8e18e77bb26113690bd4188d2e6ea04c1a906d8392d4df340d4e24f20c5152b3ef7d727702229a86fc27ad50c5ea9a85a58d3e24a +SHA512 (libinput-1.27.1.tar.bz2) = c8312000d7ce8c6f209b233177358c53dc830769cf2a80bd23ceebb408a0371de668846a5d1321b6ef803b3c17af5c0aba941ce5a2dc1fac6a0d5d791a13088b From fb6760cd6c0a3de3dca0046a8413b372d7a0af6d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jan 2025 11:34:21 +0000 Subject: [PATCH 04/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- libinput.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libinput.spec b/libinput.spec index 185d9aa..6976ea0 100644 --- a/libinput.spec +++ b/libinput.spec @@ -5,7 +5,7 @@ Name: libinput Version: 1.27.1 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Fri Jan 17 2025 Fedora Release Engineering - 1.27.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Mon Jan 06 2025 Peter Hutterer - 1.27.1-1 - libinput 1.27.1 From 21d9865a917208e2d8e6e70cc5f00f24c4766463 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 24 Mar 2025 14:45:13 +1000 Subject: [PATCH 05/22] libinput 1.28.0 --- libinput.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libinput.spec b/libinput.spec index 6976ea0..3ff5adc 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,8 +4,8 @@ %global gitversion 58abea394 Name: libinput -Version: 1.27.1 -Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.28.0 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Mon Mar 24 2025 Peter Hutterer - 1.28.0-1 +- libinput 1.28.0 + * Fri Jan 17 2025 Fedora Release Engineering - 1.27.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/sources b/sources index b95a138..1bd4f55 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.27.1.tar.bz2) = c8312000d7ce8c6f209b233177358c53dc830769cf2a80bd23ceebb408a0371de668846a5d1321b6ef803b3c17af5c0aba941ce5a2dc1fac6a0d5d791a13088b +SHA512 (libinput-1.28.0.tar.bz2) = 2665fbfbf47f8ef329e387841ff9542b6191925d2fb46a19be64ef0b2e274db3b9ce8b42652ccdeb18c66e3a3c748ff576b313ecb8f7f6b4a01102bfb3e999e3 From 46fb06c0842380cc6bbc9849fd240b7d873df746 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 1 Apr 2025 12:56:30 +1000 Subject: [PATCH 06/22] libinput 1.28.1 --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index 3ff5adc..19e746f 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.28.0 +Version: 1.28.1 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Tue Apr 01 2025 Peter Hutterer - 1.28.1-1 +- libinput 1.28.1 + * Mon Mar 24 2025 Peter Hutterer - 1.28.0-1 - libinput 1.28.0 diff --git a/sources b/sources index 1bd4f55..ed63a20 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.28.0.tar.bz2) = 2665fbfbf47f8ef329e387841ff9542b6191925d2fb46a19be64ef0b2e274db3b9ce8b42652ccdeb18c66e3a3c748ff576b313ecb8f7f6b4a01102bfb3e999e3 +SHA512 (libinput-1.28.1.tar.bz2) = 354a91f2239da5e5bbb12bb7473bd1fb7adf69e6243e8da786ace9e80eda6c8f733620b5f1e20411c732fcfa4dedf5ccd2e722a78693e564a24771e80f1c72aa From d06960eaa23474e41015d707b9b2546bb1db6af0 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 10 Jul 2025 16:02:14 +1000 Subject: [PATCH 07/22] libinput 1.28.901 --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index 19e746f..9da7823 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.28.1 +Version: 1.28.901 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Thu Jul 10 2025 Peter Hutterer - 1.28.901-1 +- libinput 1.28.901 + * Tue Apr 01 2025 Peter Hutterer - 1.28.1-1 - libinput 1.28.1 diff --git a/sources b/sources index ed63a20..38e9b8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.28.1.tar.bz2) = 354a91f2239da5e5bbb12bb7473bd1fb7adf69e6243e8da786ace9e80eda6c8f733620b5f1e20411c732fcfa4dedf5ccd2e722a78693e564a24771e80f1c72aa +SHA512 (libinput-1.28.901.tar.bz2) = b314517a96bff9674256dd095b11559a9c5a005c6c213fef188e4afdd433d9a3fc6557c7b565342e13a0f93a90679fb4d694076616eabe8d13506cda068be487 From 31bbe71e25e2d88c8c6d6f1f225c74b012e3f372 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 15 Jul 2025 09:11:05 +1000 Subject: [PATCH 08/22] Fix broken mouse wheel on non-high-resolution devices (#2379768) --- ...ugin-to-emulate-high-resolution-whee.patch | 208 ++++++++++++++++++ libinput.spec | 7 +- 2 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch diff --git a/0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch b/0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch new file mode 100644 index 0000000..7bd61e8 --- /dev/null +++ b/0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch @@ -0,0 +1,208 @@ +From 5f44eebff87b13977f0eeca5356cf00228f285b6 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Mon, 14 Jul 2025 10:05:22 +1000 +Subject: [PATCH] plugins: add a plugin to emulate high-resolution wheel events + +Fixes a regression causing missing scroll events on devices where the +kernel only sets REL_WHEEL/REL_HWHEEL but not the corresponding +hires events. On those devices we would get the legacy axis events but +no longer the new ones. + +The mouse wheel plugin will correctly emulate missing hires events +but it doesn't attach to devices where the hires bit is never set. + +This plugin can be very simple - since we know we enabled the code on +this device we don't need to keep any extra state around. If our frame +handler is called for this device we want to add the hi-res events. + +Theoretically this breaks if the device has only one hi-res axis enabled +but not the other one (i.e. REL_WHEEL_HI_RES but only REL_HWHEEL) but +that's too theoretical to worry about. + +Closes #1156 + +Fixes: 31854a829a21 ("plugin: only register the wheel plugin on devices that have a wheel") +Signed-off-by: Peter Hutterer +--- + meson.build | 1 + + src/libinput-plugin-mouse-wheel-lowres.c | 97 ++++++++++++++++++++++++ + src/libinput-plugin-mouse-wheel-lowres.h | 30 ++++++++ + src/libinput-plugin.c | 2 + + 4 files changed, 130 insertions(+) + create mode 100644 src/libinput-plugin-mouse-wheel-lowres.c + create mode 100644 src/libinput-plugin-mouse-wheel-lowres.h + +diff --git a/meson.build b/meson.build +index e5932754bc9f..e51357885ae9 100644 +--- a/meson.build ++++ b/meson.build +@@ -384,6 +384,7 @@ src_libinput = src_libfilter + [ + 'src/libinput-plugin.c', + 'src/libinput-plugin-button-debounce.c', + 'src/libinput-plugin-mouse-wheel.c', ++ 'src/libinput-plugin-mouse-wheel-lowres.c', + 'src/libinput-plugin-tablet-double-tool.c', + 'src/libinput-plugin-tablet-eraser-button.c', + 'src/libinput-plugin-tablet-forced-tool.c', +diff --git a/src/libinput-plugin-mouse-wheel-lowres.c b/src/libinput-plugin-mouse-wheel-lowres.c +new file mode 100644 +index 000000000000..ce3847e2e002 +--- /dev/null ++++ b/src/libinput-plugin-mouse-wheel-lowres.c +@@ -0,0 +1,97 @@ ++/* ++ * Copyright © 2025 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ */ ++ ++#include "config.h" ++ ++#include ++ ++#include "evdev.h" ++#include "libinput-plugin-mouse-wheel-lowres.h" ++#include "libinput-plugin.h" ++#include "src/evdev-frame.h" ++ ++static void ++wheel_plugin_device_new(struct libinput_plugin *libinput_plugin, ++ struct libinput_device *device, ++ struct libevdev *libevdev, ++ struct udev_device *udev_device) ++{ ++ struct evdev_device *evdev = evdev_device(device); ++ ++ if (libevdev_has_event_code(libevdev, EV_REL, REL_WHEEL_HI_RES) || ++ libevdev_has_event_code(libevdev, EV_REL, REL_HWHEEL_HI_RES)) ++ return; ++ ++ if (libevdev_has_event_code(libevdev, EV_REL, REL_WHEEL) || ++ libevdev_has_event_code(libevdev, EV_REL, REL_HWHEEL)) ++ evdev_log_info(evdev, ++ "emulating high-resolution scroll wheel events.\n"); ++ ++ if (libevdev_has_event_code(libevdev, EV_REL, REL_WHEEL)) ++ libevdev_enable_event_code(libevdev, EV_REL, REL_WHEEL_HI_RES, NULL); ++ ++ if (libevdev_has_event_code(libevdev, EV_REL, REL_HWHEEL)) ++ libevdev_enable_event_code(libevdev, EV_REL, REL_HWHEEL_HI_RES, NULL); ++ ++ libinput_plugin_enable_device_event_frame(libinput_plugin, device, true); ++} ++ ++static void ++wheel_plugin_evdev_frame(struct libinput_plugin *libinput_plugin, ++ struct libinput_device *device, ++ struct evdev_frame *frame) ++{ ++ size_t nevents; ++ struct evdev_event *events = evdev_frame_get_events(frame, &nevents); ++ ++ for (size_t i = 0; i < nevents; i++) { ++ struct evdev_event *e = &events[i]; ++ switch (evdev_usage_enum(e->usage)) { ++ case EVDEV_REL_WHEEL: ++ evdev_frame_append_one(frame, ++ evdev_usage_from(EVDEV_REL_WHEEL_HI_RES), ++ e->value * 120); ++ break; ++ case EVDEV_REL_HWHEEL: ++ evdev_frame_append_one( ++ frame, ++ evdev_usage_from(EVDEV_REL_HWHEEL_HI_RES), ++ e->value * 120); ++ break; ++ default: ++ break; ++ } ++ } ++} ++ ++static const struct libinput_plugin_interface interface = { ++ .device_new = wheel_plugin_device_new, ++ .evdev_frame = wheel_plugin_evdev_frame, ++}; ++ ++void ++libinput_mouse_plugin_wheel_lowres(struct libinput *libinput) ++{ ++ _unref_(libinput_plugin) *p = ++ libinput_plugin_new(libinput, "mouse-wheel-lowres", &interface, NULL); ++} +diff --git a/src/libinput-plugin-mouse-wheel-lowres.h b/src/libinput-plugin-mouse-wheel-lowres.h +new file mode 100644 +index 000000000000..9fee3ec3cb1c +--- /dev/null ++++ b/src/libinput-plugin-mouse-wheel-lowres.h +@@ -0,0 +1,30 @@ ++/* ++ * Copyright © 2025 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ */ ++ ++#include "config.h" ++ ++#include "libinput-plugin.h" ++#include "libinput.h" ++ ++void ++libinput_mouse_plugin_wheel_lowres(struct libinput *libinput); +diff --git a/src/libinput-plugin.c b/src/libinput-plugin.c +index c14ae33751d4..6e0f068cd45c 100644 +--- a/src/libinput-plugin.c ++++ b/src/libinput-plugin.c +@@ -30,6 +30,7 @@ + + #include "evdev-plugin.h" + #include "libinput-plugin-button-debounce.h" ++#include "libinput-plugin-mouse-wheel-lowres.h" + #include "libinput-plugin-mouse-wheel.h" + #include "libinput-plugin-mtdev.h" + #include "libinput-plugin-private.h" +@@ -390,6 +391,7 @@ libinput_plugin_system_load_internal_plugins(struct libinput *libinput, + libinput_tablet_plugin_proximity_timer(libinput); + libinput_tablet_plugin_eraser_button(libinput); + libinput_debounce_plugin(libinput); ++ libinput_mouse_plugin_wheel_lowres(libinput); + libinput_mouse_plugin_wheel(libinput); + + /* Our own event dispatch is implemented as mini-plugin, +-- +2.50.0 + diff --git a/libinput.spec b/libinput.spec index 9da7823..a8b3dd2 100644 --- a/libinput.spec +++ b/libinput.spec @@ -5,7 +5,7 @@ Name: libinput Version: 1.28.901 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -19,6 +19,8 @@ Source2: commitid Source0: https://gitlab.freedesktop.org/libinput/libinput/-/archive/%{version}/libinput-%{version}.tar.bz2 %endif +Patch0001: 0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch + BuildRequires: git-core BuildRequires: gcc BuildRequires: meson @@ -156,6 +158,9 @@ intended to be run by users. %changelog +* Tue Jul 15 2025 Peter Hutterer - 1.28.901-2 +- Fix broken mouse wheel on non-high-resolution devices (#2379768) + * Thu Jul 10 2025 Peter Hutterer - 1.28.901-1 - libinput 1.28.901 From 879df748c4a6500296582ad46962d1f9dce9e97e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 16 Jul 2025 09:50:40 +1000 Subject: [PATCH 09/22] Fix Alt+PrintScreen not working (#2379912) --- ...SYSRQ-frames-and-pass-them-even-as-r.patch | 152 ++++++++++++++++++ libinput.spec | 6 +- 2 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch diff --git a/0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch b/0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch new file mode 100644 index 0000000..6a4d875 --- /dev/null +++ b/0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch @@ -0,0 +1,152 @@ +From 25f40a788d6c2fdefb373761e318abb29c5c6f60 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Tue, 15 Jul 2025 21:29:43 +1000 +Subject: [PATCH] evdev: track KEY_SYSRQ frames and pass them even as repeat + frames + +Alt+Printscreen aka KEY_LEFTALT + KEY_SYSRQ is emulated by the kernel +and always posted with SYN_REPORT 1, see +drivers/tty/sysrq.c:sysrq_reinject_alt_sysrq() + +The actual sequence when pressing Alt + Printscreen is to release Alt +first, then press it again: +- evdev: + - [ 10, 674010, 1, 56, 0] # EV_KEY / KEY_LEFTALT 0 + - [ 10, 674010, 0, 0, 0] # ------------ SYN_REPORT (0) ---------- +2861ms + - evdev: + - [ 10, 674030, 1, 56, 1] # EV_KEY / KEY_LEFTALT 1 + - [ 10, 674030, 1, 99, 1] # EV_KEY / KEY_SYSRQ 1 + - [ 10, 674030, 0, 0, 1] # ------------ SYN_REPORT (1) ---------- +0ms + - evdev: + - [ 10, 674031, 1, 99, 0] # EV_KEY / KEY_SYSRQ 0 + - [ 10, 674031, 1, 56, 0] # EV_KEY / KEY_LEFTALT 0 + - [ 10, 674031, 0, 0, 1] # ------------ SYN_REPORT (1) ---------- +0ms + +Handle that special case so we get our printscreen key to work as +expected anymore. + +Fixes: 9a9466b6a92c ("evdev: discard any frame with EV_SYN SYN_REPORT 1") +Signed-off-by: Peter Hutterer +--- + src/evdev.c | 13 +++++++++- + test/test-keyboard.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 69 insertions(+), 1 deletion(-) + +diff --git a/src/evdev.c b/src/evdev.c +index 5e52f4fc69e2..d0ef1c252fb3 100644 +--- a/src/evdev.c ++++ b/src/evdev.c +@@ -1043,6 +1043,7 @@ evdev_device_dispatch(void *data) + struct input_event ev; + int rc; + bool once = false; ++ bool had_sysrq = false; + _unref_(evdev_frame) *frame = evdev_frame_new(64); + + /* If the compositor is repainting, this function is called only once +@@ -1083,17 +1084,27 @@ evdev_device_dispatch(void *data) + device, + "event frame overflow, discarding events.\n"); + } ++ /* Alt+Printscreen is always a repeat frame, see ++ * drivers/tty/sysrq.c:sysrq_reinject_alt_sysrq() in the ++ * kernel ++ */ ++ if (ev.type == EV_KEY && ev.code == KEY_SYSRQ) ++ had_sysrq = true; ++ + if (ev.type == EV_SYN && ev.code == SYN_REPORT) { + /* A SYN_REPORT 1 event is a kernel-inserted + * auto-repeat. Nothing in libinput cares about kernel + * repeats and the inserted frame causes issues with + * timestamp deltas (see e.g. #1145) ++ * ++ * (well, except Alt+Printscreen (KEY_SYSRQ)) + */ +- if (ev.value != 1) ++ if (ev.value != 1 || had_sysrq) + evdev_device_dispatch_frame(libinput, + device, + frame); + evdev_frame_reset(frame); ++ had_sysrq = false; + } + } else if (rc == -ENODEV) { + evdev_device_remove(device); +diff --git a/test/test-keyboard.c b/test/test-keyboard.c +index 4e1baf7f0d41..380727b25f40 100644 +--- a/test/test-keyboard.c ++++ b/test/test-keyboard.c +@@ -468,6 +468,61 @@ START_TEST(keyboard_no_scroll) + } + END_TEST + ++START_TEST(keyboard_alt_printscreen) ++{ ++ struct litest_device *dev = litest_current_device(); ++ struct libinput *li = dev->libinput; ++ ++ litest_drain_events(li); ++ ++ /* repeat frame, ignored */ ++ litest_event(dev, EV_KEY, KEY_A, 1); ++ litest_event(dev, EV_SYN, SYN_REPORT, 1); ++ litest_dispatch(li); ++ litest_assert_empty_queue(li); ++ ++ /* not a repeat frame */ ++ litest_event(dev, EV_KEY, KEY_LEFTALT, 1); ++ litest_event(dev, EV_SYN, SYN_REPORT, 0); ++ litest_dispatch(li); ++ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_PRESSED); ++ ++ /* normal repeat frame, ignored */ ++ litest_event(dev, EV_KEY, KEY_LEFTALT, 2); ++ litest_event(dev, EV_SYN, SYN_REPORT, 1); ++ litest_dispatch(li); ++ litest_assert_empty_queue(li); ++ ++ /* not repeat frame */ ++ litest_event(dev, EV_KEY, KEY_LEFTALT, 0); ++ litest_event(dev, EV_SYN, SYN_REPORT, 0); ++ litest_dispatch(li); ++ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_RELEASED); ++ ++ /* special alt+printscreen repeat frame, *not* ignored */ ++ litest_event(dev, EV_KEY, KEY_LEFTALT, 1); ++ litest_event(dev, EV_KEY, KEY_SYSRQ, 1); ++ litest_event(dev, EV_SYN, SYN_REPORT, 1); ++ litest_dispatch(li); ++ ++ /* special alt+printscreen repeat frame, *not* ignored */ ++ litest_event(dev, EV_KEY, KEY_LEFTALT, 0); ++ litest_event(dev, EV_KEY, KEY_SYSRQ, 0); ++ litest_event(dev, EV_SYN, SYN_REPORT, 1); ++ litest_dispatch(li); ++ ++ /* Note: the kernel doesn't release the key combo until both keys are released ++ * and the order is reshuffled so we have alt down, sysrq down, sysrq up, alt up ++ */ ++ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_PRESSED); ++ litest_assert_key_event(li, KEY_SYSRQ, LIBINPUT_KEY_STATE_PRESSED); ++ litest_assert_key_event(li, KEY_SYSRQ, LIBINPUT_KEY_STATE_RELEASED); ++ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_RELEASED); ++ ++ litest_assert_empty_queue(li); ++} ++END_TEST ++ + TEST_COLLECTION(keyboard) + { + /* clang-format off */ +@@ -484,5 +539,7 @@ TEST_COLLECTION(keyboard) + litest_add(keyboard_leds, LITEST_ANY, LITEST_ANY); + + litest_add(keyboard_no_scroll, LITEST_KEYS, LITEST_WHEEL); ++ ++ litest_add_for_device(keyboard_alt_printscreen, LITEST_KEYBOARD); + /* clang-format on */ + } +-- +2.50.1 + diff --git a/libinput.spec b/libinput.spec index a8b3dd2..a9f0162 100644 --- a/libinput.spec +++ b/libinput.spec @@ -5,7 +5,7 @@ Name: libinput Version: 1.28.901 -Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -20,6 +20,7 @@ Source0: https://gitlab.freedesktop.org/libinput/libinput/-/archive/%{ver %endif Patch0001: 0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch +Patch0002: 0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch BuildRequires: git-core BuildRequires: gcc @@ -158,6 +159,9 @@ intended to be run by users. %changelog +* Wed Jul 16 2025 Peter Hutterer - 1.28.901-3 +- Fix Alt+PrintScreen not working (#2379912) + * Tue Jul 15 2025 Peter Hutterer - 1.28.901-2 - Fix broken mouse wheel on non-high-resolution devices (#2379768) From 86954d38cdd8a36b033aafa68ebe00e0ed7d8d40 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 17 Jul 2025 13:09:24 +1000 Subject: [PATCH 10/22] libinput 1.28.902 --- ...ugin-to-emulate-high-resolution-whee.patch | 208 ------------------ ...SYSRQ-frames-and-pass-them-even-as-r.patch | 152 ------------- libinput.spec | 10 +- sources | 2 +- 4 files changed, 6 insertions(+), 366 deletions(-) delete mode 100644 0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch delete mode 100644 0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch diff --git a/0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch b/0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch deleted file mode 100644 index 7bd61e8..0000000 --- a/0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch +++ /dev/null @@ -1,208 +0,0 @@ -From 5f44eebff87b13977f0eeca5356cf00228f285b6 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Mon, 14 Jul 2025 10:05:22 +1000 -Subject: [PATCH] plugins: add a plugin to emulate high-resolution wheel events - -Fixes a regression causing missing scroll events on devices where the -kernel only sets REL_WHEEL/REL_HWHEEL but not the corresponding -hires events. On those devices we would get the legacy axis events but -no longer the new ones. - -The mouse wheel plugin will correctly emulate missing hires events -but it doesn't attach to devices where the hires bit is never set. - -This plugin can be very simple - since we know we enabled the code on -this device we don't need to keep any extra state around. If our frame -handler is called for this device we want to add the hi-res events. - -Theoretically this breaks if the device has only one hi-res axis enabled -but not the other one (i.e. REL_WHEEL_HI_RES but only REL_HWHEEL) but -that's too theoretical to worry about. - -Closes #1156 - -Fixes: 31854a829a21 ("plugin: only register the wheel plugin on devices that have a wheel") -Signed-off-by: Peter Hutterer ---- - meson.build | 1 + - src/libinput-plugin-mouse-wheel-lowres.c | 97 ++++++++++++++++++++++++ - src/libinput-plugin-mouse-wheel-lowres.h | 30 ++++++++ - src/libinput-plugin.c | 2 + - 4 files changed, 130 insertions(+) - create mode 100644 src/libinput-plugin-mouse-wheel-lowres.c - create mode 100644 src/libinput-plugin-mouse-wheel-lowres.h - -diff --git a/meson.build b/meson.build -index e5932754bc9f..e51357885ae9 100644 ---- a/meson.build -+++ b/meson.build -@@ -384,6 +384,7 @@ src_libinput = src_libfilter + [ - 'src/libinput-plugin.c', - 'src/libinput-plugin-button-debounce.c', - 'src/libinput-plugin-mouse-wheel.c', -+ 'src/libinput-plugin-mouse-wheel-lowres.c', - 'src/libinput-plugin-tablet-double-tool.c', - 'src/libinput-plugin-tablet-eraser-button.c', - 'src/libinput-plugin-tablet-forced-tool.c', -diff --git a/src/libinput-plugin-mouse-wheel-lowres.c b/src/libinput-plugin-mouse-wheel-lowres.c -new file mode 100644 -index 000000000000..ce3847e2e002 ---- /dev/null -+++ b/src/libinput-plugin-mouse-wheel-lowres.c -@@ -0,0 +1,97 @@ -+/* -+ * Copyright © 2025 Red Hat, Inc. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the "Software"), -+ * to deal in the Software without restriction, including without limitation -+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, -+ * and/or sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the next -+ * paragraph) shall be included in all copies or substantial portions of the -+ * Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ * DEALINGS IN THE SOFTWARE. -+ */ -+ -+#include "config.h" -+ -+#include -+ -+#include "evdev.h" -+#include "libinput-plugin-mouse-wheel-lowres.h" -+#include "libinput-plugin.h" -+#include "src/evdev-frame.h" -+ -+static void -+wheel_plugin_device_new(struct libinput_plugin *libinput_plugin, -+ struct libinput_device *device, -+ struct libevdev *libevdev, -+ struct udev_device *udev_device) -+{ -+ struct evdev_device *evdev = evdev_device(device); -+ -+ if (libevdev_has_event_code(libevdev, EV_REL, REL_WHEEL_HI_RES) || -+ libevdev_has_event_code(libevdev, EV_REL, REL_HWHEEL_HI_RES)) -+ return; -+ -+ if (libevdev_has_event_code(libevdev, EV_REL, REL_WHEEL) || -+ libevdev_has_event_code(libevdev, EV_REL, REL_HWHEEL)) -+ evdev_log_info(evdev, -+ "emulating high-resolution scroll wheel events.\n"); -+ -+ if (libevdev_has_event_code(libevdev, EV_REL, REL_WHEEL)) -+ libevdev_enable_event_code(libevdev, EV_REL, REL_WHEEL_HI_RES, NULL); -+ -+ if (libevdev_has_event_code(libevdev, EV_REL, REL_HWHEEL)) -+ libevdev_enable_event_code(libevdev, EV_REL, REL_HWHEEL_HI_RES, NULL); -+ -+ libinput_plugin_enable_device_event_frame(libinput_plugin, device, true); -+} -+ -+static void -+wheel_plugin_evdev_frame(struct libinput_plugin *libinput_plugin, -+ struct libinput_device *device, -+ struct evdev_frame *frame) -+{ -+ size_t nevents; -+ struct evdev_event *events = evdev_frame_get_events(frame, &nevents); -+ -+ for (size_t i = 0; i < nevents; i++) { -+ struct evdev_event *e = &events[i]; -+ switch (evdev_usage_enum(e->usage)) { -+ case EVDEV_REL_WHEEL: -+ evdev_frame_append_one(frame, -+ evdev_usage_from(EVDEV_REL_WHEEL_HI_RES), -+ e->value * 120); -+ break; -+ case EVDEV_REL_HWHEEL: -+ evdev_frame_append_one( -+ frame, -+ evdev_usage_from(EVDEV_REL_HWHEEL_HI_RES), -+ e->value * 120); -+ break; -+ default: -+ break; -+ } -+ } -+} -+ -+static const struct libinput_plugin_interface interface = { -+ .device_new = wheel_plugin_device_new, -+ .evdev_frame = wheel_plugin_evdev_frame, -+}; -+ -+void -+libinput_mouse_plugin_wheel_lowres(struct libinput *libinput) -+{ -+ _unref_(libinput_plugin) *p = -+ libinput_plugin_new(libinput, "mouse-wheel-lowres", &interface, NULL); -+} -diff --git a/src/libinput-plugin-mouse-wheel-lowres.h b/src/libinput-plugin-mouse-wheel-lowres.h -new file mode 100644 -index 000000000000..9fee3ec3cb1c ---- /dev/null -+++ b/src/libinput-plugin-mouse-wheel-lowres.h -@@ -0,0 +1,30 @@ -+/* -+ * Copyright © 2025 Red Hat, Inc. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the "Software"), -+ * to deal in the Software without restriction, including without limitation -+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, -+ * and/or sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the next -+ * paragraph) shall be included in all copies or substantial portions of the -+ * Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ * DEALINGS IN THE SOFTWARE. -+ */ -+ -+#include "config.h" -+ -+#include "libinput-plugin.h" -+#include "libinput.h" -+ -+void -+libinput_mouse_plugin_wheel_lowres(struct libinput *libinput); -diff --git a/src/libinput-plugin.c b/src/libinput-plugin.c -index c14ae33751d4..6e0f068cd45c 100644 ---- a/src/libinput-plugin.c -+++ b/src/libinput-plugin.c -@@ -30,6 +30,7 @@ - - #include "evdev-plugin.h" - #include "libinput-plugin-button-debounce.h" -+#include "libinput-plugin-mouse-wheel-lowres.h" - #include "libinput-plugin-mouse-wheel.h" - #include "libinput-plugin-mtdev.h" - #include "libinput-plugin-private.h" -@@ -390,6 +391,7 @@ libinput_plugin_system_load_internal_plugins(struct libinput *libinput, - libinput_tablet_plugin_proximity_timer(libinput); - libinput_tablet_plugin_eraser_button(libinput); - libinput_debounce_plugin(libinput); -+ libinput_mouse_plugin_wheel_lowres(libinput); - libinput_mouse_plugin_wheel(libinput); - - /* Our own event dispatch is implemented as mini-plugin, --- -2.50.0 - diff --git a/0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch b/0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch deleted file mode 100644 index 6a4d875..0000000 --- a/0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch +++ /dev/null @@ -1,152 +0,0 @@ -From 25f40a788d6c2fdefb373761e318abb29c5c6f60 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Tue, 15 Jul 2025 21:29:43 +1000 -Subject: [PATCH] evdev: track KEY_SYSRQ frames and pass them even as repeat - frames - -Alt+Printscreen aka KEY_LEFTALT + KEY_SYSRQ is emulated by the kernel -and always posted with SYN_REPORT 1, see -drivers/tty/sysrq.c:sysrq_reinject_alt_sysrq() - -The actual sequence when pressing Alt + Printscreen is to release Alt -first, then press it again: -- evdev: - - [ 10, 674010, 1, 56, 0] # EV_KEY / KEY_LEFTALT 0 - - [ 10, 674010, 0, 0, 0] # ------------ SYN_REPORT (0) ---------- +2861ms - - evdev: - - [ 10, 674030, 1, 56, 1] # EV_KEY / KEY_LEFTALT 1 - - [ 10, 674030, 1, 99, 1] # EV_KEY / KEY_SYSRQ 1 - - [ 10, 674030, 0, 0, 1] # ------------ SYN_REPORT (1) ---------- +0ms - - evdev: - - [ 10, 674031, 1, 99, 0] # EV_KEY / KEY_SYSRQ 0 - - [ 10, 674031, 1, 56, 0] # EV_KEY / KEY_LEFTALT 0 - - [ 10, 674031, 0, 0, 1] # ------------ SYN_REPORT (1) ---------- +0ms - -Handle that special case so we get our printscreen key to work as -expected anymore. - -Fixes: 9a9466b6a92c ("evdev: discard any frame with EV_SYN SYN_REPORT 1") -Signed-off-by: Peter Hutterer ---- - src/evdev.c | 13 +++++++++- - test/test-keyboard.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 69 insertions(+), 1 deletion(-) - -diff --git a/src/evdev.c b/src/evdev.c -index 5e52f4fc69e2..d0ef1c252fb3 100644 ---- a/src/evdev.c -+++ b/src/evdev.c -@@ -1043,6 +1043,7 @@ evdev_device_dispatch(void *data) - struct input_event ev; - int rc; - bool once = false; -+ bool had_sysrq = false; - _unref_(evdev_frame) *frame = evdev_frame_new(64); - - /* If the compositor is repainting, this function is called only once -@@ -1083,17 +1084,27 @@ evdev_device_dispatch(void *data) - device, - "event frame overflow, discarding events.\n"); - } -+ /* Alt+Printscreen is always a repeat frame, see -+ * drivers/tty/sysrq.c:sysrq_reinject_alt_sysrq() in the -+ * kernel -+ */ -+ if (ev.type == EV_KEY && ev.code == KEY_SYSRQ) -+ had_sysrq = true; -+ - if (ev.type == EV_SYN && ev.code == SYN_REPORT) { - /* A SYN_REPORT 1 event is a kernel-inserted - * auto-repeat. Nothing in libinput cares about kernel - * repeats and the inserted frame causes issues with - * timestamp deltas (see e.g. #1145) -+ * -+ * (well, except Alt+Printscreen (KEY_SYSRQ)) - */ -- if (ev.value != 1) -+ if (ev.value != 1 || had_sysrq) - evdev_device_dispatch_frame(libinput, - device, - frame); - evdev_frame_reset(frame); -+ had_sysrq = false; - } - } else if (rc == -ENODEV) { - evdev_device_remove(device); -diff --git a/test/test-keyboard.c b/test/test-keyboard.c -index 4e1baf7f0d41..380727b25f40 100644 ---- a/test/test-keyboard.c -+++ b/test/test-keyboard.c -@@ -468,6 +468,61 @@ START_TEST(keyboard_no_scroll) - } - END_TEST - -+START_TEST(keyboard_alt_printscreen) -+{ -+ struct litest_device *dev = litest_current_device(); -+ struct libinput *li = dev->libinput; -+ -+ litest_drain_events(li); -+ -+ /* repeat frame, ignored */ -+ litest_event(dev, EV_KEY, KEY_A, 1); -+ litest_event(dev, EV_SYN, SYN_REPORT, 1); -+ litest_dispatch(li); -+ litest_assert_empty_queue(li); -+ -+ /* not a repeat frame */ -+ litest_event(dev, EV_KEY, KEY_LEFTALT, 1); -+ litest_event(dev, EV_SYN, SYN_REPORT, 0); -+ litest_dispatch(li); -+ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_PRESSED); -+ -+ /* normal repeat frame, ignored */ -+ litest_event(dev, EV_KEY, KEY_LEFTALT, 2); -+ litest_event(dev, EV_SYN, SYN_REPORT, 1); -+ litest_dispatch(li); -+ litest_assert_empty_queue(li); -+ -+ /* not repeat frame */ -+ litest_event(dev, EV_KEY, KEY_LEFTALT, 0); -+ litest_event(dev, EV_SYN, SYN_REPORT, 0); -+ litest_dispatch(li); -+ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_RELEASED); -+ -+ /* special alt+printscreen repeat frame, *not* ignored */ -+ litest_event(dev, EV_KEY, KEY_LEFTALT, 1); -+ litest_event(dev, EV_KEY, KEY_SYSRQ, 1); -+ litest_event(dev, EV_SYN, SYN_REPORT, 1); -+ litest_dispatch(li); -+ -+ /* special alt+printscreen repeat frame, *not* ignored */ -+ litest_event(dev, EV_KEY, KEY_LEFTALT, 0); -+ litest_event(dev, EV_KEY, KEY_SYSRQ, 0); -+ litest_event(dev, EV_SYN, SYN_REPORT, 1); -+ litest_dispatch(li); -+ -+ /* Note: the kernel doesn't release the key combo until both keys are released -+ * and the order is reshuffled so we have alt down, sysrq down, sysrq up, alt up -+ */ -+ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_PRESSED); -+ litest_assert_key_event(li, KEY_SYSRQ, LIBINPUT_KEY_STATE_PRESSED); -+ litest_assert_key_event(li, KEY_SYSRQ, LIBINPUT_KEY_STATE_RELEASED); -+ litest_assert_key_event(li, KEY_LEFTALT, LIBINPUT_KEY_STATE_RELEASED); -+ -+ litest_assert_empty_queue(li); -+} -+END_TEST -+ - TEST_COLLECTION(keyboard) - { - /* clang-format off */ -@@ -484,5 +539,7 @@ TEST_COLLECTION(keyboard) - litest_add(keyboard_leds, LITEST_ANY, LITEST_ANY); - - litest_add(keyboard_no_scroll, LITEST_KEYS, LITEST_WHEEL); -+ -+ litest_add_for_device(keyboard_alt_printscreen, LITEST_KEYBOARD); - /* clang-format on */ - } --- -2.50.1 - diff --git a/libinput.spec b/libinput.spec index a9f0162..2ea69aa 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,8 +4,8 @@ %global gitversion 58abea394 Name: libinput -Version: 1.28.901 -Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.28.902 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -19,9 +19,6 @@ Source2: commitid Source0: https://gitlab.freedesktop.org/libinput/libinput/-/archive/%{version}/libinput-%{version}.tar.bz2 %endif -Patch0001: 0001-plugins-add-a-plugin-to-emulate-high-resolution-whee.patch -Patch0002: 0002-evdev-track-KEY_SYSRQ-frames-and-pass-them-even-as-r.patch - BuildRequires: git-core BuildRequires: gcc BuildRequires: meson @@ -159,6 +156,9 @@ intended to be run by users. %changelog +* Thu Jul 17 2025 Peter Hutterer - 1.28.902-1 +- libinput 1.28.902 + * Wed Jul 16 2025 Peter Hutterer - 1.28.901-3 - Fix Alt+PrintScreen not working (#2379912) diff --git a/sources b/sources index 38e9b8a..c9ddf47 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.28.901.tar.bz2) = b314517a96bff9674256dd095b11559a9c5a005c6c213fef188e4afdd433d9a3fc6557c7b565342e13a0f93a90679fb4d694076616eabe8d13506cda068be487 +SHA512 (libinput-1.28.902.tar.bz2) = ddf3da8ffd8f3c2b782fbfd06ecff9371831b8737100be857607912bcc9c7899236c2cbd1acd977786b768194eddefbab43402d2c23a6a30d3183cd9ccecaffa From 58e71a6895bd133fe2bdd04c926226c0631c677e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 21 Jul 2025 15:09:03 +1000 Subject: [PATCH 11/22] libinput 1.28.903 (#2382208) --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index 2ea69aa..0739923 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.28.902 +Version: 1.28.903 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Mon Jul 21 2025 Peter Hutterer - 1.28.903-1 +- libinput 1.28.903 (#2382208) + * Thu Jul 17 2025 Peter Hutterer - 1.28.902-1 - libinput 1.28.902 diff --git a/sources b/sources index c9ddf47..170d474 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.28.902.tar.bz2) = ddf3da8ffd8f3c2b782fbfd06ecff9371831b8737100be857607912bcc9c7899236c2cbd1acd977786b768194eddefbab43402d2c23a6a30d3183cd9ccecaffa +SHA512 (libinput-1.28.903.tar.bz2) = 189e98d85e825bb8c5c17a3be091ba5b541a63c84ad4963ae4db16954318d0396483d626693dc28472b81fd24a243656559ba6fb39a09dadbe035c78a0e11949 From de60b2a048b0fa16cb203781565e90080f647af7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 19:49:27 +0000 Subject: [PATCH 12/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- libinput.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libinput.spec b/libinput.spec index 0739923..c63f3e9 100644 --- a/libinput.spec +++ b/libinput.spec @@ -5,7 +5,7 @@ Name: libinput Version: 1.28.903 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -156,6 +156,9 @@ intended to be run by users. %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 1.28.903-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Mon Jul 21 2025 Peter Hutterer - 1.28.903-1 - libinput 1.28.903 (#2382208) From 33f4f3ebd793b245becb3f60db5039f78291e0d5 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 31 Jul 2025 18:35:20 +1000 Subject: [PATCH 13/22] libinput 1.29.0 --- libinput.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libinput.spec b/libinput.spec index c63f3e9..c196816 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,8 +4,8 @@ %global gitversion 58abea394 Name: libinput -Version: 1.28.903 -Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.29.0 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -118,6 +118,7 @@ intended to be run by users. %{_libexecdir}/libinput/libinput-analyze-recording %{_libexecdir}/libinput/libinput-analyze-touch-down-state %{_libexecdir}/libinput/libinput-debug-tablet +%{_libexecdir}/libinput/libinput-debug-tablet-pad %{_libexecdir}/libinput/libinput-list-kernel-devices %{_libexecdir}/libinput/libinput-measure %{_libexecdir}/libinput/libinput-measure-fuzz @@ -134,6 +135,7 @@ intended to be run by users. %{_mandir}/man1/libinput-analyze-recording.1* %{_mandir}/man1/libinput-analyze-touch-down-state.1* %{_mandir}/man1/libinput-debug-tablet.1* +%{_mandir}/man1/libinput-debug-tablet-pad.1* %{_mandir}/man1/libinput-list-kernel-devices.1* %{_mandir}/man1/libinput-measure.1* %{_mandir}/man1/libinput-measure-fuzz.1* @@ -156,6 +158,9 @@ intended to be run by users. %changelog +* Thu Jul 31 2025 Peter Hutterer - 1.29.0-1 +- libinput 1.29.0 + * Thu Jul 24 2025 Fedora Release Engineering - 1.28.903-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 170d474..7e71bd8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.28.903.tar.bz2) = 189e98d85e825bb8c5c17a3be091ba5b541a63c84ad4963ae4db16954318d0396483d626693dc28472b81fd24a243656559ba6fb39a09dadbe035c78a0e11949 +SHA512 (libinput-1.29.0.tar.bz2) = 22ce58d6d5e2a0550c788e487e6c27d31ee67b4d1c66c72339b348ebfb47a7d4d1b80e521a86e0fc4576273c3bb1e94b13f993b323f1c1a89788d2a0f68929cd From 5abab2fe82abc22897a7650b686c720f4157523a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 28 Aug 2025 19:06:00 +1000 Subject: [PATCH 14/22] libinput 1.29.1 --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index c196816..1ca07c6 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.29.0 +Version: 1.29.1 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -158,6 +158,9 @@ intended to be run by users. %changelog +* Thu Aug 28 2025 Peter Hutterer - 1.29.1-1 +- libinput 1.29.1 + * Thu Jul 31 2025 Peter Hutterer - 1.29.0-1 - libinput 1.29.0 diff --git a/sources b/sources index 7e71bd8..04888cb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.29.0.tar.bz2) = 22ce58d6d5e2a0550c788e487e6c27d31ee67b4d1c66c72339b348ebfb47a7d4d1b80e521a86e0fc4576273c3bb1e94b13f993b323f1c1a89788d2a0f68929cd +SHA512 (libinput-1.29.1.tar.bz2) = 9e5f352c2279c1234fe952ae6ecd0a275a48a595cbea8e26de682ab278499cf31a36d720800b02fd0472b20e5479ae9880633e03b1240e63d50bb6e8a1d2baf2 From 50e19d0b61685feafe8e70576a912efa0cf90816 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 21 Oct 2025 15:03:26 +1000 Subject: [PATCH 15/22] libinput 1.29.2 --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index 1ca07c6..70f7748 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.29.1 +Version: 1.29.2 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -158,6 +158,9 @@ intended to be run by users. %changelog +* Tue Oct 21 2025 Peter Hutterer - 1.29.2-1 +- libinput 1.29.2 + * Thu Aug 28 2025 Peter Hutterer - 1.29.1-1 - libinput 1.29.1 diff --git a/sources b/sources index 04888cb..cd6aec5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.29.1.tar.bz2) = 9e5f352c2279c1234fe952ae6ecd0a275a48a595cbea8e26de682ab278499cf31a36d720800b02fd0472b20e5479ae9880633e03b1240e63d50bb6e8a1d2baf2 +SHA512 (libinput-1.29.2.tar.bz2) = fe57f4179f830844506fcf50231d43545dce9099617957abf771cca7b263aa8d65997dc8ade39d00bc865c851deb0468ba330d3be38754fb23923304dba3ae8f From 00ac2e045bd15dbaa166cabbee9517254beb2200 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 4 Nov 2025 16:11:26 +1000 Subject: [PATCH 16/22] libinput 1.29.901 - with plugin autoload enabled --- libinput.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libinput.spec b/libinput.spec index 70f7748..c5d5482 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.29.2 +Version: 1.29.901 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -28,6 +28,7 @@ BuildRequires: pkgconfig(libevdev) >= 0.4 BuildRequires: pkgconfig(libwacom) >= 0.20 BuildRequires: pkgconfig(udev) BuildRequires: python3-rpm-macros +BuildRequires: luajit-devel %description libinput is a library that handles input devices for display servers and other @@ -73,7 +74,8 @@ intended to be run by users. -Ddocumentation=false \ -Dtests=true \ -Dinstall-tests=true \ - -Dudev-dir=%{udevdir} + -Dudev-dir=%{udevdir} \ + -Dautoload-plugins=true %meson_build %install @@ -158,6 +160,9 @@ intended to be run by users. %changelog +* Tue Nov 04 2025 Peter Hutterer - 1.29.901-1 +- libinput 1.29.901 - with plugin autoload enabled + * Tue Oct 21 2025 Peter Hutterer - 1.29.2-1 - libinput 1.29.2 diff --git a/sources b/sources index cd6aec5..b293145 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.29.2.tar.bz2) = fe57f4179f830844506fcf50231d43545dce9099617957abf771cca7b263aa8d65997dc8ade39d00bc865c851deb0468ba330d3be38754fb23923304dba3ae8f +SHA512 (libinput-1.29.901.tar.bz2) = 8046e613dfaa25be3106cc4aeaa81a4a0ccf6ac7f9e830047717c7ddb6458736a072e808031b86c1a1407f1088103c3729b0bc2e71000b9675a65af106c65ff4 From 38094a7cc41b6a28086877e32f1afc631fed1947 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 4 Nov 2025 16:27:25 +1000 Subject: [PATCH 17/22] Disable plugins on ppc64le - there's no luajit --- libinput.spec | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/libinput.spec b/libinput.spec index c5d5482..0ca2215 100644 --- a/libinput.spec +++ b/libinput.spec @@ -1,11 +1,17 @@ %global udevdir %(pkg-config --variable=udevdir udev) +%if "%{_arch}" == "ppc64le" +%bcond_with plugins +%else +%bcond_without plugins +%endif + #global gitdate 20141211 %global gitversion 58abea394 Name: libinput Version: 1.29.901 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -28,7 +34,10 @@ BuildRequires: pkgconfig(libevdev) >= 0.4 BuildRequires: pkgconfig(libwacom) >= 0.20 BuildRequires: pkgconfig(udev) BuildRequires: python3-rpm-macros + +%if %{with plugins} BuildRequires: luajit-devel +%endif %description libinput is a library that handles input devices for display servers and other @@ -74,8 +83,12 @@ intended to be run by users. -Ddocumentation=false \ -Dtests=true \ -Dinstall-tests=true \ - -Dudev-dir=%{udevdir} \ - -Dautoload-plugins=true +%if %{with plugins} + -Dautoload-plugins=true \ +%else + -Dlua-plugins=disabled \ +%endif + -Dudev-dir=%{udevdir} %meson_build %install @@ -160,6 +173,9 @@ intended to be run by users. %changelog +* Tue Nov 04 2025 Peter Hutterer - 1.29.901-2 +- Disable plugins on ppc64le - there's no luajit + * Tue Nov 04 2025 Peter Hutterer - 1.29.901-1 - libinput 1.29.901 - with plugin autoload enabled From 140995a228c1afa2ffcd37562077b071bc22d12b Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 6 Nov 2025 19:07:17 -0500 Subject: [PATCH 18/22] Disable plugins on RHEL luajit is not already included, and we don't want to own it just for this. The code is only compatible with the 5.1 API, so the regular lua cannot be used either. --- libinput.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libinput.spec b/libinput.spec index 0ca2215..1aee04a 100644 --- a/libinput.spec +++ b/libinput.spec @@ -1,9 +1,8 @@ %global udevdir %(pkg-config --variable=udevdir udev) -%if "%{_arch}" == "ppc64le" -%bcond_with plugins -%else -%bcond_without plugins +# Plugins require luajit or lua-5.1 +%if "%{_arch}" != "ppc64le" +%bcond plugins %{undefined rhel} %endif #global gitdate 20141211 @@ -11,7 +10,7 @@ Name: libinput Version: 1.29.901 -Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -173,6 +172,9 @@ intended to be run by users. %changelog +* Fri Nov 07 2025 Yaakov Selkowitz - 1.29.901-3 +- Disable plugins on RHEL + * Tue Nov 04 2025 Peter Hutterer - 1.29.901-2 - Disable plugins on ppc64le - there's no luajit From 002d51d3785e62c78e046b15906bbd7a5f28ed77 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 18 Nov 2025 14:02:27 +1000 Subject: [PATCH 19/22] libinput 1.29.902 - reenable ppc64le --- libinput.spec | 12 ++++++------ sources | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libinput.spec b/libinput.spec index 1aee04a..781950b 100644 --- a/libinput.spec +++ b/libinput.spec @@ -1,16 +1,13 @@ %global udevdir %(pkg-config --variable=udevdir udev) -# Plugins require luajit or lua-5.1 -%if "%{_arch}" != "ppc64le" %bcond plugins %{undefined rhel} -%endif #global gitdate 20141211 %global gitversion 58abea394 Name: libinput -Version: 1.29.901 -Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.29.902 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -35,7 +32,7 @@ BuildRequires: pkgconfig(udev) BuildRequires: python3-rpm-macros %if %{with plugins} -BuildRequires: luajit-devel +BuildRequires: lua-devel %endif %description @@ -172,6 +169,9 @@ intended to be run by users. %changelog +* Tue Nov 18 2025 Peter Hutterer - 1.29.902-1 +- libinput 1.29.902 - reenable ppc64le + * Fri Nov 07 2025 Yaakov Selkowitz - 1.29.901-3 - Disable plugins on RHEL diff --git a/sources b/sources index b293145..c59b5f1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.29.901.tar.bz2) = 8046e613dfaa25be3106cc4aeaa81a4a0ccf6ac7f9e830047717c7ddb6458736a072e808031b86c1a1407f1088103c3729b0bc2e71000b9675a65af106c65ff4 +SHA512 (libinput-1.29.902.tar.bz2) = 292f86a6e43943859030cc84ba8e0371134ac0606e93f06c40ff87f700a601b0ce50a217d0234d43008d98aac3f277426647efbfb8a7efbf9de298a006abb1d9 From f74cdffeb434d6b06d632ba06cd52e0942389d04 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 24 Nov 2025 10:11:21 +1000 Subject: [PATCH 20/22] Re-enable plugins on RHEL - lua 5.4 is available --- libinput.spec | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/libinput.spec b/libinput.spec index 781950b..8309e84 100644 --- a/libinput.spec +++ b/libinput.spec @@ -1,13 +1,11 @@ %global udevdir %(pkg-config --variable=udevdir udev) -%bcond plugins %{undefined rhel} - #global gitdate 20141211 %global gitversion 58abea394 Name: libinput Version: 1.29.902 -Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -31,9 +29,7 @@ BuildRequires: pkgconfig(libwacom) >= 0.20 BuildRequires: pkgconfig(udev) BuildRequires: python3-rpm-macros -%if %{with plugins} BuildRequires: lua-devel -%endif %description libinput is a library that handles input devices for display servers and other @@ -79,11 +75,7 @@ intended to be run by users. -Ddocumentation=false \ -Dtests=true \ -Dinstall-tests=true \ -%if %{with plugins} -Dautoload-plugins=true \ -%else - -Dlua-plugins=disabled \ -%endif -Dudev-dir=%{udevdir} %meson_build @@ -169,6 +161,9 @@ intended to be run by users. %changelog +* Mon Nov 24 2025 Peter Hutterer - 1.29.902-2 +- Re-enable plugins on RHEL - lua 5.4 is available + * Tue Nov 18 2025 Peter Hutterer - 1.29.902-1 - libinput 1.29.902 - reenable ppc64le From fa48a970939c152b2e4abec022dab0ef81b3eed3 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 25 Nov 2025 15:09:26 +1000 Subject: [PATCH 21/22] libinput 1.30.0 --- libinput.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libinput.spec b/libinput.spec index 8309e84..4161710 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,8 +4,8 @@ %global gitversion 58abea394 Name: libinput -Version: 1.29.902 -Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.30.0 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library # SPDX @@ -161,6 +161,9 @@ intended to be run by users. %changelog +* Tue Nov 25 2025 Peter Hutterer - 1.30.0-1 +- libinput 1.30.0 + * Mon Nov 24 2025 Peter Hutterer - 1.29.902-2 - Re-enable plugins on RHEL - lua 5.4 is available diff --git a/sources b/sources index c59b5f1..9c71d23 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.29.902.tar.bz2) = 292f86a6e43943859030cc84ba8e0371134ac0606e93f06c40ff87f700a601b0ce50a217d0234d43008d98aac3f277426647efbfb8a7efbf9de298a006abb1d9 +SHA512 (libinput-1.30.0.tar.bz2) = 3965b02254e89acf349ef077709da0b9e5837cd2867d07145a08bcdb0309355f5a25b80a06ecc2bb604c1055a4a571c80d933b0cc2a5bd5ae62d039d7db309b1 From d46f71c744060479bef47ba046f30f4cb70a3169 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 8 Dec 2025 12:49:08 +1000 Subject: [PATCH 22/22] libinput 1.30.1 --- libinput.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libinput.spec b/libinput.spec index 4161710..856e23e 100644 --- a/libinput.spec +++ b/libinput.spec @@ -4,7 +4,7 @@ %global gitversion 58abea394 Name: libinput -Version: 1.30.0 +Version: 1.30.1 Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library @@ -161,6 +161,9 @@ intended to be run by users. %changelog +* Mon Dec 08 2025 Peter Hutterer - 1.30.1-1 +- libinput 1.30.1 + * Tue Nov 25 2025 Peter Hutterer - 1.30.0-1 - libinput 1.30.0 diff --git a/sources b/sources index 9c71d23..b53b11e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libinput-1.30.0.tar.bz2) = 3965b02254e89acf349ef077709da0b9e5837cd2867d07145a08bcdb0309355f5a25b80a06ecc2bb604c1055a4a571c80d933b0cc2a5bd5ae62d039d7db309b1 +SHA512 (libinput-1.30.1.tar.bz2) = 6d9bb5653dfeb0e30c64e92f8146a8908233162ef39f89114f619605b7f0de3f9e0f344412d91c809d3c1dc3d4b836a5709373a80191484db3c6d0a8f69c4f82