MacPorts-MySQL Dictator wanted, prefer benevolent

Craig Treleaven ctreleaven at
Wed Oct 1 06:45:52 PDT 2014

At 3:07 PM -0500 9/30/14, Ryan Schmidt wrote:
>On Sep 30, 2014, at 10:37 AM, Craig Treleaven wrote:
>  > By way of background, my MythTV ports depend on p5.16-dbd-mysql, 
>py27-mysql and php-5-mysql.  Previously, all of these defaulted to 
>the now-obsolete mysql5 variant.  Now, py-mysql defaults to 
>mariadb55.  p516-dbd-mysql offers a "mariadb" variant; not 
>"mariadb55".  php5-mysql defaults to mysqlind ("MySQL native 
>driver") and offers a "mariadb" variant; again not "mariadb55". 
>p5.16-dbd-mysql still defaults to mysql5.
>>  The subtle variance in naming the variants creates confusion.  The 
>>range of defaults can lead to bloat and confusion.
>>  Initially, I found there was a ticket related to py-mysql database 
>>variants [1] and I filed additional tickets for php5-mysql [2] and 
>>p5-dbd-mysql [3].  Since then, I thought to search for other ports 
>>that offer variants related to MySQL ('port echo 
>>variant:mysql*')--a total of 89 ports, of which about 20 are 

I've refined my list a little and I've found 83 ports that offer 
variants related to MySQL-compatible databases, see attached pdf. 
The chart lists all the current variant names; a "1" indicates that a 
particular port offers that a variant with that name.

>  > The tickets have been open for 6 weeks or more with no movement. 
>I've started to do some analysis on this (with another thread asking 
>for help) to see if we can standardize on a list of MySQL-related 
>variant names and maybe even agree on a common default.
>  >
>>  That's where the dictator comes in.  At the moment, I would say 
>>the obvious choices for a default MySQL variant would be mysql55, 
>>mariadb55 or, maybe, mysql56.  AFAICT there is no clear-cut, 
>>compelling reason to choose one over the others (technical, legal, 
>>religious, whatever).  Other threads have touched on this issue, 
>>recently, with no clear consensus developed.  Nonetheless, I think 
>>the MacPorts project would be better served by blessing one that 
>>can hold us for a few years rather than have various ports going in 
>>all different directions.
>>  Is this something that the PortMgr group could take the lead on?
>Indeed we have discussed this before, and it was proposed that the 
>latest stable MariaDB version should be the default variant of ports 
>that have MySQL support.
>I don't think we can or should select a default to last us for 
>years. We don't want to stagnate like we did with the +mysql5 
>variant. Rather, we should let the latest stable version be the 
>default, and update ports as needed.
>Currently, the latest stable version of MariaDB is 10.0.

Really?  Has MariaDB 10.0 really been sufficiently exercised in the 
OS X environment to become the default?  Currently, not a single port 
that I've identified even offers mariadb-10.0 as a variant.  Only 4 
ports in my list currently default to mariadb or mariadb55:

Port                Default Variant
akonadi             mariadb55
amarok              mariadb55
py24-mysql          mariadb55
py25-mysql          mariadb55
py26-mysql          mariadb55
py27-mysql          mariadb55
qore-mysql-module   mariadb

>The question is what to name the variants. This has also been 
>brought up for discussion before. My most recent thread on the topic 
>from 2 weeks ago got no replies on the list; perhaps I was too wordy.
>My suggestion was that using dots in version numbers, but no 
>underscores, would be the cleanest and most informative, which would 
>make the complete list of proposed MySQL variant today: +mariadb5.5, 
>+mariadb10.0, +mariadb10.1, +mysql5.1, +mysql5.5, +mysql5.6, and 

Adopting this format means renaming every variant of every affected port.

This may also break the upgrade path for existing installs, no?  We 
really should keep legacy-named variants for a period of time along 
with the new standard which leads to an explosion of variants for 
some ports.  For example, apr-util currently has mariadb, mysql5, 
mysql51, mysql55, mysql56, and percona variants related to db 
selection.  We'd have to keep those 6 and add at least 6 more (maybe 
8 if maridb10.0 and mariadb10.1 are supported).

Perhaps we* could control the explosion of variants by creating a new 
Portfile contruct:  "legacy-variant".  It might act just like the 
current variant declaration except that it would be invisible to 
'port info' and 'port variants'.  Users wouldn't normally see the 
legacy-variants thus reducing the temptation to keep using them.  If 
necessary, perhaps they could be displayed by passing the -v or -d 
flags to port.


* By "we", I mean someone more clever than me!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MacPorts_MySQL_Variants_2014Oct1.xlsx.pdf
Type: application/octet-stream
Size: 48406 bytes
Desc: not available
URL: <>

More information about the macports-dev mailing list