Subject: ABI for glib2 changed
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 10/30/2007 14:02:46
ABI for glib2 changed in 2.13.7 but buildlink3.mk stayed the same:

BUILDLINK_ABI_DEPENDS.glib2+=   glib2>=2.8.6nb1


Trying to track down configure failure in gramps.

$ python2.4
Python 2.4.3 (#1, Aug  7 2006, 19:08:27) 
[GCC 4.1.2 20060628 prerelease (NetBSD nb2 20060711)] on netbsd3
Type "help", "copyright", "credits" or "license" for more information.
>>> import gnome
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/pkg/lib/python2.4/site-packages/gtk-2.0/gnome/__init__.py", 
line 13, in ?
    from _gnome import *
ImportError: /usr/pkg/lib/libgnomevfs-2.so.0: Undefined PLT symbol 
"g_once_init_leave" (symnum = 306)


I searched google and see this is from a newer glib.

My gnome-vfs2-2.14.0nb2 was installed in April 2006. It requires (among 
others): glib2>=2.9.3

My glib2-2.12.4 was installed in October 2006.

g_once_init_leave was added in glib 2.13.7 from July 2007 (I think).

Okay if I commit the following?

Index: devel/glib2/buildlink3.mk
===================================================================
RCS file: /cvsroot/pkgsrc/devel/glib2/buildlink3.mk,v
retrieving revision 1.13
diff -u -r1.13 buildlink3.mk
--- devel/glib2/buildlink3.mk	8 Jul 2006 23:10:43 -0000	1.13
+++ devel/glib2/buildlink3.mk	30 Oct 2007 18:52:16 -0000
@@ -13,7 +13,7 @@
 
 .if !empty(GLIB2_BUILDLINK3_MK:M+)
 BUILDLINK_API_DEPENDS.glib2+=	glib2>=2.4.0
-BUILDLINK_ABI_DEPENDS.glib2+=	glib2>=2.8.6nb1
+BUILDLINK_ABI_DEPENDS.glib2+=	glib2>=2.13.7
 BUILDLINK_PKGSRCDIR.glib2?=	../../devel/glib2
 .endif	# GLIB2_BUILDLINK3_MK
 

Maybe the ABI should be newer than that, but that is what hit me.

It has been few months, so as for recursive bumps, I don't know if that 
matters. As for now the binary packages depending on glib2>=2.4.0 are 
wrong.

My workaround:

 sudo pkg_add -u NetBSD/i386/4.0_2007Q3/All/glib2-2.14.1.tgz

  Jeremy C. Reed

p.s. I research and report about five to ten of these problems every year 
for past four or five years.

Am I the only one who uses binary packages?

Am I the only pkgsrc user who only updates software as needed?