After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 352199 - gdk-x11's interface doesn't seem to depend on fontconfig, xext, xrender, xinerama, xi, xrandr, xcursor, xfixes
gdk-x11's interface doesn't seem to depend on fontconfig, xext, xrender, xine...
Status: RESOLVED NOTGNOME
Product: gtk+
Classification: Platform
Component: Backend: X11
2.8.x
Other All
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2006-08-20 21:34 UTC by Samuel Thibault
Modified: 2007-11-29 18:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Samuel Thibault 2006-08-20 21:34:08 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@
Comment 1 Owen Taylor 2006-08-21 02:09:21 UTC
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. ]
Comment 2 Behdad Esfahbod 2006-08-21 05:48:37 UTC
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.
Comment 3 Samuel Thibault 2006-08-21 08:58:56 UTC
> we've already done the work to suppress them altogether

Ah, indeed, I could verify it by building CVS version by hand. Closing bug.
Comment 4 Samuel Thibault 2006-11-15 23:25:13 UTC
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
Comment 5 palfrey 2007-10-23 13:24:04 UTC
Ping! Any progress? Current SVN gtk+ still appears to do the *full* expansion...
Comment 6 Owen Taylor 2007-10-23 13:40:25 UTC
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.)
Comment 7 palfrey 2007-10-25 15:46:33 UTC
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.
Comment 8 Owen Taylor 2007-10-25 16:08:03 UTC
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+.
Comment 9 palfrey 2007-10-25 16:23:44 UTC
'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!
Comment 10 palfrey 2007-11-29 18:44:25 UTC
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.