Non-standard X11 Paths

Dan Nicholson dbn.lists at gmail.com
Fri Jun 15 10:54:42 PDT 2007


On 6/12/07, Bruce Dubbs <bruce.dubbs at gmail.com> wrote:
> Dan Nicholson wrote:
> > Currently there are a couple issues with packages finding X11
> > components when they are installed to non-standard locations. I'm not
> > sure about the exact definition of non-standard, but it seems that
> > widely accepted prefixes are /usr/X11R5, /usr/X11R6 and /usr/X11. /usr
> > obviously works, too, since it's the standard toolchain search path.
> > Here are the two problem areas I know about.
>
> > Thoughts?
>
> My head hurts.  Lets regroup and summarize the issues.
>
> As I see it, there are issues on where to install X, qt, KDE, and Gnome.

I'm only going to talk about X right now since that's a pretty broad subject.

> 1.  Where does the developer recommend?

I don't think they suggest anything anymore for Xorg. If you take the
package defaults, it would just be the autoconf default, /usr/local.

> 2.  What locations do common distros use?

The only one I really know is fedora uses /usr. And what DJ has quoted
in the book: Sun uses /usr/X11. I think suse uses /usr/X11R6. Don't
know about the debian/ubuntu crowd.

> 3.  What advantages and disadvantages exist for each location?

Using /usr/X11 or /usr/X11R6 means you're more likely to be backwards
compatible. But it could be an FHS violation as DJ says. I tend to
think you could logically extend what the FHS says to include the
current Xorg release, even though it's released as X11R7.x.

http://www.x.org/wiki/Other/Press/X11R6970Released

The advantage of /usr is that X11 is integrated into your base system
just like any other component and it's definitely FHS compliant.
Things should just work because it's in the standard toolchain paths.

/opt/* is also FHS compliant, but you have to be certain that the
packages/toolchain will look there.

> 4.  What locations to other common packages expect?

X11 is unlike a lot of other components we use because it has a very
long tradition with different implementations on different platforms.
It would be great if everyone used pkg-config to find installation
details, but that's not gonna happen any time soon. No other X11
implementation that I know of uses pkg-config extensively.

Also, there are well established locations to look for X11. This is
evidenced by what I said in the first mail with the autoconf macro
AC_PATH_XTRA. Actually, I just found out that the autoconf macro will
use xmkmf first before looping through "standard" locations. In that
case, the path to your X installation is found no matter where you put
it. Anything using autoconf should be fine so long as you installed
xorg-cf-files, imake and xmkmf.

So, anything using pkg-config, autoconf or imake/xmkmf will be fine.
That covers probably almost all cases including lesstif and tk. Maybe
we don't need the compatibility symlink and we can handle oddballs on
a case by case basis.

Right now the only oddballs I know of are Qt and Python with the
tkinter module. Qt we handle with an sed on /usr/X11R6. We don't
handle Python right now. This could be accomplished with "sed -i
's%/usr/X11R6%<PREFIX>%' setup.py".

Still, I don't build many (read: none if possible) legacy X11 apps.
So, I can't say if this covers everything.

> Personally, I'd drop XFree form the book.  It's not really supported
> that well. Very few people use it any more.  It complicates the
> decisions needed above.

Fine by me. Although, they supposedly have plans for 4.7.0 and there
have been many commits (which I found out when trying to track down
the freetype internals issue).

http://www.xfree86.org/releases/releaseplans.html

The major blocker to removing before was that some people still
weren't interested in diving into the modular build. It would probably
be best to find out if this is still the case.

--
Dan



More information about the blfs-dev mailing list