Subject: Re: ABI for glib2 changed
To: Jeremy C. Reed <reed@reedmedia.net>
From: Tobias Nygren <tnn@NetBSD.org>
List: tech-pkg
Date: 10/30/2007 20:46:54
On Tue, 30 Oct 2007 14:02:46 -0500 (CDT)
"Jeremy C. Reed" <reed@reedmedia.net> wrote:

> 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?

Greetings,

Prior to updating the package I did research potential ABI breakage to
my best ability. This is what the front page of www.gtk.org has to say:

"GLib 2.14.0 is now available. This is the first in the 2.14 series,
providing new functionality compared to GLib 2.12, while maintaining
source and binary compatibility."

Anyway, please bump the ABI dependency if it's needed. Btw, I don't
understand how a gnome-vfs2 built against glib 2.12 can have a PLT
reference to something that was introduced in glib-2.13?

-Tobias