From owner-freebsd-ports Thu Feb 21 11:22:39 2002 Delivered-To: freebsd-ports@freebsd.org Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [18.24.4.193]) by hub.freebsd.org (Postfix) with ESMTP id 0A38F37B419; Thu, 21 Feb 2002 11:22:33 -0800 (PST) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.11.4/8.11.6) id g1LJMWt26636; Thu, 21 Feb 2002 14:22:32 -0500 (EST) (envelope-from wollman) Date: Thu, 21 Feb 2002 14:22:32 -0500 (EST) From: Garrett Wollman Message-Id: <200202211922.g1LJMWt26636@khavrinen.lcs.mit.edu> To: "Jacques A. Vidrine" Cc: ports@FreeBSD.org Subject: Re: cvs commit: ports/graphics/libwmf Makefile pkg-plist 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> Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org [N.B.: I am not on the `ports' list. Please do not CC me except in direct response to this message.] < 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