Fedora doesn't provide latest version of Go

Hi there,

This is basically an updated copy/paste of my issue report that I made more than two weeks ago and got no response yet.

The latest version of the golang package depends on version of Fedora. Currently this versions matrix looks like the following:

Fedora version golang version
Fedora Rawhide 1.24.1-1.fc43
Fedora 42 1.24.1-1.fc42
Fedora 41 1.23.7-1.fc41
Fedora 40 1.22.12-1.fc40

Fedora seems to have some strange policy and besides patch level updates doesn’t provide versions of Go newer than the version that was chosen for the particular Fedora release. For instance I’m using Fedora 41 and I will never get Go 1.24.x before I upgrade it to Fedora 42 that isn’t released yet.

This can bring a critical issue that prevents upgrading dependencies of Go projects. For example I can’t upgrade dependencies of my project automatically because the newer version of one of its dependencies needs Go >= 1.24.0 that I can’t install officially on my Fedora 41, and this is the error that I get:

$ go get -u ./...
go: github.com/ory/client-go@v1.17.2 requires go >= 1.24.0 (running go 1.23.7; GOTOOLCHAIN=local)

I can run go get -u github.com/ory/client-go@v1.15.17 manually, but what about the rest of the dependencies? I’m blocked and will not be able to upgrade all other dependencies automatically for several months now. Upgrading them one by one is very inconvenient.

Fedora 42 is planned for release after about two months from now. But I’m not planning to upgrade my Fedora to version 42 at the day 1 after it will be released, so for me it will happen even later.

On the other hand Fedora provides several versions of Java:

java-1.8.0-openjdk
java-11-openjdk
java-17-openjdk
java-21-openjdk
java-latest-openjdk (OpenJDK 23)

Please do something like that with the golang packages as well. If you go to https://go.dev/dl/ you will see two sets of Go versions that you can download there:

  1. Stable versions - currently provides two versions 1.24.1 and 1.23.7 of Go
  2. Archived versions - provides all older versions of Go

Please provide at least the same stable versions in all supported releases of Fedora. It’s much fewer than the bunch of versions of Java that you provides now. I can’t wait months for Fedora 42 just to be able to run go get -u ./... without a fear of blocking errors like the above.

This is completely unfair and unjustified that Go is more restricted in Fedora than Java.

2 Likes

That’s normal - as the updates policy for stable releases explains:

As a result, we should avoid major updates of packages within a stable release. Updates should aim to fix bugs, and not introduce features, particularly when those features would materially affect the user or developer experience.

This necessarily means that stable releases will not closely track the very latest upstream code for all packages. We have Rawhide for that.

So it’s completely normal for stable releases to only get bug fix releases while rawhide and branched get feature updates.

sudo dnf copr enable krouma/golang-1.24
sudo dnf update golang

1 Like

@tomh Then why this update policy doesn’t apply on Java? The java-latest-openjdk (OpenJDK 23) is available for Fedora 40 as well, although OpenJDK 23 was officially released by Oracle in September 17, i.e. long after Fedora 40 was already released. Also Java 23 is even not LTS and normally it isn’t used on a production. Unlike non-LTS Java the latest version of Go is production ready.

My second argument is about “updates should aim to fix bugs”. Currently I can’t update my dependencies automatically using the go get -u ./... command and this is a bug for sure. To fix it I need the golang package of Go 1.24.x.

Just to make it clear, I’m asking to make both 1.23.x and 1.24.x versions of Go packages be available. So if anybody worries about the stability of latest Go in Fedora they will always have the choice of two versions.

2 Likes

@ledeni Thanks for advice but this is not my personal project, so I can’t use and can’t demand my co-workers to use unofficial versions of the package. We use Go officially available in Fedora.

1 Like

That’s an excellent question and I agree that they’re probably not really keeping to the policy though they may have an exception I don’t know about.

One way that Java is slightly different is that (against normal Fedora practice) they package multiple versions, and the “latest” package you mention is not the default in Fedora 41 and will not become the default unless you explicitly change that with alternatives.

The current Fedora policy makes it difficult to keep up with various Go projects as they may require newer or older versions of Go.

I have similar issues when building packages that are locked on Go-1.22 or expect Go-1.24.

Golang maintainer here. The Go SIG keeps this COPR repository https://copr.fedorainfracloud.org/coprs/g/go-sig/golang-rawhide/. I, personally, created this repository years ago due to this issue.

1 Like

Also, I just updated the bug linked in OP’s message with additional information. Sorry for the delay in the response, I was on a trip.