Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2002 14:22:32 -0500 (EST)
From:      Garrett Wollman <wollman@lcs.mit.edu>
To:        "Jacques A. Vidrine" <nectar@FreeBSD.org>
Cc:        ports@FreeBSD.org
Subject:   Re: cvs commit: ports/graphics/libwmf Makefile pkg-plist
Message-ID:  <200202211922.g1LJMWt26636@khavrinen.lcs.mit.edu>
In-Reply-To: <20020221182409.GA44592@madman.nectar.cc>
References:  <200202211702.g1LH2Kw69894@freefall.freebsd.org> <20020221170549.GB40194@madman.nectar.cc> <200202211713.g1LHDFF25291@khavrinen.lcs.mit.edu> <20020221171640.GA44316@madman.nectar.cc> <200202211730.g1LHUqQ25415@khavrinen.lcs.mit.edu> <20020221182409.GA44592@madman.nectar.cc>

next in thread | previous in thread | raw e-mail | index | archive | help
[N.B.: I am not on the `ports' list.  Please do not CC me except in
direct response to this message.]

<<On Thu, 21 Feb 2002 12:24:09 -0600, "Jacques A. Vidrine" <nectar@FreeBSD.org> said:

> If the version numbers were not taken into account, then there would
> not be any reasonable means of detecting API changes.

There still isn't.  Assume, for a moment, that the author of `libfoo'
follows the same rules for version numbering as we use for FreeBSD
libraries.  So I have a port which says something like:

LIB_DEPENDS=	foo.2:${PORTSDIR}/devel/libfoo

At some point, the author of `libfoo' adds a new function interface.
Because the new library is still compatible with old applications, he
rightly leaves the version number alone.

Later, my port is updated, and the new version uses the new
interface.  Oops!  My port now will not build on any machines that
have the older version of the library installed, because there's no
way to express to the ports system that I need not just any
libfoo.so.2, but specifically a version of libfoo.so.2 that has
new_interface() in it.  I have already seen this happen, and it
happens regularly with anything that isn't a shared library (e.g., my
patches to security/openssh-portable which depend specifically on
autoconf-2.54, but won't trigger the dependency on a machine which has
an old autoconf-2.13 installed since the name of the program is the
same).

> What exactly are you arguing?  That we should drop the use of shared
> library version numbers from ports?

What we really need is something more like:

BUILD_DEPENDS=	devel/libfoo:MIN_VERSION=1.2.3_4,5 \
		devel/autoconf:VERSION=2.45

This would then have to search /var/db/pkg to see which version was
actually installed.

Package dependencies would of course be recorded using the precise
version in place.

-GAWollman


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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