Hello community,
here is the log from the commit of package xf86-input-evdev for openSUSE:Factory checked in at 2014-06-02 07:04:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-evdev (Old)
and /work/SRC/openSUSE:Factory/.xf86-input-evdev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-input-evdev"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-evdev/xf86-input-evdev.changes 2014-05-10 08:32:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-input-evdev.new/xf86-input-evdev.changes 2014-06-02 07:04:14.000000000 +0200
@@ -1,0 +2,6 @@
+Tue May 20 22:52:33 UTC 2014 - tobias.johannes.klausmann@mni.thm.de
+
+- Update to version 2.9.0:
+ Use the server's device list for duplicate detection (FDO#78309)
+
+-------------------------------------------------------------------
Old:
----
xf86-input-evdev-2.8.99.1.tar.bz2
New:
----
xf86-input-evdev-2.9.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-input-evdev.spec ++++++
--- /var/tmp/diff_new_pack.TpXhpR/_old 2014-06-02 07:04:14.000000000 +0200
+++ /var/tmp/diff_new_pack.TpXhpR/_new 2014-06-02 07:04:14.000000000 +0200
@@ -17,7 +17,7 @@
Name: xf86-input-evdev
-Version: 2.8.99.1
+Version: 2.9.0
Release: 0
Summary: Generic Linux input driver for the Xorg X server
License: MIT
++++++ xf86-input-evdev-2.8.99.1.tar.bz2 -> xf86-input-evdev-2.9.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/ChangeLog new/xf86-input-evdev-2.9.0/ChangeLog
--- old/xf86-input-evdev-2.8.99.1/ChangeLog 2014-04-29 02:22:16.000000000 +0200
+++ new/xf86-input-evdev-2.9.0/ChangeLog 2014-05-20 07:42:19.000000000 +0200
@@ -1,3 +1,34 @@
+commit 5d239ceb260cd554245e8f0dc3627990726ea9b9
+Author: Peter Hutterer
+Date: Thu May 15 08:41:06 2014 +1000
+
+ evdev 2.9.0
+
+ Signed-off-by: Peter Hutterer
+
+commit 13dea90bc8ef2a2e6f55fb5ff5f54afe41d22f95
+Author: Peter Hutterer
+Date: Tue May 6 09:20:05 2014 +1000
+
+ Use the server's device list for duplicate detection (#78309)
+
+ EvdevAddDevice/EvdevRemoveDevice keep a reference to the device to detect
+ duplicate devices based on the dev_t.
+
+ EvdevAddDevices was called during PreInit, EvdevRemoveDevice was called during
+ DEVICE_CLOSE. That makes it imbalanced if the device succeeds PreInit but the
+ server skips everything else because MAX_DEVICES is exceeded. So for all
+ devices after MAX_DEVICES, we'd add a reference but never remove it,
+ eventually reading/writing past evdev_devices.
+
+ The server keeps the list of devices for us anyway, so remove the copy of all
+ the pointers and instead run through the device list the server gives us.
+
+ X.Org Bug 78309 http://bugs.freedesktop.org/show_bug.cgi?id=78309
+
+ Signed-off-by: Peter Hutterer
+ Reviewed-by: Hans de Goede
+
commit b25d71616557b0f3fc5e1ca65ba9e62809d14139
Author: Peter Hutterer
Date: Tue Apr 29 10:20:42 2014 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/configure new/xf86-input-evdev-2.9.0/configure
--- old/xf86-input-evdev-2.8.99.1/configure 2014-04-29 02:21:19.000000000 +0200
+++ new/xf86-input-evdev-2.9.0/configure 2014-05-20 07:41:52.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-input-evdev 2.8.99.1.
+# Generated by GNU Autoconf 2.69 for xf86-input-evdev 2.9.0.
#
# Report bugs to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg.
#
@@ -591,8 +591,8 @@
# Identity of this package.
PACKAGE_NAME='xf86-input-evdev'
PACKAGE_TARNAME='xf86-input-evdev'
-PACKAGE_VERSION='2.8.99.1'
-PACKAGE_STRING='xf86-input-evdev 2.8.99.1'
+PACKAGE_VERSION='2.9.0'
+PACKAGE_STRING='xf86-input-evdev 2.9.0'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
PACKAGE_URL=''
@@ -1363,7 +1363,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-input-evdev 2.8.99.1 to adapt to many kinds of systems.
+\`configure' configures xf86-input-evdev 2.9.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1434,7 +1434,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-input-evdev 2.8.99.1:";;
+ short | recursive ) echo "Configuration of xf86-input-evdev 2.9.0:";;
esac
cat <<\_ACEOF
@@ -1567,7 +1567,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-input-evdev configure 2.8.99.1
+xf86-input-evdev configure 2.9.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1891,7 +1891,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-input-evdev $as_me 2.8.99.1, which was
+It was created by xf86-input-evdev $as_me 2.9.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2759,7 +2759,7 @@
# Define the identity of the package.
PACKAGE='xf86-input-evdev'
- VERSION='2.8.99.1'
+ VERSION='2.9.0'
cat >>confdefs.h <<_ACEOF
@@ -18640,7 +18640,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xf86-input-evdev $as_me 2.8.99.1, which was
+This file was extended by xf86-input-evdev $as_me 2.9.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18706,7 +18706,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-xf86-input-evdev config.status 2.8.99.1
+xf86-input-evdev config.status 2.9.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/configure.ac new/xf86-input-evdev-2.9.0/configure.ac
--- old/xf86-input-evdev-2.8.99.1/configure.ac 2014-04-29 02:20:50.000000000 +0200
+++ new/xf86-input-evdev-2.9.0/configure.ac 2014-05-20 07:41:26.000000000 +0200
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-input-evdev],
- [2.8.99.1],
+ [2.9.0],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-input-evdev])
AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/src/evdev.c new/xf86-input-evdev-2.9.0/src/evdev.c
--- old/xf86-input-evdev-2.8.99.1/src/evdev.c 2014-04-29 02:21:13.000000000 +0200
+++ new/xf86-input-evdev-2.9.0/src/evdev.c 2014-05-20 07:41:26.000000000 +0200
@@ -68,11 +68,6 @@
/* removed from server, purge when dropping support for server 1.10 */
#define XI86_SEND_DRAG_EVENTS 0x08
-#ifndef MAXDEVICES
-#include /* for MAX_DEVICES */
-#define MAXDEVICES MAX_DEVICES
-#endif
-
#define ArrayLength(a) (sizeof(a) / (sizeof((a)[0])))
#define MIN_KEYCODE 8
@@ -146,11 +141,6 @@
static Atom prop_virtual;
static Atom prop_scroll_dist;
-/* 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] = {NULL};
-
static int EvdevSwitchMode(ClientPtr client, DeviceIntPtr device, int mode)
{
InputInfoPtr pInfo;
@@ -216,58 +206,23 @@
EvdevIsDuplicate(InputInfoPtr pInfo)
{
EvdevPtr pEvdev = pInfo->private;
- EvdevPtr* dev = evdev_devices;
+ InputInfoPtr d;
- if (pEvdev->min_maj)
+ nt_list_for_each_entry(d, xf86FirstLocalDevice(), next)
{
- while(*dev)
- {
- if ((*dev) != pEvdev &&
- (*dev)->min_maj &&
- (*dev)->min_maj == pEvdev->min_maj)
- return TRUE;
- dev++;
- }
- }
- return FALSE;
-}
+ EvdevPtr e;
-/**
- * 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;
+ if (strcmp(d->drv->driverName, "evdev") != 0)
+ continue;
- while(*dev)
- {
- count++;
- if (*dev == pEvdev)
- {
- memmove(dev, dev + 1,
- sizeof(evdev_devices) - (count * sizeof(EvdevPtr)));
- break;
- }
- dev++;
+ e = (EvdevPtr)d->private;
+ if (e != pEvdev &&
+ e->min_maj &&
+ e->min_maj == pEvdev->min_maj)
+ return TRUE;
}
+
+ return FALSE;
}
static BOOL
@@ -2026,7 +1981,6 @@
xf86IDrvMsg(pInfo, X_INFO, "Close\n");
EvdevCloseDevice(pInfo);
EvdevFreeMasks(pEvdev);
- EvdevRemoveDevice(pInfo);
pEvdev->min_maj = 0;
break;
@@ -2659,8 +2613,6 @@
pInfo->type_name);
pInfo->type_name = pEvdev->type_name;
- EvdevAddDevice(pInfo);
-
if (pEvdev->flags & EVDEV_BUTTON_EVENTS)
{
EvdevMBEmuPreInit(pInfo);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org