Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 04 Sep 2014 07:04:06 +0100
From:      Matthew Seaman <matthew@FreeBSD.org>
To:        freebsd-stable@freebsd.org
Subject:   Re: pkg question - Difference pkg vs port
Message-ID:  <540800D6.8030309@FreeBSD.org>
In-Reply-To: <20140904003623.GA10423@in-addr.com>
References:  <op.xlmsddjrg7njmm@michael-think> <CAKFCL4UX1Z-UsJYix8RR1eSkU38j04UE3WOt7d-Wz4yZX9J9OQ@mail.gmail.com> <op.xlmwnmovg7njmm@michael-think> <CAKFCL4Xx9MUdiTTzNcAmiGpKPnNVUfmp%2BK%2BuMpjaZzJ1cZQZyQ@mail.gmail.com> <20140904003623.GA10423@in-addr.com>

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

On 04/09/2014 01:36, Gary Palmer wrote:
> On Wed, Sep 03, 2014 at 07:32:48PM -0400, Brandon Allbery wrote:
>> On Wed, Sep 3, 2014 at 7:24 PM, Michael Ross <gmx@ross.cx> wrote:
>>
>>> "Anything that provides" I think is the key to where I started thinki=
ng
>>> wrong:
>>>
>>> The dependency is not "Shared libs required" libmysqlclient.so.18,
>>> but one specific port that provides libmysqlclient.so.18 - mysql55-cl=
ient.
>>>
>>
>> Ports can do "provides library" dependencies. Packages can only depend=
 on
>> packages. You can try to force it but you could also confuse your pack=
age
>> database rather badly.
>=20
> Why can't packages check to see if the library exists and use it if it
> does?  RPM does something like that, although I think they go much
> further with that process.
>=20
> In this case, AFAIK the mysql client library API is stable - the 5.5 an=
d
> 5.6 library versions should have the same API so the requirement to
> install the 5.5 package is a bit silly.
>=20
> (I'm dreading this e-mail taking us down the RPM path of dozens of
>  different packages that make up one program, foo-devel, foo-libs,
>  foo-client, etc)

The problem here is that pkg(8) at the moment respects both the shared
library dependencies discovered by analysing what all the binaries
actually need to link against, and all the RUN_DEPENDS inherited from
ports.  It's the latter which effectively 'bakes in' a dependency on a
specific version of another port.

However, change is coming.  There's a GSoC project to allow dependency
ranges for pkg(8) -- not a complete solution, but it will help.
Sub-packages and flavours are imminently due to appear, now that
pkg_tools are dead; again not a complete solution in itself.  There's
also the 'Provides/Requires/Conflicts' idea about dependency tracking,
which I think is the long-term answer, but needs (yet another set of)
ports tree-wide sweeping changes.

At the moment, if you want to use other than the default version of eg.
MySQL, the recommendation is that you build your own package sets.  It
is possible to build your own packages for just the things that depend
on MySQL and use the regular FreeBSD pkg repositories for everything
else.  poudriere is the best tool for doing this.

	Cheers,

	Matthew

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



--Xgwid2cNjWXVkPNj2dcBKAhqpOm3DoTqC
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.20 (Darwin)

iQJ8BAEBCgBmBQJUCADgXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NTNBNjhCOTEzQTRFNkNGM0UxRTEzMjZC
QjIzQUY1MThFMUE0MDEzAAoJELsjr1GOGkATgtMQAIfHg/k+ShS0brqQxrhPOoc0
oMUlW+S32qKjkTQGYbPeku6o0DZABnJ4HqiK9KUzlc5BsxsMbSux2JkXWVxz0ohU
gZ18oGjZy5hsISN2WiowAPhEzGfOh8i86y2i72+kBRRArcNXjgsbn/idwVeTtN9u
fYqh29pvu6NDHgh5wT0M/rAj/eBddXx1IOL3cuK2XTB8ADOQG0QxdLyWgghVuF8W
gq8YYwRgdSgwmqR8yhfX46sUaRXrie5NB3NXF816NQZhaE3otxA8NMqEwxuVcWwg
IhDCwq7XUPwx5BxlK5wGtTAatRa2mJmiLqQwEfsiiepZK9lk1h3SnWOGt19lNHIU
XQ4kajZKh6tHI08ZMUdoqnYfwUElJOdOwpwxG1rbI0lSt8Y4MGPJ4/MLp4DDLtB/
ChPE/dQm3C26SNHWPs0MPmmUVxlB5ZHqz+uIgY0hn9bTt1ulqw/0FwNc2gaCLMTl
M/cqe5dLJpxC7MX1ApHIDMNYMgjxhc8bwg8lRw6498eCjspq1LjcLBbU3Jec/A6m
n8tS2NhS9OPitWWGAtFt8nj3uCN7JsUzIo81MqpfRry5MTULyQ/9MUelt/SS7VOK
/eGDIj/V5PdUIFO8sn5JI4w1ytyyxty0j0kIDtSIhHZZoi9V4fojZY7p+Lq4L1P6
eQF0AB1MbiOsQdcC7w6B
=CnQ/
-----END PGP SIGNATURE-----

--Xgwid2cNjWXVkPNj2dcBKAhqpOm3DoTqC--



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