Hello community, here is the log from the commit of package libinput for openSUSE:Factory checked in at 2019-06-30 10:17:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libinput (Old) and /work/SRC/openSUSE:Factory/.libinput.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libinput" Sun Jun 30 10:17:03 2019 rev:75 rq:712349 version:1.13.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libinput/libinput.changes 2019-06-05 11:37:29.307091290 +0200 +++ /work/SRC/openSUSE:Factory/.libinput.new.4615/libinput.changes 2019-06-30 10:17:04.391207438 +0200 @@ -1,0 +2,8 @@ +Fri Jun 28 07:27:31 UTC 2019 - Jan Engelhardt <[email protected]> + +- Update to new upstream release 1.13.4 + * Added a quirk for the Lenovo X1 Yoga 1st gen and a + Lenovo X230 trackpoint quirk + * Better Thinkpad T480 trackpoint multiplier + +------------------------------------------------------------------- Old: ---- libinput-1.13.2.tar.xz libinput-1.13.2.tar.xz.sig New: ---- libinput-1.13.4.tar.xz libinput-1.13.4.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libinput.spec ++++++ --- /var/tmp/diff_new_pack.nI6EOM/_old 2019-06-30 10:17:04.927208271 +0200 +++ /var/tmp/diff_new_pack.nI6EOM/_new 2019-06-30 10:17:04.931208277 +0200 @@ -22,7 +22,7 @@ Name: libinput %define lname libinput10 -Version: 1.13.2 +Version: 1.13.4 Release: 0 Summary: Input device and event processing library License: MIT ++++++ libinput-1.13.2.tar.xz -> libinput-1.13.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/doc/api/style/libinputdoxygen.css new/libinput-1.13.4/doc/api/style/libinputdoxygen.css --- old/libinput-1.13.2/doc/api/style/libinputdoxygen.css 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/doc/api/style/libinputdoxygen.css 2019-06-28 02:41:48.000000000 +0200 @@ -14,14 +14,29 @@ } h1 { - font-size: 300%; - background-image: none; - background-color: #D6E5FF; - padding-left: 10px; + font-size: 150%; + color: #354C7B; + background: none; + border-bottom: 1px solid #879ECB; + font-size: 150%; + font-weight: normal; + padding-top: 8px; + padding-bottom: 8px; + padding-left: 0px; + width: 100%; } h2 { - font-size: 200%; + font-size: 120%; + color: #354C7B; + background: none; + border-bottom: 1px solid #879ECB; + font-size: 150%; + font-weight: normal; + padding-top: 8px; + padding-bottom: 8px; + padding-left: 0px; + width: 100%; } .sm-dox li { @@ -73,6 +88,10 @@ background-color: #F0F0F0; } +div.header { + border: none; +} + td.fieldname { font-family: 'Roboto Mono', monospace; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/doc/user/device-quirks.rst new/libinput-1.13.4/doc/user/device-quirks.rst --- old/libinput-1.13.2/doc/user/device-quirks.rst 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/doc/user/device-quirks.rst 2019-06-28 02:41:48.000000000 +0200 @@ -183,3 +183,6 @@ Disables the evdev event type/code tuples on the device. Entries may be a named event type, or a named event code, or a named event type with a hexadecimal event code, separated by a single colon. +AttrPointingStickIntegration=internal|external + Indicates the integration of the pointing stick. This is a string enum. + Only needed for external pointing sticks. These are rare. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/doc/user/tools.rst new/libinput-1.13.4/doc/user/tools.rst --- old/libinput-1.13.2/doc/user/tools.rst 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/doc/user/tools.rst 2019-06-28 02:41:48.000000000 +0200 @@ -24,7 +24,7 @@ - ``libinput quirks``: show quirks assigned to a device, see :ref:`here <libinput-quirks>` -Most the tools must be run as root to have access to the kernel's +Most of the tools must be run as root to have access to the kernel's ``/dev/input/event*`` device files. .. _libinput-list-devices: @@ -69,7 +69,7 @@ default configuration for this device, for options that have more than a binary state all available options are listed, with the default one prefixed with an asterisk (``*``). In the example above, the default click method is -button-areas but clickinger is available. +button-areas but clickfinger is available. .. note:: This tool is intended for human-consumption and may change its output at any time. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/doc/user/touchpad-pressure-debugging.rst new/libinput-1.13.4/doc/user/touchpad-pressure-debugging.rst --- old/libinput-1.13.2/doc/user/touchpad-pressure-debugging.rst 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/doc/user/touchpad-pressure-debugging.rst 2019-06-28 02:41:48.000000000 +0200 @@ -27,6 +27,9 @@ change at any time**. Users are advised to :ref:`report a bug <reporting_bugs>` with the updated pressure ranges when testing has completed. +.. note:: Most distributions ship ``libinput measure`` in a separate + ``libinput-utils`` package. + Use the ``libinput measure touchpad-pressure`` tool provided by libinput. This tool will search for your touchpad device and print some pressure statistics, including whether a touch is/was considered logically down. @@ -124,6 +127,9 @@ change at any time**. Users are advised to :ref:`report a bug <reporting_bugs>` with the updated pressure ranges when testing has completed. +.. note:: Most distributions ship ``libinput measure`` in a separate + ``libinput-utils`` package. + Use the ``libinput measure touch-size`` tool provided by libinput. This tool will search for your touchpad device and print some touch size statistics, including whether a touch is/was considered logically down. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/meson.build new/libinput-1.13.4/meson.build --- old/libinput-1.13.2/meson.build 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/meson.build 2019-06-28 02:41:48.000000000 +0200 @@ -1,5 +1,5 @@ project('libinput', 'c', - version : '1.13.2', + version : '1.13.4', license : 'MIT/Expat', default_options : [ 'c_std=gnu99', 'warning_level=2' ], meson_version : '>= 0.41.0') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/quirks/50-system-lenovo.quirks new/libinput-1.13.4/quirks/50-system-lenovo.quirks --- old/libinput-1.13.2/quirks/50-system-lenovo.quirks 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/quirks/50-system-lenovo.quirks 2019-06-28 02:41:48.000000000 +0200 @@ -20,6 +20,11 @@ MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT440p* ModelLenovoT450Touchpad=1 +[Lenovo T480 Trackpoint] +MatchName=*TPPS/2 IBM TrackPoint +MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT480:* +AttrTrackpointMultiplier=0.4 + [Lenovo T480s Touchpad] MatchName=Elan Touchpad MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadT480s* @@ -40,6 +45,11 @@ MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX20??:* AttrTrackpointMultiplier=1.25 +[Lenovo X230 Trackpoint] +MatchName=*TPPS/2 IBM TrackPoint +MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPadX230:* +AttrTrackpointMultiplier=0.25 + [Lenovo P50 Touchpad] MatchName=SynPS/2 Synaptics TouchPad MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadP50*: @@ -76,13 +86,20 @@ MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadX1Carbon6th* AttrTrackpointMultiplier=0.4 -[Lenovo ThinkPad Compact USB Keyboard with TrackPoint] +[Lenovo ThinkPad Compact USB Keyboard with TrackPoint (keyboard)] MatchUdevType=keyboard MatchBus=usb MatchVendor=0x17EF MatchProduct=0x6047 AttrKeyboardIntegration=external +[Lenovo ThinkPad Compact USB Keyboard with TrackPoint (trackpoint)] +MatchUdevType=pointingstick +MatchBus=usb +MatchVendor=0x17EF +MatchProduct=0x6047 +AttrPointingStickIntegration=external + # Lenovo Thinkpad Yoga (not the consumer versions) disables the keyboard # mechanically. We must not disable the keyboard because some keys are # still accessible on the screen and volume rocker. @@ -92,6 +109,11 @@ MatchDMIModalias=dmi:*svnLENOVO:*pvrThinkPad*Yoga*:* ModelTabletModeNoSuspend=1 +[Lenovo X1 Yoga Trackpoint 1st gen] +MatchName=*TPPS/2 IBM TrackPoint +MatchDMIModalias=dmi:*svnLENOVO:*:pvrThinkPadX1Yoga1st:* +AttrTrackpointMultiplier=1.25 + # Lenovo Carbon X1 6th gen (RMI4 only, PS/2 is broken on this device, # sends bogus ABS_MT_TOOL_TYPE events for MT_TOOL_PALM [Lenovo Carbon X1 6th gen] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/src/evdev-fallback.c new/libinput-1.13.4/src/evdev-fallback.c --- old/libinput-1.13.2/src/evdev-fallback.c 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/src/evdev-fallback.c 2019-06-28 02:41:48.000000000 +0200 @@ -1382,8 +1382,8 @@ } static void -fallback_keyboard_pair_tablet_mode(struct evdev_device *keyboard, - struct evdev_device *tablet_mode_switch) +fallback_pair_tablet_mode(struct evdev_device *keyboard, + struct evdev_device *tablet_mode_switch) { struct fallback_dispatch *dispatch = fallback_dispatch(keyboard->dispatch); @@ -1391,8 +1391,12 @@ if ((keyboard->tags & EVDEV_TAG_EXTERNAL_KEYBOARD)) return; - if ((keyboard->tags & - (EVDEV_TAG_TRACKPOINT|EVDEV_TAG_INTERNAL_KEYBOARD)) == 0) + if ((keyboard->tags & EVDEV_TAG_TRACKPOINT)) { + if (keyboard->tags & EVDEV_TAG_EXTERNAL_MOUSE) + return; + /* This filters out all internal keyboard-like devices (Video + * Switch) */ + } else if ((keyboard->tags & EVDEV_TAG_INTERNAL_KEYBOARD) == 0) return; if (evdev_device_has_model_quirk(keyboard, @@ -1429,7 +1433,7 @@ struct evdev_device *added_device) { fallback_lid_pair_keyboard(device, added_device); - fallback_keyboard_pair_tablet_mode(device, added_device); + fallback_pair_tablet_mode(device, added_device); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/src/evdev.c new/libinput-1.13.4/src/evdev.c --- old/libinput-1.13.2/src/evdev.c 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/src/evdev.c 2019-06-28 02:41:48.000000000 +0200 @@ -387,10 +387,34 @@ evdev_tag_trackpoint(struct evdev_device *device, struct udev_device *udev_device) { - if (libevdev_has_property(device->evdev, - INPUT_PROP_POINTING_STICK) || - parse_udev_flag(device, udev_device, "ID_INPUT_POINTINGSTICK")) - device->tags |= EVDEV_TAG_TRACKPOINT; + struct quirks_context *quirks; + struct quirks *q; + char *prop; + + if (!libevdev_has_property(device->evdev, + INPUT_PROP_POINTING_STICK) && + !parse_udev_flag(device, udev_device, "ID_INPUT_POINTINGSTICK")) + return; + + device->tags |= EVDEV_TAG_TRACKPOINT; + + quirks = evdev_libinput_context(device)->quirks; + q = quirks_fetch_for_device(quirks, device->udev_device); + if (q && quirks_get_string(q, QUIRK_ATTR_TRACKPOINT_INTEGRATION, &prop)) { + if (streq(prop, "internal")) { + /* noop, this is the default anyway */ + } else if (streq(prop, "external")) { + device->tags |= EVDEV_TAG_EXTERNAL_MOUSE; + evdev_log_info(device, + "is an external pointing stick\n"); + } else { + evdev_log_info(device, + "tagged with unknown value %s\n", + prop); + } + } + + quirks_unref(q); } static inline void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/src/quirks.c new/libinput-1.13.4/src/quirks.c --- old/libinput-1.13.2/src/quirks.c 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/src/quirks.c 2019-06-28 02:41:48.000000000 +0200 @@ -261,6 +261,7 @@ case QUIRK_ATTR_PALM_SIZE_THRESHOLD: return "AttrPalmSizeThreshold"; case QUIRK_ATTR_LID_SWITCH_RELIABILITY: return "AttrLidSwitchReliability"; case QUIRK_ATTR_KEYBOARD_INTEGRATION: return "AttrKeyboardIntegration"; + case QUIRK_ATTR_TRACKPOINT_INTEGRATION: return "AttrPointingStickIntegration"; case QUIRK_ATTR_TPKBCOMBO_LAYOUT: return "AttrTPKComboLayout"; case QUIRK_ATTR_PRESSURE_RANGE: return "AttrPressureRange"; case QUIRK_ATTR_PALM_PRESSURE_THRESHOLD: return "AttrPalmPressureThreshold"; @@ -661,6 +662,13 @@ p->type = PT_STRING; p->value.s = safe_strdup(value); rc = true; + } else if (streq(key, quirk_get_name(QUIRK_ATTR_TRACKPOINT_INTEGRATION))) { + p->id = QUIRK_ATTR_TRACKPOINT_INTEGRATION; + if (!streq(value, "internal") && !streq(value, "external")) + goto out; + p->type = PT_STRING; + p->value.s = safe_strdup(value); + rc = true; } else if (streq(key, quirk_get_name(QUIRK_ATTR_TPKBCOMBO_LAYOUT))) { p->id = QUIRK_ATTR_TPKBCOMBO_LAYOUT; if (!streq(value, "below")) @@ -1227,6 +1235,7 @@ { "ID_INPUT_TABLET_PAD", UDEV_TABLET_PAD }, { "ID_INPUT_JOYSTICK", UDEV_JOYSTICK }, { "ID_INPUT_KEYBOARD", UDEV_KEYBOARD }, + { "ID_INPUT_KEY", UDEV_KEYBOARD }, }; struct ut_map *map; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/src/quirks.h new/libinput-1.13.4/src/quirks.h --- old/libinput-1.13.2/src/quirks.h 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/src/quirks.h 2019-06-28 02:41:48.000000000 +0200 @@ -96,6 +96,7 @@ QUIRK_ATTR_PALM_SIZE_THRESHOLD, QUIRK_ATTR_LID_SWITCH_RELIABILITY, QUIRK_ATTR_KEYBOARD_INTEGRATION, + QUIRK_ATTR_TRACKPOINT_INTEGRATION, QUIRK_ATTR_TPKBCOMBO_LAYOUT, QUIRK_ATTR_PRESSURE_RANGE, QUIRK_ATTR_PALM_PRESSURE_THRESHOLD, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libinput-1.13.2/test/test-quirks.c new/libinput-1.13.4/test/test-quirks.c --- old/libinput-1.13.2/test/test-quirks.c 2019-05-09 03:10:45.000000000 +0200 +++ new/libinput-1.13.4/test/test-quirks.c 2019-06-28 02:41:48.000000000 +0200 @@ -1204,6 +1204,39 @@ } END_TEST +START_TEST(quirks_parse_integration_attr) +{ + struct litest_device *dev = litest_current_device(); + char *do_not_use; /* freed before we can use it */ + bool + + rc = test_attr_parse(dev, + QUIRK_ATTR_KEYBOARD_INTEGRATION, + "internal", + (qparsefunc)quirks_get_string, + &do_not_use); + ck_assert(rc); + rc = test_attr_parse(dev, + QUIRK_ATTR_KEYBOARD_INTEGRATION, + "external", + (qparsefunc)quirks_get_string, + &do_not_use); + ck_assert(rc); + rc = test_attr_parse(dev, + QUIRK_ATTR_TRACKPOINT_INTEGRATION, + "internal", + (qparsefunc)quirks_get_string, + &do_not_use); + ck_assert(rc); + rc = test_attr_parse(dev, + QUIRK_ATTR_TRACKPOINT_INTEGRATION, + "external", + (qparsefunc)quirks_get_string, + &do_not_use); + ck_assert(rc); +} +END_TEST + START_TEST(quirks_model_one) { struct litest_device *dev = litest_current_device(); @@ -1432,6 +1465,7 @@ litest_add_for_device("quirks:parsing", quirks_parse_uint_attr, LITEST_MOUSE); litest_add_for_device("quirks:parsing", quirks_parse_double_attr, LITEST_MOUSE); litest_add_for_device("quirks:parsing", quirks_parse_string_attr, LITEST_MOUSE); + litest_add_for_device("quirks:parsing", quirks_parse_integration_attr, LITEST_MOUSE); litest_add_for_device("quirks:model", quirks_model_one, LITEST_MOUSE); litest_add_for_device("quirks:model", quirks_model_zero, LITEST_MOUSE);
