pkgng weirdness

Hi,

I'm maintaining a couple of machines with PKGNG (mostly 9.1 machines), and on a couple of machines we also run percona55-server with percona55-client as a dependency.

Today I wanted to install some new updates, but it failed, because for upgrading p5-DBD-mysql-4.023, it wanted to install mysql55-client, that of course conflicts with percona55-client. They provide the same libraries AFAIK, and I could not find out why pkg wanted to install mysql55-client.

Even if I get all the info for this package, I see percona55-client as a dependency:

Code:
# pkg info -R p5-DBD-mysql-4.023
---
name: p5-DBD-mysql
version: 4.023
origin: databases/p5-DBD-mysql
comment: MySQL driver for the Perl5 Database Interface (DBI)
arch: freebsd:9:x86:64
www: http://search.cpan.org/dist/DBD-mysql/
maintainer: perl@FreeBSD.org
prefix: /usr/local
licenselogic: or
licenses:
- GPLv1
- ART10
flatsize: 485660
desc: |
  DBD::mysql is the Perl5 Database Interface driver for the MySQL
  database.  In other words: DBD::mysql is an interface between the Perl
  programming language and the MySQL programming API that comes with the
  MySQL relational database management system.  Most functions provided by
  this programming API are supported.  Some rarely used functions are
  missing, mainly because noone ever requested them.

  WWW: http://search.cpan.org/dist/DBD-mysql/
deps:
  perl-threaded: {origin: lang/perl5.14, version: 5.14.4}
  percona-client: {origin: databases/percona55-client, version: 5.5.32.31.0}
  p5-DBI: {origin: databases/p5-DBI, version: 1.627}
categories:
- perl5
- databases
shlibs_required:
- libmysqlclient.so.18
options: {SSL: off}
files:
  /usr/local/lib/perl5/5.14/man/man3/Bundle::DBD::mysql.3.gz: a03213febe7b81a038fbd7f6bd54f66bed5d5a5ed35bc48bbf2f49fd7e5dc79a
  /usr/local/lib/perl5/5.14/man/man3/DBD::mysql.3.gz: 52ec17a98aa50dd4316eb39012c71fd10c589c3ee621b39a69d9fbcae0051c05
  /usr/local/lib/perl5/5.14/man/man3/DBD::mysql::INSTALL.3.gz: f4297b4dd172837912ddb77f9035760e32ccfb66adc7bde2afa6ef9d53a201b3
  /usr/local/lib/perl5/site_perl/5.14/mach/Bundle/DBD/mysql.pm: 4c449d1e475e88cce149de38fd3b5db452571d25b317462da6ecd7f7903f713b
  /usr/local/lib/perl5/site_perl/5.14/mach/DBD/mysql.pm: 2e17a0dc370f56be341deaf1976017d754d569f87d77721d758e899f840c0f3a
  /usr/local/lib/perl5/site_perl/5.14/mach/DBD/mysql/GetInfo.pm: e49ede0d52e860878921bb210eeb0b77c2d182711f68dc973361b3aaaea6f0b2
  /usr/local/lib/perl5/site_perl/5.14/mach/DBD/mysql/INSTALL.pod: 5cdb0b0f542806d94c212bfcc5ef19e0f2f9de5359bbf0bfcc75581dd13e621d
  /usr/local/lib/perl5/site_perl/5.14/mach/auto/DBD/mysql/.packlist: 8664a3ce3cffde766cb3babf5a6d023f5afcbec53d050951f3648a50c661b999
  /usr/local/lib/perl5/site_perl/5.14/mach/auto/DBD/mysql/mysql.bs: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  /usr/local/lib/perl5/site_perl/5.14/mach/auto/DBD/mysql/mysql.so: e49c994f76d10a1560c0703a92ae9db7b6266b56f9c6effaf2f4be1820e6804c
  /usr/local/share/licenses/p5-DBD-mysql-4.023/ART10: 6e325a7fbcaa9a9d22178be70e9904051336e347ae701d6a7a233250c1b656aa
  /usr/local/share/licenses/p5-DBD-mysql-4.023/GPLv1: 25ddc75607ddd58ecf5db27a630c56adc2f190c4659645a331167bd5b2c36ea3
  /usr/local/share/licenses/p5-DBD-mysql-4.023/LICENSE: 3e0600ac4141fa62d4dc259978732c8a7cf65aaeadc2ba9b7984a93a3db1135d
  /usr/local/share/licenses/p5-DBD-mysql-4.023/catalog.mk: 49c2ab815ece3ee331e4afae5d0deaf2dc052194d4a2c2f1bb0a088ca4127f5e
directories:
  /usr/local/share/licenses/p5-DBD-mysql-4.023/: n
  /usr/local/share/licenses/: y
  /usr/local/lib/perl5/site_perl/5.14/mach/auto/DBD/mysql/: n
  /usr/local/lib/perl5/site_perl/5.14/mach/auto/DBD/: y
  /usr/local/lib/perl5/site_perl/5.14/mach/DBD/mysql/: n
  /usr/local/lib/perl5/site_perl/5.14/mach/DBD/: y
  /usr/local/lib/perl5/site_perl/5.14/mach/Bundle/DBD/: y
  /usr/local/lib/perl5/site_perl/5.14/mach/Bundle/: y
scripts:
  post-install: |
    cd /usr/local
  pre-deinstall: |
    cd /usr/local
  post-deinstall: |
    cd /usr/local

I ended up locking p5-DBD-mysql-4.023, and then performing the upgrade.

How do you fix something like this the way it should (without locking).

FYI: I do build my own repos with poudriere.
 
I've never used percona before but does it provide its own libmysqlclient.so? That may be the reason why it is depending on mysql55-client.
 
They both provide libmysqlclient.so.18. So I don't understand the confusion here. Mostly I have no clue how to debug this with PKGNG.
 
Yep, PKGNG is just recording installed files into a package or using a pre-packaged archive for installing a package. If there are conflicting files it's the problem in the ports building system. The only reason you're now seeing these conflicts is that the old package tools didn't care if two packages owned the same file, PKGNG does.
 
Back
Top