Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jul 2012 08:24:50 +0100
From:      Matthew Seaman <matthew@FreeBSD.org>
To:        Jeremy Messenger <mezz.freebsd@gmail.com>
Cc:        ports@FreeBSD.org, Baptiste Daroussin <bapt@FreeBSD.org>, Peter Jeremy <peter@rulingia.com>, current@FreeBSD.org
Subject:   Re: [HEADSUP & CFT] pkg 1.0rc1 and schedule
Message-ID:  <5003C1C2.1010500@FreeBSD.org>
In-Reply-To: <CADLFttfjdfvPPR6WsRcF58pSFVL%2BP2PAGb8NOtLi-vS30jNDhQ@mail.gmail.com>
References:  <20120712100110.GA34228@ithaqua.etoilebsd.net> <20120716033240.GA52346@server.rulingia.com> <CADLFttfjdfvPPR6WsRcF58pSFVL%2BP2PAGb8NOtLi-vS30jNDhQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigB6CCF21792C0CD10410E78F2
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 16/07/2012 05:22, Jeremy Messenger wrote:
> It's one of reason why I do not agree to remove the shared library
> version from the LIB_DEPENDS, so that way in future someone can add
> support in the package to check on shared library version then prevent
> package to install because it's not ABI compatible. Unless someone
> prefer to do it in the different way than putting shared library
> version in the LIB_DEPENDS is good to me either.

Two points here:

Firstly LIB_DEPENDS is all about *building* packages.  In that case, the
thing that matters is *API* compatibility, not ABI.  Library APIs tend
to be much more stable than ABIs, meaning you can compile your code
against practically any version of a shared library. However, you won't
be able to run your compiled program against a shared library with a
different ABI.  If the API does change incompatibly, then it is fine to
use constraints on the ABI version in a port, but doing this as a matter
of course is just being obstructive to people that may not want to
upgrade dependency shlibs just yet.

Secondly, the ABI version of shared libraries has no effect on the
current dependency resolution mechanisms when installing packages
(either pkgng or the old pkg_tools).  At the moment, the only thing that
is considered are package version numbers.

This is an area where we have plans for dramatic changes with pkgng.  We
want to import a general solver mechanism so that a package can have a
list of generic requirements:

     File /usr/local/bin/foo exists and is executable
     Shared library libfoo.so.3 is installed
     Perl Module Foo::Bar > 1.23 is available
     Package foo-0.99 has option BLURFL enabled
     etc. etc.

Packages will similarly have a list of facilities they provide.  The job
of the solver will be to find a set of packages such that there is a
provider for every requirement constrained by the user requirement that
their required package set is installed.

However, making this mechanism workable implies significant changes to
the ports -- introducing sub-packages in particular -- which are
basically incompatible with the existing pkg_tools.  So we need to pkgng
1.0 in place to be able to proceed with further changes.  Also a generic
solver is in itself a substantial piece of code to introduce.  Which is
why it hasn't happened yet.

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.
PGP: http://www.infracaninophile.co.uk/pgpkey




--------------enigB6CCF21792C0CD10410E78F2
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.16 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlADwckACgkQ8Mjk52CukIwGwgCeKC62b60sbWQhIRr0dSldwQIK
5XcAn2Ou620h7B6o7gYqgUvcIk6IjQjQ
=QnI0
-----END PGP SIGNATURE-----

--------------enigB6CCF21792C0CD10410E78F2--



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