Re: [MacPorts] #73086: Go is broken on 10.13–10.15

MacPorts noreply at macports.org
Fri Jul 31 23:22:27 UTC 2026


#73086: Go is broken on 10.13–10.15
---------------------------+------------------------------------------
  Reporter:  barracuda156  |      Owner:  herbygillot
      Type:  defect        |     Status:  assigned
  Priority:  High          |  Milestone:
 Component:  ports         |    Version:  2.11.5
Resolution:                |   Keywords:  catalina, mojave, highsierra
      Port:  go            |
---------------------------+------------------------------------------

Comment (by herbygillot):

 In [changeset:"bca720cfc2b5e9ddacf298b6f5d01c19e7b11fbf/macports-ports"
 bca720cfc2b5e9ddacf298b6f5d01c19e7b11fbf/macports-ports] (master):
 {{{
 #!ConfigurableCommitTicketReference repository="macports-ports"
 revision="bca720cfc2b5e9ddacf298b6f5d01c19e7b11fbf"
 golang: let a port declare the oldest Go it can be built with

 go.toolchain_min records what a port's source needs. Where the running
 system
 is capped below that, the port is marked known_fail rather than being
 fetched,
 built and failed on every push. Unset means the port states no minimum, so
 nothing is gated until a port opts in.

 The value may be written as go.mod writes it, "1.24" or "1.24.0"; only the
 series is compared, because a ceiling names a series and MacPorts ships
 the
 newest patch release of each one it packages. Comparing the two directly
 would
 be wrong in the case that matters, since vercmp ranks 1.24.0 above 1.24.

 A declared series is checked against the range go_toolchain describes.
 Above it
 the value is refused: either it is a typo, which would otherwise skip the
 port
 everywhere without a word, or it is a real release whose macOS floor has
 not
 been recorded, and neither can be gated correctly. Below it the value is
 kept
 but flagged, since such a port can never be gated.

 Where to read the value depends on how the port builds, and the header
 says so:
 with go.offline_build no the build runs in module mode and Go enforces the
 go.mod directive, so it is exactly the minimum; otherwise go.mod is not
 consulted at all and the directive is only an upper bound on what the
 source
 needs.

 This ticket asked for either a Go that works on 10.13 through 10.15, or a
 way
 to stop building the ports that cannot work there. The first landed when
 `go`
 became a wrapper over the versioned toolchains, so those systems now
 install
 the newest Go they can actually run: 1.20 on 10.13 and 10.14, 1.22 on
 10.15.
 This is the second half.

 It is deliberately not marked as closing the ticket. Only one port
 declares a
 minimum so far, so the buildbots still retry the rest, and it is worth
 seeing
 how a handful behave across the range of macOS versions before calling it
 done.

 See: https://trac.macports.org/ticket/73086

 Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/73086#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list