-
Notifications
You must be signed in to change notification settings - Fork 17.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
all: announce end of support for old Linux versions #60792
Comments
Just a note that the case for Linux is a bit different than that for macOS and Windows, as Linux does not have a sole vendor. We need to identify organizations that distribute older versions of Linux that are supported and used. For example, I believe that we should continue to support all versions of Linux that are actively supported by commercial organizations, such as RHEL or Suse Linux Enterprise Server, and also all versions of Linux that are actively supported by communities supporting stable versions, such as Rocky Linux. Of course the nature of Linux is such that the set of active organizations changes over time. |
3.10 could be a reasonable target. For reference some facts about distros, and the kernel changes tangential to Go and userland. Centos 7 - Linux 3.10 Debian 9 - Linux 4.9 Current stable Debian is version 12.2. So Debian 9.x is really ancient actually. Debian 8 (Jessie), from 2015, had Linux 3.16.7-ckt9 in the 8.0 Ubuntu 16.04.7 LTS (initial relase of 16.04 - 2016-04-21; with latest minor bump 16.04.7 - August 13, 2020) - End of standard support: April 2021, EOL: April 2026 OpenSUSE 13.1, released 2013-11-19, end of life 2016-01, Linux 3.11.6 Oracle Linux 7 - initial release, Jul 2014, about same time as RHEL 7/ Centos. Extended support, Jun 2026. But if you pay, they will support you indefinitively (even on older version than 7), and it is likely there are people having such support in various industries. It is unlikely they run Go programs, and if they do, they will likely run older Go version for this anyway. Also of note is that Oracle Linux 6.x, latest release, 6.10 from July 2018, has updated kernels, including 4.1.12, 2.6.39, and not just 2.6.32 (as RHEL 6). These are the major ones that might be running and be sometimes hard to upgrade. Other distributions are more desktop and normal user focused, and update way faster, and earlier, and do not have LTS often. So it is close to 0% they would use old system or kernel. For example, 3.10 would be like 20 major releases ago in world of Fedora, or Ubuntu. The biggest risk would be probably various mobile and embedded arm devices, like Android, SBCs, routers, etc. Linux 3.10 was release 30 June 2013, and was 10th LTS release. EOLed November 2017. Red Hat was maintaining own version of 3.10 (with backports from newer kernels, including some syscalls that were not originally in any upstream 3.10 release) until very recently. Personally, I do not use any of these ancient systems. (Where I work, we migrated from Centos 7, about 2.5 years ago, and almost migrated from Centos 8 to Centos 9 to, already on some parts of our infra, but migrate on demand slowly instead). In other places, I run Debian 12, and still few Debian 11 systems, that could be updated anytime, but just wait their time. Notable features added between 2.6.32 and 3.10, that might be semi related to userland go runtime 3.10:
3.9
3.8 (2012)
3.7
3.6
3.5
3.4
3.3
3.2
3.1
3.0
2.6.32 - 2.6.39 - Various / A lot / Not listed here. I also looked at some man pages, and found few bits, for Linux above 2.6.32: vdso:
syscalls:
Extra syscall options:
|
Thanks for the suggestion above. We've entered the release freeze for 1.22 and there aren't announcements to make for this release, moving to the next for now. |
FWIW, it looks like Rust bumped their minimum Linux version to 3.2 last year, to align with glibc:
https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html |
Filed #67001 for Linux 3.2. |
CL 589015 added a pre-announcement to Go 1.23 release notes. Moving to the next milestone. |
CL 622015 added an announcement to Go 1.24 release notes. CC @cagedmantis. Moving to the next milestone, unless there's more I missed. |
New Linux versions get released over time, and old ones cannot be supported indefinitely. This is the tracking recurring issue for announcing end of support for very old versions that we decide to drop support for. (The corresponding tracking issues for macOS and Windows, the other two OSes that have first class ports, are #23011 and #52188.)
The most recent change was applied in Go 1.18, where proposal #45964 increased the minimum Linux kernel version requirement from 2.6.23 to 2.6.32. See https://go.dev/doc/go1.18#linux.
CC @golang/release.
The text was updated successfully, but these errors were encountered: