pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: travails of the pixman upgrade [Was: Is pango still broken? (vim-gtk2 won't build)]



On Sat, 18 Sep 2010 12:39 +0100, "Patrick Welche" <prlw1%cam.ac.uk@localhost> 
wrote:
> - I think the Ian is running NetBSD 5.0.2, and is probably hitting
>   gtk+ configure failing while trying to work out pango compile flags
>   because for some reason cairo doesn't see symbols in libpixman.
>   (I have no idea why - take a look at gtk2's config.log output...)
> [...]
> I still don't understand
>   http://mail-index.netbsd.org/pkgsrc-users/2010/09/17/msg012811.html

I don't either, but I'm now sure that the build is somehow finding
the base (xsrc) pixman. If I move the base libpixman out of the
way the build succeeds.

Details:

I'm running NetBSD/amd64-5.0.2, with default (xsrc) X11.  I ran
  pkg_delete -r pixman
  cd /usr/pkgsrc && rm -rf */*/work
Then ran "make install" by hand for pixman, cairo, pango, and gtk2,
in that order.  The first three succeeded without error.  The last
failed with the usual configure error.

  /home/netbsd/pkgsrc/x11/gtk2/work/.buildlink/lib/libcairo.so: undefined 
reference to `pixman_image_set_destroy_function'
  /home/netbsd/pkgsrc/x11/gtk2/work/.buildlink/lib/libcairo.so: undefined 
reference to `pixman_image_composite32'
  /home/netbsd/pkgsrc/x11/gtk2/work/.buildlink/lib/libcairo.so: undefined 
reference to `pixman_image_fill_boxes'

Note that the pixman libraries linked from .buildlink are the
correct (pkgsrc) ones:
  spip:/usr/pkgsrc/x11/gtk2/work/.buildlink/lib$ ls -l *pixman*
  lrwxr-xr-x  1 idleroux  wheel    26 Sep 18 21:20 libpixman-1.a ->
  /usr/pkg/lib/libpixman-1.a
  -rw-r--r--  1 idleroux  wheel  1034 Sep 18 21:20 libpixman-1.la
  lrwxr-xr-x  1 idleroux  wheel    27 Sep 18 21:20 libpixman-1.so ->
  /usr/pkg/lib/libpixman-1.so
  lrwxr-xr-x  1 idleroux  wheel    29 Sep 18 21:20 libpixman-1.so.0 ->
  /usr/pkg/lib/libpixman-1.so.0
  lrwxr-xr-x  1 idleroux  wheel    34 Sep 18 21:20 libpixman-1.so.0.18.4 ->
  /usr/pkg/lib/libpixman-1.so.0.18.4
Also, 
  ldd /home/netbsd/pkgsrc/x11/gtk2/work/.buildlink/lib/libcairo.so |grep pixman
        -lpixman-1.0 => /usr/pkg/lib/libpixman-1.so.0
  nm /usr/pkg/lib/libpixman-1.so.0
  [...]
  000000000002fc10 T pixman_image_composite32
  [...]
  0000000000030ce0 T pixman_image_fill_boxes
  [...]
  0000000000017a90 T pixman_image_set_destroy_function
  [...]

However, these symbols are absent from /usr/X11R7/lib/libpixman-1.so.0

Now if I get rid of xsrc pixman:
  cd /usr/X11R7/lib
  mkdir pixman-temp
  mv libpixman* pixman-temp
  cd /usr/pkgsrc/x11/gtk2
  make clean clean-depends
  make
then gtk2 builds without error.

So somehow the xsrc libpixman matters, even though it's not the one in
work/.buildlink

I've no experience with shared library debugging or buildlink, but
I hope someone else will find this instructive (and educate me).

Ian Leroux



Home | Main Index | Thread Index | Old Index