<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/453a222657c15cd721bb7a9f24eb8bd842f61bc2">https://github.com/macports/macports-ports/commit/453a222657c15cd721bb7a9f24eb8bd842f61bc2</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 453a222657c15cd721bb7a9f24eb8bd842f61bc2
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Mar 13 09:10:20 2024 +1100

<span style='display:block; white-space:pre;color:#404040;'>    perl5 pg: bugfix and simplify perl5.create_variants
</span>---
 _resources/port1.0/group/perl5-1.0.tcl | 69 +++++++++++++++++-----------------
 1 file changed, 34 insertions(+), 35 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/perl5-1.0.tcl b/_resources/port1.0/group/perl5-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index ef74fba8466..57c56791d50 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/perl5-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/perl5-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,50 +50,48 @@ default perl5.set_default_variant {true}
</span> default perl5.conflict_variants {true}
 # Control whether a perl variant is required and if true produce an error if a perl variant is not set.
 default perl5.require_variant {false}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Get variant names from branches
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proc perl5.get_variant_names {branches} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set ret [list]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach branch ${branches} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend ret "perl[string map {. _} ${branch}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return $ret
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> # Create perl variants
 proc perl5.create_variants {branches} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global name perl5.major perl5.default_variant perl5.variant perl5.set_default_variant perl5.conflict_variants perl5.require_variant perl5.variants
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set perl5.variants [perl5.get_variant_names ${branches}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach branch ${branches} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set index [lsearch -exact ${branches} ${branch}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set variant [lindex ${perl5.variants} ${index}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Add conflicts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set filtered [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global name perl5.major perl5.default_variant perl5.variant \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           perl5.set_default_variant perl5.conflict_variants \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           perl5.require_variant perl5.variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set perl5.variants [lmap branch ${branches} {string map {. _} perl$branch}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${perl5.set_default_variant}} {
</span>         if {${perl5.conflict_variants}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set filtered [lreplace ${perl5.variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach variant ${perl5.variants} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[variant_isset $variant] && $variant ne ${perl5.default_variant}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set default_variant_conflicts 1
</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:#ffe0e0;'>-        variant ${variant} conflicts {*}${filtered} description "Use MacPorts perl${branch}" {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset ${variant}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            perl5.variant ${variant}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Set default perl variant (if no conflicting variant is set)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![info exists default_variant_conflicts]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            default_variants-append +${perl5.default_variant}
</span>         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Set default perl variant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${perl5.variant} eq {} && ${perl5.set_default_variant}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        default_variants-append +${perl5.default_variant}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset ${perl5.default_variant}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            perl5.variant ${perl5.default_variant}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach branch ${branches} variant ${perl5.variants} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Add conflicts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cur_conflicts {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${perl5.conflict_variants}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set cur_conflicts [ldelete ${perl5.variants} $variant]
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Set perl version and deps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach branch ${branches} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set index [lsearch -exact ${branches} ${branch}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set variant [lindex ${perl5.variants} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant ${variant} conflicts {*}${cur_conflicts} description "Use MacPorts perl${branch}" {}
</span>         if {[variant_isset ${variant}]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            perl5.major ${branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            perl5.variant-append ${variant}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Set perl version and deps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # XXX this can't do anything sensible if perl5.conflict_variants=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set perl5.major ${branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_lib-delete port:perl${branch}
</span>             depends_lib-append port:perl${branch}
         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Require perl variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Require perl variant
</span>     pre-fetch {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {![variant_isset ${perl5.variant}] && ${perl5.require_variant}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${perl5.variant} eq {} && ${perl5.require_variant}} {
</span>             ui_error "${name} requires one of these variants: ${perl5.variants}"
             return -code error "absence of required perl variant"
         }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -125,8 +123,8 @@ set perl5.cpandir ""
</span> 
 # perl5 group setup procedure
 proc perl5.setup {module vers {cpandir ""}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global perl5.branches perl5.default_branch perl5.bin perl5.lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           perl5.module perl5.moduleversion perl5.cpandir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global perl5.branches perl5.bin perl5.cpandir perl5.default_branch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           perl5.lib perl5.module perl5.moduleversion perl5.variants \
</span>            prefix subport name
 
     # define perl5.module
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -173,7 +171,8 @@ proc perl5.setup {module vers {cpandir ""}} {
</span>                 system "echo $name is a stub port > ${destroot}${prefix}/share/doc/${name}/README"
             }
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {![info exists perl5.variants]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-delete port:perl${perl5.default_branch}
</span>         depends_lib-append port:perl${perl5.default_branch}
     }
     if {![string match p5-* $name] || $subport ne $name} {
</pre><pre style='margin:0'>

</pre>