Hi

Many of you have been sending me private emails asking what's the deal
with xenocara libs that change WANTLIB lines in many ports that use X11.

Here's a short explanation of the differences between shared libs in XF4
and xenocara that should help you understanding and fixing issues.

First, X shared libs have always been linked against other libs they
depend on. We weighted the pros and cons of this serveral times and
decided to keep this, although in an ideal world we could get rid of
those inter-libraries links (the NEEDED lines in objdump -p).

In XF4, inter-libraries dependencies were described in the imake
configuration file called bsdLib.tmpl. We've been tried to keep this
file accurate, but it had some inaccuries of his own.

In xenocara, most libraries are built with GNU autotools and pkg-config.
That means that inter-libraries dependencies are described in the
configure.ac script (using PKG_CHECK_MODULES, AC_CHECK_LIBS or other
tricks) and Makefile.am. When converting from the monolith to the
modular build system, X.Org people tried to convert the dependencies
listed in the various lib*.tmpl files for different systems to
pkg-config data files and configure.ac tests. There have been some
errors in this process, I've fixed some of them already but the new
depencies are still not 100% accurate.

One big change in xenocara is that in X11R7.2 libX11 no longer includes
private copies of libXdmcp and libXau as it did before. So now libX11 is
linked against libXau and libXdmcp and *every* application that uses
libX11 also needs those 2 libs. This is not a bug.

Other changes in the WANTLIB lines should be inspected individually to
get the exact tree of dependencies that trigger the changes to be able
to tell if it's bogus or not.

Don't hesitate to post your findings here or to x11@ if you find some
dependencies that looks bogus. For instance libxkbui now depends on
libXt (and its dependencies) and this looks wrong.
-- 
Matthieu Herrb

Reply via email to