<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/d0f217b65a301cb7a2dafde0aa203ff40583ac15">https://github.com/macports/macports-ports/commit/d0f217b65a301cb7a2dafde0aa203ff40583ac15</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 d0f217b65a3 go: build on macOS 10.6
</span>d0f217b65a3 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit d0f217b65a301cb7a2dafde0aa203ff40583ac15
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Sat Nov 27 18:51:00 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    go: build on macOS 10.6
</span>---
 lang/go/Portfile                    |   9 ++-
 lang/go/files/patch-macOS-10.6.diff | 120 ++++++++++++++++++++++++++++++++++++
 2 files changed, 127 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/go/Portfile b/lang/go/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 8ac65534cde..f10040fd49c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/go/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/go/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,6 +139,11 @@ if {${os.platform} eq "darwin" && ${os.major} <= ${legacysupport.newest_darwin_r
</span>     }]
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} eq 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # The branch https://github.com/catap/go/tree/macos-10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-macOS-10.6.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> use_parallel_build  no
 
 if {${configure.build_arch} eq "arm64"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -216,10 +221,10 @@ destroot {
</span>     copy {*}[glob -directory ${worksrcpath}/doc *] ${docdir}
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < 10} {
</span>     known_fail yes
     pre-fetch {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_error "${name} @${version} requires OS X 10.7 or greater."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "${name} @${version} requires OS X 10.6 or greater."
</span>         return -code error "incompatible Mac OS X version"
     }
 }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/go/files/patch-macOS-10.6.diff b/lang/go/files/patch-macOS-10.6.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..55cc7922af8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/go/files/patch-macOS-10.6.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,120 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/crypto/x509/internal/macos/security.go src/crypto/x509/internal/macos/security.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0f6fa42b7b..90719b4cfe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/crypto/x509/internal/macos/security.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/crypto/x509/internal/macos/security.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,18 +81,6 @@ func x509_SecTrustSettingsCopyCertificates_trampoline()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const kSecFormatX509Cert int32 = 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//go:cgo_import_dynamic x509_SecItemExport SecItemExport "/System/Library/Frameworks/Security.framework/Versions/A/Security"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-func SecItemExport(cert CFRef) (data CFRef, err error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret := syscall(abi.FuncPCABI0(x509_SecItemExport_trampoline), uintptr(cert), uintptr(kSecFormatX509Cert),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          0 /* flags */, 0 /* keyParams */, uintptr(unsafe.Pointer(&data)), 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if ret != 0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return 0, OSStatus{"SecItemExport", int32(ret)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return data, nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-func x509_SecItemExport_trampoline()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const errSecItemNotFound = -25300
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //go:cgo_import_dynamic x509_SecTrustSettingsCopyTrustSettings SecTrustSettingsCopyTrustSettings "/System/Library/Frameworks/Security.framework/Versions/A/Security"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -109,10 +97,15 @@ func SecTrustSettingsCopyTrustSettings(cert CFRef, domain SecTrustSettingsDomain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ func x509_SecTrustSettingsCopyTrustSettings_trampoline()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//go:cgo_import_dynamic x509_SecPolicyCopyProperties SecPolicyCopyProperties "/System/Library/Frameworks/Security.framework/Versions/A/Security"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//go:cgo_import_dynamic x509_SecCertificateCopyData SecCertificateCopyData "/System/Library/Frameworks/Security.framework/Versions/A/Security"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-func SecPolicyCopyProperties(policy CFRef) CFRef {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret := syscall(abi.FuncPCABI0(x509_SecPolicyCopyProperties_trampoline), uintptr(policy), 0, 0, 0, 0, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return CFRef(ret)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++func SecCertificateCopyData(cert CFRef) ([]byte, error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ret := syscall(abi.FuncPCABI0(x509_SecCertificateCopyData_trampoline), uintptr(cert), 0, 0, 0, 0, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if ret == 0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return nil, errors.New("x509: invalid certificate object")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b := CFDataToSlice(CFRef(ret))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CFRelease(CFRef(ret))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return b, nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-func x509_SecPolicyCopyProperties_trampoline()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++func x509_SecCertificateCopyData_trampoline()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/crypto/x509/internal/macos/security.s src/crypto/x509/internal/macos/security.s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0038f25b27..03a389b9cf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/crypto/x509/internal/macos/security.s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/crypto/x509/internal/macos/security.s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,9 +12,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TEXT ·x509_SecTrustSettingsCopyCertificates_trampoline(SB),NOSPLIT,$0-0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   JMP     x509_SecTrustSettingsCopyCertificates(SB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-TEXT ·x509_SecItemExport_trampoline(SB),NOSPLIT,$0-0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  JMP     x509_SecItemExport(SB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TEXT ·x509_SecTrustSettingsCopyTrustSettings_trampoline(SB),NOSPLIT,$0-0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   JMP     x509_SecTrustSettingsCopyTrustSettings(SB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-TEXT ·x509_SecPolicyCopyProperties_trampoline(SB),NOSPLIT,$0-0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  JMP     x509_SecPolicyCopyProperties(SB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++TEXT ·x509_SecCertificateCopyData_trampoline(SB),NOSPLIT,$0-0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  JMP x509_SecCertificateCopyData(SB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/crypto/x509/root_darwin.go src/crypto/x509/root_darwin.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 05593bb105..c4cfc3358a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/crypto/x509/root_darwin.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/crypto/x509/root_darwin.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -115,14 +115,11 @@ func loadSystemRoots() (*CertPool, error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // exportCertificate returns a *Certificate for a SecCertificateRef.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ func exportCertificate(cert macOS.CFRef) (*Certificate, error) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  data, err := macOS.SecItemExport(cert)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  data, err := macOS.SecCertificateCopyData(cert)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if err != nil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return nil, err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  defer macOS.CFRelease(data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  der := macOS.CFDataToSlice(data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return ParseCertificate(der)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return ParseCertificate(data)
</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;'>+ // isRootCertificate reports whether Subject and Issuer match.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -181,23 +178,12 @@ func sslTrustSettingsResult(cert macOS.CFRef) (macOS.SecTrustSettingsResult, err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return macOS.SecTrustSettingsResultTrustRoot, nil
</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;'>+-  isSSLPolicy := func(policyRef macOS.CFRef) bool {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          properties := macOS.SecPolicyCopyProperties(policyRef)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          defer macOS.CFRelease(properties)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if v, ok := macOS.CFDictionaryGetValueIfPresent(properties, macOS.SecPolicyOid); ok {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  return macOS.CFEqual(v, macOS.CFRef(macOS.SecPolicyAppleSSL))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return false
</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;'>+   for i := 0; i < macOS.CFArrayGetCount(trustSettings); i++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           tSetting := macOS.CFArrayGetValueAtIndex(trustSettings, i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // First, check if this trust setting is constrained to a non-SSL policy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if policyRef, ok := macOS.CFDictionaryGetValueIfPresent(tSetting, macOS.SecTrustSettingsPolicy); ok {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  if !isSSLPolicy(policyRef) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if _, ok := macOS.CFDictionaryGetValueIfPresent(tSetting, macOS.SecTrustSettingsPolicy); ok {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  continue
</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;'>+           // Then check if it is restricted to a hostname, so not a root.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/syscall/zerrors_darwin_amd64.go src/syscall/zerrors_darwin_amd64.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0b9897284c..c35e07622d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/syscall/zerrors_darwin_amd64.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/syscall/zerrors_darwin_amd64.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -233,7 +233,7 @@ const (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   F_ALLOCATECONTIG                  = 0x2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   F_CHKCLEAN                        = 0x29
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   F_DUPFD                           = 0x0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  F_DUPFD_CLOEXEC                   = 0x43
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  F_DUPFD_CLOEXEC                   = 0x0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   F_FLUSH_DATA                      = 0x28
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   F_FREEZE_FS                       = 0x35
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   F_FULLFSYNC                       = 0x33
</span></pre><pre style='margin:0'>

</pre>