Subject: Re: Anyone else having trouble building pango with current? + KDE3 trouble
To: Jaromir Dolecek <jdolecek@NetBSD.org>
From: Frank Kardel <kardel@acm.org>
List: current-users
Date: 11/09/2003 20:18:39
Thank for the quick response !

On Sun, Nov 09, 2003 at 05:32:10PM +0100, Jaromir Dolecek wrote:
> Frank Kardel wrote:
> > Yepp - same here.
> 
> Peple having problem with Xrender, please:
> 
> 1. deinstall x11-links
> 2. make clean, build & install x11-links package again.
> 3. make sure you have rev. 1.11 if pkgsrc/fonts/Xft2/buildlink2.mk
>   (eventually do 'cvs update -r 1.11 pkgsrc/fonts/Xft2/buildlink2.mk')
> 4. try building 
Thanks for the hints. I did the following
	- clean checkout of pkgsrc     # for a clean tree
	- update pkgsrc/fonts/Xft2/buildlink2.mk to 1.11
	- add KDE3_NSPLUGINS=YES and ECHO_BUILDLINK_MSG=echo to chroot mk.conf
	- pkg_comp makeroot # for a clean build environment
	- pkg_comp build shells/tcsh [...]/perl58 [...]/openmotif
	- pkg_comp meta-pkgs/kde3

1) Xrender is explicitly created - Xfrees Xrender is ignored.
] ===> Applying pkgsrc patches for Xrender-0.8.3nb1
] ===> Overriding tools for Xrender-0.8.3nb1
] ===> Buildlinking for Xrender-0.8.3nb1
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/as
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/cc
] Linking wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/gcc
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/c++
] Linking wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/g++
] Linking wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/CC
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/cpp
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/ld
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/libtool
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/shlibtool
] Creating wrapper: /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink/bin/imake
] Linking render files into /pkg_comp/obj/pkgsrc/x11/Xrender/work.i386/.buildlink.
] ===> Configuring for Xrender-0.8.3nb1
] => Adding rpaths to pkgconfig files.
] ...
] (cd .libs && rm -f libXrender.la && ln -s ../libXrender.la libXrender.la)
] => Fixing buildlink references in files-to-be-installed.
] ===> Installing for Xrender-0.8.3nb1
] /bin/sh ./mkinstalldirs /usr/pkg/lib
]  /bin/sh ./libtool --mode=install /usr/bin/install -c -o root -g wheel  libXrender.la /usr/pkg/lib/libXrender.la
] /usr/bin/install -c -o root -g wheel .libs/libXrender.so.1.2 /usr/pkg/lib/libXrender.so.1.2
] (cd /usr/pkg/lib && rm -f libXrender.so.1 && ln -s libXrender.so.1.2 libXrender.so.1)
] (cd /usr/pkg/lib && rm -f libXrender.so && ln -s libXrender.so.1.2 libXrender.so)
] (cd /usr/pkg/lib && rm -f libXrender.so && ln -s libXrender.so.1.2 libXrender.so)
] /usr/bin/install -c -o root -g wheel .libs/libXrender.lai /usr/pkg/lib/libXrender.la
] /usr/bin/install -c -o root -g wheel .libs/libXrender.a /usr/pkg/lib/libXrender.a
] ranlib /usr/pkg/lib/libXrender.a
] chmod 644 /usr/pkg/lib/libXrender.a
] ----------------------------------------------------------------------
] Libraries have been installed in:
]    /usr/pkg/lib
] 
] If you ever happen to want to link against installed libraries
] in a given directory, LIBDIR, you must either use libtool, and
] specify the full pathname of the library, or use the `-LLIBDIR'
] flag during linking and do at least one of the following:
]    - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
]      during execution
]    - add LIBDIR to the `LD_RUN_PATH' environment variable
]      during linking
]    - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
]    - have your system administrator add LIBDIR to `/etc/ld.so.conf'
] 
] See any operating system documentation about shared libraries for
] more information, such as the ld(1) and ld.so(8) manual pages.
] ----------------------------------------------------------------------
] /bin/sh ./mkinstalldirs /usr/pkg/include/X11/extensions
]  install -c -o root -g wheel -m 444 Xrender.h /usr/pkg/include/X11/extensions/Xrender.h
] /bin/sh ./mkinstalldirs /usr/pkg/lib/pkgconfig
]  install -c -o root -g wheel -m 444 xrender.pc /usr/pkg/lib/pkgconfig/xrender.pc
] awk: cmd. line:1: warning: escape sequence `\/' treated as plain `/'
] ===> [Automatic ELF shared object handling]
] ===> Registering installation for Xrender-0.8.3nb1
] ===> Packaging Xrender-0.8.3nb1
] ===> Building binary package for Xrender-0.8.3nb1
] Creating package /pkg_comp/packages/All/Xrender-0.8.3nb1.tgz
] ...

2) pango starts to build - ECHO_BUILDLINK_MSG gives this output:
] ===> Overriding tools for pango-1.2.5
] ===> Buildlinking for pango-1.2.5
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/as
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/cc
] Linking wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/gcc
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/c++
] Linking wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/g++
] Linking wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/CC
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/cpp
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/ld
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/libtool
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/shlibtool
] Creating wrapper: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/bin/imake
] Linking iconv files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Linking gettext files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Creating libtool archive: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libintl.la
] Linking pthread files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Creating libtool archive: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libpthread.la
] Linking glib2 files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Linking zlib files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Creating libtool archive: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libz.la
] Linking freetype2 files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Creating libtool archive: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libfreetype.la
] Linking expat files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Linking fontconfig files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] Linking Xrender files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
NO .la file is created here!
] Linking Xft2 files into /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink.
] ===> Configuring for pango-1.2.5
] ...

3) pango build aborts to not existing .la file:
] /bin/sh ../libtool --mode=link cc  -O2  -I/usr/pkg/include -I/usr/X11R6/include -Wall -Wl,-R/usr/lib  -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib -o libpangoxft-1.0.la -rpath /usr/pkg/lib -version-info 200:5:200 pangoxft-font.lo pangoxft-fontmap.lo module-defs-xft.lo opentype/libpango-ot.la libpango-1.0.la  -Wl,-R/usr/pkg/lib -Wl,-R/usr/X11R6/lib -L/usr/pkg/lib -L/usr/X11R6/lib -lXft -lfreetype -lXrender -lX11 -lfontconfig    -lintl
] libtool: link: warning: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libgobject-2.0.la' seems to be moved
] libtool: link: warning: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libgmodule-2.0.la' seems to be moved
] libtool: link: warning: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libglib-2.0.la' seems to be moved
] libtool: link: warning: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libintl.la' seems to be moved
] libtool: link: warning: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libfontconfig.la' seems to be moved
] libtool: link: warning: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libexpat.la' seems to be moved
] grep: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libXrender.la: No such file or directory
] sed: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libXrender.la: No such file or directory
] libtool: link: `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/libXrender.la' is not a valid libtool archive
] gmake[3]: *** [libpangoxft-1.0.la] Error 1
] gmake[3]: Leaving directory `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/pango-1.2.5/pango'
] gmake[2]: *** [all-recursive] Error 1
] gmake[2]: Leaving directory `/pkg_comp/obj/pkgsrc/devel/pango/work.i386/pango-1.2.5/pango'
] gmake[1]: *** [all-recursive] Error 1
] 

This setup seems to fall over a missing .la file for libXrender. The described setup lead to an unnecessary forced build of libXrender.
(which was mentioned being a problem)
] pkg_comp# pkg_info -v Xrender
] parsing: .
] path: /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/.
] trying PKG_PATH /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/.
] trying PKG_PATH /pkg_comp/obj/pkgsrc/devel/pango/work.i386/.buildlink/lib/.
] Information for Xrender-0.8.3nb1:
] 
] Comment:
] Client library for the X Rendering Extension protocol
] 
] Required by:
] Xft2-2.1.2nb1
] 
] Description:
] The X Rendering Extension introduces digital image composition as the
] foundation of a rendering model within the X Window System.  Rendering
] geometric figures is accomplished by client-side tesselation into either
] triangles or trapezoids.  Text is drawn by loading glyphs into the server
] and rendering sets of them.
] 
] This package contains the client library for connecting to a Xserver that
] supports the Xrender extension.
] 
] Homepage:
] http://fontconfig.org/
] 
] Packing list:
]         Package name: Xrender-0.8.3nb1
]         CWD to: /usr/pkg
]         Comment: $NetBSD: PLIST,v 1.4 2003/10/03 20:11:41 xtraeme Exp $
]         File: include/X11/extensions/Xrender.h
]         Comment: MD5:8a3e85bd721db5b0f3e90a11955f0bd4
]         File: lib/libXrender.a
]         Comment: MD5:f1ef9f8f6bc2a02e54ce59509a9e3d2d
]         File: lib/libXrender.la
]         Comment: MD5:7d3634838bbb551fe68122c806cef459
]         File: lib/libXrender.so
]         File: lib/libXrender.so.1
]         File: lib/libXrender.so.1.2
]         Comment: MD5:653be70bc8ae4dd58c5b9a4243f677ac
]         File: lib/pkgconfig/xrender.pc
]         Comment: MD5:8b89784b6d03dd66ee8b3139decbe0ea
] Size of this package in bytes: 77303
] 
] Size in bytes including required pkgs: 77303
] pkg_comp#

In pango buildlink picks up the system Xrender files (from /usr/X11R6/*) despite the existence of a package version.
The x11/Xrender/buildlink2.mk file for Xrender does not have provisions for building a fake .la file when it picks
up a system installed library (see my previuos mail). That fix should at least get the .la file created for libXrender.
Nevertheless i would still expect the next crash when building kdebase-3.1.4/kate/app when shlibtool attempts to look
in /usr/X11R6/lib for libXrender.la after having already seen one in the .buildlink directory - beats me.

Is there anything i could have missed - like some interaction with pkg_comp?. pkg_comp looked to me the cleanest way to re-build
the newest packages for -current.
> 
> It's been long-standing problem that pkgsrc (needlessly) forced usage
It seems to still do that.

> of pkgsrc Xrender even when the Xrender bundled with XFree installation
> existed and works fine.
>  
> Please report if the above steps fixed your problem.
I hate to report, that i didn't make any progress - i am back with the build dying in pango - sorry.

Frank