[ubuntu-x] Backported features from xserver 1.8
Timo Aaltonen
timo.aaltonen at aalto.fi
Thu Mar 25 13:49:47 GMT 2010
Ok, since this made the headlines on Phoronix I should probably correct
some misconceptions and explain a bit more to the greater public.
First of all, backporting xorg.conf.d/inputclass was discussed already in
December when the support was merged upstream. I backported these then and
tried them out, and it worked fine. I think the only blocker, as
Debian is concerned, was that the video driver autoconfig fallbacks had
never worked when there was an xorg.conf present, and with xorg.conf.d
config snippets, that condition would've always been true. The new patch
from SUSE seems to fix that, so the blocker is gone (and release blockers
remain ;).
Debian & Ubuntu have shipped an older version of the udev support
patch-set by Julien Cristau for months now. The main diff versus the
upstream version is that the vendor/driver matching is done by udev rules
and not by xorg.conf.d config snippets as in 1.8 (where udev config is
ignored). So the way how the input drivers are loaded has not been changed
here, only the mechanism of telling the xserver about the drivers (and
which is already used by Fedora 13 and openSUSE, possibly others).
There's more to 1.8 than just these features. Here's the diffstat of only
these patches applied on top of 1.7.6:
Xi/stubs.c | 3
config/Makefile.am | 20 +
config/config-backends.h | 21 +
config/config.c | 77 +++++++
config/dbus.c | 2
config/hal.c | 97 +++------
configure.ac | 27 ++
cpprules.in | 3
hw/dmx/dmxinput.c | 3
hw/kdrive/src/kinput.c | 11 -
hw/xfree86/common/xf86AutoConfig.c | 79 ++++---
hw/xfree86/common/xf86Config.c | 172 +++++++++++-----
hw/xfree86/common/xf86Globals.c | 3
hw/xfree86/common/xf86Init.c | 15 +
hw/xfree86/common/xf86Option.c | 25 --
hw/xfree86/common/xf86Priv.h | 1
hw/xfree86/common/xf86Xinput.c | 223 +++++++++++++++++++--
hw/xfree86/doc/man/Xorg.man.pre | 34 ++-
hw/xfree86/doc/man/xorg.conf.man.pre | 196 +++++++++++++++++-
hw/xfree86/parser/Configint.h | 2
hw/xfree86/parser/Layout.c | 79 +++++--
hw/xfree86/parser/Makefile.am | 1
hw/xfree86/parser/configProcs.h | 4
hw/xfree86/parser/read.c | 8
hw/xfree86/parser/scan.c | 370 ++++++++++++++++++++++++++---------
hw/xfree86/parser/write.c | 2
hw/xfree86/parser/xf86Parser.h | 48 +++-
hw/xfree86/parser/xf86tokens.h | 14 +
hw/xquartz/darwinXinput.c | 3
hw/xwin/InitOutput.c | 3
hw/xwin/winconfig.c | 40 +++
hw/xwin/winconfig.h | 1
hw/xwin/winprocarg.c | 18 +
include/dix-config.h.in | 6
include/input.h | 17 +
include/misc.h | 3
include/xorg-config.h.in | 3
os/utils.c | 40 +++
39 files changed, 1348 insertions(+), 344 deletions(-)
the libudev change alone is 415 insertions, 81 deletions - roughly a
third of the total, and something we already had. Compare that to the diff
between 1.7.6 and 1.7.99.902 (diff'ing the git tags):
608 files changed, 12060 insertions(+), 56398 deletions(-)
So it's not like there's nothing else in 1.8 ;)
The backport was not hard to create, it's just a bunch of commits on top
of each other. The tagging support needed one cleanup commit, so it's
included to minimize the diff and effort. The only real change was to not
bump the input ABI in the inputclass diff just because of the wacom driver
- the driver only needs to drop the check for the new ABI (and
build-depend on the new headers). TTBOMK, there are no other input drivers
needing the same.
Here's the full list of the backported patches with a short description
of what it does:
config-xorg-conf-d.diff "Merge dbn/xorg.conf.d"
inputclass-sans-abi9.diff "Merge dbn/inputclass"
config-libudev-backend.diff "config: add libudev config backend"
config-dont-filter-input-subsys.diff udeb backend fix (already in D/U)
xfree86-move-sanitycheck.diff inputclass fix
xfree86-init-pointer-feedback.diff more pointer accel defaults
xfree86-replace-true-false.diff xkb cleanup for the tagging support
xfree86-make-docs-match-reality.diff Ignore and tagging support 1/7
xfree86-handle-files-without-newline.diff 2/7
xfree86-add-ignore-option.diff 3/7
xfree86-allow-multiple-args.diff 4/7
xfree86-set-fnmatch-pathname-flag.diff 5/7
add-xstrtokenize-to-the-dix.diff 6/7
add-tag-matching-to-attrs.diff 7/7
xfree86-reorder-option-priorities.diff fixes config priority order
xfree86-fix-video-fallback.diff fix for the video fallbacks
xfree86-dont-complain-about-missing-coredevices.diff silence the useless error
I/T patches could've been lumped together, but didn't bother.
And let's not forget that this is just a proposal that needs to pass
_both_ Debian and Ubuntu devs. And while people are rightfully concerned
about stability (shouldn't be a problem here as pointed out above), I'm
concerned about the stability of the interfaces the users/admins need to
configure their systems. We've come a full circle from xorg.conf via hal
fdi-files to udev rules, and now back to xorg.conf{,.d}. It's mostly a
matter of deciding should we stick to the udev rules for squeeze & lucid
or not..
I've pushed the xserver and evdev/wacom/synaptics drivers to a PPA, but
the build queue is quite long. Local builds are working for me though..
--
Timo Aaltonen
Systems Specialist
IT Services, Aalto University School of Science and Technology
More information about the Ubuntu-x
mailing list