Subject: Re: inconsistent versions of compiled binary package found on
To: None <itojun@iijlab.net>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-pkg
Date: 01/24/2002 09:01:14
On Thu, 24 Jan 2002 itojun@iijlab.net wrote:

> 	gd depends on png>1.0.9, however, it does not work with png-1.0.11
> 	(only works with png-1.0.10) due to shared library version number
> 	change.  therefore, if we use command lines like
> 	% pkg_add ftp://ftp.netbsd.org/pub/NetBSD/packages/1.5/i386/All/gd
> 	pkg_add end up installing png-1.0.11 and gd-1.8.3, which makes gd
> 	non-working.  i'm not sure what should be done about this.

This has been discussed before, but no consensus has been reached.

Given the way our "open-ended dependencies" work (or rather, don't
work), I feel the only reasonable thing to do, when a shared library
gets a minor version bump, is to bump the "nb" versions of all shared
library packages that depend on that shared library, and then bump the
dependencies of any packages that depend on *that* shared library (the
one that depends on the other shared library). Then, at least, the
latest version of everything is correct, and "pkg_add" from ftp will
just work.

Notice that gd-1.8.3 in pkgsrc already depends on png>=1.0.11, but not
*every* gd-1.8.3 depends on png>=1.0.11, and especially not the one on
the 1.5.2 CD's and on the ftp server. In other words, letting
"buildlink" take care of all the dependencies is just wrong, because on
the one hand, it's often overly aggressive in bumping dependencies that
shouldn't be bumped, and on the other, it fails to update the version
numbers of packages that have fundamental changes (by virtue of changes
in the packages they depend on), without which no sane combination of
dependencies is possible.

Frederick