<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>