<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1b8e9a45e286a0fc0b00375de771da7234ee4a8c">https://github.com/macports/macports-ports/commit/1b8e9a45e286a0fc0b00375de771da7234ee4a8c</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 1b8e9a45e28 openmpi/mpich: refactor subport creation and validation to pg 'mpiutil'
</span>1b8e9a45e28 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 1b8e9a45e286a0fc0b00375de771da7234ee4a8c
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Tue May 18 20:30:11 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    openmpi/mpich: refactor subport creation and validation to pg 'mpiutil'
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/62807
</span>---
 _resources/port1.0/group/mpiutil-1.0.tcl |  71 +++++++++++++++++++++
 science/mpich/Portfile                   |  94 ++++++++--------------------
 science/openmpi/Portfile                 | 104 +++++++++++--------------------
 3 files changed, 132 insertions(+), 137 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/mpiutil-1.0.tcl b/_resources/port1.0/group/mpiutil-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index f2896179cf1..9b689994e0d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/mpiutil-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/mpiutil-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,6 +4,26 @@
</span> # This PortGroup provides shared logic, and helpers, for our MPI ports.
 #==============================================================================
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc mpiutil_add_subports {name subport clist clist_unsupported clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach key [dict keys ${clist}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${name} ${subport} ${key}
</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;'>+    foreach key ${clist_unsupported} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${name} ${subport} ${key}
</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;'>+    foreach key ${clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${name} ${subport} ${key}
</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;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} "default"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc mpiutil_add_subport {name subport key} {
     subport ${name}-${key} {}
     # TODO: Remove all traces of -devel on or after Janurary 2022
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,6 +39,57 @@ proc mpiutil_add_subport {name subport key} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc mpiutil_validate_subport {name subport cname clist clist_unsupported clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global os.platform os.major
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global configure.compiler compiler.command_line_tools_version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set subport_enabled no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${cname} in ${clist_unsupported}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        known_fail  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            error "${subport} is not supported on ${os.platform} ${os.major}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        append long_description " Note: ${cname} not supported on ${os.platform} ${os.major}."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {${cname} in ${clist_obsolete}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup   obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        known_fail  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            error "${subport} is obsolete"
</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;'>+        if {[string match "clang*" ${cname}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            replaced_by ${name}-clang90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            replaced_by ${name}-gcc7
</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;'>+        append long_description " Note: ${subport} is obsolete."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {(${subport} ne ${name}) && (${subport} ne "${name}-devel")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set subport_enabled yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${cname} eq "default"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${configure.compiler} eq "clang"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set compiler_version [compiler.command_line_tools_version ${configure.compiler}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[vercmp 421.11.66 ${compiler_version}] <= 0 && [vercmp ${compiler_version} 425.0.24] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # Linker for Apple clang version 421.11.66 segfaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # See https://trac.macports.org/ticket/36654#comment:9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    known_fail yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ui_error "${subport} fails on OS ${os.major} with compiler\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ${configure.compiler}, version ${compiler_version}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        return -code error "incompatible macOS version"
</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 subport_enabled no
</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;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return ${subport_enabled}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc mpiutil_add_compiler_depends_lib {cname} {
     set cport_name ""
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mpich/Portfile b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index bdc3f12f8ee..fbbff3e6fee 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,10 +66,11 @@ livecheck.url       ${homepage}/static/downloads/
</span> # Please update the mpi portgroup whenever clist is changed.
 
 # Sub-ports names and corresponding configure.compiler value
<span style='display:block; white-space:pre;background:#ffe0e0;'>-array set clist {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang   {clang}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc7    {macports-gcc-7}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [dict create \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        clang {clang} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        gcc7  {macports-gcc-7} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ]
</span> set clist_unsupported [list]
 set clist_obsolete [list]
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -89,14 +90,14 @@ lappend clist_obsolete \
</span> 
 if { ${os.arch} eq "arm" } {
     # disable unreliable clang versions for ARM
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang11) {macports-clang-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang11 {macports-clang-11}
</span>     lappend clist_unsupported \
         clang90 clang10
 } elseif { ${os.major} >= 11 } {
     # mpich only compiles with clang90+ on MacOS 10.7 and later
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang90) {macports-clang-9.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang10) {macports-clang-10}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang11) {macports-clang-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang90 {macports-clang-9.0}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang10 {macports-clang-10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang11 {macports-clang-11}
</span> } else {
     lappend clist_unsupported \
         clang90 clang10 clang11
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -108,81 +109,37 @@ if { ${os.arch} eq "arm" } {
</span>     lappend clist_unsupported \
         gcc9 gcc10
 } elseif { ${os.major} >= 12 } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc9)    {macports-gcc-9}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc10)   {macports-gcc-10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist gcc9  {macports-gcc-9}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist gcc10 {macports-gcc-10}
</span> } else {
     lappend clist_unsupported \
         gcc9 gcc10
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key [array names clist] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key ${clist_unsupported} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key ${clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-unset key
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ${name} ${subport} "default"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set subport_enabled no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set cname           [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${cname} in ${clist_unsupported}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail  yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        error "${subport} is not supported on ${os.platform} ${os.major}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    append long_description " Note: ${cname} not supported on ${os.platform} ${os.major}."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${cname} in ${clist_obsolete}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup   obsolete 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail  yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        error "${subport} is obsolete"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpiutil_add_subports \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${name} ${subport} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${clist} ${clist_unsupported} ${clist_obsolete}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[string match "clang*" ${cname}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by ${name}-clang90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by ${name}-gcc7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cname \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set subport_enabled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [mpiutil_validate_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${cname} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${clist} ${clist_unsupported} ${clist_obsolete}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    append long_description " Note: ${subport} is obsolete."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {(${subport} ne ${name}) && (${subport} ne "${name}-devel")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport_enabled}} {
</span>     if {${cname} eq "default"} {
         set cname "mp"
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set subport_enabled yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     if {${cname} eq "mp"} {
         # make every attempt to avoid MacPorts compilers
         if {${os.major} == 10} {
             configure.cxx_stdlib libstdc++
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${configure.compiler} eq "clang"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set compiler_version [compiler.command_line_tools_version ${configure.compiler}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[vercmp 421.11.66 ${compiler_version}] <= 0 && [vercmp ${compiler_version} 425.0.24] < 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                # Linker for Apple clang version 421.11.66 segfaults
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                # See https://trac.macports.org/ticket/36654#comment:9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ui_error "${subport} fails on OS ${os.major} with compiler ${compiler}, version ${compiler_version}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    return -code error "incompatible macOS version"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set subport_enabled no
</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;'>-}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport_enabled}} {
</span>     configure.args  --disable-dependency-tracking    \
                     --disable-fortran                \
                     --disable-silent-rules           \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -244,9 +201,11 @@ if {${subport_enabled}} {
</span>     livecheck.type              none
 
     if {[string first "-default" $subport] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.compiler      [lindex $clist($cname) 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set compiler            [dict get ${clist} ${cname}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.compiler      [lindex ${compiler} 0]
</span>         append long_description \
             "\\n\\nTHIS SUBPORT WRAPS ${cname}'s C/C++"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        unset compiler
</span>     } else {
         append long_description \
             "\\n\\nTHIS SUBPORT WRAPS MACPORTS' DEFAULT COMPILER FOR C/C++"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -443,8 +402,7 @@ pre-built packages for ${subport} by running:
</span>     }
 
 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  port:${name}-default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts-append    mpich-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append      port:${name}-default
</span>     distfiles
     patchfiles
     supported_archs         noarch
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/openmpi/Portfile b/science/openmpi/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f92d6c659ad..00755214bb0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/openmpi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/openmpi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,103 +60,67 @@ livecheck.regex     Open MPI v(\[0-9\.\]+) released
</span> # Please update the mpi portgroup whenever clist is changed.
 
 # Sub-ports names and corresponding configure.compiler value
<span style='display:block; white-space:pre;background:#ffe0e0;'>-array set clist {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang   {clang}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc7    {macports-gcc-7}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist_unsupported [list]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist_obsolete [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [dict create \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        clang {clang} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        gcc7  {macports-gcc-7} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist_unsupported \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist_obsolete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [list]
</span> 
 # TODO: Remove these obsolete subports on or after January 2022, along with all
 # traces of -devel. For the latter, also remember to update proc
 # 'mpiutil_add_subport', in portgroup 'mpiutil'.
 lappend clist_obsolete \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang33 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang34 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang37 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang50 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang60 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang70 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang80 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc49 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang33 clang34 clang37 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang50 clang60 clang70 clang80 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc49 gcc5 gcc6 gcc8
</span> 
 if { ${os.arch} eq "arm" } {
     # disable unreliable clang versions for ARM
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang11) {macports-clang-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang11 {macports-clang-11}
</span>     lappend clist_unsupported \
         clang90 clang10
 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang90) {macports-clang-9.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang10) {macports-clang-10}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang11) {macports-clang-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang90 {macports-clang-9.0}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang10 {macports-clang-10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist clang11 {macports-clang-11}
</span> }
 
 # gcc 9+ only available on macOS10.7 (Darwin11) and newer
 # However, gcc9+ builds fail on MacOS 10.7, so only enable for MacOS 10.8+.
 if { ${os.arch} eq "arm" } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc11)   {macports-gcc-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist(gcc11)   {macports-gcc-11}
</span>     lappend clist_unsupported \
         gcc9 gcc10
 } elseif { ${os.major} >= 12 } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc9)    {macports-gcc-9}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc10)   {macports-gcc-10}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc11)   {macports-gcc-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist gcc9  {macports-gcc-9}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist gcc10 {macports-gcc-10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set clist gcc11 {macports-gcc-11}
</span> } else {
     lappend clist_unsupported \
         gcc9 gcc10 gcc11
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key [array names clist] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key ${clist_unsupported} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key ${clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-unset key
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ${name} ${subport} "default"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set subport_enabled no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set cname           [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${cname} in ${clist_unsupported}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail  yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        error "${subport} is not supported on ${os.platform} ${os.major}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    append long_description " Note: ${cname} not supported on ${os.platform} ${os.major}."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${cname} in ${clist_obsolete}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup   obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpiutil_add_subports \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${name} ${subport} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${clist} ${clist_unsupported} ${clist_obsolete}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail  yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        error "${subport} is obsolete"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cname \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set subport_enabled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    [mpiutil_validate_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${cname} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${clist} ${clist_unsupported} ${clist_obsolete}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[string match "clang*" ${cname}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by ${name}-clang90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by ${name}-gcc7
</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;'>-    append long_description " Note: ${subport} is obsolete."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {(${subport} ne ${name}) && (${subport} ne "${name}-devel")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport_enabled}} {
</span>     if {${cname} == "default"} {
         set cname "mp"
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set subport_enabled yes
</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;'>-if {${subport_enabled}} {
</span>     pre-extract {
         file mkdir ${workpath}/build
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -211,9 +175,11 @@ if {${subport_enabled}} {
</span>     livecheck.type              none
 
     if {${cname} ne "mp"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.compiler      [lindex $clist($cname) 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set compiler            [dict get ${clist} ${cname}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.compiler      [lindex ${compiler} 0]
</span>         append long_description \
             "\\n\\nTHIS SUBPORT WRAPS ${cname}'s C/C++"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        unset compiler
</span>     } else {
         append long_description \
             "\\n\\nTHIS SUBPORT WRAPS MACPORTS' DEFAULT COMPILER FOR C/C++"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -415,7 +381,7 @@ you execute 'mpicc' etc.) please run:
</span>     }
 
 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:${subport}-default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append      port:${name}-default
</span>     distfiles
     patchfiles
     supported_archs         noarch
</pre><pre style='margin:0'>

</pre>