Comment 16 for bug 1039261

Revision history for this message
Chris Samuel (chris-csamuel) wrote : Re: Xinput extension is too old

It appears to be an X11 issue, the check itself is being done in libXi via:

    state = libXi.XIQueryVersion(display, byref(major), byref(minor))

The libXi XIQueryVersion code is here:

http://cgit.freedesktop.org/xorg/lib/libXi/tree/src/XIQueryVersion.c

That code appears to result in either BadRequest in case of an internal error, BadImplementation if it's the correct version or Success if all is OK. However, the Python code only checks for success and assumes that any failure is a version problem (not that issue seems to be the cause here).

Running synaptiks from a bash shell under xtrace shows:

[...]
000:<:0100: 8: XInputExtension-Request(131,47): XIQueryVersion major=2 minor=0
000:>:0100:Error 2=Value: major=131, minor=47, bad=2
X Error: BadValue (integer parameter out of range for operation) 2
  Extension: 131 (XInputExtension)
  Minor opcode: 47 ()
  Resource id: 0x2
[...]

So the X server is rejecting the version comparison.

Under 12.04 the transaction is different, in that the request is for a minor version of 1, not 0:

000:<:0096: 8: XInputExtension-Request(141,47): XIQueryVersion major=2 minor=1
000:>:0096:32: Reply to XIQueryVersion: major=2 minor=1

Hope this helps!