<pre style='margin:0'>
Aaron Madlon-Kay (amake) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ee3c8eaa0e049d6efc5e04ce527e8b33c9fb63a7">https://github.com/macports/macports-ports/commit/ee3c8eaa0e049d6efc5e04ce527e8b33c9fb63a7</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ee3c8eaa0e049d6efc5e04ce527e8b33c9fb63a7
</span>Author: Aaron Madlon-Kay <amake@macports.org>
AuthorDate: Sat Dec 7 23:59:18 2019 +0900

<span style='display:block; white-space:pre;color:#404040;'>    golang-1.0 PortGroup: support git tags as go.vendors lock values
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This is helpful for supporting go.vendors values generated from go.sum files as
</span><span style='display:block; white-space:pre;color:#404040;'>    produced by the modern go module system.
</span>---
 _resources/port1.0/group/golang-1.0.tcl | 36 ++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 14 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/golang-1.0.tcl b/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index fddc586..b97f2c0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,15 +35,15 @@
</span> # The go.vendors option expects a list of package IDs, each followed by these
 # labeled values:
 #
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# - lock: the version of the package in git SHA-1 format. This must
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#   come before any checksums.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# - lock: the version of the package in git reference format. This must come
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   before any checksums.
</span> #
 # - rmd160, sha256, size, etc.: checksums of the package. All checksums
 #   supported by the checksums keyword are supported.
 #
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# The list of vendors can be found in the Gopkg.lock, glide.lock, etc. file in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# the upstream source code. The go2port tool (install via MacPorts) can be used
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# to generate a skeleton portfile with precomputed go.vendors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The list of vendors can be found in the go.sum, Gopkg.lock, glide.lock,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# etc. file in the upstream source code. The go2port tool (install via MacPorts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# can be used to generate a skeleton portfile with precomputed go.vendors.
</span> 
 options go.package go.domain go.author go.project go.version go.tag_prefix go.tag_suffix
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -150,7 +150,7 @@ default test.target     ""
</span> default test.env    {GOPATH=${gopath} GOARCH=${goarch} GOOS=${goos} CC=${configure.cc}}
 
 # go.vendors name1 ver1 name2 ver2...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# When a Gopkg.lock, glide.lock, etc. is present use go2port to generate values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# When a go.sum, Gopkg.lock, glide.lock, etc. is present use go2port to generate values
</span> set go.vendors_internal {}
 option_proc go.vendors handle_go_vendors
 proc handle_go_vendors {option action {vendors_str ""}} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -187,11 +187,15 @@ proc handle_set_go_vendors {vendors_str} {
</span>                 set vversion [lindex ${vendors_str} ${ix}]
                 incr ix
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                # The vauthor may be wrong (the project has been renamed/changed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                # ownership) so we need to use the SHA-1 suffix later to identify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                # the package when moving into the GOPATH. GitHub uses 7 digits;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                # Bitbucket uses 12. We take 7 and use globbing.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set sha1_short [string range ${vversion} 0 6]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[string match v* ${vversion}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set sha1_short {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # The vauthor may be wrong (the project has been renamed/changed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # ownership) so we need to use the SHA-1 suffix later to identify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # the package when moving into the GOPATH. GitHub uses 7 digits;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # Bitbucket uses 12. We take 7 and use globbing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set sha1_short [string range ${vversion} 0 6]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span>                 lappend go.vendors_internal [list ${sha1_short} ${vpackage} ${vversion}]
 
                 switch ${vdomain} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -263,10 +267,14 @@ post-extract {
</span>     }
 
     foreach vlist ${go.vendors_internal} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set sha1_short [lindex ${vlist} 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set vpackage [lindex ${vlist} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lassign ${vlist} sha1_short vpackage
</span>         file mkdir ${gopath}/src/[file dirname ${vpackage}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        move [glob ${workpath}/*-${sha1_short}*] ${gopath}/src/${vpackage}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${sha1_short} ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            move [glob ${workpath}/*-${sha1_short}*] ${gopath}/src/${vpackage}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lassign [go._translate_package_id ${vpackage}] _ vauthor vproject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            move [glob ${workpath}/${vauthor}-${vproject}-*] ${gopath}/src/${vpackage}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 }
 
</pre><pre style='margin:0'>

</pre>