diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4ef0e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/xf86-input-libinput-0.28.0.tar.bz2 diff --git a/.xorg-x11-drv-libinput.metadata b/.xorg-x11-drv-libinput.metadata new file mode 100644 index 0000000..23e62ef --- /dev/null +++ b/.xorg-x11-drv-libinput.metadata @@ -0,0 +1 @@ +07f5559bcf0363d4ecaf0b2cecb88ee7d2b16fc6 SOURCES/xf86-input-libinput-0.28.0.tar.bz2 diff --git a/SOURCES/0001-Add-a-DPIScaleFactor-option-as-temporary-solution-to.patch b/SOURCES/0001-Add-a-DPIScaleFactor-option-as-temporary-solution-to.patch new file mode 100644 index 0000000..dddd9da --- /dev/null +++ b/SOURCES/0001-Add-a-DPIScaleFactor-option-as-temporary-solution-to.patch @@ -0,0 +1,98 @@ +From 41d20d35c1587f3de35acf47f926c97a30680978 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Thu, 18 May 2017 14:45:18 +1000 +Subject: [PATCH xf86-input-libinput] Add a DPIScaleFactor option as temporary + solution to the hidpi issue + +https://bugzilla.redhat.com/show_bug.cgi?id=1413306 +--- + man/libinput.man | 21 +++++++++++++++++++++ + src/xf86libinput.c | 26 ++++++++++++++++++++++++++ + 2 files changed, 47 insertions(+) + +diff --git a/man/libinput.man b/man/libinput.man +index ec0f439..bdbdb37 100644 +--- a/man/libinput.man ++++ b/man/libinput.man +@@ -386,6 +386,27 @@ This driver does not work with \fBOption \*qDevice\*q\fR set to an event + node in \fI/dev/input/by-id\fR and \fI/dev/input/by-path\fR. This can be + usually be worked by using \fBSection \*qInputClass\*q\fR with an + appropriate \fBMatch*\fR statement in the __xconfigfile__(__filemansuffix__). ++.PP ++This driver does not know about the display pixel density and submits motion ++events assuming an approximate display density of 96dpi. On high-dpi ++screens this results in a slower physical motion of the cursor (a one-pixel ++movement is a smaller physical movement on the screen). This can make ++interaction with the desktop difficult. ++.PP ++.TP 7 ++.BI "Option \*qDPIScaleFactor\*q float ++This is a ++.B temporary ++solution. The factor should be set to the approximate ratio of the host display ++compared to the default 96dpi. For example, a display with 200dpi should set ++a factor of 2.0. ++.PP ++If set, x/y motion will be unconditionally multiplied by this factor, ++resulting in faster movement of the cursor. Note that this may make some ++pixels unadressable and should be used with caution. ++.PP ++.B This option is a temporary solution. ++It may be removed in any future update of this driver. + + .SH AUTHORS + Peter Hutterer +diff --git a/src/xf86libinput.c b/src/xf86libinput.c +index 83ab75d..c1a1ce2 100644 +--- a/src/xf86libinput.c ++++ b/src/xf86libinput.c +@@ -194,6 +194,8 @@ struct xf86libinput { + struct scale_factor { + double x, y; + } area_scale_factor; ++ ++ double dpi_scale_factor; /* Fedora hack */ + }; + + enum event_handling { +@@ -1463,6 +1465,11 @@ xf86libinput_handle_motion(InputInfoPtr pInfo, struct libinput_event_pointer *ev + x = libinput_event_pointer_get_dx(event); + y = libinput_event_pointer_get_dy(event); + ++ if (driver_data->dpi_scale_factor > 0.0) { ++ x *= driver_data->dpi_scale_factor; ++ y *= driver_data->dpi_scale_factor; ++ } ++ + valuator_mask_zero(mask); + + #if HAVE_VMASK_UNACCEL +@@ -3421,6 +3428,25 @@ xf86libinput_pre_init(InputDriverPtr drv, + + xf86libinput_parse_options(pInfo, driver_data, device); + ++ /* XXX: ++ Fedora hack for bug https://bugzilla.redhat.com/show_bug.cgi?id=1413306 ++ This is temporary only, but at least makes it work for now. ++ */ ++ ++ if (xf86CheckRealOption(pInfo->options, "DPIScaleFactor", 0.0) != 0.0) { ++ xf86IDrvMsg(pInfo, X_WARNING, ++ "\n" ++ "******************** WARNING ********************\n" ++ "* DPIScaleFactor option is a temporary solution *\n" ++ "* and may cease to work without warning! *\n" ++ "******************** WARNING ********************\n"); ++ driver_data->dpi_scale_factor = xf86SetRealOption(pInfo->options, "DPIScaleFactor", 0.0); ++ if (driver_data->dpi_scale_factor < 0.0) { ++ xf86IDrvMsg(pInfo, X_ERROR, "Invalid DPIScaleFactor, ignoring value\n"); ++ driver_data->dpi_scale_factor = 0.0; ++ } ++ } ++ + /* Device is both keyboard and pointer. Drop the keyboard cap from + * this device, create a separate device instead */ + if (!is_subdevice && +-- +2.14.3 + diff --git a/SOURCES/0001-Use-the-seat-slot-not-the-device-slot-for-touch-even.patch b/SOURCES/0001-Use-the-seat-slot-not-the-device-slot-for-touch-even.patch new file mode 100644 index 0000000..5bdad60 --- /dev/null +++ b/SOURCES/0001-Use-the-seat-slot-not-the-device-slot-for-touch-even.patch @@ -0,0 +1,32 @@ +From a759610292a53067fc811e70703bffff8dc0cb16 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Thu, 4 Oct 2018 11:45:46 +1000 +Subject: [PATCH xf86-input-libinput] Use the seat slot, not the device slot + for touch events + +The device slot is per-device, so if we have more than one device we may get a +touch down event for a slot already in use. + +Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/153 + +Signed-off-by: Peter Hutterer +--- + src/xf86libinput.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/xf86libinput.c b/src/xf86libinput.c +index 1277a70..a00b0a5 100644 +--- a/src/xf86libinput.c ++++ b/src/xf86libinput.c +@@ -1705,7 +1705,7 @@ xf86libinput_handle_touch(InputInfoPtr pInfo, + if ((driver_data->capabilities & CAP_TOUCH) == 0) + return; + +- slot = libinput_event_touch_get_slot(event); ++ slot = libinput_event_touch_get_seat_slot(event); + + switch (event_type) { + case LIBINPUT_EVENT_TOUCH_DOWN: +-- +2.19.1 + diff --git a/SOURCES/71-libinput-overrides-wacom.conf b/SOURCES/71-libinput-overrides-wacom.conf new file mode 100644 index 0000000..69b1afa --- /dev/null +++ b/SOURCES/71-libinput-overrides-wacom.conf @@ -0,0 +1,7 @@ +# Assign libinput back to touchpads on Wacom tablets +Section "InputClass" + Identifier "libinput overrides wacom touchpads" + MatchDriver "wacom" + MatchIsTouchpad "true" + Driver "libinput" +EndSection diff --git a/SPECS/xorg-x11-drv-libinput.spec b/SPECS/xorg-x11-drv-libinput.spec new file mode 100644 index 0000000..bf2bf4f --- /dev/null +++ b/SPECS/xorg-x11-drv-libinput.spec @@ -0,0 +1,289 @@ +%global tarball xf86-input-libinput +%global moduledir %(pkg-config xorg-server --variable=moduledir ) +%global driverdir %{moduledir}/input + +#define gitdate 20160929 +%global gitversion 66c997886 + +Summary: Xorg X11 libinput input driver +Name: xorg-x11-drv-libinput +Version: 0.28.0 +Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +URL: http://www.x.org +License: MIT + +%if 0%{?gitdate} +Source0: %{tarball}-%{gitdate}.tar.xz +%else +Source0: ftp://ftp.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2 +%endif +Source1: 71-libinput-overrides-wacom.conf + +# Fedora-only hack for hidpi screens +# https://bugzilla.redhat.com/show_bug.cgi?id=1413306 +Patch01: 0001-Add-a-DPIScaleFactor-option-as-temporary-solution-to.patch + +# Bug 1639059 - Two touchscreens end up with a stuck button +Patch02: 0001-Use-the-seat-slot-not-the-device-slot-for-touch-even.patch + +BuildRequires: autoconf automake libtool +BuildRequires: xorg-x11-server-devel >= 1.14.0 +BuildRequires: libudev-devel libevdev-devel libinput-devel >= 0.6.0-3 +BuildRequires: xorg-x11-util-macros + +Requires: Xorg %(xserver-sdk-abi-requires ansic) +Requires: Xorg %(xserver-sdk-abi-requires xinput) +Requires: xkeyboard-config +Requires: libinput >= 0.21.0 + +Provides: xorg-x11-drv-synaptics = 1.9.0-3 +Obsoletes: xorg-x11-drv-synaptics < 1.9.0-3 + +%description +A generic input driver for the X.Org X11 X server based on libinput, +supporting all devices. + +%prep +%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} +%patch01 -p1 +%patch02 -p1 + +%build +autoreconf --force -v --install || exit 1 +%configure --disable-static --disable-silent-rules +make %{?_smp_mflags} + +%install +%make_install + +# FIXME: Remove all libtool archives (*.la) from modules directory. This +# should be fixed in upstream Makefile.am or whatever. +find $RPM_BUILD_ROOT -regex ".*\.la$" | xargs rm -f -- + +cp %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d/ + +%files +%doc COPYING +%{driverdir}/libinput_drv.so +%{_datadir}/X11/xorg.conf.d/40-libinput.conf +%{_datadir}/X11/xorg.conf.d/71-libinput-overrides-wacom.conf +%{_mandir}/man4/libinput.4* + +%package devel +Summary: Xorg X11 libinput input driver development package. +Requires: pkgconfig +%description devel +Xorg X11 libinput input driver development files. + +%files devel +%doc COPYING +%{_libdir}/pkgconfig/xorg-libinput.pc +%dir %{_includedir}/xorg/ +%{_includedir}/xorg/libinput-properties.h + +%changelog +* Mon Oct 15 2018 Peter Hutterer 0.28.0-2 +- Fix wrong slot to touch ID mapping (#1639059) + +* Wed Jul 11 2018 Peter Hutterer 0.28.0-1 +- xf86-input-libinput 0.28.0 + +* Mon May 14 2018 Adam Jackson - 0.27.1-2.1 +- Rebuild for xserver 1.20 + +* Thu Apr 12 2018 Peter Hutterer 0.27.1-2 +- Build on s390x (#1565062) + +* Tue Apr 10 2018 Peter Hutterer 0.27.1-1 +- xorg-x11-drv-libinput 0.27.1 + +* Mon Apr 02 2018 Adam Jackson - 0.27.0-3 +- Rebuild for xserver 1.20 + +* Thu Mar 22 2018 Peter Hutterer 0.27.0-2 +- Fix left-handed property missing on all but the first pointer device + +* Tue Mar 20 2018 Peter Hutterer 0.27.0-1 +- xorg-x11-drv-libinput 0.27.0 + +* Fri Feb 09 2018 Fedora Release Engineering - 0.26.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Sep 15 2017 Peter Hutterer 0.26.0-1 +- xorg-x11-drv-libinput 0.26.0 + +* Thu Aug 03 2017 Fedora Release Engineering - 0.25.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.25.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu May 18 2017 Peter Hutterer 0.25.1-2 +- Add a new option to provide a workaround for the slow pointer movement on + hidpi displays (#1413306) . + That's a fedora-only patch for now, no idea what the permanent upstream + solution will be here. + +* Fri May 05 2017 Peter Hutterer 0.25.1-1 +- xorg-x11-drv-libinput 0.25.1 + +* Thu Mar 09 2017 Peter Hutterer 0.25.0-1 +- libinput 0.25.0 + +* Thu Feb 09 2017 Peter Hutterer 0.24.0-1 +- libinput 0.24.0 + +* Wed Dec 21 2016 Peter Hutterer 0.23.0-2 +- Ignore LED updates for disabled devices, avoids a null-pointer dereference + when an AccessX timeout is set + +* Mon Dec 12 2016 Peter Hutterer 0.23.0-1 +- libnput 0.23.0 + +* Fri Nov 25 2016 Peter Hutterer 0.22.0-4 +- Override touchpads assigned the wacom driver with libinput again + (#1397477) + +* Fri Nov 18 2016 Peter Hutterer 0.22.0-3 +- Provide xorg-x11-drv-synaptics. The actual content is now provided by + xorg-x11-drv-synaptics-legacy (#1394836). For details, see + https://fedoraproject.org/wiki/Changes/RetireSynapticsDriver + +* Tue Nov 01 2016 Peter Hutterer 0.22.0-2 +- Match against tablets too + +* Wed Oct 19 2016 Peter Hutterer 0.22.0-1 +- xf86-input-libinput 0.22.0 + +* Tue Oct 18 2016 Peter Hutterer 0.20.0-1 +- xf86-input-libinput 0.20.0 + +* Thu Sep 29 2016 Hans de Goede 0.19.1-3.20160929 +- Fix crash when the first detected input device gets removed (rhbz#1381840) + +* Thu Sep 29 2016 Hans de Goede 0.19.1-2.20160929 +- Update to latest git master for use with xserver-1.19 +- Rebuild against xserver-1.19 + +* Wed Sep 14 2016 Peter Hutterer 0.19.1-1 +- xf86-input-libinput 0.19.1 + +* Tue Jul 19 2016 Peter Hutterer 0.19.0-2 +- Bump to make F24 update path happy + +* Thu Apr 28 2016 Peter Hutterer 0.19.0-1 +- xf86-input-libinput 0.19.0 + +* Fri Feb 26 2016 Peter Hutterer 0.17.0-1 +- xf86-input-libinput 0.17.0 + +* Fri Feb 05 2016 Fedora Release Engineering - 0.16.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Dec 23 2015 Peter Hutterer 0.16.0-1 +- xf86-input-libinput 0.16.0 + +* Tue Oct 27 2015 Peter Hutterer 0.15.0-1 +- xf86-input-libinput 0.15.0 + +* Wed Sep 16 2015 Dave Airlie - 0.14.0-2 +- 1.18 ABI rebuild + +* Mon Aug 31 2015 Peter Hutterer 0.14.0-1 +- xf86-input-libinput 0.14.0 + +* Mon Aug 17 2015 Peter Hutterer 0.13.0-2 +- Add drag lock support (#1249309) + +* Tue Aug 11 2015 Peter Hutterer 0.13.0-1 +- xf86-input-libinput 0.13.0 + +* Wed Jul 29 2015 Dave Airlie 0.12.0-2 +- bump for X server ABI + +* Tue Jul 14 2015 Peter Hutterer 0.12.0-1 +- xf86-input-libinput 0.12.0 + +* Mon Jul 13 2015 Peter Hutterer 0.11.0-3 +- Restore unaccelerated valuator masks (#1208992) + +* Fri Jun 19 2015 Fedora Release Engineering - 0.11.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jun 15 2015 Peter Hutterer 0.11.0-1 +- xf86-input-libinput 0.11.0 +- support buttons higher than BTN_BACK (1230945) + +* Mon Jun 01 2015 Peter Hutterer 0.10.0-5 +- Fix missing scroll button property + +* Fri May 29 2015 Nils Philippsen 0.10.0-4 +- fix URL + +* Tue May 26 2015 Peter Hutterer 0.10.0-3 +- Use the new unnaccelerated valuator masks, fixes nonmoving mouse in SDL + (#1208992) + +* Fri May 22 2015 Peter Hutterer 0.10.0-2 +- Init mixed rel/abs devices as rel devices (#1223619) + +* Thu May 21 2015 Peter Hutterer 0.10.0-1 +- xf86-input-libinput 0.10.0 + +* Thu Apr 23 2015 Peter Hutterer 0.9.0-1 +- xf86-input-libinput 0.9.0 + +* Tue Mar 10 2015 Peter Hutterer - 0.8.0-2 +- Rebuild for libinput soname bump + +* Fri Mar 06 2015 Peter Hutterer 0.8.0-1 +- xf86-input-libinput 0.8.0 + +* Thu Mar 05 2015 Peter Hutterer 0.7.0-5 +- Fix two-finger scrolling speed (#1198467) + +* Thu Feb 26 2015 Peter Hutterer 0.7.0-4 +- Fix property setting patch, first version prevented re-enabling a device. + +* Wed Feb 25 2015 Peter Hutterer 0.7.0-3 +- Fix a crash when setting properties on a disabled device + +* Wed Feb 25 2015 Peter Hutterer 0.7.0-2 +- Fix stack smash on pointer init (#1195905) + +* Tue Feb 24 2015 Peter Hutterer 0.7.0-1 +- xorg-x11-drv-libinput 0.7.0 + +* Tue Jan 27 2015 Peter Hutterer 0.6.0-1 +- xorg-x11-drv-libinput 0.6.0 + +* Fri Jan 16 2015 Peter Hutterer 0.5.0-1 +- xorg-x11-drv-libinput 0.5.0 + +* Fri Dec 05 2014 Peter Hutterer 0.4.0-1 +- xorg-x11-drv-libinput 0.4.0 + +* Mon Nov 24 2014 Peter Hutterer 0.3.0-1 +- xorg-x11-drv-libinput 0.3.0 + +* Mon Nov 24 2014 Peter Hutterer 0.2.0-2 +- Add explicit (Build)Requires for libinput 0.6.0-3, we rely on new symbols + from the git snapshot + +* Mon Nov 24 2014 Peter Hutterer 0.2.0-1 +- Only match on specific device types, don't match on joysticks or tablets +- libinput 0.2.0 +- switch to new fdo host + +* Fri Sep 12 2014 Peter Hutterer - 0.1.2-3 +- Rebuild for libinput soname bump + +* Mon Aug 18 2014 Fedora Release Engineering - 0.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 24 2014 Peter Hutterer 0.1.2-1 +- Update to 0.1.2, dropping the pkgconfig files + +* Thu Jun 26 2014 Peter Hutterer 0.1.1-1 +- Initial release (#1113392) +