diff --git a/.gitignore b/.gitignore index 856eed8..624c83b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/xf86-input-wacom-0.23.0.tar.bz2 +SOURCES/xf86-input-wacom-0.29.0.tar.bz2 diff --git a/.xorg-x11-drv-wacom.metadata b/.xorg-x11-drv-wacom.metadata index a065e98..dafb77a 100644 --- a/.xorg-x11-drv-wacom.metadata +++ b/.xorg-x11-drv-wacom.metadata @@ -1 +1 @@ -71ec3218cb9534cbca1e6916144eb6126fc20d2f SOURCES/xf86-input-wacom-0.23.0.tar.bz2 +d4d22214f3e522caf64c36a85ca6a1c0c710b2fd SOURCES/xf86-input-wacom-0.29.0.tar.bz2 diff --git a/SOURCES/0001-Threshold-applies-to-pen-tools-only.patch b/SOURCES/0001-Threshold-applies-to-pen-tools-only.patch deleted file mode 100644 index ab3db63..0000000 --- a/SOURCES/0001-Threshold-applies-to-pen-tools-only.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 139aa56e3bb6025826413335f0f7e29d768baeb4 Mon Sep 17 00:00:00 2001 -From: Ping Cheng -Date: Thu, 10 Oct 2013 16:11:47 -0700 -Subject: [PATCH 1/3] Threshold applies to pen tools only - -This patch also removes redundant device name in X_PROBED messages. - -Reviewed-by: Peter Hutterer -Signed-off-by: Ping Cheng -Signed-off-by: Peter Hutterer ---- - src/wcmCommon.c | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/src/wcmCommon.c b/src/wcmCommon.c -index c81310f..df71842 100644 ---- a/src/wcmCommon.c -+++ b/src/wcmCommon.c -@@ -1323,7 +1323,7 @@ int wcmInitTablet(InputInfoPtr pInfo, const char* id, float version) - return !Success; - - /* Default threshold value if not set */ -- if (common->wcmThreshold <= 0) -+ if (common->wcmThreshold <= 0 && IsPen(priv)) - { - /* Threshold for counting pressure as a button */ - common->wcmThreshold = DEFAULT_THRESHOLD; -@@ -1333,19 +1333,17 @@ int wcmInitTablet(InputInfoPtr pInfo, const char* id, float version) - } - - /* output tablet state as probed */ -- if (TabletHasFeature(common, WCM_PEN)) -- xf86Msg(X_PROBED, "%s: Wacom %s tablet maxX=%d maxY=%d maxZ=%d " -+ if (IsPen(priv)) -+ xf86Msg(X_PROBED, "%s: maxX=%d maxY=%d maxZ=%d " - "resX=%d resY=%d tilt=%s\n", - pInfo->name, -- model->name, - common->wcmMaxX, common->wcmMaxY, common->wcmMaxZ, - common->wcmResolX, common->wcmResolY, - HANDLE_TILT(common) ? "enabled" : "disabled"); -- else -- xf86Msg(X_PROBED, "%s: Wacom %s tablet maxX=%d maxY=%d maxZ=%d " -+ else if (IsTouch(priv)) -+ xf86Msg(X_PROBED, "%s: maxX=%d maxY=%d maxZ=%d " - "resX=%d resY=%d \n", - pInfo->name, -- model->name, - common->wcmMaxTouchX, common->wcmMaxTouchY, - common->wcmMaxZ, - common->wcmTouchResolX, common->wcmTouchResolY); --- -1.8.3.1 - diff --git a/SOURCES/0002-Fix-missing-pad-expresskey-events-issue.patch b/SOURCES/0002-Fix-missing-pad-expresskey-events-issue.patch deleted file mode 100644 index 4e05627..0000000 --- a/SOURCES/0002-Fix-missing-pad-expresskey-events-issue.patch +++ /dev/null @@ -1,79 +0,0 @@ -From b154cfa766ce9497379a5cfa38fff64e7d89440b Mon Sep 17 00:00:00 2001 -From: Ping Cheng -Date: Thu, 10 Oct 2013 16:13:55 -0700 -Subject: [PATCH 2/3] Fix missing pad/expresskey events issue - -Setting PAD_ID should not be limited to just tablets that use -generic BTN_* events. Also, on touch enabled devices, we miss -pad events when touch events are filtered/disabled. Walk through -all channels to make sure all channels that have changed values -are processed. - -Reviewed-by: Jason Gerecke -Acked-by: Peter Hutterer -Signed-off-by: Ping Cheng -Signed-off-by: Peter Hutterer ---- - src/wcmUSB.c | 29 +++++++++++++++-------------- - 1 file changed, 15 insertions(+), 14 deletions(-) - -diff --git a/src/wcmUSB.c b/src/wcmUSB.c -index eaaf854..cf27a10 100644 ---- a/src/wcmUSB.c -+++ b/src/wcmUSB.c -@@ -1464,11 +1464,13 @@ static void usbParseBTNEvent(WacomCommonPtr common, - } - if (nkeys >= usbdata->npadkeys) - change = 0; -- else if (!ds->device_type) /* expresskey pressed at startup */ -- ds->device_type = PAD_ID; - } - - channel->dirty |= change; -+ -+ /* expresskey pressed at startup or missing type */ -+ if (!ds->device_type && channel->dirty) -+ ds->device_type = PAD_ID; - } - - /** -@@ -1601,7 +1603,7 @@ static Bool usbIsTabletToolInProx(int device_type, int proximity) - - static void usbDispatchEvents(InputInfoPtr pInfo) - { -- int i; -+ int i, c; - WacomDeviceState *ds; - struct input_event* event; - WacomDevicePtr priv = (WacomDevicePtr)pInfo->private; -@@ -1722,17 +1724,16 @@ static void usbDispatchEvents(InputInfoPtr pInfo) - if (!ds->proximity) - private->wcmLastToolSerial = 0; - -- /* don't send touch event when touch isn't enabled */ -- if (ds->device_type != TOUCH_ID || common->wcmTouch) -- { -- int c; -- for (c = 0; c < MAX_CHANNELS; c++) { -- DBG(10, common, "Checking if channel %d is dirty...\n", c); -- if (common->wcmChannel[c].dirty) { -- DBG(10, common, "Dirty flag set on channel %d; sending event.\n", c); -- common->wcmChannel[c].dirty = FALSE; -- wcmEvent(common, c, &common->wcmChannel[c].work); -- } -+ for (c = 0; c < MAX_CHANNELS; c++) { -+ ds = &common->wcmChannel[c].work; -+ -+ /* walk through all channels */ -+ if (common->wcmChannel[c].dirty) { -+ DBG(10, common, "Dirty flag set on channel %d; sending event.\n", c); -+ common->wcmChannel[c].dirty = FALSE; -+ /* don't send touch event when touch isn't enabled */ -+ if (ds->device_type != TOUCH_ID || common->wcmTouch) -+ wcmEvent(common, c, ds); - } - } - } --- -1.8.3.1 - diff --git a/SOURCES/0003-Decide-WCM_LCD-by-kernel-property.patch b/SOURCES/0003-Decide-WCM_LCD-by-kernel-property.patch deleted file mode 100644 index 7dc64e5..0000000 --- a/SOURCES/0003-Decide-WCM_LCD-by-kernel-property.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 2bd942fa6dcaf02c1b825878c3d89badd9319a7f Mon Sep 17 00:00:00 2001 -From: Ping Cheng -Date: Thu, 10 Oct 2013 16:14:29 -0700 -Subject: [PATCH 3/3] Decide WCM_LCD by kernel property - -kernel 2.6.38 introduced INPUT_PROP_DIRECT to indicate a device is -a direct touch (onscreen pointer) device. Use it so we do not -have to add individual devcies for that feature. - -When INPUT_PROP_DIRECT was added, INPUT_PROP_MAX and EVIOCGPROP were -also defined. So, we only need to make sure INPUT_PROP_DIRECT is defined. - -Signed-off-by: Ping Cheng -Signed-off-by: Peter Hutterer ---- - src/wcmValidateDevice.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c -index 1a5e722..9c0294b 100644 ---- a/src/wcmValidateDevice.c -+++ b/src/wcmValidateDevice.c -@@ -308,6 +308,15 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo) - break; - } - -+#ifdef INPUT_PROP_DIRECT -+ { -+ unsigned long prop[NBITS(INPUT_PROP_MAX)] = {0}; -+ -+ ioctl(pInfo->fd, EVIOCGPROP(sizeof(prop)), prop); -+ if (ISBITSET(prop, INPUT_PROP_DIRECT)) -+ TabletSetFeature(priv->common, WCM_LCD); -+ } -+#endif - if (ISBITSET(common->wcmKeys, BTN_TOOL_PEN)) - TabletSetFeature(priv->common, WCM_PEN); - --- -1.8.3.1 - diff --git a/SOURCES/70-wacom.rules b/SOURCES/70-wacom.rules deleted file mode 100644 index f8fc4ff..0000000 --- a/SOURCES/70-wacom.rules +++ /dev/null @@ -1,15 +0,0 @@ -ACTION!="add|change", GOTO="wacom_end" - -# Match all serial wacom tablets with a serial ID starting with WACf -# Notes: We assign NAME though we shouldn't, but currently the server requires it -# We assign the lot to subsystem pnp too because server reads NAME from -# the parent device. Once all that's fixed, as simple SUBSYSTEM="tty" -# will do and the ENV{NAME} can be removed. -SUBSYSTEM=="tty|pnp", SUBSYSTEMS=="pnp", ATTRS{id}=="WACf*", ENV{ID_MODEL}="Serial Wacom Tablet $attr{id}", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", ENV{NAME}="Serial Wacom Tablet $attr{id}" -SUBSYSTEM=="tty|pnp", SUBSYSTEMS=="pnp", ATTRS{id}=="FUJ*", ENV{ID_MODEL}="Serial Wacom Tablet $attr{id}", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1", ENV{NAME}="Serial Wacom Tablet $attr{id}" - -# inputattach -SUBSYSTEM=="tty|pnp", KERNEL=="ttyS[0-9]*", ATTRS{id}=="WACf*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="wacom-inputattach@%k.service" - -LABEL="wacom_end" - diff --git a/SOURCES/wacom-inputattach@.service b/SOURCES/wacom-inputattach@.service deleted file mode 100644 index 3193d8a..0000000 --- a/SOURCES/wacom-inputattach@.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=inputattach for Wacom ISDv4-compatible serial devices - -[Service] -Type=simple -ExecStart=/usr/bin/inputattach -w8001 /dev/%I -Restart=on-success - diff --git a/SPECS/xorg-x11-drv-wacom.spec b/SPECS/xorg-x11-drv-wacom.spec index b04fe14..ba94e19 100644 --- a/SPECS/xorg-x11-drv-wacom.spec +++ b/SPECS/xorg-x11-drv-wacom.spec @@ -8,8 +8,8 @@ Summary: Xorg X11 wacom input driver Name: xorg-x11-drv-wacom -Version: 0.23.0 -Release: 6%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +Version: 0.29.0 +Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} URL: http://www.x.org License: GPLv2+ Group: User Interface/X Hardware Support @@ -21,12 +21,6 @@ Source2: commitid %else Source0: http://prdownloads.sourceforge.net/linuxwacom/xf86-input-wacom-%{version}.tar.bz2 %endif -Source3: 70-wacom.rules -Source4: wacom-inputattach@.service - -Patch001: 0001-Threshold-applies-to-pen-tools-only.patch -Patch002: 0002-Fix-missing-pad-expresskey-events-issue.patch -Patch003: 0003-Decide-WCM_LCD-by-kernel-property.patch ExcludeArch: s390 s390x @@ -38,7 +32,6 @@ BuildRequires: systemd systemd-devel Requires: Xorg %(xserver-sdk-abi-requires ansic) Requires: Xorg %(xserver-sdk-abi-requires xinput) -Requires: linuxconsoletools Provides: linuxwacom = %{version}-%{release} Obsoletes: linuxwacom <= 0.8.4.3 @@ -48,13 +41,13 @@ X.Org X11 wacom input driver for Wacom tablets. %prep %setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} -%patch001 -p1 -%patch002 -p1 -%patch003 -p1 %build autoreconf --force -v --install || exit 1 -%configure --disable-static --disable-silent-rules --enable-debug +%configure --disable-static --disable-silent-rules --enable-debug \ + --with-systemd-unit-dir=%{_unitdir} \ + --with-udev-rules-dir=%{_prefix}/lib/udev/rules.d/ + make %{_smp_mflags} %install @@ -66,10 +59,7 @@ make install DESTDIR=$RPM_BUILD_ROOT # should be fixed in upstream Makefile.am or whatever. find $RPM_BUILD_ROOT -regex ".*\.la$" | xargs rm -f -- -install -d $RPM_BUILD_ROOT%{_prefix}/lib/udev/rules.d -install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_prefix}/lib/udev/rules.d/70-wacom.rules -install -d $RPM_BUILD_ROOT%{_unitdir} -install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/wacom-inputattach@.service +mv $RPM_BUILD_ROOT/%{_prefix}/lib/udev/rules.d/wacom.rules $RPM_BUILD_ROOT/%{_prefix}/lib/udev/rules.d/70-wacom.rules %clean rm -rf $RPM_BUILD_ROOT @@ -87,6 +77,7 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/X11/xorg.conf.d/50-wacom.conf %{_bindir}/xsetwacom %{_prefix}/lib/udev/rules.d/70-wacom.rules +%{_bindir}/isdv4-serial-inputattach %{_unitdir}/wacom-inputattach@.service %package devel @@ -110,6 +101,9 @@ X.Org X11 wacom input driver development files. %{_bindir}/isdv4-serial-debugger %changelog +* Mon May 04 2015 Peter Hutterer 0.29.0-1 +- wacom 0.29.0 (#1194889) + * Thu Feb 13 2014 Peter Hutterer 0.23.0-6 - Use systemd for starting inputattach on serial devices (#1039445)