|| ||Steve Langasek <vorlon-AT-debian.org>|
|| ||X11R7 and what this transition means for you|
|| ||Sun, 16 Apr 2006 18:44:20 -0700|
A couple of you might have noticed that X11R7, AKA Xorg 7.0, has been
uploaded to unstable.
A couple of you might also have noticed that it brought a few bugs with it.
While the XSF are busily working through the bugs that are properly their
own, I'll take a moment to let the rest of you know what the implications
are for other packages, now that things have settled somewhat and we have a
clear idea of where things stand and where they're going.
1) Since X11R6 is no more, the X11R6 heirarchy is going away. One of the
major changes of X11R7 is that it installs directly into the FHS paths under
/usr, with a number of consequences. First, we already know about various
packages that hard-code references to binaries in /usr/X11R6/bin, binaries
that have now moved to /usr/bin. Second, /usr/X11R6/bin was not in the
default shell path in Debian -- only /usr/bin/X11 was, as a symlink to
/usr/X11R6/bin. Since /usr/bin/X11 now points to /usr/bin, the true home of
X11R7, this means both that some packages will fail to find binaries they
look for in /usr/X11R6/bin because they've moved to /usr/bin, and that other
packages will fail to find binaries in the path because they're hidden in
To resolve this, I asked David Nusinow for, and he agreed to, a hard cut of
/usr/X11R6/bin to /usr/bin, turning /usr/X11R6/bin into a symlink to
/usr/bin after all files have been removed from it. (You may notice that
there are still some bugs in this transition process; they will hopefully
all be ironed out with the upload of xorg 1:7.0.13.)
In order to force the move of these files so the directory can be converted
to a symlink, the x11-common package has added a *lot* of versioned
conflicts with those packages that used to install to /usr/X11R6/bin. Bugs
have not yet been filed against these packages asking for them to move,
because the transition plan was only put together after the upload to
unstable; but hopefully we'll get these bugs out to you soon as needed, to
the maintainers of packages listed at
If you have a package with a hard-coded reference to /usr/X11R6/bin, please
do *not* change this to /usr/bin today without considering the effects: this
will leave your package incompatible with the sarge versions of its
dependencies, which might not otherwise have been the case. With the compat
symlink in place, we can take our time to do this right.
2) The xutils-dev package has been updated with an imake which knows to
install to /usr instead of to /usr/X11R6. If your package installs to
/usr/X11R6 using imake, there's a chance your package can be fixed via
binNMU, in which case you won't need a bug at all from 1). However, some
imake-using packages also have hard-coded references to /usr/X11R6 in their
debian/ directories, which will also need to be updated for a complete
transition. In that case, please build-depend on xutils-dev (>= 1:1.0.2-2).
3) The xutils-dev change also means that there's almost nothing left in
unstable which knows to look in /usr/X11R6/lib for libraries; neither the
standard autoconf macros, nor imake, will succeed in finding any libraries
or headers under /usr/X11R6 now. If you have a library package that still
installs to /usr/X11R6/lib (there are still a few, presumably all
imake-using), please update it ASAP to use the FHS paths. This doesn't have
to be done as a hard transition, fortunately, but most of your
reverse-depends probably FTBFS until your libraries and headers are moved.
4) Not actually tied to the Xorg transition, but overlapping it, the
libxrender-dev and libxcursor-dev packages have stopped shipping their
libtool .la files. This is a reasonable change to make since these packages
ship pkg-config .pc files that can be used to query all the needed
information much more effectively, but it means all -dev packages for all
libraries that transitively depend on libxcursor or libxrender have to be
rebuilt to know about this removal (which is part of what makes removing
them a good idea!). These rebuilds are in process, with binNMUs where
possible, but a number of these packages are unfortunately not binNMU-safe,
or require sourceful updates because...
5) The xlibs-static-pic and xlibs-static-dev packages have been dropped,
which makes the build-depends of a number of packages unsatisfiable. Since
these libraries are now shared libraries rather than static libs, it doesn't
make sense to keep around these static packages -- instead, packages that
build-depend on them will need to be updated to use the individual lib
6) Finally, in addition to everything else that's moving out of /usr/X11R6/,
packages providing fonts for X should now install to /usr/share/fonts/X11
instead of to /usr/X11R6/lib/X11/fonts. The heirarchy is the same as
before, as are the commands to manage fonts; to ensure your font package's
compatibility with the installed Xorg system, you should only need to bump
your dependency on xutils to xutils (>> 1:7.0.0). The plan is that
xorg.conf will support both the old and new paths by default for this
Policy of course also needs to be updated to reflect all of these changes in
That covers all the known X11R7 issues today that affect other packages.
Please do your part to help make this transition go as quickly as possible
by taking care of these issues in your packages, while the XSF hunts down
the transition bugs remaining in their own.
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
to post comments)