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

xserver-xorg-input-evdev: Changes to 'debian-unstable'



Rebased ref, commits from common ancestor:
commit 24c195433c69374ed687794320928f490feca498
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Jan 21 21:59:31 2009 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 757d9cc..a629d36 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-xserver-xorg-input-evdev (1:2.1.1-1) UNRELEASED; urgency=low
+xserver-xorg-input-evdev (1:2.1.1-1) experimental; urgency=low
 
   * New upstream release.
   * Update debian/copyright from upstream's COPYING.
   * Build against xserver 1.6 rc1.
 
- -- Julien Cristau <jcristau@debian.org>  Wed, 03 Dec 2008 00:09:44 +0100
+ -- Julien Cristau <jcristau@debian.org>  Wed, 21 Jan 2009 21:58:47 +0100
 
 xserver-xorg-input-evdev (1:2.1.0-1) experimental; urgency=low
 

commit fcffce9f8fb86efebdadc965aa767bab93d7d740
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Jan 21 21:58:40 2009 +0100

    Build against xserver 1.6 rc1.

diff --git a/debian/changelog b/debian/changelog
index 69250b6..757d9cc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ xserver-xorg-input-evdev (1:2.1.1-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Update debian/copyright from upstream's COPYING.
+  * Build against xserver 1.6 rc1.
 
  -- Julien Cristau <jcristau@debian.org>  Wed, 03 Dec 2008 00:09:44 +0100
 
diff --git a/debian/control b/debian/control
index d05e52f..910bf2b 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends:
  debhelper (>= 5.0.0),
  pkg-config,
  quilt,
- xserver-xorg-dev (>= 2:1.4.99.906),
+ xserver-xorg-dev (>= 2:1.5.99.901),
  x11proto-core-dev,
  x11proto-randr-dev,
  x11proto-input-dev,
@@ -23,7 +23,7 @@ Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-input-evdev.g
 
 Package: xserver-xorg-input-evdev
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${xserver:Depends}, xserver-xorg-core (>= 2:1.5.3)
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${xserver:Depends}
 Provides: ${xinpdriver:Provides}
 Replaces: xserver-xorg (<< 6.8.2-35)
 Description: X.Org X server -- evdev input driver

commit 87dae6972bb0f7f8bd7e7a56e71120eeafb20f9b
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Jan 21 21:57:25 2009 +0100

    debian/control: wrap build-deps

diff --git a/debian/control b/debian/control
index 3deefd2..d05e52f 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,20 @@ Section: x11
 Priority: optional
 Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
 Uploaders: David Nusinow <dnusinow@debian.org>, Drew Parsons <dparsons@debian.org>, Julien Cristau <jcristau@debian.org>
-Build-Depends: debhelper (>= 5.0.0), pkg-config, quilt, xserver-xorg-dev (>= 2:1.4.99.906), x11proto-core-dev, x11proto-randr-dev, x11proto-input-dev, x11proto-kb-dev, libxkbfile-dev, dpkg-dev (>= 1.14.17), automake, libtool, xutils-dev
+Build-Depends:
+ debhelper (>= 5.0.0),
+ pkg-config,
+ quilt,
+ xserver-xorg-dev (>= 2:1.4.99.906),
+ x11proto-core-dev,
+ x11proto-randr-dev,
+ x11proto-input-dev,
+ x11proto-kb-dev,
+ libxkbfile-dev,
+ dpkg-dev (>= 1.14.17),
+ automake,
+ libtool,
+ xutils-dev
 Standards-Version: 3.7.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-input-evdev
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-input-evdev.git

commit 1a967b5e9b0fb51b61b80dd8e2c9e35f36531dd3
Author: Julien Cristau <jcristau@debian.org>
Date:   Fri Jan 16 05:12:17 2009 +0100

    update changelogs for new upstream

diff --git a/ChangeLog b/ChangeLog
index 9740312..7a2f78f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,87 @@
+commit 11d506dce6363525e80eda219aee8af429fb302e
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Jan 13 11:32:05 2009 +1000
+
+    evdev 2.1.1
+
+commit a34a2cd3476441f29c9faa79ffa9289dbf2eebf4
+Author: Michael Chapman <mike@very.puzzling.org>
+Date:   Fri Jan 9 19:07:10 2009 +1100
+
+    Disable middle mouse button emulation when a middle mouse button event is registered
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 0592d97fbb5a1241ee79397ce9203346d050a9f9)
+
+commit 78c00bd77f983aa22611c9966fbcb7e22453b588
+Author: Matt Helsley <matt.helsley@gmail.com>
+Date:   Tue Jan 13 11:03:04 2009 +1000
+
+    Fix FOO_MAX off-by-one
+    
+    In linux/input.h each section's (e.g. ABS) FOO_MAX is the maximum FOO
+    value. Recent kernels define FOO_CNT as the maximum number of FOO there
+    will ever be. Hence using FOO_MAX to size the bit vectors representing
+    the capabilities of an evdev device is off by one.
+    
+    Define FOO_CNT values for use with Linux kernels which lack them. Use
+    FOO_CNT whenever we need to know the number of bits needed -- usually to
+    calculate the number of longs needed.
+    
+    When iterating over the values FOO_MAX still seems appropriate however
+    the loop test should include FOO_MAX rather than skip it.
+    
+    Signed-off-by: Matt Helsley <matt.helsley@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit 4dfd86b2201b2b19761a1abb3c580cecf0060224)
+    
+    Conflicts:
+    
+    	src/evdev.c
+
+commit 760f1c6bb184e3b48ca6a6bfe8942d306f378148
+Author: Matt Helsley <matt.helsley@gmail.com>
+Date:   Sun Jan 11 18:04:40 2009 -0800
+
+    rename NBITS to NLONGS to reflect its actual meaning
+    
+    NBITS really convers the number of bits passed as its argument
+    into a number of longs. This is somewhat atypical of many
+    function-like-macro names. Rename it to NLONGS.
+    
+    Signed-off-by: Matt Helsley <matt.helsley@gmail.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    
+    (cherry-picked from commit d3fd42d8644310abcae23bbf534f8c445296bcb7)
+    Not really required, but it makes cherry-picking
+    4dfd86b2201b2b19761a1abb3c580cecf0060224 easier.
+
+commit 2db04ba3c35e4976b34d92f8f7c6c2c9ec09f3ab
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Fri Jan 9 16:13:09 2009 -0800
+
+    Remove xorgconfig & xorgcfg from See Also list in man page
+    (cherry picked from commit 0f0a149067abdd1ed89717de43febe89b2a3490b)
+
+commit 363d0bdb9fcae7f57f53c50667429ac9b37d41cc
+Author: Yan Li <yan.i.li@intel.com>
+Date:   Mon Jan 5 16:35:09 2009 +0800
+
+    Fix XkbModel parsing error
+    
+    Signed-off-by: Yan Li <yan.i.li@intel.com>
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    (cherry picked from commit d170cba0cdd8f7a2e500e094f5b21fc33aefb52a)
+
+commit 16a26a1eca6395284fcb8e62be7b2bc30becb0d3
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Wed Nov 26 15:01:57 2008 +1000
+
+    Finalize MB emu (and wakeup handlers) before closing the fd.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+    (cherry picked from commit 2bf6e29b40f0da2bc417964fd2bd819306e5d3ed)
+
 commit b879ae73510ad733c266fba80e0ec4b0f903e71b
 Author: Peter Hutterer <peter.hutterer@redhat.com>
 Date:   Mon Nov 17 09:27:25 2008 +1000
diff --git a/debian/changelog b/debian/changelog
index 84ef79d..69250b6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,6 @@
-xserver-xorg-input-evdev (1:2.1.0-2) UNRELEASED; urgency=low
+xserver-xorg-input-evdev (1:2.1.1-1) UNRELEASED; urgency=low
 
+  * New upstream release.
   * Update debian/copyright from upstream's COPYING.
 
  -- Julien Cristau <jcristau@debian.org>  Wed, 03 Dec 2008 00:09:44 +0100

commit 11d506dce6363525e80eda219aee8af429fb302e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 13 11:32:05 2009 +1000

    evdev 2.1.1

diff --git a/configure.ac b/configure.ac
index f668d1e..28294e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-evdev],
-        2.1.0,
+        2.1.1,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-input-evdev)
 

commit a34a2cd3476441f29c9faa79ffa9289dbf2eebf4
Author: Michael Chapman <mike@very.puzzling.org>
Date:   Fri Jan 9 19:07:10 2009 +1100

    Disable middle mouse button emulation when a middle mouse button event is registered
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 0592d97fbb5a1241ee79397ce9203346d050a9f9)

diff --git a/src/emuMB.c b/src/emuMB.c
index e5a767a..028d27f 100644
--- a/src/emuMB.c
+++ b/src/emuMB.c
@@ -231,6 +231,11 @@ EvdevMBEmuFilterEvent(InputInfoPtr pInfo, int button, BOOL press)
     if (!pEvdev->emulateMB.enabled)
         return ret;
 
+    if (button == 2) {
+        EvdevMBEmuEnable(pInfo, FALSE);
+        return ret;
+    }
+
     /* don't care about other buttons */
     if (button != 1 && button != 3)
         return ret;

commit 78c00bd77f983aa22611c9966fbcb7e22453b588
Author: Matt Helsley <matt.helsley@gmail.com>
Date:   Tue Jan 13 11:03:04 2009 +1000

    Fix FOO_MAX off-by-one
    
    In linux/input.h each section's (e.g. ABS) FOO_MAX is the maximum FOO
    value. Recent kernels define FOO_CNT as the maximum number of FOO there
    will ever be. Hence using FOO_MAX to size the bit vectors representing
    the capabilities of an evdev device is off by one.
    
    Define FOO_CNT values for use with Linux kernels which lack them. Use
    FOO_CNT whenever we need to know the number of bits needed -- usually to
    calculate the number of longs needed.
    
    When iterating over the values FOO_MAX still seems appropriate however
    the loop test should include FOO_MAX rather than skip it.
    
    Signed-off-by: Matt Helsley <matt.helsley@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit 4dfd86b2201b2b19761a1abb3c580cecf0060224)
    
    Conflicts:
    
    	src/evdev.c

diff --git a/src/evdev.c b/src/evdev.c
index e48edd9..5601caa 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -236,7 +236,7 @@ static void
 PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value)
 {
     int code = ev->code + MIN_KEYCODE;
-    static char warned[KEY_MAX];
+    static char warned[KEY_CNT];
 
     /* filter repeat events for chording keys */
     if (value == 2 &&
@@ -248,7 +248,7 @@ PostKbdEvent(InputInfoPtr pInfo, struct input_event *ev, int value)
          ev->code == KEY_SCROLLLOCK)) /* XXX windows keys? */
         return;
 
-    if (code > 255 && ev->code < KEY_MAX) {
+    if (code > 255 && ev->code <= KEY_MAX) {
 	if (!warned[ev->code])
 	    xf86Msg(X_WARNING, "%s: unable to handle keycode %d\n",
 		    pInfo->name, ev->code);
@@ -1202,12 +1202,12 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
     int i;
 
     char name[1024]                  = {0};
-    long bitmask[NLONGS(EV_MAX)]      = {0};
-    long key_bitmask[NLONGS(KEY_MAX)] = {0};
-    long rel_bitmask[NLONGS(REL_MAX)] = {0};
-    long abs_bitmask[NLONGS(ABS_MAX)] = {0};
-    long led_bitmask[NLONGS(LED_MAX)] = {0};
-    struct input_absinfo absinfo[ABS_MAX];
+    long bitmask[NLONGS(EV_CNT)]      = {0};
+    long key_bitmask[NLONGS(KEY_CNT)] = {0};
+    long rel_bitmask[NLONGS(REL_CNT)] = {0};
+    long abs_bitmask[NLONGS(ABS_CNT)] = {0};
+    long led_bitmask[NLONGS(LED_CNT)] = {0};
+    struct input_absinfo absinfo[ABS_CNT];
 
     if (ioctl(pInfo->fd,
               EVIOCGNAME(sizeof(name) - 1), name) < 0) {
@@ -1266,7 +1266,7 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
 
     memset(absinfo, 0, sizeof(absinfo));
 
-    for (i = 0; i < ABS_MAX; i++)
+    for (i = ABS_X; i <= ABS_MAX; i++)
     {
         if (TestBit(i, abs_bitmask))
         {
@@ -1302,9 +1302,9 @@ error:
 static int
 EvdevProbe(InputInfoPtr pInfo)
 {
-    long key_bitmask[NLONGS(KEY_MAX)] = {0};
-    long rel_bitmask[NLONGS(REL_MAX)] = {0};
-    long abs_bitmask[NLONGS(ABS_MAX)] = {0};
+    long key_bitmask[NLONGS(KEY_CNT)] = {0};
+    long rel_bitmask[NLONGS(REL_CNT)] = {0};
+    long abs_bitmask[NLONGS(ABS_CNT)] = {0};
     int i, has_axes, has_keys, num_buttons;
     int kernel24 = 0;
     EvdevPtr pEvdev = pInfo->private;
diff --git a/src/evdev.h b/src/evdev.h
index 107dc77..cdbc87d 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -40,6 +40,22 @@
 #include <xkbstr.h>
 #endif
 
+#ifndef EV_CNT /* linux 2.4 kernels and earlier lack _CNT defines */
+#define EV_CNT (EV_MAX+1)
+#endif
+#ifndef KEY_CNT
+#define KEY_CNT (KEY_MAX+1)
+#endif
+#ifndef REL_CNT
+#define REL_CNT (REL_MAX+1)
+#endif
+#ifndef ABS_CNT
+#define ABS_CNT (ABS_MAX+1)
+#endif
+#ifndef LED_CNT
+#define LED_CNT (LED_MAX+1)
+#endif
+
 #define EVDEV_MAXBUTTONS 32
 
 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
@@ -122,12 +138,12 @@ typedef struct {
 
     /* Cached info from device. */
     char name[1024];
-    long bitmask[NLONGS(EV_MAX)];
-    long key_bitmask[NLONGS(KEY_MAX)];
-    long rel_bitmask[NLONGS(REL_MAX)];
-    long abs_bitmask[NLONGS(ABS_MAX)];
-    long led_bitmask[NLONGS(LED_MAX)];
-    struct input_absinfo absinfo[ABS_MAX];
+    long bitmask[NLONGS(EV_CNT)];
+    long key_bitmask[NLONGS(KEY_CNT)];
+    long rel_bitmask[NLONGS(REL_CNT)];
+    long abs_bitmask[NLONGS(ABS_CNT)];
+    long led_bitmask[NLONGS(LED_CNT)];
+    struct input_absinfo absinfo[ABS_CNT];
 
     /* minor/major number */
     dev_t min_maj;

commit 760f1c6bb184e3b48ca6a6bfe8942d306f378148
Author: Matt Helsley <matt.helsley@gmail.com>
Date:   Sun Jan 11 18:04:40 2009 -0800

    rename NBITS to NLONGS to reflect its actual meaning
    
    NBITS really convers the number of bits passed as its argument
    into a number of longs. This is somewhat atypical of many
    function-like-macro names. Rename it to NLONGS.
    
    Signed-off-by: Matt Helsley <matt.helsley@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    
    (cherry-picked from commit d3fd42d8644310abcae23bbf534f8c445296bcb7)
    Not really required, but it makes cherry-picking
    4dfd86b2201b2b19761a1abb3c580cecf0060224 easier.

diff --git a/src/evdev.c b/src/evdev.c
index 2c73c67..e48edd9 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1202,11 +1202,11 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
     int i;
 
     char name[1024]                  = {0};
-    long bitmask[NBITS(EV_MAX)]      = {0};
-    long key_bitmask[NBITS(KEY_MAX)] = {0};
-    long rel_bitmask[NBITS(REL_MAX)] = {0};
-    long abs_bitmask[NBITS(ABS_MAX)] = {0};
-    long led_bitmask[NBITS(LED_MAX)] = {0};
+    long bitmask[NLONGS(EV_MAX)]      = {0};
+    long key_bitmask[NLONGS(KEY_MAX)] = {0};
+    long rel_bitmask[NLONGS(REL_MAX)] = {0};
+    long abs_bitmask[NLONGS(ABS_MAX)] = {0};
+    long led_bitmask[NLONGS(LED_MAX)] = {0};
     struct input_absinfo absinfo[ABS_MAX];
 
     if (ioctl(pInfo->fd,
@@ -1302,9 +1302,9 @@ error:
 static int
 EvdevProbe(InputInfoPtr pInfo)
 {
-    long key_bitmask[NBITS(KEY_MAX)] = {0};
-    long rel_bitmask[NBITS(REL_MAX)] = {0};
-    long abs_bitmask[NBITS(ABS_MAX)] = {0};
+    long key_bitmask[NLONGS(KEY_MAX)] = {0};
+    long rel_bitmask[NLONGS(REL_MAX)] = {0};
+    long abs_bitmask[NLONGS(ABS_MAX)] = {0};
     int i, has_axes, has_keys, num_buttons;
     int kernel24 = 0;
     EvdevPtr pEvdev = pInfo->private;
diff --git a/src/evdev.h b/src/evdev.h
index af88741..107dc77 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -47,7 +47,9 @@
 #endif
 
 #define LONG_BITS (sizeof(long) * 8)
-#define NBITS(x) (((x) + LONG_BITS - 1) / LONG_BITS)
+
+/* Number of longs needed to hold the given number of bits */
+#define NLONGS(x) (((x) + LONG_BITS - 1) / LONG_BITS)
 
 /* axis specific data for wheel emulation */
 typedef struct {
@@ -120,11 +122,11 @@ typedef struct {
 
     /* Cached info from device. */
     char name[1024];
-    long bitmask[NBITS(EV_MAX)];
-    long key_bitmask[NBITS(KEY_MAX)];
-    long rel_bitmask[NBITS(REL_MAX)];
-    long abs_bitmask[NBITS(ABS_MAX)];
-    long led_bitmask[NBITS(LED_MAX)];
+    long bitmask[NLONGS(EV_MAX)];
+    long key_bitmask[NLONGS(KEY_MAX)];
+    long rel_bitmask[NLONGS(REL_MAX)];
+    long abs_bitmask[NLONGS(ABS_MAX)];
+    long led_bitmask[NLONGS(LED_MAX)];
     struct input_absinfo absinfo[ABS_MAX];
 
     /* minor/major number */

commit 2db04ba3c35e4976b34d92f8f7c6c2c9ec09f3ab
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date:   Fri Jan 9 16:13:09 2009 -0800

    Remove xorgconfig & xorgcfg from See Also list in man page
    (cherry picked from commit 0f0a149067abdd1ed89717de43febe89b2a3490b)

diff --git a/man/evdev.man b/man/evdev.man
index cf087e8..c38a2c2 100644
--- a/man/evdev.man
+++ b/man/evdev.man
@@ -201,5 +201,5 @@ server, such as touchscreens that require run-time calibration.
 .SH AUTHORS
 Kristian Høgsberg.
 .SH "SEE ALSO"
-__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__),
+__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__),
 README.mouse.

commit 363d0bdb9fcae7f57f53c50667429ac9b37d41cc
Author: Yan Li <yan.i.li@intel.com>
Date:   Mon Jan 5 16:35:09 2009 +0800

    Fix XkbModel parsing error
    
    Signed-off-by: Yan Li <yan.i.li@intel.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    (cherry picked from commit d170cba0cdd8f7a2e500e094f5b21fc33aefb52a)

diff --git a/src/evdev.c b/src/evdev.c
index 921f9ff..2c73c67 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -854,7 +854,7 @@ EvdevAddKeyClass(DeviceIntPtr device)
         SetXkbOption(pInfo, "xkb_rules", &pEvdev->xkb_rules);
         SetXkbOption(pInfo, "xkb_model", &pEvdev->xkb_model);
 	if (!pEvdev->xkb_model)
-	    SetXkbOption(pInfo, "XkbModel", &pEvdev->xkb_rules);
+	    SetXkbOption(pInfo, "XkbModel", &pEvdev->xkb_model);
         SetXkbOption(pInfo, "xkb_layout", &pEvdev->xkb_layout);
 	if (!pEvdev->xkb_layout)
 	    SetXkbOption(pInfo, "XkbLayout", &pEvdev->xkb_layout);

commit 16a26a1eca6395284fcb8e62be7b2bc30becb0d3
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Wed Nov 26 15:01:57 2008 +1000

    Finalize MB emu (and wakeup handlers) before closing the fd.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    (cherry picked from commit 2bf6e29b40f0da2bc417964fd2bd819306e5d3ed)

diff --git a/src/evdev.c b/src/evdev.c
index 25325a3..921f9ff 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1150,6 +1150,8 @@ EvdevProc(DeviceIntPtr device, int what)
         return EvdevOn(device);
 
     case DEVICE_OFF:
+        if (pEvdev->flags & EVDEV_INITIALIZED)
+            EvdevMBEmuFinalize(pInfo);
         if (pInfo->fd != -1)
         {
             if (pEvdev->grabDevice && ioctl(pInfo->fd, EVIOCGRAB, (void *)0))

commit 28b0f7622cc0b62bdb9f5e33a0cdb080f2bb9c44
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Dec 3 00:09:59 2008 +0100

    Update debian/copyright from upstream's COPYING.

diff --git a/debian/changelog b/debian/changelog
index 4a3d5ab..84ef79d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.1.0-2) UNRELEASED; urgency=low
+
+  * Update debian/copyright from upstream's COPYING.
+
+ -- Julien Cristau <jcristau@debian.org>  Wed, 03 Dec 2008 00:09:44 +0100
+
 xserver-xorg-input-evdev (1:2.1.0-1) experimental; urgency=low
 
   [ Timo Aaltonen ]
diff --git a/debian/copyright b/debian/copyright
index bf3af89..4cf9803 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -3,34 +3,98 @@ git://anongit.freedesktop.org/git/xorg/driver/xf86-input-evdev.
 Release tarballs are available at
 http://xorg.freedesktop.org/releases/individual/driver/
 
- Copyright © 2006-2007 Zephaniah E. Hull
- Copyright © 2004 Red Hat, Inc.
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Soft-
- ware"), to deal in the Software without restriction, including without
- limitation the rights to use, copy, modify, merge, publish, distribute,
- and/or sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, provided that the above copyright
- notice(s) and this permission notice appear in all copies of the Soft-
- ware and that both the above copyright notice(s) and this permission
- notice appear in supporting documentation.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
- ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
- RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
- THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
- QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
- MANCE OF THIS SOFTWARE.
-
- Except as contained in this notice, the name of a copyright holder shall
- not be used in advertising or otherwise to promote the sale, use or
- other dealings in this Software without prior written authorization of
- the copyright holder.
-
- Authors:
-   Zephaniah E. Hull (warp@aehallh.com),
-   Kristian Høgsberg (krh@redhat.com)
+Various copyright notices found in this driver:
+
+Copyright © 2004-2008 Red Hat, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of Red Hat
+not be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.  Red
+Hat makes no representations about the suitability of this software
+for any purpose.  It is provided "as is" without express or implied
+warranty.
+
+THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice 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 OPEN GROUP 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.
+
+Except as contained in this notice, the name of the copyright holders shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from the copyright holders.
+
+Copyright © 2008 University of South Australia
+copyrights taken from xf86-input-mouse, partly valid for this driver.
+Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
+Copyright 1993 by David Dawes <dawes@xfree86.org>
+Copyright 2002 by SuSE Linux AG, Author: Egbert Eich
+Copyright 1994-2002 by The XFree86 Project, Inc.
+Copyright 2002 by Paul Elliott
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of the authors
+not be used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.  The authors make no
+representations about the suitability of this software for any
+purpose.  It is provided "as is" without express or implied
+warranty.
+
+THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Copyright 2005 Adam Jackson.
+
+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
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, 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 NON-INFRINGEMENT.  IN NO EVENT SHALL
+ADAM JACKSON 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.
+

commit 3f9b7dadf130cbb7d51eb1f24df0b8cde1b43ed8
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Nov 26 19:27:28 2008 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 29e5e5a..4a3d5ab 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-evdev (1:2.1.0-1) UNRELEASED; urgency=low
+xserver-xorg-input-evdev (1:2.1.0-1) experimental; urgency=low
 
   [ Timo Aaltonen ]
   * New upstream release.
@@ -10,7 +10,7 @@ xserver-xorg-input-evdev (1:2.1.0-1) UNRELEASED; urgency=low
     matching anymore, that's hal/udev's job.  Also drop the mention of
     'Protocol "evdev"', which unexists since quite a while.
 
- -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 19 Nov 2008 15:34:39 +0200
+ -- Julien Cristau <jcristau@debian.org>  Wed, 26 Nov 2008 19:27:26 +0100
 
 xserver-xorg-input-evdev (1:2.0.99.3-1) experimental; urgency=low
 

commit f7e807ed8c31d5da5393ee23e0a34cf7332b210c
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Nov 26 19:26:57 2008 +0100

    debian/control: update the long description.
    
    We don't do "clever" device matching anymore, that's hal/udev's job.
    Also drop the mention of 'Protocol "evdev"', which unexists since quite a
    while.

diff --git a/debian/changelog b/debian/changelog
index 3a27448..29e5e5a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,15 @@
 xserver-xorg-input-evdev (1:2.1.0-1) UNRELEASED; urgency=low
 
+  [ Timo Aaltonen ]
   * New upstream release.
     + Store device file's minor/major to avoid duplicate devices
       (closes: #505635)
 
+  [ Julien Cristau ]
+  * debian/control: update the long description.  We don't do "clever" device
+    matching anymore, that's hal/udev's job.  Also drop the mention of
+    'Protocol "evdev"', which unexists since quite a while.
+
  -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 19 Nov 2008 15:34:39 +0200
 
 xserver-xorg-input-evdev (1:2.0.99.3-1) experimental; urgency=low
diff --git a/debian/control b/debian/control
index ba1663c..3deefd2 100644
--- a/debian/control
+++ b/debian/control
@@ -16,11 +16,7 @@ Replaces: xserver-xorg (<< 6.8.2-35)
 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
- and mice to be treated as separate input devices, and matched on physical
- attributes such as which USB port they're connected to.
- .
- Note that this driver is different from Protocol "evdev" in the keyboard and
- mouse drivers, as shipped with Ubuntu 4.10 and 5.04, and Debian 3.1.
+ and mice to be treated as separate input devices.
  .
  More information about X.Org can be found at:
  <URL:http://www.X.org>

commit 7a6b1cb456fe5fa872b3938f6ce94a56f315b27b
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Nov 26 16:53:00 2008 +0100

    Add bug closer

diff --git a/debian/changelog b/debian/changelog
index b672544..3a27448 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 xserver-xorg-input-evdev (1:2.1.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
+    + Store device file's minor/major to avoid duplicate devices
+      (closes: #505635)
 
  -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 19 Nov 2008 15:34:39 +0200
 

commit 6c4746bb84578c7c8af86ff0bf6470afdda0b6ef
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Nov 26 16:49:52 2008 +0100

    Update upstream changelog

diff --git a/ChangeLog b/ChangeLog
index c1249c8..9740312 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+commit b879ae73510ad733c266fba80e0ec4b0f903e71b
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Mon Nov 17 09:27:25 2008 +1000
+
+    evdev 2.1
+
+commit 53566b7d4d7e641df4db5720ae9132eb4c812c84
+Author: Peter Hutterer <peter.hutterer@redhat.com>
+Date:   Mon Nov 17 10:03:11 2008 +1000
+
+    Store device file's minor/major to avoid duplicate devices.
+    
+    Devices added that use the same min/maj as an already added device are ignored
+    by the driver. This way users can have an xorg.conf entry on
+    /dev/input/by-id/blahblah and not get the same device added by HAL.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+    (cherry picked from commit 63af314368cec47b6b8266db331f2c820e7a071f)
+
+commit 29c2765fc30c74171e51ba694ea4810916803c31
+Author: Fernando Carrijo <fcarrijo@yahoo.com.br>
+Date:   Thu Nov 6 13:20:16 2008 -0500
+
+    Fix error message
+    (cherry picked from commit 4c5c9c111d406e5590429377262b86e91868ef76)
+
 commit 7ef4e2c5e14e558f41fb7f411e2976f517b6b526
 Author: Peter Hutterer <peter.hutterer@redhat.com>
 Date:   Mon Nov 3 13:47:15 2008 +1030

commit 7a0c4edcbf434043eb022c87086f97fb5ef398cb
Author: Timo Aaltonen <tjaalton@cc.hut.fi>
Date:   Wed Nov 19 15:37:09 2008 +0200

    Update the changelog.

diff --git a/debian/changelog b/debian/changelog
index 9d09e19..b672544 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-input-evdev (1:2.1.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Timo Aaltonen <tepsipakki@ubuntu.com>  Wed, 19 Nov 2008 15:34:39 +0200
+
 xserver-xorg-input-evdev (1:2.0.99.3-1) experimental; urgency=low
 
   [ Timo Aaltonen ]

commit b879ae73510ad733c266fba80e0ec4b0f903e71b
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Nov 17 09:27:25 2008 +1000

    evdev 2.1

diff --git a/configure.ac b/configure.ac
index f1d06cd..f668d1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-input-evdev],
-        2.0.99.3,
+        2.1.0,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-input-evdev)
 

commit 53566b7d4d7e641df4db5720ae9132eb4c812c84
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Nov 17 10:03:11 2008 +1000

    Store device file's minor/major to avoid duplicate devices.
    
    Devices added that use the same min/maj as an already added device are ignored
    by the driver. This way users can have an xorg.conf entry on
    /dev/input/by-id/blahblah and not get the same device added by HAL.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
    (cherry picked from commit 63af314368cec47b6b8266db331f2c820e7a071f)

diff --git a/src/evdev.c b/src/evdev.c
index 3051531..25325a3 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -32,6 +32,7 @@
 
 #include <X11/keysym.h>
 
+#include <sys/stat.h>
 #include <unistd.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -51,6 +52,10 @@
 #include <evdev-properties.h>
 #endif
 
+#ifndef MAXDEVICES
+#include <inputstr.h> /* for MAX_DEVICES */
+#define MAXDEVICES MAX_DEVICES
+#endif
 
 /* 2.4 compatibility */
 #ifndef EVIOCGRAB
@@ -112,6 +117,88 @@ static Atom prop_calibration = 0;
 static Atom prop_swap = 0;
 #endif
 
+/* All devices the evdev driver has allocated and knows about.
+ * MAXDEVICES is safe as null-terminated array, as two devices (VCP and VCK)
+ * cannot be used by evdev, leaving us with a space of 2 at the end. */
+static EvdevPtr evdev_devices[MAXDEVICES] = {0};
+
+static int
+EvdevGetMajorMinor(InputInfoPtr pInfo)
+{
+    struct stat st;
+
+    if (fstat(pInfo->fd, &st) == -1)
+    {
+        xf86Msg(X_ERROR, "%s: stat failed (%s). cannot check for duplicates.\n",
+                pInfo->name, strerror(errno));
+        return 0;
+    }
+
+    return st.st_rdev;
+}
+
+/**
+ * Return TRUE if one of the devices we know about has the same min/maj
+ * number.
+ */
+static BOOL
+EvdevIsDuplicate(InputInfoPtr pInfo)
+{
+    EvdevPtr pEvdev = pInfo->private;
+    EvdevPtr* dev   = evdev_devices;
+
+    if (pEvdev->min_maj)
+    {
+        while(*dev)
+        {
+            if ((*dev) != pEvdev &&
+                (*dev)->min_maj &&
+                (*dev)->min_maj == pEvdev->min_maj)
+                return TRUE;
+            dev++;
+        }
+    }
+    return FALSE;
+}
+
+/**
+ * Add to internal device list.
+ */
+static void
+EvdevAddDevice(InputInfoPtr pInfo)
+{
+    EvdevPtr pEvdev = pInfo->private;
+    EvdevPtr* dev = evdev_devices;
+
+    while(*dev)
+        dev++;
+
+    *dev = pEvdev;
+}
+
+/**
+ * Remove from internal device list.
+ */
+static void
+EvdevRemoveDevice(InputInfoPtr pInfo)
+{
+    EvdevPtr pEvdev = pInfo->private;
+    EvdevPtr *dev   = evdev_devices;
+    int count       = 0;
+
+    while(*dev)
+    {
+        count++;
+        if (*dev == pEvdev)
+        {
+            memmove(dev, dev + 1,
+                    sizeof(evdev_devices) - (count * sizeof(EvdevPtr)));
+            break;
+        }
+        dev++;
+    }
+}
+
 
 static void
 SetXkbOption(InputInfoPtr pInfo, char *name, char **option)
@@ -205,6 +292,7 @@ EvdevReopenTimer(OsTimerPtr timer, CARD32 time, pointer arg)
             DisableDevice(pInfo->dev);


Reply to: