[MacPorts] #43431: Ports with a mysql4 or mysql5 variants and/or dependencies should switch to using mysql56 or possibly mariadb.
MacPorts
noreply at macports.org
Thu Aug 30 06:44:59 UTC 2018
#43431: Ports with a mysql4 or mysql5 variants and/or dependencies should switch to
using mysql56 or possibly mariadb.
-------------------------------------------------+-------------------------
Reporter: pixilla | Owner: macports-
| tickets@…
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: amarok-devel apr-util bugzilla |
dovecot dovecot2 drupal5 drupal6 dspam exim |
flow-tools freeradius gdal grass hydra |
libdbi-drivers libgda libgda4 libgda5 |
lighttpd lighttpd-devel mediatomb mnogosearch |
mysql-connector-odbc mysql5 mysql55 |
-connector-cpp mysql55-lib_mysqludf_json |
mysqlxx nagios-plugins neko ocaml-mysql p5 |
-dbd-mysql pennmush php php4 php5-mysql php52 |
postfix proftpd pure-ftpd py-oursql qore- |
mysql-module qt3-mac qt4-mac-mysql55-plugin |
radlib rb-mysql rb19-mysql redland restund |
snort soci sphinx vpopmail vtk-devel |
wikkawiki zabbix zabbix2 |
-------------------------------------------------+-------------------------
Comment (by ryandesign):
It would be great if the names of the variants were consistent in all
ports. Until the introduction of the mariadb-10.0 port, that was easy: we
just made the variant name the same as the name of the port that the
variant depended on (e.g. "mysql5" or "mysql57"). But we can't name a
variant "mariadb-10.0" because "-" and "+" are illegal characters in
variant names, because MacPorts uses "-" and "+" to indicate disabling and
enabling variants, respectively.
"." was an illegal character in variant names too, but we couldn't figure
out a reason why, so as of MacPorts 2.4.4 that's no longer illegal. See
#46807.
So we need to make a decision on what the variant names should be. For
ports like mariadb-10.0, the obvious variant name choices are
"mariadb10.0" and "mariadb100". The former avoids ambiguity and is
probably the better choice. Avoiding ambiguity is probably why Bradley
chose to name the port "mariadb-10.0" instead of "mariadb100". I think
using the dot in the variant name is what we wanted to do awhile back, but
couldn't do until the unnecessary variant name restriction in base was
relaxed.
We might also ask whether anything should be done about the older ports
mariadb, mysql51, mysql55, mysql56, mysql57. Should they be renamed to
mariadb-5.5, mysql-5.1, mysql-5.5, mysql-5.6, mysql-5.7, or left alone?
Should variants that use those ports be renamed to mariadb5.5, mysql5.1,
mysql5.5, mysql5.6, mysql5.7, or left alone? It would be good to make that
decision before adding variants to a lot of ports, so that we don't have
to rename them all again later. Renaming them would be good for
consistency, but might be a lot of work, especially if we want to add
automatic upgrade paths that keep the old variant names around for awhile.
Existing variants for other versioned ports—like gcc, clang, php, python,
perl, ruby—don't use a dot in the variant name. But none of them have
reached a major version number of 10 or greater yet. gcc is close, since
they're developing version 9 now, but back in version 5 they changed their
version numbering scheme so that the major version was only the first
number of the version, not the first two numbers. So we used to have
variants gcc48 and gcc49, but now we have variants gcc5 and gcc6. Even
when gcc reaches version 10, we'll just name the variant gcc10; no need
for a dot. PostgreSQL made the same version numbering change when they
release version 10. MySQL has skipped from version 5.7 to version 8; not
sure what their versioning strategy is going forward. Percona seems to
express their version number is a modifier of the MySQL version number, so
I don't know if we should be offering separate Percona ports for each
MySQL version.
Once we decide variant names, we can propose code that creates those
variants. So far, most of the mysql variants I've seen have been manually
created. This can become inconvenient when each variant has to duplicate
similar code that varies only by version number or include paths. Python
variants are often created programmatically, using a loop, so that the
code unique to the port that tells the build system where MySQL is doesn't
have to be duplicated. We can probably adapt the Python-variant-generating
code for MySQL.
--
Ticket URL: <https://trac.macports.org/ticket/43431#comment:32>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list