Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Jun 2014 15:04:29 +0200
From:      Marco Steinbach <coco@executive-computing.de>
To:        freebsd-ports@freebsd.org
Subject:   USE_MYSQL / USE_PGSQL buildtime dependency differences
Message-ID:  <53A2DFDD.3050307@executive-computing.de>

next in thread | raw e-mail | index | archive | help
Hi.

Mk/bsd.database.mk seems to handle dependencies resulting from the use 
of USE_PGSQL and USE_MYSQL flags differently.

USE_PGSQL pulls in PostgreSQL at buildtime, for both, the client and the 
server component.  USE_MYSQL seems to only pull anything in at 
buildtime, if the flag is set to 'client'.

Thus, with USE_MYSQL=server the build of my port breaks by not 
installing anything at buildtime, neither the server nor (more 
importantly) its client slaveport, while USE_MYSQL=client does not 
install the server.

Can I have my cake and eat it by using the USE_MYSQL flags, or do I need 
to revert to using explicit BUILD_DEPENDS / RUN_DEPENDS combinations to 
get the MySQL client in at buildtime in any case ?


Here's an example:

[Makefile ...]
PGSQL_USE=      pgsql=server
PGSQLC_USE=     pgsql=client
MYSQL_USE=      mysql=server
MYSQLC_USE=     mysql=client
[...]

With option MYSQL=On and MYSQLC=Off:

$ ( make showconfig && make build-depends-list ) | egrep -i 'mysql|postgres'
====> Depend on PostgreSQL: you can only select none or one of them
      PGSQL=on: PostgreSQL database support
      PGSQLC=off: PostgreSQL database support (client only)
====> Depend on MySQL: you can only select none or one of them
      MYSQL=on: MySQL database support
      MYSQLC=off: MySQL database support (client only)
/usr/ports/databases/postgresql92-client
/usr/ports/databases/postgresql92-server
$


As opposed to (note the changed MYSQLC / MYSQL options):

$ ( make showconfig && make build-depends-list ) | egrep -i 'mysql|postgres'
====> Depend on PostgreSQL: you can only select none or one of them
      PGSQL=on: PostgreSQL database support
      PGSQLC=off: PostgreSQL database support (client only)
====> Depend on MySQL: you can only select none or one of them
      MYSQL=off: MySQL database support
      MYSQLC=on: MySQL database support (client only)
/usr/ports/databases/mysql55-client
/usr/ports/databases/postgresql92-client
/usr/ports/databases/postgresql92-server
$

I've also tried renaming my MYSQL / PGSQL options to preclude possible 
collisions, but that didn't change behaviour.

I'm trying to create a port of Icinga2 
(https://www.icinga.org/icinga2/), FWIW.

MfG CoCo



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53A2DFDD.3050307>