switching from ports to pkg -- mailman group mismatch

Matthew Seaman matthew at FreeBSD.org
Fri Dec 5 07:22:47 UTC 2014


On 05/12/2014 06:55, John R. Levine wrote:
>>> wants to install mysql55-client, which would break percona.  The
>>> dependencies in the ports work, so I don't know why pkg gets it wrong.
>>
>> Which port is this?
> 
> I think it's p5-DBD-mysql.  The port builds fine with percona, it's only
> a problemw pkg upgrade.
> 
>> It's also possible the depending port is specifically asking for mysql
>> 5.5.
> 
> Not in this case.

You're using p5-DBD-mysql from the default pkg repos? That's going to
have the dependency on mysql55-client baked into it -- if you want to
use percona, then in that case you'll need to compile your own.  Apart
from the usual specificity of dependencies in ports, and consequently
pkg, p5-DBD-mysql links against libmysqlclient.so.X which is an
additional constraint: even if we implemented some form of alternate
dependency mechanism, we'd still need a series of p5-DBD-mysql binary
packages to match up to the different ABI versions of libmysqlclient.so
that come with the different versions of mysql and related databases.

We do have plans for improving the pkg experience with precompiled
packages in this regard.  There are two measures in particular:

   - Sub packages:  this essentially creates several different pkgs from
one compiled source tree of a piece of software.  There are a large
number of options in the ports that do nothing except add some extra
files to a package.  In future, those files would be placed in a
sub-package, which could be installed in addition to the main pkg as needed.

   - Provides / Requires / Conflicts -- instead of the way a compiled
port nowadays has a hardwired dependency on exactly the software it was
compiled with, this will provide a generic mechanism for substituting
alternative dependencies at pkg install time.  So, for instance a
package will be able to require a 'WEB_SERVER' which any of
apache{22,24}, nginx{,-devel} or lighttpd or others would be able to
fulfil.  In the MySQL case you might be able to say requires
'MYSQL_DATABASE_FAMILY' or 'MYSQL_55_DATABASE_FAMILY' to allow any of
mysql, percona, mariadb possibly also requiring a compatible ABI version
as well.

Support for these mechanisms is under development in pkg itself, but
introducing them is going to involve a lot of churn in the ports tree
over and above what we've already seen in the last few years.

	Cheers,

	Matthew

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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 971 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20141205/a65b4246/attachment.sig>


More information about the freebsd-questions mailing list