• Andrew's avatar
    [release-branch.go1.12] all: base64-encode binaries that will cause Apple notarization to fail · a106f553
    Andrew authored
    Starting with macOS 10.15 (Catalina), Apple now requires all software
    distributed outside of the App Store to be notarized. Any binaries we
    distribute must abide by a strict set of requirements like code-signing
    and having a minimum target SDK of 10.9 (amongst others).
    
    Apple’s notarization service will recursively inspect archives looking to
    find notarization candidate binaries. If it finds a binary that does not
    meet the requirements or is unable to decompress an archive, it will
    reject the entire distribution. From cursory testing, it seems that the
    service uses content sniffing to determine file types, so changing
    the file extension will not work.
    
    There are some binaries and archives included in our distribution that
    are being detected by Apple’s service as potential candidates for
    notarization or decompression. As these are files used by tests and some
    are intentionally invalid, we don’t intend to ever make them compliant.
    
    As a workaround for this, we base64-encode any binaries or archives that
    Apple’s notarization service issues a warning for, as these warnings will
    become errors in January 2020.
    
    Updates #34986
    Updates #35747
    
    Change-Id: I106fbb6227b61eb221755568f047ee11103c1680
    Reviewed-on: https://go-review.googlesource.com/c/go/+/208118
    Run-TryBot: Andrew Bonventre <andybons@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    (cherry picked from commit 8bbfc51d)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/208220Reviewed-by: default avatarAlexander Rakoczy <alex@golang.org>
    a106f553
reader_test.go 31.3 KB