Subject: pkg/32880: cannot build x11/gtk2. PangoCairo problems
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <pancake@phreaker.net>
List: pkgsrc-bugs
Date: 02/20/2006 11:35:00
>Number:         32880
>Category:       pkg
>Synopsis:       cannot build x11/gtk2. PangoCairo problems
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 20 11:35:00 +0000 2006
>Originator:     pancake@phreaker.net
>Release:        Linux 2.6.15bare
>Organization:
	
>Environment:
	
	
System: Linux bare 2.6.15bare #3 PREEMPT Sat Feb 11 21:21:26 CET 2006 i686 GNU/Linux
Architecture: i686
Machine: i686
>Description:
	Since one week ago I'm unable to build x11/gtk2 on GNU/Linux, I was
	trying to trace the problem and that's what config.log says:

checking for CAIRO... yes
checking for cairo_win32_scaled_font_select_font in -lcairo... no
checking for cairo_ft_scaled_font_lock_face in -lcairo... no

Let's see the last check inside config.log

configure:22341: checking for cairo_ft_scaled_font_lock_face in -lcairo
configure:22371: gcc -o conftest -O2 -I/usr/pkg/include -I/usr/include -DGLX_GLXEXT_LEGACY -I/usr/pkg/xorg/include -I/usr/pkg/include/freetype2 -Wall -I/usr/pkg/include -I/usr/include -DGLX_GLXEXT_LEGACY -I/usr/pkg/xorg/include -I/usr/pkg/include/freetype2 -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/xorg/lib -Wl,-R/usr/pkg/xorg/lib -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lcairo   conftest.c -lcairo   >&5
/mnt/storage2/tmp/devel/pango/work/.buildlink/lib/libcairo.so: undefined reference to `FT_GlyphSlot_Embolden'
collect2: ld returned 1 exit status
configure:22377: $? = 1

It looks like it cannot resolve a FreeType symbol, so I fixed this just
adding -lfreetype to LIBS and everything goes fine:

--- configure.orig      2006-02-20 12:18:08.000000000 +0100
+++ configure   2006-02-20 12:19:13.000000000 +0100
@@ -22267,7 +22267,7 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcairo  $LIBS"
+LIBS="-lcairo  -lfreetype $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF


This check is who says to create the libpangocairo.*, but build don't crashes, but
the problem appears later on x11/gtk2 saying that he cannot find pango (when he 
would say pangocairo), because it needs cairo (it's mandatory).

The same problem happens in the pango check inside x11/gtk2, the fix is pretty 
the same before the critical check:

"  -lpango -lfreetype   "

	
>How-To-Repeat:
	
>Fix:
	

This fix is just a hack, the root of the problem remains in cairo linkage stage, where
it seems to create an invalid library. I tested this on NetBSD and GNU/Linux and seems
only to be problematic this last one.

In my approach we need to patch both gtk2 and pango configures.

Any ideas?

>Unformatted: