summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTreeve Jelbert2009-12-03 12:37:18 +0100
committerTreeve Jelbert2009-12-03 12:37:18 +0100
commit27ace2340e275a51d19efb2a7b101f1d0607b990 (patch)
tree78bf5301b38592f69004a8c43907bf3a58ec6778
parentcfdb643c8781a31a5e945b8d0f1c9a471f3552f0 (diff)
udev - fix loop when detecting usb mice
apply upstream patch
-rwxr-xr-xdisk/udev/DETAILS1
-rw-r--r--disk/udev/HISTORY10
-rwxr-xr-xdisk/udev/PRE_BUILD3
-rw-r--r--disk/udev/mice.diff29
4 files changed, 42 insertions, 1 deletions
diff --git a/disk/udev/DETAILS b/disk/udev/DETAILS
index fcc05d789e..ee90f3d04b 100755
--- a/disk/udev/DETAILS
+++ b/disk/udev/DETAILS
@@ -1,5 +1,6 @@
SPELL=udev
VERSION=148
+ PATCHLEVEL=1
SOURCE=$SPELL-$VERSION.tar.bz2
SOURCE2=$SOURCE.sign
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
diff --git a/disk/udev/HISTORY b/disk/udev/HISTORY
index c5637a3a2d..53d2271c41 100644
--- a/disk/udev/HISTORY
+++ b/disk/udev/HISTORY
@@ -1,3 +1,13 @@
+2009-12-03 Treeve Jelbert <treeve@sourcemage.org>
+ * DETAILS: PATCHLEVEL++
+ * mice.diff: added, upstream patch
+ * PRE_BUILD: apply mice.diff
+ input_id: Fix endless loop for non-input devices
+ When being called on a device which is not in the "input" subsystem, or doesn't
+ have an "input" parent, it got stuck in an endless loop. Unfortunately this
+ includes the virtual/input/mice multiplexer, which exposes this bug on just
+ about every system.
+
2009-12-02 Treeve Jelbert <treeve@sourcemage.org>
* DETAILS: version 148
diff --git a/disk/udev/PRE_BUILD b/disk/udev/PRE_BUILD
index 7a4278e9d5..a0cf0973e3 100755
--- a/disk/udev/PRE_BUILD
+++ b/disk/udev/PRE_BUILD
@@ -15,5 +15,6 @@ else
default_pre_build &&
cd "$SOURCE_DIRECTORY"
fi &&
-
+#
+patch -p1 < $SPELL_DIRECTORY/mice.diff &&
sed -i "s:install-dist_udevconfDATA::g" Makefile.in
diff --git a/disk/udev/mice.diff b/disk/udev/mice.diff
new file mode 100644
index 0000000000..c3c390f1e7
--- /dev/null
+++ b/disk/udev/mice.diff
@@ -0,0 +1,29 @@
+From 22f9cb51c39a6fef1109bfd24e97d2fdda327a9e Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Thu, 3 Dec 2009 10:16:49 +0100
+Subject: [PATCH] input_id: Fix endless loop for non-input devices
+
+When being called on a device which is not in the "input" subsystem, or doesn't
+have an "input" parent, it got stuck in an endless loop. Unfortunately this
+includes the virtual/input/mice multiplexer, which exposes this bug on just
+about every system.
+---
+ extras/input_id/input_id.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/extras/input_id/input_id.c b/extras/input_id/input_id.c
+index 3754cde..fededa3 100644
+--- a/extras/input_id/input_id.c
++++ b/extras/input_id/input_id.c
+@@ -143,7 +143,7 @@ int main (int argc, char** argv)
+
+ /* walk up the parental chain until we find the real input device; the
+ * argument is very likely a subdevice of this, like eventN */
+- while (udev_device_get_sysattr_value(dev, "capabilities/key") == NULL)
++ while (dev != NULL && udev_device_get_sysattr_value(dev, "capabilities/key") == NULL)
+ dev = udev_device_get_parent(dev);
+
+ /* Use this as a flag that input devices were detected, so that this
+--
+1.6.5.1
+