Subject: pkg/30083: [PATCH] devel/libglade2 fails to link against all necessary libraries
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <idart@performancedesign.no>
List: pkgsrc-bugs
Date: 04/28/2005 17:20:01
>Number: 30083
>Category: pkg
>Synopsis: [PATCH] devel/libglade2 fails to link against all necessary libraries
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Apr 28 17:20:01 +0000 2005
>Originator: Idar Tollefsen
>Release: N/A
>Organization:
Performance Design
>Environment:
Darwin fulcrum.local 7.9.0 Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Power Macintosh powerpc
>Description:
When trying to build devel/libglade2 I get the following:
Configuration - output:
checking for GTK+ - version >= 2.5.0... no
*** Could not run GTK+ test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding GTK+ or finding the wrong
*** version of GTK+. If it is not finding GTK+, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
Configuration - config.log (PS: ${PREFIX} == "/usr/local"):
configure:9034: checking for GTK+ - version >= 2.5.0
configure:9149: gcc -pipe -o conftest -O2 -I/usr/local/include -I/usr/include -I/usr/local/include/freetype2 -DXTHREADS -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include -I/usr/X11R6/include -I/usr/local/include/atk-1.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/freetype2 -I/usr/local/include/glib/glib-2.0 -I/usr/local/lib/glib-2.0/include -O2 -no-cpp-precomp -I/usr/local/include -I/usr/include -I/usr/local/include/freetype2 -L/usr/local/lib -L/usr/lib -L/usr/X11R6/lib conftest.c -L/usr/local/lib -lgtk-x11-2.0 -lintl >&5
ld: /var/tmp//ccnu3lrQ.o illegal reference to symbol: _g_strdup defined in indirectly referenced dynamic library /usr/local/lib/libglib-2.0.0.dylib
Build - output:
gcc -pipe -dynamiclib -o .libs/libglade-2.0.0.0.7.dylib .libs/glade-init.o .libs/glade-xml.o .libs/glade-parser.o .libs/glade-gtk.o -L/usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib -L/usr/local/pkgsrc/devel/libglade2/work/.x11-buildlink/lib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libxml2.dylib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libz.dylib -lm /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libatk-1.0.dylib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libgobject-2.0.dylib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libgmodule-2.0.dylib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libgtk-x11-2.0.dylib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libglib-2.0.dylib /usr/lib/libiconv.dylib /usr/local/pkgsrc/devel/libglade2/work/.buildlink/lib/libintl.dylib /usr/lib/libc.dylib -install_name /usr/local/lib/libglade-2.0.0.dylib -Wl,-compatibility_version -Wl,1 -Wl,-current_version -Wl,1.7
ld: .libs/glade-init.o illegal reference to symbol: _pango_split_file_list defined in indirectly referenced dynamic library /usr/local/lib/libpango-1.0.0.dylib
ld: .libs/glade-xml.o illegal reference to symbol: _gdk_color_get_type defined in indirectly referenced dynamic library /usr/local/lib/libgdk-x11-2.0.0.dylib
ld: .libs/glade-xml.o illegal reference to symbol: _gdk_pixbuf_get_type defined in indirectly referenced dynamic library /usr/local/lib/libgdk_pixbuf-2.0.0.dylib
/usr/bin/libtool: internal link edit command failed
>How-To-Repeat:
Try to configure and build devel/libglade2.
It's possible that this problem is Darwin/OS X specific.
If it is, try to configure and build devel/libglade2 on Darwin/OS X.
>Fix:
Add linking against gdk, gdk-pixbuf and pango.
Add explicit dependencies for the above.
The linking part is handled by patching the configure script.
devel/libglade2/patches/patch-aa already modifies the configure script.
To avoid patching the configure script twice, I chose to add to
patch-aa. The patch-aa listed below is therefore a combination of the
original patch-aa and the new link stuff. Just let me know if you would
rather prefer a patch to the patch, or a completely separate patch.
The patch against devel/libglade2/Makefile installs the necessary
dependencies.
Note that there is a discrepancy between the versions required by the
Makefile and the version required in configure. That's because
configure already depended on 2.5 and the Makefile already listed 2.6.
I saw no sense in confusing the issue by starting to list 2.6 versions
in configure.
Patch against devel/libglade2/Makefile:
---------------------------------------
--- libglade2.orig/Makefile Thu Apr 28 18:39:25 2005
+++ libglade2/Makefile Thu Apr 28 18:38:16 2005
@@ -27,8 +27,11 @@
${PREFIX}/share/xml/libglade/glade-2.0.dtd
BUILDLINK_DEPENDS.atk+= atk>=1.9.0
-BUILDLINK_DEPENDS.glib2+= glib2>=2.6.0
-BUILDLINK_DEPENDS.gtk2+= gtk2+>=2.6.0
+BUILDLINK_DEPENDS.gtk2+= gtk2+>=2.5.0
+BUILDLINK_DEPENDS.gdk+= gdk>=2.5.0
+BUILDLINK_DEPENDS.gdk-pixbuf+= gdk-pixbuf>=2.5.0
+BUILDLINK_DEPENDS.glib2+= glib2>=2.5.0
+BUILDLINK_DEPENDS.pango+= pango>=1.8.0
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/lib/libglade/2.0
New devel/libglade2/patches/patch-aa:
---------------------------------------
--- configure.orig Fri Feb 11 14:11:23 2005
+++ configure Thu Apr 28 18:30:29 2005
@@ -8968,7 +8968,7 @@
enable_gtktest=yes
fi;
- pkg_config_args=gtk+-2.0
+ pkg_config_args="gtk+-2.0 gdk-2.0 gdk-pixbuf-2.0 glib-2.0 pango"
for module in .
do
case "$module" in
@@ -9459,23 +9459,23 @@
else
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo "$as_me:$LINENO: checking for libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 glib-2.0 >= 2.5.0" >&5
-echo $ECHO_N "checking for libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 glib-2.0 >= 2.5.0... $ECHO_C" >&6
+ echo "$as_me:$LINENO: checking for libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 gdk-2.0 >= 2.5.0 gdk-pixbuf-2.0 >= 2.5.0 glib-2.0 >= 2.5.0 pango >= 1.8.0" >&5
+echo $ECHO_N "checking for libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 gdk-2.0 >= 2.5.0 gdk-pixbuf-2.0 >= 2.5.0 glib-2.0 >= 2.5.0 pango >= 1.8.0... $ECHO_C" >&6
- if $PKG_CONFIG --exists " libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 glib-2.0 >= 2.5.0" ; then
+ if $PKG_CONFIG --exists " libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 gdk-2.0 >= 2.5.0 gdk-pixbuf-2.0 >= 2.5.0 glib-2.0 >= 2.5.0 pango >= 1.8.0" ; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
succeeded=yes
echo "$as_me:$LINENO: checking LIBGLADE_CFLAGS" >&5
echo $ECHO_N "checking LIBGLADE_CFLAGS... $ECHO_C" >&6
- LIBGLADE_CFLAGS=`$PKG_CONFIG --cflags " libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 glib-2.0 >= 2.5.0"`
+ LIBGLADE_CFLAGS=`$PKG_CONFIG --cflags " libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 gdk-2.0 >= 2.5.0 gdk-pixbuf-2.0 >= 2.5.0 glib-2.0 >= 2.5.0 pango >= 1.8.0"`
echo "$as_me:$LINENO: result: $LIBGLADE_CFLAGS" >&5
echo "${ECHO_T}$LIBGLADE_CFLAGS" >&6
echo "$as_me:$LINENO: checking LIBGLADE_LIBS" >&5
echo $ECHO_N "checking LIBGLADE_LIBS... $ECHO_C" >&6
- LIBGLADE_LIBS=`$PKG_CONFIG --libs " libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 glib-2.0 >= 2.5.0"`
+ LIBGLADE_LIBS=`$PKG_CONFIG --libs " libxml-2.0 >= 2.4.10 atk >= 1.9.0 gtk+-2.0 >= 2.5.0 gdk-2.0 >= 2.5.0 gdk-pixbuf-2.0 >= 2.5.0 glib-2.0 >= 2.5.0 pango >= 1.8.0"`
echo "$as_me:$LINENO: result: $LIBGLADE_LIBS" >&5
echo "${ECHO_T}$LIBGLADE_LIBS" >&6
else
@@ -11266,6 +11266,7 @@
+if false; then
if test -n "$PYTHON"; then
# If the user set $PYTHON, use it and don't search something else.
echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.0" >&5
@@ -11468,6 +11469,8 @@
have_python=false
fi
fi
+fi
+have_python=false
if $have_python; then