[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-input-evdev: Changes to 'ubuntu'



 10-evdev.conf                                |   40 +
 ChangeLog                                    |  131 +++++
 Makefile.am                                  |    1 
 configure.ac                                 |   21 
 debian/changelog                             |   56 ++
 debian/control                               |   12 
 debian/rules                                 |    3 
 debian/upstream/signing-key.asc              |   24 
 debian/watch                                 |    1 
 debian/xserver-xorg-input-evdev-udeb.install |    1 
 debian/xserver-xorg-input-evdev.install      |    1 
 man/evdev.man                                |    6 
 src/emuThird.c                               |   10 
 src/emuWheel.c                               |    2 
 src/evdev.c                                  |  689 ++++++++++++++-------------
 src/evdev.h                                  |   43 -
 16 files changed, 662 insertions(+), 379 deletions(-)

New commits:
commit 38080300f3e4a0beb245af4a3fefdfe57d9c4917
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Fri May 27 08:04:18 2016 +0300

    rebuild was uploaded

diff --git a/debian/changelog b/debian/changelog
index a02b49e..0fa4044 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.10.1-1ubuntu2) xenial; urgency=medium
+
+  * Rebuild against new xserver.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 03 Mar 2016 14:29:02 +0200
+
 xserver-xorg-input-evdev (1:2.10.1-1ubuntu1) xenial; urgency=medium
 
   * Merge with Debian.

commit c7d18023fb4c58e9507da7d0dda0209871c2fc24
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Tue Feb 9 12:08:38 2016 +0200

    release to xenial ppa

diff --git a/debian/changelog b/debian/changelog
index 5468b30..a02b49e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.10.1-1ubuntu1) xenial; urgency=medium
+
+  * Merge with Debian.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Tue, 09 Feb 2016 12:07:53 +0200
+
 xserver-xorg-input-evdev (1:2.10.1-1) unstable; urgency=medium
 
   * New upstream release.

commit d9dd48adfa26b576c42d223448b55143671d4d5b
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed Jan 27 15:48:24 2016 +0200

    release to unstable

diff --git a/debian/changelog b/debian/changelog
index 06adf38..c640633 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-xserver-xorg-input-evdev (1:2.10.1-1) UNRELEASED; urgency=medium
+xserver-xorg-input-evdev (1:2.10.1-1) unstable; urgency=medium
 
   * New upstream release.
   * control, install: Ship 10-evdev.conf with the driver,
     breaks/replaces server << 1.18.0-1.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Mon, 18 Jan 2016 14:40:32 +0200
+ -- Timo Aaltonen <tjaalton@debian.org>  Wed, 27 Jan 2016 15:47:54 +0200
 
 xserver-xorg-input-evdev (1:2.9.2-1) unstable; urgency=medium
 

commit 0873ef6e22932959c8757a38fe938c88477446b2
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Wed Jan 20 12:57:01 2016 +0200

    add xserver epoch to Breaks/Replaces

diff --git a/debian/control b/debian/control
index b00c181..2196891 100644
--- a/debian/control
+++ b/debian/control
@@ -30,8 +30,8 @@ Depends:
  ${xinpdriver:Depends},
 Provides:
  ${xinpdriver:Provides}
-Breaks: xserver-xorg-core (<< 1.18.0-1)
-Replaces: xserver-xorg-core (<< 1.18.0-1)
+Breaks: xserver-xorg-core (<< 2:1.18.0-1)
+Replaces: xserver-xorg-core (<< 2:1.18.0-1)
 Description: X.Org X server -- evdev input driver
  This package provides the driver for input devices using evdev, the Linux
  kernel's event delivery mechanism.  This driver allows for multiple keyboards

commit bfc356a064815449be557e9d4cec1e2ee59a787c
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Mon Jan 18 15:55:32 2016 +0200

    import changelog from 2.9.2-1ubuntu1

diff --git a/debian/changelog b/debian/changelog
index b343c8f..311a180 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+xserver-xorg-input-evdev (1:2.9.2-1ubuntu1) wily; urgency=medium
+
+  * Merge with Debian, remaining Ubuntu changes:
+  * local/11-evdev-trackpoint.conf:
+    - Add a config snippet for enabling wheel emulation for trackpoint devices
+  * local/11-evdev-quirks.conf:
+    - Added quirks for various devices.
+  * debian/xserver-xorg-input-evdev.install:
+    - Install quirks
+
+ -- Robert Ancell <robert.ancell@canonical.com>  Wed, 15 Jul 2015 10:43:55 +1200
+
 xserver-xorg-input-evdev (1:2.9.2-1) unstable; urgency=medium
 
   * New upstream release.

commit ca013742a622e8385938bc23547bc605eac75add
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Mon Jan 18 14:54:13 2016 +0200

    control, install: Ship 10-evdev.conf with the driver, breaks/replaces server << 1.18.0-1.

diff --git a/debian/changelog b/debian/changelog
index 68a973d..06adf38 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 xserver-xorg-input-evdev (1:2.10.1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * control, install: Ship 10-evdev.conf with the driver,
+    breaks/replaces server << 1.18.0-1.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Mon, 18 Jan 2016 14:40:32 +0200
 
diff --git a/debian/control b/debian/control
index 1411a8d..b00c181 100644
--- a/debian/control
+++ b/debian/control
@@ -30,6 +30,8 @@ Depends:
  ${xinpdriver:Depends},
 Provides:
  ${xinpdriver:Provides}
+Breaks: xserver-xorg-core (<< 1.18.0-1)
+Replaces: xserver-xorg-core (<< 1.18.0-1)
 Description: X.Org X server -- evdev input driver
  This package provides the driver for input devices using evdev, the Linux
  kernel's event delivery mechanism.  This driver allows for multiple keyboards
diff --git a/debian/xserver-xorg-input-evdev-udeb.install b/debian/xserver-xorg-input-evdev-udeb.install
index 4ac2576..2044bb5 100644
--- a/debian/xserver-xorg-input-evdev-udeb.install
+++ b/debian/xserver-xorg-input-evdev-udeb.install
@@ -1 +1,2 @@
 usr/lib/xorg/modules/input/*.so
+usr/share/X11/xorg.conf.d/10-evdev.conf
diff --git a/debian/xserver-xorg-input-evdev.install b/debian/xserver-xorg-input-evdev.install
index 97e3c20..e393ea7 100644
--- a/debian/xserver-xorg-input-evdev.install
+++ b/debian/xserver-xorg-input-evdev.install
@@ -1,2 +1,3 @@
 usr/lib/xorg/modules/input/*.so
 usr/share/man
+usr/share/X11/xorg.conf.d/10-evdev.conf

commit 479d37f0768947688ffc98ff32e8c3c884d3ea16
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Mon Jan 18 14:47:41 2016 +0200

    update the changelog

diff --git a/debian/changelog b/debian/changelog
index 81c35d2..68a973d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.10.1-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Mon, 18 Jan 2016 14:40:32 +0200
+
 xserver-xorg-input-evdev (1:2.9.2-1) unstable; urgency=medium
 
   * New upstream release.

commit 6a3beab6137b262fc847093ed5fa51ff70df6a21
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jan 8 15:11:59 2016 +1000

    evdev 2.10.1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index cc60ce7..3fe2012 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.10.0],
+        [2.10.1],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])

commit d7e61a7074b802b49f57549530b289bbaa0a4855
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 10 14:35:51 2015 +1000

    Only map x and y to axes 0 and 1
    
    The Logitech G600 has one device with all axes north of ABS_MISC. The current
    code assigns ABS_MISC as first axis to map to axis 0, i.e. x. On button press,
    one node sends the BTN_LEFT but the other node sends an ABS_MISC with a 1 0
    value. ABS_MISC is mapped to axis 0, this moves the pointer to (0, y) on
    every button click.
    
    Avoid this by simply mapping any axis other than x/y to at least axis 3, and
    make sure we only override the MT 0/1 axes when we actually have MT axes.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=92856
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>

diff --git a/src/evdev.c b/src/evdev.c
index 17d9d61..3176660 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1377,7 +1377,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
     }
     atoms = malloc((pEvdev->num_vals + num_mt_axes) * sizeof(Atom));
 
-    i = 0;
+    i = 2;
     for (axis = ABS_X; i < MAX_VALUATORS && axis <= ABS_MAX; axis++) {
         int j;
         pEvdev->abs_axis_map[axis] = -1;
@@ -1385,9 +1385,14 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
             is_blacklisted_axis(axis))
             continue;
 
-        mapping = i;
+        if (axis == ABS_X)
+            mapping = 0;
+        else if (axis == ABS_Y)
+            mapping = 1;
+        else
+            mapping = i;
 
-        for (j = 0; j < ArrayLength(mt_axis_mappings); j++)
+        for (j = 0; !pEvdev->fake_mt && j < ArrayLength(mt_axis_mappings); j++)
         {
             if (mt_axis_mappings[j].code == axis)
                 mt_axis_mappings[j].mapping = mapping;

commit 01e7ac48546d4534fa420ea1873214e738ea125d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Oct 28 14:28:20 2015 +1000

    evdev 2.10.0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index f6fd2e4..cc60ce7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.9.99],
+        [2.10.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 034be31159f22ce28d84994d541a45ee44963fd8
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Tue Jan 20 00:44:40 2015 +0100

    Add "Resolution" option for mice to the evdev driver
    
    It can be used to scale the resolution of a mouse to that of a 1000 DPI
    mouse. This can be useful to make high resolution mice less sensitive
    without turning off acceleration. The target of 1000 DPI is used as the
    same default is used in libinput. If the option is not set no scaling
    will be done.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=88134
    Signed-off-by: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/man/evdev.man b/man/evdev.man
index 06613fc..e70ae1f 100644
--- a/man/evdev.man
+++ b/man/evdev.man
@@ -238,6 +238,12 @@ Default: "1".  Property: "Evdev Scrolling Distance".
 .BI "Option \*qDialDelta\*q \*q" integer \*q
 The amount of motion considered one unit of turning the dial.  Default: "1".
 Property: "Evdev Scrolling Distance".
+.TP 7
+.BI "Option \*qResolution\*q \*q" integer \*q
+Sets the resolution of the device in dots per inch. The resolution is used
+to scale relative motion events from mouse devices to 1000 DPI resolution. This
+can be used to make high resolution mice less sensitive without turning off
+acceleration. If set to 0 no scaling will be performed. Default: "0".
 
 .SH SUPPORTED PROPERTIES
 The following properties are provided by the
diff --git a/src/emuThird.c b/src/emuThird.c
index 7461767..5f14d33 100644
--- a/src/emuThird.c
+++ b/src/emuThird.c
@@ -229,8 +229,8 @@ Evdev3BEmuProcessAbsMotion(InputInfoPtr pInfo, ValuatorMask *vals)
     {
         if (valuator_mask_isset(vals, axis))
         {
-            int delta = valuator_mask_get(vals, axis) - emu3B->startpos[axis];
-            if (abs(delta) > emu3B->threshold)
+            double delta = valuator_mask_get_double(vals, axis) - emu3B->startpos[axis];
+            if (fabs(delta) > emu3B->threshold)
                 cancel = TRUE;
         }
         axis++;
@@ -248,7 +248,7 @@ Evdev3BEmuProcessAbsMotion(InputInfoPtr pInfo, ValuatorMask *vals)
  * emulation.
  */
 void
-Evdev3BEmuProcessRelMotion(InputInfoPtr pInfo, int dx, int dy)
+Evdev3BEmuProcessRelMotion(InputInfoPtr pInfo, double dx, double dy)
 {
     EvdevPtr          pEvdev = pInfo->private;
     struct emulate3B *emu3B  = &pEvdev->emulate3B;
@@ -260,8 +260,8 @@ Evdev3BEmuProcessRelMotion(InputInfoPtr pInfo, int dx, int dy)
     emu3B->delta[1] += dy;
     emu3B->flags |= EVDEV_RELATIVE_EVENTS;
 
-    if (abs(emu3B->delta[0]) > emu3B->threshold ||
-        abs(emu3B->delta[1]) > emu3B->threshold)
+    if (fabs(emu3B->delta[0]) > emu3B->threshold ||
+        fabs(emu3B->delta[1]) > emu3B->threshold)
     {
         Evdev3BEmuPostButtonEvent(pInfo, 1, BUTTON_PRESS);
         Evdev3BCancel(pInfo);
diff --git a/src/evdev.c b/src/evdev.c
index da25b56..17d9d61 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -25,6 +25,7 @@
  *	Adam Jackson (ajax@redhat.com)
  *	Peter Hutterer (peter.hutterer@redhat.com)
  *	Oliver McFadden (oliver.mcfadden@nokia.com)
+ *	Thomas H.P. Andersen (phomes@gmail.com)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -432,31 +433,36 @@ EvdevProcessValuators(InputInfoPtr pInfo)
 
     /* Apply transformations on relative coordinates */
     if (pEvdev->rel_queued) {
-        int deltaX = 0, deltaY = 0;
+        double deltaX = 0, deltaY = 0;
 
         if (valuator_mask_isset(pEvdev->rel_vals, REL_X))
-            deltaX = valuator_mask_get(pEvdev->rel_vals, REL_X);
+            deltaX = valuator_mask_get_double(pEvdev->rel_vals, REL_X);
         if (valuator_mask_isset(pEvdev->rel_vals, REL_Y))
-            deltaY = valuator_mask_get(pEvdev->rel_vals, REL_Y);
+            deltaY = valuator_mask_get_double(pEvdev->rel_vals, REL_Y);
 
         if (pEvdev->swap_axes) {
-            int tmp = deltaX;
+            double tmp = deltaX;
             deltaX = deltaY;
             deltaY = tmp;
         }
 
+        if (pEvdev->resolution > 0) {
+            deltaX *= DEFAULT_MOUSE_DPI / pEvdev->resolution;
+            deltaY *= DEFAULT_MOUSE_DPI / pEvdev->resolution;
+        }
+
         if (pEvdev->invert_x)
             deltaX *= -1;
         if (pEvdev->invert_y)
             deltaY *= -1;
 
         if (deltaX)
-            valuator_mask_set(pEvdev->rel_vals, REL_X, deltaX);
+            valuator_mask_set_double(pEvdev->rel_vals, REL_X, deltaX);
         else
             valuator_mask_unset(pEvdev->rel_vals, REL_X);
 
         if (deltaY)
-            valuator_mask_set(pEvdev->rel_vals, REL_Y, deltaY);
+            valuator_mask_set_double(pEvdev->rel_vals, REL_Y, deltaY);
         else
             valuator_mask_unset(pEvdev->rel_vals, REL_Y);
 
@@ -2293,6 +2299,12 @@ EvdevProbe(InputInfoPtr pInfo)
         pEvdev->invert_y = xf86SetBoolOption(pInfo->options, "InvertY", FALSE);
         pEvdev->swap_axes = xf86SetBoolOption(pInfo->options, "SwapAxes", FALSE);
 
+        pEvdev->resolution = xf86SetIntOption(pInfo->options, "Resolution", 0);
+        if (pEvdev->resolution < 0) {
+            xf86IDrvMsg(pInfo, X_ERROR, "Resolution must be a positive number");
+            pEvdev->resolution = 0;
+        }
+
         str = xf86CheckStrOption(pInfo->options, "Calibration", NULL);
         if (str) {
             num_calibration = sscanf(str, "%d %d %d %d",
diff --git a/src/evdev.h b/src/evdev.h
index 0f71d78..4d44d2b 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -97,6 +97,8 @@
 /* Number of longs needed to hold the given number of bits */
 #define NLONGS(x) (((x) + LONG_BITS - 1) / LONG_BITS)
 
+#define DEFAULT_MOUSE_DPI 1000.0
+
 /* Function key mode */
 enum fkeymode {
     FKEYMODE_UNKNOWN = 0,
@@ -170,6 +172,7 @@ typedef struct {
     BOOL swap_axes;
     BOOL invert_x;
     BOOL invert_y;
+    int resolution;
 
     unsigned int abs_queued, rel_queued, prox_queued;
 
@@ -191,7 +194,7 @@ typedef struct {
         int                 button;      /* phys button to emit */
         int                 threshold;   /* move threshold in dev coords */
         OsTimerPtr          timer;
-        int                 delta[2];    /* delta x/y, accumulating */
+        double              delta[2];    /* delta x/y, accumulating */
         int                 startpos[2]; /* starting pos for abs devices */
         int                 flags;       /* remember if we had rel or abs movement */
     } emulate3B;
@@ -269,7 +272,7 @@ BOOL Evdev3BEmuFilterEvent(InputInfoPtr, int, BOOL);
 void Evdev3BEmuPreInit(InputInfoPtr pInfo);
 void Evdev3BEmuOn(InputInfoPtr);
 void Evdev3BEmuFinalize(InputInfoPtr);
-void Evdev3BEmuProcessRelMotion(InputInfoPtr pInfo, int dx, int dy);
+void Evdev3BEmuProcessRelMotion(InputInfoPtr pInfo, double dx, double dy);
 void Evdev3BEmuProcessAbsMotion(InputInfoPtr pInfo, ValuatorMask *vals);
 
 /* Mouse Wheel emulation */

commit 66c997886424a20e92ce30fcfda46cbb5c7352ab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 5 15:34:07 2015 +1000

    Add the default evdev config
    
    This used to be part of the server but now that we have two drivers doing the
    same thing (libinput, evdev) shift the configuration defaults to the driver.
    This way you get what you install.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=89023
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>

diff --git a/10-evdev.conf b/10-evdev.conf
new file mode 100644
index 0000000..cc83ab2
--- /dev/null
+++ b/10-evdev.conf
@@ -0,0 +1,40 @@
+#
+# Catch-all evdev loader for udev-based systems
+# We don't simply match on any device since that also adds accelerometers
+# and other devices that we don't really want to use. The list below
+# matches everything but joysticks.
+
+Section "InputClass"
+        Identifier "evdev pointer catchall"
+        MatchIsPointer "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev keyboard catchall"
+        MatchIsKeyboard "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev touchpad catchall"
+        MatchIsTouchpad "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev tablet catchall"
+        MatchIsTablet "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
+
+Section "InputClass"
+        Identifier "evdev touchscreen catchall"
+        MatchIsTouchscreen "on"
+        MatchDevicePath "/dev/input/event*"
+        Driver "evdev"
+EndSection
diff --git a/Makefile.am b/Makefile.am
index 00c7940..1cc3ea6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -28,6 +28,7 @@ MAINTAINERCLEANFILES = ChangeLog INSTALL
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = xorg-evdev.pc
 
+dist_xorgconf_DATA = 10-evdev.conf
 
 .PHONY: ChangeLog INSTALL
 
diff --git a/configure.ac b/configure.ac
index e0d480a..f6fd2e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -59,6 +59,13 @@ AC_ARG_WITH(xorg-module-dir,
 inputdir=${moduledir}/input
 AC_SUBST(inputdir)
 
+AC_ARG_WITH(xorg-conf-dir,
+            AC_HELP_STRING([--with-xorg-conf-dir=DIR],
+                           [Default xorg.conf.d directory [[default=$prefix/share/X11/xorg.conf.d/]]]),
+            [xorgconfdir="$withval"],
+            [xorgconfdir="$prefix/share/X11/xorg.conf.d"])
+AC_SUBST(xorgconfdir)
+
 # X Server SDK location is required to install evdev header files
 # This location is also relayed in the xorg-evdev.pc file
 sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`

commit 5c01955945dfdb864ce3fe23132ca14e5f1e499e
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat May 2 20:14:48 2015 +0200

    Upload to unstable

diff --git a/debian/changelog b/debian/changelog
index 684e228..81c35d2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-input-evdev (1:2.9.2-1) UNRELEASED; urgency=medium
+xserver-xorg-input-evdev (1:2.9.2-1) unstable; urgency=medium
 
   * New upstream release.
   * Let uscan verify tarball signatures.
 
- -- Julien Cristau <jcristau@debian.org>  Sat, 02 May 2015 19:55:33 +0200
+ -- Julien Cristau <jcristau@debian.org>  Sat, 02 May 2015 20:14:42 +0200
 
 xserver-xorg-input-evdev (1:2.9.0-2) unstable; urgency=medium
 

commit 2802161cab58b8b1c70b2d240865f3731896cda7
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat May 2 19:55:54 2015 +0200

    Bump changelogs

diff --git a/ChangeLog b/ChangeLog
index 033aa02..4c6150f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,134 @@
+commit 24368d8379cc47693dd1623168a6125faff57311
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Mar 27 11:37:03 2015 +1000
+
+    evdev 2.9.2
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 4996694cc9b80ffef28289ea491965b16615f2d1
+Author: Tobias Himmer <provisorisch@online.de>
+Date:   Fri Jan 23 02:13:17 2015 +0100
+
+    Check for incoming MT slot indices exceeding the allocated number of slots.
+    
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=88715
+    
+    Signed-off-by: Tobias Himmer <provisorisch@online.de>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit abc4a8b60387c3c9ae8b0199bf61acede4f6dba2)
+
+commit 05f7057ad5716ccf643b80f2f5fbfff34783a950
+Author: Colin B. Macdonald <macdonald@maths.ox.ac.uk>
+Date:   Thu Jun 26 12:17:59 2014 +0100
+
+    Workaround lack of ABS_X on MT devices (#80470)
+    
+    Often on Android, we have ABS_MT_POSITION_X without ABS_X (which is contrary
+    to spec). We add fake ABS_X axis in that case.
+    
+    X.Org Bug 80470 <http://bugs.freedesktop.org/show_bug.cgi?id=80470>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit b370ccdff8f721de75d3d91486cc4807668d040c)
+
+commit cb3b023783fe73d9bbb7c9c6ba6c73048b8303ef
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Wed Nov 26 09:23:39 2014 +1000
+
+    evdev 2.9.1
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 124eff9ba20c5ae777a6a5aa36f32112ad31b931
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Nov 7 13:41:06 2014 +1000
+
+    Remove three unused #defines
+    
+    Obsolete since 768c25a99b2f4ec07993eb15a0f05a5e22b5c695
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 605047613c534babf723f25597e8cc4be6758db0
+Author: Éric Brunet <Eric.Brunet@lps.ens.fr>
+Date:   Sat Sep 27 22:06:36 2014 +0200
+
+    Don't pass superfluous arguments to EvdevPost*Events
+    
+    The functions EvdevPostProximityEvents, EvdevPostRelativeMotionEvents,
+    EvdevPostAbsoluteMotionEvents and EvdevPostQueuedEvents are only called
+    by EvdevProcessSyncEvent. These functions take as arguments an array of
+    valuators which is set by EvdevProcessSyncEvent to contain ... nothing.
+    This patch changes the prototype of the four functions, their definitions
+    and the way they are called  to remove the useless array of valuators.
+    
+    Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 3ee98d0b7f7c266b8c7954b7710f9724a9c9cddd
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Fri Aug 29 13:14:56 2014 +1000
+
+    Drop some unused #defines
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 977588d24a6bc511454c7bd616e8b24a8bc3f58e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Aug 14 11:56:03 2014 +1000
+
+    If only IgnoreRelativeAxes is set, init like a normal relative device
+    
+    In the current code, if only IgnoreRelativeAxes is set, the code would go on
+    and force absolute axes to initialize even if the relative axes were
+    successfully initialized.
+    
+    Evdev gives precedence to relative axes anyway, initializing absolute axes if
+    the relative axes failed. Thus, if we explicitely want relative axes but leave
+    the abs axes as-is, proceed as normal.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 291b60172d25446d2cabe61ed93e56db6570baa3
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Thu Aug 14 10:48:52 2014 +1000
+
+    Fix axis initialization for devices with abs x/y and rel scrollwheels
+    
+    The Xen Virtual Pointer device has ABS_X, ABS_Y and REL_WHEEL. If smooth
+    scrolling is detected, the current code would first initialize relative axes
+    for scrolling and immediately overwrite those axes when the abs valuators are
+    written out.
+    
+    This patch fixes the default case only, in the case of a device setting the
+    two Ignore*Axis options both to "off", the axes are still overwritten. The
+    wheels will work, other axes only if the same number of abs axes exists. And
+    it keeps the current memory leak too, but it's marked with a FIXME now.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 8ce06c96e469139bb12065d80fe4abb6173e2855
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Aug 5 15:59:17 2014 +1000
+
+    Make the slot-state per slot
+    
+    The previous approach only had the slot state for the current slot. If we
+    changed slots, that means we lost the information if the slot was ever
+    initialized. If the ABS_MT_TRACKING_ID was never received, the slot would
+    still update and try to send events (which the server refused with a warning).
+    
+    Avoid this by having a per-slot state and a dirty bit that tells us if the
+    current slot updated at all. If we don't get the tracking ID, leave the slot
+    empty and refuse any further events from that touch.
+    
+    This quashes the various "unable to find touch point 0" warnings caused if a
+    touchpoint starts before the device is enabled.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Walter Harms <wharms@bfs.de>
+
 commit 5d239ceb260cd554245e8f0dc3627990726ea9b9
 Author: Peter Hutterer <peter.hutterer@who-t.net>
 Date:   Thu May 15 08:41:06 2014 +1000
diff --git a/debian/changelog b/debian/changelog
index fc31e30..684e228 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
-xserver-xorg-input-evdev (1:2.9.0-3) UNRELEASED; urgency=medium
+xserver-xorg-input-evdev (1:2.9.2-1) UNRELEASED; urgency=medium
 
+  * New upstream release.
   * Let uscan verify tarball signatures.
 
- -- Julien Cristau <jcristau@debian.org>  Sat, 02 May 2015 19:54:45 +0200
+ -- Julien Cristau <jcristau@debian.org>  Sat, 02 May 2015 19:55:33 +0200
 
 xserver-xorg-input-evdev (1:2.9.0-2) unstable; urgency=medium
 

commit f86852a1ad0294c196fea41716519144114ebb35
Author: Julien Cristau <jcristau@debian.org>
Date:   Sat May 2 19:54:50 2015 +0200

    Let uscan verify tarball signatures.

diff --git a/debian/changelog b/debian/changelog
index fe6e799..fc31e30 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.9.0-3) UNRELEASED; urgency=medium
+
+  * Let uscan verify tarball signatures.
+
+ -- Julien Cristau <jcristau@debian.org>  Sat, 02 May 2015 19:54:45 +0200
+
 xserver-xorg-input-evdev (1:2.9.0-2) unstable; urgency=medium
 
   * Team upload.
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
new file mode 100644
index 0000000..a141a05
--- /dev/null
+++ b/debian/upstream/signing-key.asc
@@ -0,0 +1,24 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQGiBD8b0wYRBACph9kRJmP+4+JGsCgFlFoy4vFO0DCG+jmkQN0n1wdInt/N/UtA
+sZToO72AUmfmYizA+IEbzBrx0UnUo3w3BDmHxUWf/akZiPUz9AA/YFY4xC3MY2OK
+VN2Jz6YSce4zJ5jd2ZRobHm4HuIf/8yqSCcsv7FNfrLaTNIFRs5gYYsqZwCgwmkp
+RSLRc8WAnHrTWNQDaEFM2rUEAKTjrTjMN8+KGd0BxNX7HiTSqQP++nXNwAYs1oWB
+Yt82YHj9SvRCqCzD1pzJQivYnlNoWDza1VeMnfdAvkdia8z4lYbO/RunXZJvra3Z
+VDm+izq+uwUAyvFuEYnNz09VSqwXKT6+XW0Xtz2vHq52r6DS6mK8cGJHZ5OhrRjq
+UEYxA/9STh+QfA98xtNoRcf52E/46r7IpCj440oRVc9lMfxQZrLGQNqp7sPdIhGQ
+CCo2NUII5hkhdAG71kpbfSXU4Sh32p1cU1KYCAkDFfb49bKuAs+Pff8v6FGZxTdd
+AinPZr4BbsYJatk818aTCnu0+s7L8jL5GPfeyuyEMKwzVBx2mLQpUGV0ZXIgSHV0
+dGVyZXIgKFdoby1UKSA8b2ZmaWNlQHdoby10Lm5ldD6IWQQTEQIAGQUCPxvTBgQL
+BwMCAxUCAwMWAgECHgECF4AACgkQ4jt+cLRn8L/0RACfWo3KTMUg+uPRqA6RXxk0
+4CWjXaMAoJeIxOpZLB3RBltPnSi7PyVQIkHFuQENBD8b0wgQBACTnqOYOWYVR8O1
+D73J6nbdAeZCbXrUkyXIuyqBOdKmX/0QJmSs7Wfsa+hPfDhj6ai0Gs2C8Qg/0Pzk
+86b4p9DLkf0M6RaYjUtCJBpS59xrsV6nz6xZzQa4RRdf1YJmw2tia1MMXzxbwQU2
+bKpYEm8NsGaBURMGd02EvsMN2wI2uwADBQP/e9MjVr/85XDzAlUBN8HwYW5szTyP
+8ZVcQOqOmNebkTWGLvkPrBdXmxpzrWjxPolO1WcWQjUL0bN/rbdqefT65iVHJHJZ
+/cpTtgGlCPhL5JTA50ltd0I13CABYWLFmswonXES/6tcglf4rr3Nri2sOrY5HggP
+ipEzOo5vdKOow/qIRgQYEQIABgUCPxvTCAAKCRDiO35wtGfwv68jAKCDvL2gkrg1
+4NfV7rNc057K1nL2GgCeKApWRgGVzaOkAp0P5tQulaDD6zM=
+=7uBX
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian/watch b/debian/watch
index 1abb00b..afe53ba 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,3 +1,4 @@
 #git=git://anongit.freedesktop.org/xorg/driver/xf86-input-evdev
 version=3
+opts=pgpsigurlmangle=s/$/.sig/ \
 http://xorg.freedesktop.org/releases/individual/driver/ xf86-input-evdev-(.*)\.tar\.gz

commit 0d3494eadfde7e8d30e1bae97cfa6b36e5128a11
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 27 11:41:50 2015 +1000

    Bump to 2.9.99
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index 277358d..e0d480a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.9.1],
+        [2.9.99],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 24368d8379cc47693dd1623168a6125faff57311
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 27 11:37:03 2015 +1000

    evdev 2.9.2
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index 46f3dc7..9b198bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.9.1],
+        [2.9.2],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 4996694cc9b80ffef28289ea491965b16615f2d1
Author: Tobias Himmer <provisorisch@online.de>
Date:   Fri Jan 23 02:13:17 2015 +0100

    Check for incoming MT slot indices exceeding the allocated number of slots.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=88715
    
    Signed-off-by: Tobias Himmer <provisorisch@online.de>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit abc4a8b60387c3c9ae8b0199bf61acede4f6dba2)

diff --git a/src/evdev.c b/src/evdev.c
index 1a385c9..651b895 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -751,6 +751,14 @@ EvdevProcessTouchEvent(InputInfoPtr pInfo, struct input_event *ev)
 
     if (ev->code == ABS_MT_SLOT) {
         EvdevProcessTouch(pInfo);
+        if (ev->value >= num_slots(pEvdev) ) {
+            LogMessageVerbSigSafe(X_WARNING, 0,
+                                  "%s: Slot index %d out of bounds (max %d), touch events may be incorrect.\n",
+                                  pInfo->name,
+                                  ev->value,
+                                  num_slots(pEvdev) - 1);
+            return;
+        }
         pEvdev->cur_slot = ev->value;
     } else
     {

commit 05f7057ad5716ccf643b80f2f5fbfff34783a950
Author: Colin B. Macdonald <macdonald@maths.ox.ac.uk>
Date:   Thu Jun 26 12:17:59 2014 +0100

    Workaround lack of ABS_X on MT devices (#80470)
    
    Often on Android, we have ABS_MT_POSITION_X without ABS_X (which is contrary
    to spec). We add fake ABS_X axis in that case.
    
    X.Org Bug 80470 <http://bugs.freedesktop.org/show_bug.cgi?id=80470>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit b370ccdff8f721de75d3d91486cc4807668d040c)

diff --git a/src/evdev.c b/src/evdev.c
index 9cfc982..1a385c9 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1211,7 +1211,8 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
 {
     InputInfoPtr pInfo;
     EvdevPtr pEvdev;
-    int num_axes = 0, axis, i = 0;
+    int axis, i = 0;
+    int num_axes = 0; /* number of non-MT axes */
     int num_mt_axes = 0, /* number of MT-only axes */
         num_mt_axes_total = 0; /* total number of MT axes, including
                                   double-counted ones, excluding blacklisted */
@@ -1224,6 +1225,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
     if (!libevdev_has_event_type(pEvdev->dev, EV_ABS))
         goto out;
 
+    /* Find number of absolute axis, including MT ones, will decrease later. */
     for (i = 0; i < ABS_MAX; i++)
         if (libevdev_has_event_code(pEvdev->dev, EV_ABS, i))
             num_axes++;
@@ -1232,6 +1234,30 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
         goto out;
 
 #ifdef MULTITOUCH
+    /* Android drivers often have ABS_MT_POSITION_X but not ABS_X.
+       Loop over the MT->legacy axis table and add fake axes. */
+    for (i = 0; i < ArrayLength(mt_axis_mappings); i++)
+    {
+        int mt_code = mt_axis_mappings[i].mt_code;
+        int code = mt_axis_mappings[i].code;
+        if (libevdev_has_event_code(pEvdev->dev, EV_ABS, mt_code) &&
+            !libevdev_has_event_code(pEvdev->dev, EV_ABS, code))
+        {
+            const struct input_absinfo* abs;
+            abs = libevdev_get_abs_info(pEvdev->dev, mt_code);
+            if (libevdev_enable_event_code(pEvdev->dev, EV_ABS, code, abs))
+            {
+                xf86IDrvMsg(pInfo, X_ERROR, "Failed to fake axis %s.\n",
+                            libevdev_event_code_get_name(EV_ABS, code));
+                goto out;
+            }
+            xf86IDrvMsg(pInfo, X_INFO, "Faking axis %s.\n",
+                        libevdev_event_code_get_name(EV_ABS, code));
+            num_axes++;
+        }
+    }
+
+    /* Absolute multitouch axes: adjust mapping and axes counts. */
     for (axis = ABS_MT_SLOT; axis < ABS_MAX; axis++)
     {
         if (libevdev_has_event_code(pEvdev->dev, EV_ABS, axis))
@@ -1239,6 +1265,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
             int j;
             Bool skip = FALSE;
 
+            /* Setup mapping if axis is in MT->legacy axis table. */
             for (j = 0; j < ArrayLength(mt_axis_mappings); j++)
             {
                 if (mt_axis_mappings[j].mt_code == axis &&
@@ -1259,8 +1286,7 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int num_scroll_axes)
         }
     }
 
-    /* device only has mt-axes. the kernel should give us ABS_X etc for
-       backwards compat but some devices don't have it. */
+    /* Panic if, after faking ABS_X etc, we still only have mt-axes. */
     if (num_axes == 0 && num_mt_axes > 0) {
         xf86IDrvMsg(pInfo, X_ERROR,
                     "found only multitouch-axes. That shouldn't happen.\n");

commit 56a5e6716204916691a67082e3e6a1698df2061b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 16 07:55:34 2015 +1000

    Unconditionally require mtdev
    
    Missing from 2c9f4f0380d
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/configure.ac b/configure.ac
index e53177e..277358d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -48,7 +48,7 @@ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.12] xproto [inputproto >= 2.1.99.3])
 PKG_CHECK_MODULES(UDEV, libudev)
 
 PKG_CHECK_MODULES(LIBEVDEV, [libevdev >= 0.4])
-PKG_CHECK_MODULES(MTDEV, mtdev, HAVE_MTDEV="yes", HAVE_MTDEV="no")
+PKG_CHECK_MODULES(MTDEV, mtdev)
 
 # Define a configure option for an alternate input module directory
 AC_ARG_WITH(xorg-module-dir,

commit 74433f788acf41a43da54269eb1b73c407f3ceba
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Mar 13 11:05:03 2015 +1000


Reply to: