Skip site navigation (1)Skip section navigation (2)
Date:      11 Feb 2008 02:02:24 -0000
From:      Andrew Reilly <andrew@areilly.bpc-users.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/120517: Portupgrade bumped version of libicui18n, stored old version in compat/pkg, but linker doesn't find it: no minor?
Message-ID:  <20080211020224.12161.qmail@areilly.bpa.nu>
Resent-Message-ID: <200802110310.m1B3A1En070422@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         120517
>Category:       ports
>Synopsis:       Portupgrade bumped version of libicui18n, stored old version in compat/pkg, but linker doesn't find it: no minor?
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 11 03:10:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Reilly
>Release:        FreeBSD 7.0-PRERELEASE amd64
>Organization:
>Environment:
System: FreeBSD duncan.reilly.home 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #1: Sun Feb 10 11:34:27 EST 2008 root@duncan:/usr/obj/usr/src/sys/DUNCAN amd64


	Machine is an Athlon64-X2 with 3G RAM
>Description:
	Yesterday, after updating FreeBSD itself (as in uname
	above), I did my usual ports csup/portupgrade exercise.
	As usual, I portupgraded with --batch -akrR, but badness
	ensued, and many GNOME componenets broke with the
	following error message (or like it) in
	.xsession-errors:
	/libexec/ld-elf.so.1: Shared object "libicui18n.so.36"
	not found, required by "gconftool-2"

	Now, portupgrade is *supposed* to preserve shared
	libraries, and indeed /usr/local/lib/compat/pkg contains
	libicui18n.so.36.0, but it seems that the dynamic loader
	doesn't want to use that when asked for
	libicui18n.so.36, and I don't know why.  I thought that
	elf shared libraries didn't have minor numbers: what's
	with the .0 anyway?  I've just looked into
	lib/compat/pkg and it seems that there are quite a few
	libraries that have both two and three version
	components, although most just have one.

	The flip side of this situation is that the -r part of
	the portupgrade doesn't seem to have worked: there
	should not *be* any dependencies on libraries in
	lib/compat/pkg, because those dependencies are supposed
	to have been rebuilt against the new versions.  I'm
	currently running a portupgrade -r -f 'icu-*', and it's
	certainly building a *lot*, so hopefully that will do
	the job.  I think that it should have done the job
	already, though.
>How-To-Repeat:
	Have GNOME installed as of last week.  Upgrade ports
	tree to include the change to icu-3.8.1 from icu-3.6.0,
	and portupgrade --batch -akrR.
>Fix:

	Dunno if this is a problem with /libexec/ld-elf.so.1 or
	an incorrect library specification in the affected ports
	(gnome-terminal broke as well as gconftool-2: I'm
	guessing that most GNOME things would have broken, but
	I'm forcing a re-build now, so I'll never know) or a
	shortcoming of the portupgrade library backup process.
	I suspect that a fix could be applied in any of those
	places.  The work-around that I'm doing is to force the
	re-building of dependent ports.


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080211020224.12161.qmail>