golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
124.05k stars 17.68k forks source link

all: announce end of support for old macOS releases #23011

Open bradfitz opened 6 years ago

bradfitz commented 6 years ago

Note, Aug 2022: See https://github.com/golang/go/issues/23011#issuecomment-738395341 for the macOS deprecation schedule.


Apple continues to put out new macOS releases. We can't run builders for all of them forever.

I propose we announce in the Go 1.10 release notes that Go 1.10 will be the last release to officially support macOS 10.8 (Mountain Lion).

macOS 10.8 was last updated Oct 3, 2013, over 4 years ago.

(macOS 10.9 was last updated Mar 21, 2016, 19 months ago, which is somewhat more recent)

Apple doesn't publish official End-of-Life dates for macOS versions, but I read that their security policy is that they issue security updates for the past 3 releases.

Given that they're on 10.13 now, that means 10.13, 10.12, and 10.11 are supported by them.

Our policy of additionally supporting 10.10 and 10.9 in Go 1.11 would be even more.

/cc @rsc @ianlancetaylor

dmitshur commented 11 months ago

The pre-announcement is added in the CL above, moving to the next.

probonopd commented 11 months ago

Is there a hard technical reason why newer versions of Go can't be built on older versions of Mac OS X?

programmingkidx commented 9 months ago

@probonopd Good question. Just because Apple no longer supports a version of Mac OS doesn't mean Go can't support it. I still use Mac OS 10.12 and find it very useful.

programmingkidx commented 8 months ago

@probonopd I did the work and found out that there are technical reasons why newer versions of Go can't be built on older versions of Mac OS X. The reason is missing functions. While working on trying to make Go 1.22.0 build on Mac OS 10.12 I encountered these missing functions:

The chtimes() function doesn't work correctly on Mac OS 10.12.

Overall not a very impressive reason to give up compatibility with older versions of Mac OS X. I did finally figure out how to build Go 1.22.0 on Mac OS 10.12. My patch seems to work well. I am working with MacPorts to try to make a port for Go 1.22.0. Here is where I post my directions on building the compiler on Mac OS 10.12: https://trac.macports.org/ticket/69466#no1.

probonopd commented 8 months ago

Thanks for taking the time to investigate this @programmingkidx. On my Macs, 10.6-10.9 is the latest I would like to install, and it would be awesome if Go programs could still run there. How hard is implementing the missing Mac OS X functions in Go?

programmingkidx commented 8 months ago

Actually most of the missing functions have already been implemented in C. See https://github.com/macports/macports-legacy-support/tree/bce12afbf6e10e0216a87ba15c246b446fc810e1.

I am investigating calling C functions from Go's runtime. My theory is I can compile all the new functions into a static library file and somehow embed these functions into a binary. If this works then it could be possible to make binaries and the Go compiler run on Mac OS 10.4 (x86). As for PowerPC that would take a little more work.

dmitshur commented 6 months ago

CL 563856 added a note to Go 1.23 release notes, moving to the next.

gopherbot commented 13 hours ago

Change https://go.dev/cl/627616 mentions this issue: doc/next: pre-announce dropping macOS 11 support