<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1de004972abed620f1c8e33948f87d632381d96a">https://github.com/macports/macports-ports/commit/1de004972abed620f1c8e33948f87d632381d96a</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 1de004972ab p5-dbd-mysql: cleanup variant listing and fix mariadb/percona
</span>1de004972ab is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 1de004972abed620f1c8e33948f87d632381d96a
</span>Author: jhoyt4 <john.hoyt@gmail.com>
AuthorDate: Sun Feb 18 14:14:11 2024 -0500
<span style='display:block; white-space:pre;color:#404040;'> p5-dbd-mysql: cleanup variant listing and fix mariadb/percona
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Update the Portfile to reduce the redudant work needed to update
</span><span style='display:block; white-space:pre;color:#404040;'> variants.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Additionally, in version >5 support for databases other than the
</span><span style='display:block; white-space:pre;color:#404040;'> mysql8x was dropped. Fix broken mariadb and percona variants by
</span><span style='display:block; white-space:pre;color:#404040;'> pointing them to an older version (4). These versions will need to
</span><span style='display:block; white-space:pre;color:#404040;'> be pruned when they go EOL. Mariadb based ports should start to
</span><span style='display:block; white-space:pre;color:#404040;'> migrate to using p5-dbd-mariadb
</span>---
perl/p5-dbd-mysql/Portfile | 182 ++++++++++++++++++++++++++++-----------------
1 file changed, 114 insertions(+), 68 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/perl/p5-dbd-mysql/Portfile b/perl/p5-dbd-mysql/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 2518b601397..cac8f49a52e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/perl/p5-dbd-mysql/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/perl/p5-dbd-mysql/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,10 +2,9 @@
</span>
PortSystem 1.0
PortGroup perl5 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup active_variants 1.1
</span>
perl5.branches 5.28 5.30 5.32 5.34
<span style='display:block; white-space:pre;background:#ffe0e0;'>-perl5.setup DBD-mysql 5.003 ../../authors/id/D/DV/DVEEDEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span> license {Artistic-1 GPL}
maintainers nomaintainer
description Perl5 Database Interface to the MySQL database
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13,9 +12,86 @@ long_description {*}${description}
</span>
platforms darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 750b4a31d358a7c5ae5a3f9905df80357dbc1f3b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 21554443d60e294cc0ac00adaef53ccb7de55d4fae66a38372a5adf0a0f1edda \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 154242
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Create an array of DBD:MYSQL versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# "DBD:MYSQL Major Verion" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# version DBD:MYSQL version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# rmd160 value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# sha256 value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# size. value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+array set version_current {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version 5.003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 750b4a31d358a7c5ae5a3f9905df80357dbc1f3b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 21554443d60e294cc0ac00adaef53ccb7de55d4fae66a38372a5adf0a0f1edda
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 154242
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+array set version_4 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version 4.052
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 2e614009d863d4a67bb225a3a0ac329209b1910e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 a83f57af7817787de0ef56fb15fdfaf4f1c952c8f32ff907153b66d2da78ff5b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 162074
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Create an array of mysql variants. This is an attempt to make adding new
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# variant easier as they emerge.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Variant list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# sql variant name port name (if different)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+###############################################################################
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+array set db_variants {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mysql82 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mysql81 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mysql8 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mariadb10_11 mariadb-10.11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mariadb10_10 mariadb-10.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mariadb10_6 mariadb-10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mariadb10_5 mariadb-10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mariadb10_4 mariadb-10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ percona ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# check to see if a variant was set by the user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set any_sql no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach variant_name [array names db_variants] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset ${variant_name}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set any_sql yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch -glob -- $variant_name {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "*mysql*" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set install_version "version_current"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set install_version "version_4"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# set the default variant if no variant is set by the user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE: if the user passes in a bad variant, these defaults will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# be installed instead of throwing an error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { !${any_sql}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} > 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +mysql8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set install_version "version_current"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +mariadb10_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set install_version "version_4"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# setup perl and checksums based the requested variant version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+perl5.setup DBD-mysql [lindex [array get $install_version version] 1] ../../authors/id/D/DV/DVEEDEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 [lindex [array get $install_version rmd160] 1] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 [lindex [array get $install_version sha256] 1] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size [lindex [array get $install_version size] 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# version gets set to the "current version" values to prevenet constant upgraing by port upgrade
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version [perl5_convert_version [lindex [array get version_current version] 1]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span>
if {${perl5.major} != ""} {
depends_build-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,74 +102,44 @@ if {${perl5.major} != ""} {
</span> depends_lib-append \
port:p${perl5.major}-dbi
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mysql8 conflicts mysql81 mysql82 mariadb10_4 mariadb10_5 mariadb10_6 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mysql8 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mysql8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mysql8/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mysql81 conflicts mysql8 mysql82 mariadb10_4 mariadb10_5 mariadb10_6 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mysql81 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mysql81
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mysql81/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mysql82 conflicts mysql8 mysql81 mariadb10_4 mariadb10_5 mariadb10_6 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mysql82 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mysql82
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mysql82/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mariadb10_4 conflicts mysql8 mysql81 mysql82 mariadb10_5 mariadb10_6 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mariadb-10.4 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mariadb-10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mariadb-10.4/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mariadb10_5 conflicts mysql8 mysql81 mysql82 mariadb10_4 mariadb10_6 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mariadb-10.5 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mariadb-10.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mariadb-10.5/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mariadb10_6 conflicts mysql8 mysql81 mysql82 mariadb10_4 mariadb10_5 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mariadb-10.6 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mariadb-10.6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mariadb-10.6/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # loop over the array creating the specified variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # with the multiple versioning change, the conflicts lists no longer apepears
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # to be enforced, so this will be handled later in the pre-fetch stage with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # active_vaiants. The conflicts list is left here so the user gets the approprate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # warning when running port variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach variant_name [array names db_variants] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set idx [lsearch [array names db_variants] $variant_name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set conflict_list [lreplace [array names db_variants] $idx $idx]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant $variant_name conflicts $conflict_list description "build with $variant_name" {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset $variant_name]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set active_conflicts $conflict_list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mariadb10_10 conflicts mysql8 mysql81 mysql82 mariadb10_4 mariadb10_5 mariadb10_6 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mariadb-10.10 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mariadb-10.10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mariadb-10.10/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # add the build dependencies, this must be done outside the variant call to work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach variant_name [array names db_variants] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set reqPort [lindex [array get db_variants $variant_name] 1]
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant mariadb10_11 conflicts mysql8 mysql81 mysql82 mariadb10_4 mariadb10_5 mariadb10_6 mariadb10_10 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with mariadb-10.11 port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:mariadb-10.11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/mariadb-10.11/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$reqPort eq ""} {set reqPort $variant_name}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant percona conflicts mysql8 mysql81 mysql82 mariadb10_4 mariadb10_5 mariadb10_6 mariadb10_10 mariadb10_11 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- description {build with percona port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:percona
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append --mysql_config=${prefix}/lib/percona/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ([variant_exists $variant_name] && [variant_isset $variant_name])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:$reqPort
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --mysql_config=${prefix}/lib/$reqPort/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![variant_isset mysql8]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mysql81]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mysql82]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mariadb10_4]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mariadb10_5]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mariadb10_6]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mariadb10_10]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset mariadb10_11]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![variant_isset percona]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.major} > 12} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants +mysql8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants +mariadb10_6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Use active_variants to enforce that only one variant can be installed at any given time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {set result [active_variants p${perl5.major}-dbd-mysql $active_conflicts ""]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **** p${perl5.major}-dbd-mysql can only have one active variant installed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **** If you need this vaiant, deactivate the previously installed one with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **** port deactivate p${perl5.major}-dbd-mysql
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **** or uninstall is with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **** sudo port uninstall p${perl5.major}-dbd-mysql
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ****"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "Error: p${perl5.major}-dbd-mysql variant already installed"
</span> }
}
</pre><pre style='margin:0'>
</pre>