GNOME Bugzilla – Bug 352199
gdk-x11's interface doesn't seem to depend on fontconfig, xext, xrender, xinerama, xi, xrandr, xcursor, xfixes
Last modified: 2007-11-29 18:44:25 UTC
Hi, In gdk-2.0.pc.in, one can read Requires: gdk-pixbuf-2.0 @GDK_PACKAGES@ which expands to Requires: gdk-pixbuf-2.0 pango pangocairo fontconfig x11 xext xrender xinerama xi xrandr xcursor xfixes But when reading gdk headers, one can't find a single mention of fontconfig, xext, xrender, xinerama, xi, xrander, xcursor or xfixes. Gdk itself uses them, but it shouldn't expose them externally. The dependencies should hence be split into Requires: gdk-pixbuf-2.0 pango pangocairo x11 Requires.private: @GDK_PACKAGES@
While using Requires.private is probably fine now that cairo depends upon that version of pkgconfig anyways, we've already done the work to suppress them altogether: - If you are building on a normal system with shared library dependencies - If you stick with the default configure options and don't build static libraries (Static libraries take a lot more tweaking to work right with GTK+ than a simple --enable-static, and we really recommend against them.) [ Note that in addition to omittting them from the .pc file, GTK+ also hacks them out of the .la file. ]
Cairo doesn't require that version of pkg-config. It tests in configure whether pkg-config is new-enough or not, and uses plain "Requires:" in case it's not.
> we've already done the work to suppress them altogether Ah, indeed, I could verify it by building CVS version by hand. Closing bug.
Mmm, is the fix supposed to have gone in 2.10? The debian experimental package for 2.10.6 still has Requires: gdk-pixbuf-2.0 pango pangocairo fontconfig x11 xext xrender xinerama xi xrandr xcursor xfixes in its gdk-2.0.pc
Ping! Any progress? Current SVN gtk+ still appears to do the *full* expansion...
As in earlier comments, you'll only get the full version if you do --enable-static (which we don't recommend; static libraries of GTK+ are not generically useful because they break the module loading mechanism... symbols that modules depend upon may not be linked into your app.)
I've just checked out current head of gtk+ SVN, and ran configure with no flags. The gtk+-2.0.pc generated from that has the line "Requires: gdk-${target}-2.0 atk cairo" which looks like a fairly full expansion to me.
That's a perfectly good result. gdk/atk/cairo are part of the API of GTK+; GTK+ functions take arguments of type GdkWindow, cairo_t, etc. You can't include the header files for GTK+ without the appropriate -I flags for those libraries. This is different from things like freetype, libX11, etc, which are used internally, aren't exposed externally, and might be removed as dependencies in future versions of GTK+.
'k, I think I've finally figured out what the problem is. On my system (Debian, mostly unstable) I was seeing a complete expansion in gdk-2.0.pc (misc pile o' X libraries + fontconfig), but wasn't seeing that in the SVN checkout with no-flags configure. The difference appears to be the "--enable-explicit-deps=yes" flag used in the Debian gtk packages calling of configure... which I'm now going to go and complain to the Debian gtk maintainers about. Thanks for your help!
This was a Debian packaging issue, which has been resolved with the 2.12.1-2 gtk release (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343711), and so I'm closing this bug.