FFE: xorg.conf.d/inputclass backport

Bug #546933 reported by Timo Aaltonen
20
This bug affects 1 person
Affects Status Importance Assigned to Milestone
virtualbox-ose (Ubuntu)
Fix Released
Undecided
Unassigned
xf86-input-evtouch (Ubuntu)
Fix Released
Undecided
Unassigned
xf86-input-wacom (Ubuntu)
Fix Released
Undecided
Unassigned
xorg-server (Ubuntu)
Fix Released
Wishlist
Timo Aaltonen
xserver-xorg-input-evdev (Ubuntu)
Fix Released
Undecided
Unassigned
xserver-xorg-input-joystick (Ubuntu)
Fix Released
Undecided
Unassigned
xserver-xorg-input-synaptics (Ubuntu)
Fix Released
Undecided
Unassigned
xserver-xorg-input-vmmouse (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

I've written a couple of lengthy posts on the debian-x/ubuntu-x mailinglists* but here's a short summary:

- a backport of xorg.conf.d & inputclass support from xserver 1.8 packaged here:
https://edge.launchpad.net/~tjaalton/+archive/test/+packages
- this would allow us to not have an intermediate file format for input driver configuration on an LTS (udev rules)
- the change is not that huge though it sounds like it. the drivers would still use udev hotplug, just the source of configuration would be new
- since we want to be in sync with Debian, this would have to be agreed on by both parties. Their biggest (only?) blocker is now gone by including the video fallback patch from SUSE.
- needed driver changes are small (shipping an xorg.conf.d snippet), and already done for the most part
- this could be shipped quickly

...

*https://lists.ubuntu.com/archives/ubuntu-x/2010-March/000858.html

Revision history for this message
Martin Pitt (pitti) wrote :

By now this affects a couple of xserver-xorg-input-* packages, since they need their udev rules replaced by equivalent xorg.conf.d/ snippets, right? Do you have a list which are affected?

Although this is quite a large change, I tend to be in favor of it, to avoid users/OEMs having to rewrite their old fdi files into udev rules and then again into conf.d snippets, and udev rules aren't "blessed" by upstream so far, thus with xorg.conf.d we'd get better support from both upstream as well as documentation/forums out there.

What's the status on the Debian side? Are they waiting for our decision, or on their release team's?

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

The input drivers that need a config snippet are:

- evdev (done)
- synaptics (~done, need to convert the quirks too)
- wacom (done, need to verify that serial works, but it's from fedora so I think it does)
- joystick (done)
- evtouch (done)
- vmmouse (not done, still needs the udev rule for vmmouse_detect to detect the device and then set some attribute that the InputClass can match against)

don't know of any others out there, maybe vbox but they should've done that already.

Julien from XSF hasn't reviewed the SUSE fallback patch yet, but so far it looks good apart from some style issues. I don't think their release team has been contacted yet, but maybe I should warn them about this.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

assigning to myself so I can track this better.

There was some concern on xorg-devel@ about the new autoconfig patch; the author said it'd crash the server on exit, but I couldn't reproduce it on two systems where I tried. Turns out that he had MALLOC_PERTURB_ set and that triggered the crash, and it happened even with a vanilla xserver.. So that bug was not caused by the patch, and it has now been reviewed by Dan Nicholson (author of xorg.conf.d & inputclass) for inclusion.

the thread starts here:
http://lists.x.org/archives/xorg-devel/2010-March/006401.html

Changed in xorg-server (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

The ppa now has all the drivers with inputclass configs. Vmmouse uses the udev rule to add a tag 'vmmouse' that the config then recognizes with MatchTag.

So after an upgrade from the ppa everything should still just work.

Changed in xorg-server (Ubuntu):
assignee: Timo Aaltonen (tjaalton) → nobody
importance: Undecided → Wishlist
status: New → Fix Committed
Timo Aaltonen (tjaalton)
Changed in xorg-server (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
Revision history for this message
Alberto Milone (albertomilone) wrote :

As a side note, I have added support for the new "InputClass" section in X-Kit so that the validator doesn't raise an error because of that section which would be introduced by this change in the xserver.

Revision history for this message
Martin Pitt (pitti) wrote :

Setting back to NEW, since the FFE is not approved yet.

As I explained in comment 1 I'm mildly in favor of it, although it will require a fair amount of testing. Has this also been tested on less common devices like touch screens and wacom devices?

However, I'd like to get more opinions on this. Steve, Colin, how do you feel about this?

Changed in xorg-server (Ubuntu):
status: Fix Committed → New
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

The driver functionality hasn't changed. I've tried the wacom rule and it works. Don't have a touchscreen but it would use evdev like it does now (evtouch doesn't have a udev hotplug rule atm).

Julien thought that this would not need an approval from the debian release team. We'll discuss what to do with the input ABI. WIth the inputclass backport it would be neither what's in 1.7 or what will be in 1.8, though it's only one function that was changed and only one known consumer (wacom).

I've sent an heads-up to the vbox guys, who recently did "something" to support the old udev method (asked for the 'dont-filter-tty-subsystem' patch to be added to debian).

Revision history for this message
Robert Hooker (sarvatt) wrote :

I just gave this a shot on a few machines and the only issues I found were

1) synaptics 10-synaptics.conf isn't getting installed
2) all of the old udev rules are getting installed/not getting removed by these packages
3) wacom udev rules need a bit of adjusting to accomidate this
4) xorg.conf.d snippets are located at /usr/lib/X11/xorg.conf.d/, not a problem just something new to keep in mind.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Thanks for testing!

1) actually a typo in the package, the config got installed in a wrong path... I'll upload a new one
2) yes, because they do no harm and it's easier to go back (will drop if this is accepted)
3) what exactly?
4) yes, and users/admins should use /etc/X11/xorg.conf.d or just xorg.conf

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

So the wacom rules had obsolete cruft in it, same as with the other drivers right now. Those will get cleaned when this hits the distros (sooner or later).

I've uploaded a new xserver which unbreaks the ABI by renaming the inputclass-aware NewInputDeviceRequest() to NIDR18(), and added NIDR() back (it just returns NIDR18() with the added NULL for inputclass attrs, as suggested by jcristau). NIDR18() is only used internally by the udev backend, and it's not exported as server ABI.

There's also a new wacom too which again includes the check for the new ABI, because with this xserver any upstream xf86-input-wacom release will continue to build, without any driver patching required. Wacom uses NIDR() to add the extra devices, and even with the new ABI it would just pass NULL to inputclass (because only the master device needs it anyway, and that's handled internally by the udev backend), so no functionality is lost there.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

This is a logfile from the X61 tablet with a serial wacom, using the ppa-test packages. As you can see the wacom is loaded fine, also the eraser which is loaded using the old NIDR() which calls NIDR18().

So, with that working Julien has basically approved this:
#debian-x:
17:39 < jcristau> i think at this point i'm happy with this going in

Revision history for this message
Steve Langasek (vorlon) wrote :

I agree that we want to avoid shipping an intermediate solution with udev rules if xorg.conf.d is the long-term solution.

However, to the server, this will look equivalent to having an xorg.conf again, won't it? I know there have been significant behavior differences (and bugs) in the past between a server with no xorg.conf and one with an xorg.conf, even minimal. What sort of plan is there to regression-test this?

Revision history for this message
Steve Langasek (vorlon) wrote :

Oh, I see, that's addressed by "the new autoconfig patch" you mentioned. Is that included in the backport? I think it's clearly a precondition.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

If you mean that the video driver autoconfig works differently when there's an xorg.conf, then the autoconfig/fallback patch from SUSE fixes that. And if there's a Driver section in xorg.conf, the autoconfig path is bypassed (like before).

I'm not aware of (or can't remember) other differences having a minimal xorg.conf or none at all.

<edit>

yes it's included, that's the whole point of this being accepted in debian :) (because it's sort of a failsafe mode to fall back on vesa/fbdev if the primary driver doesn't work)

Revision history for this message
Steve Langasek (vorlon) wrote :

In the mailing list thread, Bryce has a good point about the timing and our ability to test this before release. If this is going to happen, the packages need to all be in in time for beta2.

Revision history for this message
Steve Langasek (vorlon) wrote :

FWIW, even if we *didn't* take the InputClass backport, I think the autoconfig fix warrants inclusion as a straightforward bugfix.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Of course, the packages can be in the archive by tomorrow, I just need to know if I can start pushing this to pkg-xorg git ;)

Revision history for this message
Martin Pitt (pitti) wrote :

I think Steve's concerns were addressed. Timo now has an X server which supports both udev and xorg conf.d, so that we can have an orderly transition. Please go ahead with the server first.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xorg-server - 2:1.7.6-2ubuntu1

---------------
xorg-server (2:1.7.6-2ubuntu1) lucid; urgency=low

  [ Timo Aaltonen ]
  * Merge from Debian unstable. (LP: #546933)

  [ Michael Casadevall ]
  * Updated 111_armel-drv-fallbacks.patch to also add support for finding
    dovefb devices in addition to imx51 ones. (LP: #550701)

xorg-server (2:1.7.6-2) unstable; urgency=low

  [ Timo Aaltonen ]
  * Add 08-config-xorg-conf-d.diff, 09-inputclass-sans-abi9.diff,
    10-config-libudev-backend.diff. Backport xorg.conf.d, inputclass
    and libudev support from xserver 1.8. Replaces the patches we had
    before. This allows us to migrate from a temporary udev based
    input device configuration straight to the long term solution
    introduced in 1.8.
  * Add 11-xfree86-fix-video-fallback.diff from SUSE. Allows the video
    fallback method to work when there's an xorg.conf around.
  * Add 12-xfree86-dont-complain-about-missing-coredevices.diff.
    No reason to complain about these, unless AEI is off.
  * Add 13-unbreak-input-abi.diff. Keep the old NewInputDeviceRequest(),
    rename the new as NIDR18() and call it from NIDR(). This way we
    don't break the input ABI.
  * Add 14-tone-down-nidr-errors.diff. Use X_INFO instead of X_ERROR.

  [ Julien Cristau ]
  * 15-keep-udev-x11-driver.diff: keep looking for the x11_driver udev
    property as a transitional measure. This should allow the new server to
    work while drivers aren't transitioned to xorg.conf.d yet.
 -- Timo Aaltonen <email address hidden> Tue, 30 Mar 2010 22:01:12 +0300

Changed in xorg-server (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-evdev - 1:2.3.2-5ubuntu1

---------------
xserver-xorg-input-evdev (1:2.3.2-5ubuntu1) lucid; urgency=low

  * Merge from Debian unstable. (LP: #546933)
  * control, rules: Don't build the udeb.

xserver-xorg-input-evdev (1:2.3.2-5) unstable; urgency=low

  * Install 05-evdev.conf in /usr/lib/X11/xorg.conf.d.
  * Remove 65-xorg-evdev.rules, obsoleted by the above.
  * Drop the postinst, and don't depend on udev.

xserver-xorg-input-evdev (1:2.3.2-4) unstable; urgency=low

  [ Julien Cristau ]
  * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
    good reason. Thanks, Colin Watson!
  * Remove myself from Uploaders
  * 65-xorg-evdev.rules: only set x11_driver for event devices.

  [ Robert Hooker ]
  * Build xserver-xorg-input-evdev-dev on arch: all.

  [ Cyril Brulebois ]
  * Add udeb needed for the graphical installer:
    xserver-xorg-input-evdev-udeb.
  * Bump Standards-Version from 3.8.3 to 3.8.4 (no changes needed).
  * Add myself to Uploaders.
 -- Timo Aaltonen <email address hidden> Tue, 30 Mar 2010 23:41:56 +0300

Changed in xserver-xorg-input-evdev (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-synaptics - 1.2.2-1ubuntu1

---------------
xserver-xorg-input-synaptics (1.2.2-1ubuntu1) lucid; urgency=low

  * Merge from Debian unstable. (LP: #546933)
  * Rewrite old quirks to use ID_INPUT.tags.

xserver-xorg-input-synaptics (1.2.2-1) unstable; urgency=low

  [ Timo Aaltonen ]
  * New upstream release.
  * Add xserver-xorg-input-synaptics-dev for the header and .pc files.
    (LP: #340340)
  * Run udevadm trigger on postinst, and depend on udev [linux-any].
  * Add 10-synaptics.conf.
  * Drop Ubuntu specific quirks from the udev rules, add a placeholder.

  [ Julien Cristau ]
  * Add hurd-i386 to the Architecture field. Requested by Samuel Thibault.
  * Drop references to hal from debian/NEWS, README.Debian and synaptics(4)
    (closes: #564549).
  * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
    good reason. Thanks, Colin Watson!

  [ Brice Goglin ]
  * Fix reference to the synaptics manpage in README.Debian,
    closes: #568628.

xserver-xorg-input-synaptics (1.2.1-1) unstable; urgency=low

  [ Timo Aaltonen ]
  * New upstream release.

  [ Cyril Brulebois ]
  * Add ${misc:Depends} to Depends.
  * Remove hardcoded libxi6 from Depends, and wrap them.
  * Upload to unstable.
 -- Timo Aaltonen <email address hidden> Wed, 31 Mar 2010 00:27:07 +0300

Changed in xserver-xorg-input-synaptics (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-vmmouse - 1:12.6.5-4ubuntu1

---------------
xserver-xorg-input-vmmouse (1:12.6.5-4ubuntu1) lucid; urgency=low

  * Merge from Debian unstable (LP: #546933), remaining changes:
    - Add mdetect (<< 0.5.2.1ubuntu5) to Replaces: for seamless upgrade;
      may be dropped in lucid+1.

xserver-xorg-input-vmmouse (1:12.6.5-4) unstable; urgency=low

  * Add 10-vmmouse.conf.
  * Add 69-xorg-vmmouse.rules, needed to set ID_INPUT.tags.
  * Add 01-enable-detect-in-kvm.diff, closes #525039.
  * Don't install the hal fdi anymore, it's obsolete.
  * Run udevadm trigger on postinst, and depend on udev.

xserver-xorg-input-vmmouse (1:12.6.5-3) unstable; urgency=low

  [ Julien Cristau ]
  * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no
    good reason. Thanks, Colin Watson!
  * Remove myself from Uploaders

  [ Brice Goglin ]
  * Pull from upstream master branch up to commit aca67eca.
    + Stop using xf86LoaderReqSymLists since it was removed from the
      server, closes: #568403.
 -- Timo Aaltonen <email address hidden> Wed, 31 Mar 2010 00:32:06 +0300

Changed in xserver-xorg-input-vmmouse (Ubuntu):
status: New → Fix Released
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

forgot to add a bug closer for wacom.

xf86-input-wacom (1:0.10.5-0ubuntu1) lucid; urgency=low

  * Merge from debian.
  * rules: Run xsfclean on clean.

xf86-input-wacom (0.10.5-1) UNRELEASED; urgency=low

  * New upstream release.
  * Add support for serial wacoms to the udev rules.
  * Add 10-wacom.conf.

Changed in xf86-input-wacom (Ubuntu):
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xf86-input-evtouch - 0.8.8-3build1

---------------
xf86-input-evtouch (0.8.8-3build1) lucid; urgency=low

  * Fakesync from Debian because of different tarball. (LP: #546933)

xf86-input-evtouch (0.8.8-3) unstable; urgency=low

  * Add 10-evtouch.conf.
 -- Timo Aaltonen <email address hidden> Wed, 31 Mar 2010 12:49:18 +0300

Changed in xf86-input-evtouch (Ubuntu):
status: New → Fix Released
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

xserver-xorg-input-joystick (1:1.5.0-3build1) lucid; urgency=low

  * "Sync" to lucid.

Changed in xserver-xorg-input-joystick (Ubuntu):
status: New → Fix Released
Revision history for this message
Felix Geyer (debfx) wrote :

This also affects the virtualbox-ose-guest-x11 package.
Merge request for the new debian version is on bug #549588

Changed in virtualbox-ose (Ubuntu):
status: New → Fix Committed
Revision history for this message
Swen Thümmler (swen-thuemmler) wrote :

Grrr, is there any documentation how to configure input-devices with this new scheme? I had merged the rules for my G5 mouse from HAL to udev, and now my udev rules suddenly stopped working. But the documentation in https://wiki.ubuntu.com/X/InputConfiguration and https://wiki.ubuntu.com/X/Config/Input explicitly mentions 65-xorg-evdev.rules and udev as a way to configure input devices in Lucid. Imho, either the documentation should be fixed or this change reverted...

Revision history for this message
Felix Geyer (debfx) wrote :

I agree that the wiki needs to be updated.

The new X Sever configuration scheme is explained here:
http://who-t.blogspot.com/2010/01/new-configuration-world-order.html

Revision history for this message
Swen Thümmler (swen-thuemmler) wrote :

Thank you for the link.
Is there any way to continue using udev rules? Or is it possible to rescan xorg.conf.d without restarting X (with udev rules, is was possible to add rules and restart udev)? I could not find anything about this in the blog article.

Revision history for this message
Tobias Wolf (towolf) wrote :

I dropped a rule into /etc/X11/xorg.conf.d and suddenly the catchall snippets in /usr/lib/X11/xorg.conf.d weren’t applied anymore?

Can that be?

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Tobias: currently yes, there are fresh patches upstream fixing that. Put your configs in xorg.conf to work around that limitation.

Swen: no, the config dirs are only scanned on server start, though I don't see why that couldn't be fixed to be more dynamic. And the wiki will be updated before release.

Revision history for this message
Felix Geyer (debfx) wrote :

Fixed in virtualbox-ose 3.1.6-dfsg-2ubuntu1

Changed in virtualbox-ose (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Iustinian T. (iustinian) wrote :

Evdev xorg input driver doesn't support mouse resolution and samplerate which is the most stupid thing to do ever if somebody wants to stick with gaming on linux. Either enhance evdev or port the old mouse driver.

Status: hal removed
Status: udev x11_options are not passed to xorg that makes udev useless, probably a upstream low emergency bug on debian
Status: snippets in xorg.conf.d are working only 10%

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.