From: Dave V. <th...@ma...> - 2002-06-12 07:18:34
|
Masanori Sekino wrote: >gtk+ (=1.2.10-10) package provides two symlinks, `gdk -> gtk-1.2/gdk' >and `gtk -> gtk-1.2/gtk'. But they break many GNOME2 package's >compilation, so I'd like to remove them. Masanori, I've been working on Gnome 2 as well, so that I could get Nautilus working. I'm running into this same problem with libbonoboui2. The Gnome 2 packages all add '-I/sw/include/gtk-2.0 -I/sw/lib/gtk-2.0/include', so theoretically '#include <gtk/gtk.h>' should work. However, pangoxft needs freetype2, and `freetype-config --cflags` has -I/sw/include in it. The .pc (pkgconfig) file for libgnomecanvas2 puts pango before gtk+-2.0 in the Depends: field, so `pkg-config --cflags libgnomecanvas-2.0` puts -I/sw/include before -I/sw/include/gtk-2.0. This makes <gtk/gtk.h> resolve to /sw/include/gtk-1.2/gtk.h instead of the gtk 2.0 version, and that's where the problem lies. There are several possible fixes: 1) Patch the libgnomecanvas2 .pc file so that gtk+-2.0 is at the front. This is an easy fix, and I have verified that this puts -I/sw/include/gtk-2.0 before -I/sw/include in libgnomecanvas's cflags, but there is no guarantee that other packages won't also put pango first in the Depends field. 2) Prevent -I/sw/include from being added to pango's cflags. This is also easy, and is great because it will ensure that -I/sw/include will never be placed before -I/sw/include/gtk-2.0. However, this may break packages that use NoSetCPPFLAGS if they still need to include stuff from /sw/include. 3) Remove the /sw/include/gtk symlink. This is not so easy, it could cause many problems, but may be necessary. By the way, here are the Gnome 2 packages I have finished (well at least they compile) or am working on: Updated: bonobo-activation2-1.0.0 gconf2-1.1.11 gnome-vfs2(-ssl)-1.9.17 libbonobo2-2.0.0 libglade2-2.0.0 libgnomecanvas2-2.0.0 linc1-0.5.0 orbit2-2.4.0 New: eel2-0.2.27 gail15-0.15.1 libbonoboui2-2.0.0 libgnome2-2.0.0 libgnomeui2-2.0.0 nautilus-1.1.19 A couple of these packages use a very effective fix I came up with to solve the problems some packages have when upgraded. It stops programs from linking to already-installed versions of a library, instead of the upgraded version in /sw/src/%n/. Please contact me so we can coordinate our efforts. Dave Vasilevsky |