diff --git a/.gitignore b/.gitignore index f608389..d53e404 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libinput-1.19.3.tar.xz +SOURCES/libinput-1.24.0.tar.bz2 diff --git a/.libinput.metadata b/.libinput.metadata index 7834567..e5c8e8f 100644 --- a/.libinput.metadata +++ b/.libinput.metadata @@ -1 +1 @@ -86fe886c829ba913a56500e0cf15ada34b6de4d6 SOURCES/libinput-1.19.3.tar.xz +5056910d36b9c58c660ba3c7eb93ac2e2d44ad65 SOURCES/libinput-1.24.0.tar.bz2 diff --git a/SOURCES/0001-evdev-strip-the-device-name-of-format-directives.patch b/SOURCES/0001-evdev-strip-the-device-name-of-format-directives.patch deleted file mode 100644 index f72ca08..0000000 --- a/SOURCES/0001-evdev-strip-the-device-name-of-format-directives.patch +++ /dev/null @@ -1,359 +0,0 @@ -From 762da0ec8832a2b8dd0fd11ccb34603391c2893c Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Wed, 30 Mar 2022 09:25:22 +1000 -Subject: [PATCH] evdev: strip the device name of format directives -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes a format string vulnerabilty. - -evdev_log_message() composes a format string consisting of a fixed -prefix (including the rendered device name) and the passed-in format -buffer. This format string is then passed with the arguments to the -actual log handler, which usually and eventually ends up being printf. - -If the device name contains a printf-style format directive, these ended -up in the format string and thus get interpreted correctly, e.g. for a -device "Foo%sBar" the log message vs printf invocation ends up being: - evdev_log_message(device, "some message %s", "some argument"); - printf("event9 - Foo%sBar: some message %s", "some argument"); - -This can enable an attacker to execute malicious code with the -privileges of the process using libinput. - -To exploit this, an attacker needs to be able to create a kernel device -with a malicious name, e.g. through /dev/uinput or a Bluetooth device. - -To fix this, convert any potential format directives in the device name -by duplicating percentages. - -Pre-rendering the device to avoid the issue altogether would be nicer -but the current log level hooks do not easily allow for this. The device -name is the only user-controlled part of the format string. - -A second potential issue is the sysname of the device which is also -sanitized. - -This issue was found by Albin Eldstål-Ahrens and Benjamin Svensson from -Assured AB, and independently by Lukas Lamster. - -Fixes #752 - -Signed-off-by: Peter Hutterer -(cherry picked from commit a423d7d3269dc32a87384f79e29bb5ac021c83d1) -(cherry picked from commit 04f22107e1a2ead05401d9169fa4306e8c7eefad) ---- - meson.build | 1 + - src/evdev.c | 31 +++++++++++------ - src/evdev.h | 6 ++-- - src/util-strings.h | 30 ++++++++++++++++ - test/litest-device-format-string.c | 56 ++++++++++++++++++++++++++++++ - test/litest.h | 1 + - test/test-utils.c | 26 ++++++++++++++ - 7 files changed, 139 insertions(+), 12 deletions(-) - create mode 100644 test/litest-device-format-string.c - -diff --git a/meson.build b/meson.build -index d6b06cca..a909ff19 100644 ---- a/meson.build -+++ b/meson.build -@@ -732,6 +732,7 @@ if get_option('tests') - 'test/litest-device-dell-canvas-totem-touch.c', - 'test/litest-device-elantech-touchpad.c', - 'test/litest-device-elan-tablet.c', -+ 'test/litest-device-format-string.c', - 'test/litest-device-generic-pressurepad.c', - 'test/litest-device-generic-singletouch.c', - 'test/litest-device-gpio-keys.c', -diff --git a/src/evdev.c b/src/evdev.c -index d8dfdadd..0b4b3590 100644 ---- a/src/evdev.c -+++ b/src/evdev.c -@@ -2291,19 +2291,19 @@ evdev_device_create(struct libinput_seat *seat, - struct libinput *libinput = seat->libinput; - struct evdev_device *device = NULL; - int rc; -- int fd; -+ int fd = -1; - int unhandled_device = 0; - const char *devnode = udev_device_get_devnode(udev_device); -- const char *sysname = udev_device_get_sysname(udev_device); -+ char *sysname = str_sanitize(udev_device_get_sysname(udev_device)); - - if (!devnode) { - log_info(libinput, "%s: no device node associated\n", sysname); -- return NULL; -+ goto err; - } - - if (udev_device_should_be_ignored(udev_device)) { - log_debug(libinput, "%s: device is ignored\n", sysname); -- return NULL; -+ goto err; - } - - /* Use non-blocking mode so that we can loop on read on -@@ -2317,13 +2317,15 @@ evdev_device_create(struct libinput_seat *seat, - sysname, - devnode, - strerror(-fd)); -- return NULL; -+ goto err; - } - - if (!evdev_device_have_same_syspath(udev_device, fd)) - goto err; - - device = zalloc(sizeof *device); -+ device->sysname = sysname; -+ sysname = NULL; - - libinput_device_init(&device->base, seat); - libinput_seat_ref(seat); -@@ -2346,6 +2348,9 @@ evdev_device_create(struct libinput_seat *seat, - device->dispatch = NULL; - device->fd = fd; - device->devname = libevdev_get_name(device->evdev); -+ /* the log_prefix_name is used as part of a printf format string and -+ * must not contain % directives, see evdev_log_msg */ -+ device->log_prefix_name = str_sanitize(device->devname); - device->scroll.threshold = 5.0; /* Default may be overridden */ - device->scroll.direction_lock_threshold = 5.0; /* Default may be overridden */ - device->scroll.direction = 0; -@@ -2386,12 +2391,16 @@ evdev_device_create(struct libinput_seat *seat, - return device; - - err: -- close_restricted(libinput, fd); -- if (device) { -- unhandled_device = device->seat_caps == 0; -- evdev_device_destroy(device); -+ if (fd >= 0) { -+ close_restricted(libinput, fd); -+ if (device) { -+ unhandled_device = device->seat_caps == 0; -+ evdev_device_destroy(device); -+ } - } - -+ free(sysname); -+ - return unhandled_device ? EVDEV_UNHANDLED_DEVICE : NULL; - } - -@@ -2404,7 +2413,7 @@ evdev_device_get_output(struct evdev_device *device) - const char * - evdev_device_get_sysname(struct evdev_device *device) - { -- return udev_device_get_sysname(device->udev_device); -+ return device->sysname; - } - - const char * -@@ -3001,6 +3010,8 @@ evdev_device_destroy(struct evdev_device *device) - if (device->base.group) - libinput_device_group_unref(device->base.group); - -+ free(device->log_prefix_name); -+ free(device->sysname); - free(device->output_name); - filter_destroy(device->pointer.filter); - libinput_timer_destroy(&device->scroll.timer); -diff --git a/src/evdev.h b/src/evdev.h -index c7d130f8..980c5943 100644 ---- a/src/evdev.h -+++ b/src/evdev.h -@@ -169,6 +169,8 @@ struct evdev_device { - struct udev_device *udev_device; - char *output_name; - const char *devname; -+ char *log_prefix_name; -+ char *sysname; - bool was_removed; - int fd; - enum evdev_device_seat_capability seat_caps; -@@ -786,7 +788,7 @@ evdev_log_msg(struct evdev_device *device, - sizeof(buf), - "%-7s - %s%s%s", - evdev_device_get_sysname(device), -- (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->devname : "", -+ (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->log_prefix_name : "", - (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? ": " : "", - format); - -@@ -824,7 +826,7 @@ evdev_log_msg_ratelimit(struct evdev_device *device, - sizeof(buf), - "%-7s - %s%s%s", - evdev_device_get_sysname(device), -- (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->devname : "", -+ (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? device->log_prefix_name : "", - (priority > LIBINPUT_LOG_PRIORITY_DEBUG) ? ": " : "", - format); - -diff --git a/src/util-strings.h b/src/util-strings.h -index 2a15fab3..d5a84146 100644 ---- a/src/util-strings.h -+++ b/src/util-strings.h -@@ -43,6 +43,8 @@ - #include - #endif - -+#include "util-macros.h" -+ - static inline bool - streq(const char *str1, const char *str2) - { -@@ -398,3 +400,31 @@ safe_basename(const char *filename); - - char * - trunkname(const char *filename); -+ -+/** -+ * Return a copy of str with all % converted to %% to make the string -+ * acceptable as printf format. -+ */ -+static inline char * -+str_sanitize(const char *str) -+{ -+ if (!str) -+ return NULL; -+ -+ if (!strchr(str, '%')) -+ return strdup(str); -+ -+ size_t slen = min(strlen(str), 512); -+ char *sanitized = zalloc(2 * slen + 1); -+ const char *src = str; -+ char *dst = sanitized; -+ -+ for (size_t i = 0; i < slen; i++) { -+ if (*src == '%') -+ *dst++ = '%'; -+ *dst++ = *src++; -+ } -+ *dst = '\0'; -+ -+ return sanitized; -+} -diff --git a/test/litest-device-format-string.c b/test/litest-device-format-string.c -new file mode 100644 -index 00000000..aed15db4 ---- /dev/null -+++ b/test/litest-device-format-string.c -@@ -0,0 +1,56 @@ -+ -+/* -+ * Copyright © 2013 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 "litest.h" -+#include "litest-int.h" -+ -+static struct input_id input_id = { -+ .bustype = 0x3, -+ .vendor = 0x0123, -+ .product = 0x0456, -+}; -+ -+static int events[] = { -+ EV_KEY, BTN_LEFT, -+ EV_KEY, BTN_RIGHT, -+ EV_KEY, BTN_MIDDLE, -+ EV_REL, REL_X, -+ EV_REL, REL_Y, -+ EV_REL, REL_WHEEL, -+ EV_REL, REL_WHEEL_HI_RES, -+ -1 , -1, -+}; -+ -+TEST_DEVICE("mouse-format-string", -+ .type = LITEST_MOUSE_FORMAT_STRING, -+ .features = LITEST_RELATIVE | LITEST_BUTTON | LITEST_WHEEL, -+ .interface = NULL, -+ -+ .name = "Evil %s %d %x Mouse %p %", -+ .id = &input_id, -+ .absinfo = NULL, -+ .events = events, -+) -diff --git a/test/litest.h b/test/litest.h -index b6ffbf4e..c16670e7 100644 ---- a/test/litest.h -+++ b/test/litest.h -@@ -320,6 +320,7 @@ enum litest_device_type { - LITEST_KEYBOARD_QUIRKED, - LITEST_SYNAPTICS_PRESSUREPAD, - LITEST_GENERIC_PRESSUREPAD, -+ LITEST_MOUSE_FORMAT_STRING, - }; - - #define LITEST_DEVICELESS -2 -diff --git a/test/test-utils.c b/test/test-utils.c -index 989adecd..e80754be 100644 ---- a/test/test-utils.c -+++ b/test/test-utils.c -@@ -1267,6 +1267,31 @@ START_TEST(strstartswith_test) - } - END_TEST - -+START_TEST(strsanitize_test) -+{ -+ struct strsanitize_test { -+ const char *string; -+ const char *expected; -+ } tests[] = { -+ { "foobar", "foobar" }, -+ { "", "" }, -+ { "%", "%%" }, -+ { "%%%%", "%%%%%%%%" }, -+ { "x %s", "x %%s" }, -+ { "x %", "x %%" }, -+ { "%sx", "%%sx" }, -+ { "%s%s", "%%s%%s" }, -+ { NULL, NULL }, -+ }; -+ -+ for (struct strsanitize_test *t = tests; t->string; t++) { -+ char *sanitized = str_sanitize(t->string); -+ ck_assert_str_eq(sanitized, t->expected); -+ free(sanitized); -+ } -+} -+END_TEST -+ - START_TEST(list_test_insert) - { - struct list_test { -@@ -1489,6 +1514,7 @@ litest_utils_suite(void) - tcase_add_test(tc, strstrip_test); - tcase_add_test(tc, strendswith_test); - tcase_add_test(tc, strstartswith_test); -+ tcase_add_test(tc, strsanitize_test); - tcase_add_test(tc, time_conversion); - tcase_add_test(tc, human_time); - --- -2.36.0 - diff --git a/SOURCES/0001-quirks-Dell-Mayabay-Pressure-Pad.patch b/SOURCES/0001-quirks-Dell-Mayabay-Pressure-Pad.patch deleted file mode 100644 index d2f06c0..0000000 --- a/SOURCES/0001-quirks-Dell-Mayabay-Pressure-Pad.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6dc3b6ace421ab7862a30074a5842cc99637b171 Mon Sep 17 00:00:00 2001 -From: Marge Yang -Date: Wed, 8 Feb 2023 01:24:53 -0500 -Subject: [PATCH] quirks: Dell Mayabay (Pressure Pad). - -Signed-off-by: Marge Yang -(cherry picked from commit 74415b13fb72c457e5439c974f59e1b0d08a27ed) -Signed-off-by: Peter Hutterer ---- - quirks/50-system-dell.quirks | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/quirks/50-system-dell.quirks b/quirks/50-system-dell.quirks -index cbd1fbcb..0fb43aac 100644 ---- a/quirks/50-system-dell.quirks -+++ b/quirks/50-system-dell.quirks -@@ -116,3 +116,9 @@ MatchBus=i2c - MatchVendor=0x27C6 - MatchProduct=0x0F60 - AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE; -+ -+[Dell Mayabay Touchpad] -+MatchBus=i2c -+MatchVendor=0x06CB -+MatchProduct=0xCFA0 -+AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE; --- -2.41.0 diff --git a/SOURCES/0001-quirks-add-quirks-for-Dell-Precision5680-Touchpad.patch b/SOURCES/0001-quirks-add-quirks-for-Dell-Precision5680-Touchpad.patch deleted file mode 100644 index 244a6e1..0000000 --- a/SOURCES/0001-quirks-add-quirks-for-Dell-Precision5680-Touchpad.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5414d1395dec138d3daa39db886cc40bc3eae736 Mon Sep 17 00:00:00 2001 -From: Charles Wang -Date: Wed, 11 Jan 2023 17:16:13 +0800 -Subject: [PATCH] quirks: add quirks for Dell Precision5680 Touchpad - -This touchpad is a pressure pad and needs the pressure -handling disable. - -Fixes https://gitlab.freedesktop.org/libinput/libinput/-/issues/849 - -Signed-off-by: Charles Wang - -Cherry-pick adjusted to work with the AttrEventCodeDisable quirk -(cherry picked from commit 29a49e968e67eb7bf6d63c9f93b06ee983772018) -(cherry picked from commit 6420178b5fdb5f9c5f353556703ae151891297fd) -Signed-off-by: Peter Hutterer ---- - quirks/50-system-dell.quirks | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/quirks/50-system-dell.quirks b/quirks/50-system-dell.quirks -index 9bc3e357..cbd1fbcb 100644 ---- a/quirks/50-system-dell.quirks -+++ b/quirks/50-system-dell.quirks -@@ -108,3 +108,11 @@ MatchBus=usb - MatchVendor=0x2575 - MatchProduct=0x0204 - ModelDellCanvasTotem=1 -+ -+# This is a true pressurepad so disable pressure for contact size -+# https://gitlab.freedesktop.org/libinput/libinput/-/issues/849 -+[Dell Precision5680 Touchpad] -+MatchBus=i2c -+MatchVendor=0x27C6 -+MatchProduct=0x0F60 -+AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE; --- -2.39.0 - diff --git a/SPECS/libinput.spec b/SPECS/libinput.spec index aba0224..306fe72 100644 --- a/SPECS/libinput.spec +++ b/SPECS/libinput.spec @@ -4,8 +4,8 @@ %global gitversion 58abea394 Name: libinput -Version: 1.19.3 -Release: 4%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 1.24.0 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} Summary: Input device library License: MIT @@ -15,13 +15,9 @@ Source0: %{name}-%{gitdate}.tar.xz Source1: make-git-snapshot.sh Source2: commitid %else -Source0: http://www.freedesktop.org/software/libinput/libinput-%{version}.tar.xz +Source0: https://gitlab.freedesktop.org/libinput/libinput/-/archive/%{version}/libinput-%{version}.tar.bz2 %endif -Patch0001: 0001-evdev-strip-the-device-name-of-format-directives.patch -Patch0002: 0001-quirks-add-quirks-for-Dell-Precision5680-Touchpad.patch -Patch0003: 0001-quirks-Dell-Mayabay-Pressure-Pad.patch - BuildRequires: git-core BuildRequires: gcc BuildRequires: meson @@ -29,6 +25,8 @@ BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(mtdev) >= 1.1.0 BuildRequires: pkgconfig(libevdev) >= 0.4 BuildRequires: pkgconfig(libwacom) >= 0.20 +BuildRequires: pkgconfig(udev) +BuildRequires: python3-rpm-macros BuildRequires: python3-devel BuildRequires: check-devel @@ -67,7 +65,7 @@ The %{name}-test package contains the libinput test suite. It is not intended to be run by users. %prep -%autosetup -S git +%autosetup -S git -p1 # Replace whatever the source uses with the approved call pathfix.py -i %{__python3} -p -n $(git grep -l '#!/usr/bin/.*python3') @@ -119,6 +117,7 @@ pathfix.py -i %{__python3} -p -n $(git grep -l '#!/usr/bin/.*python3') %{_libexecdir}/libinput/libinput-analyze-recording %{_libexecdir}/libinput/libinput-analyze-touch-down-state %{_libexecdir}/libinput/libinput-debug-tablet +%{_libexecdir}/libinput/libinput-list-kernel-devices %{_libexecdir}/libinput/libinput-measure %{_libexecdir}/libinput/libinput-measure-fuzz %{_libexecdir}/libinput/libinput-measure-touchpad-tap @@ -133,6 +132,7 @@ pathfix.py -i %{__python3} -p -n $(git grep -l '#!/usr/bin/.*python3') %{_mandir}/man1/libinput-analyze-recording.1* %{_mandir}/man1/libinput-analyze-touch-down-state.1* %{_mandir}/man1/libinput-debug-tablet.1* +%{_mandir}/man1/libinput-list-kernel-devices.1* %{_mandir}/man1/libinput-measure.1* %{_mandir}/man1/libinput-measure-fuzz.1* %{_mandir}/man1/libinput-measure-touchpad-tap.1* @@ -146,43 +146,101 @@ pathfix.py -i %{__python3} -p -n $(git grep -l '#!/usr/bin/.*python3') %{_mandir}/man1/libinput-replay.1* %files test +%{_libexecdir}/libinput/libinput-test %{_libexecdir}/libinput/libinput-test-suite +%{_libexecdir}/libinput/libinput-test-utils +%{_mandir}/man1/libinput-test.1* %{_mandir}/man1/libinput-test-suite.1* + %changelog -* Thu Jul 06 2023 Peter Hutterer - 1.19.3-4 -- Add quirk for the Mayabay pressurepad (#2219245, #2219812) +* Thu Aug 31 2023 Arkady L. Shane - 1.24.0-1 +- Rebuilt for MSVSphere 9.2 + +* Fri Aug 25 2023 Peter Hutterer - 1.24.0-1 +- libinput 1.24.0 + +* Thu Jul 20 2023 Peter Hutterer - 1.23.0-3 +- BuildRequires python3-rpm-macros for pathfix.py + +* Tue Apr 11 2023 Peter Hutterer - 1.23.0-2 +- Add two patches for better Apple touchpad behavior (see libinput MR + 834 and 897) + +* Mon Mar 27 2023 Peter Hutterer - 1.23.0-1 +- libinput 1.23.0 + +* Thu Jan 19 2023 Fedora Release Engineering - 1.22.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 16 2023 Peter Hutterer - 1.22.1-1 +- libinput 1.22.1 + +* Sat Nov 26 2022 Davide Cavalca 1.22.0-2 +- Backport upstream patch to add Apple MTP touchpad quirk for Apple M2 laptops + +* Mon Nov 21 2022 Peter Hutterer - 1.22.0-1git58abea394} +- libinput 1.22.0 + +* Wed Aug 31 2022 Peter Hutterer - 1.21.0-3 +- Add udev to BuildRequires for udevdir to resolve againt + +* Thu Jul 21 2022 Fedora Release Engineering - 1.21.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Peter Hutterer - 1.21.0-1 +- libinput 1.21.0 + +* Wed Apr 20 2022 Peter Hutterer - 1.20.1-1 +- libinput 1.20.1 + +* Mon Feb 21 2022 Peter Hutterer - 1.20.0-1 +- libinput 1.20 + +* Mon Feb 07 2022 Peter Hutterer - 1.19.901-1 +- libinput 1.20rc1 + +* Thu Jan 20 2022 Fedora Release Engineering - 1.19.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Dec 13 2021 Peter Hutterer - 1.19.3-2 +- Rebuild for libwacom soname bump + +* Mon Dec 13 2021 Peter Hutterer - 1.19.3-1 +- libinput 1.19.3 + +* Thu Oct 21 2021 Peter Hutterer - 1.19.2-1 +- libinput 1.19.2 -* Wed Mar 15 2023 MSVSphere Packaging Team - 1.19.3-2 -- Rebuilt for MSVSphere 9.1. +* Wed Sep 29 2021 Peter Hutterer - 1.19.1-1 +- libinput 1.19.1 -* Thu Jan 19 2023 Peter Hutterer - 1.19.3-3 -- Add a quirk for the Dell Precision 5680 pressurepad (#2158075) +* Wed Sep 15 2021 Peter Hutterer - 1.19.0-1 +- libinput 1.19.0 -* Wed May 04 2022 Peter Hutterer - 1.19.3-2 -- CVE-2022-1215: fix a format string vulnerability (#2076816) +* Wed Sep 01 2021 Peter Hutterer - 1.18.901-1 +- libinput 1.18.901 -* Thu Jan 27 2022 Peter Hutterer - 1.19.3-1 -- libinput 1.19.3 (#2044716) +* Tue Aug 03 2021 Peter Hutterer - 1.18.1-1 +- libinput 1.18.1 -* Thu Oct 21 2021 Peter Hutterer 1.19.2-1 -- libinput 1.19.2 (#2004309) +* Thu Jul 22 2021 Fedora Release Engineering - 1.18.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Mon Oct 18 2021 Peter Hutterer 1.19.1-1 -- libinput 1.19.1 (#2004309) +* Mon Jun 21 2021 Peter Hutterer 1.18.0-2 +- Add quirk for the Huawai Matebook 2020 (#1972370) -* Mon Aug 09 2021 Mohan Boddu - 1.18.0-2 -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Wed Jun 02 2021 Peter Hutterer 1.18.0-1 +- libinput 1.18.0 -* Thu Jun 10 2021 Peter Hutterer 1.18.0-1 -- libinput 1.18.0 (#1970188) +* Wed May 26 2021 Peter Hutterer 1.17.901-1 +- libinput 1.17.901 -* Tue May 04 2021 Peter Hutterer 1.17.2-1 -- libinput 1.17.2 (#1955413) +* Wed May 26 2021 Peter Hutterer 1.17.3-1 +- libinput 1.17.3 -* Fri Apr 16 2021 Mohan Boddu - 1.17.1-2 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Fri Apr 30 2021 Peter Hutterer 1.17.2-1 +- libinput 1.17.2 * Wed Mar 24 2021 Peter Hutterer 1.17.1-1 - libinput 1.17.1