On Thu 08 Jan 19:45, Dan Langille wrote:
> re: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292266
> 
> I'm looking at adding mysql and mariadb flavors to net-mgmt/librenms
> 
> Getting @mysql working is fine:
> 
> +.if ${FLAVOR:U} == mysql
> +USES+= mysql:client
> +.endif
> 
> The problem seems to be specifying mariadb. I've been basing it on:
> 
> +.if ${FLAVOR:U} == mariadb
> +USES+= mysql:client MYSQL_FLAVOUR= mariadb
> +.endif
> 
> That's no good. That just gives:  Unknown USES=MYSQL_FLAVOUR=mariadb
> 
> The USES docs[1] mentions "The m and p suffixes are for the MariaDB and
> Percona variants of MySQL" - yet that requires me to know and select a 
> version,
> something I'd prefer to leave up to the ports tree / user.  That's also what 
> MySQL
> does.
> 
> Reading Mk/Uses/mysql.mk[2], it sets `MYSQL_FLAVOUR=     mariadb` only if 
> that version
> mentioned above is specified.
> 
> I've grep'd for examples, found none.
> 
> When I get to blocks like this, I figure I'm doing it wrong.
> 
> Am I?
> 
> 
> 1 - https://docs.freebsd.org/en/books/porters-handbook/uses/#uses-mysql 
> mentions
> 
> 2 - https://cgit.freebsd.org/ports/tree/Mk/Uses/mysql.mk#n108
> -- 

Please do not had flavors for something like this is a step in the wrong
direction
I already pointed for years what should be done instead to people can decide
at runtime which mysql implementation they want by default, we should entirely
rework the mysql port (and the postgresql port while we are here) to avoid
adding flavors for this. This kind of use case is clearly an abuse of the flavor
framework.

What should be done instead:
All mysql clients and servers installs themselves in a non conflicting way
They do not expose their public libraries. the cli in the path is renamed to
make sure they do not conflict.

We have a single default mysql client which is always the latest and greatest
available this is where we can play with the default version framework, to maybe
allow to chose a another implementation by default if really this is needed. 
(they are for now at least all compatible).

All ports depends only on this default client and not on a specific
implementation everyone can install the version they want, have qualified are
done with it.

Best regards,
Bapt

Reply via email to