From Fedora Project Wiki

< Changes

Revision as of 17:21, 7 January 2021 by Bcotton (talk | contribs) (→‎Current status)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Golang 1.16


The Go compiler is updated to the upcoming version 1.16 in Fedora 34, and all golang packages are rebuilt. (The pre-release version of Go will be used for the rebuild if released version will not be available at the time of the mass rebuild).


Current status

Detailed Description

Rebase of Golang package to upcoming version 1.16 in Fedora 34. Golang 1.16 is scheduled to be released in February 2021. Due to Go packages' current nature and state, the rebuild of dependent packages will be required.

Benefit to Fedora

Stay closely behind upstream by providing the latest release of Go, which includes improved support of the risc-v processor architecture and added support for aarch64 based darwin(macOS) machines, among other bug fixes, enhancements and new features. For a complete list of changes, see upstream change notes at . Therefore Fedora will be providing a reliable development platform for Go language and projects written in it.


  • Proposal owners: Rebase Golang package in Fedora 34, help resolve possible issues found during package rebuilds.
  • Other developers: Fix possible issues, with help from Golang maintainers.
  • Release engineering: Rebuild of dependent packages as part of planned mass-rebuild. Tracking issue.[1]
  • Policies and guidelines: N/A
  • Trademark approval: N/A

Upgrade/compatibility impact


How To Test

a) Install golang 1.16 from rawhide and use it to build your application(s)/package(s).
b) Scratch build against rawhide.
Your application/package built using golang 1.16 should work as expected.

User Experience



dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'golang'
dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'compiler(go-compiler)'
dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'compiler(golang)'
dnf repoquery -q  --releasever=rawhide --disablerepo='*' --qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=updates-testing-source --archlist=src --whatrequires 'go-rpm-macros'
Omitted due to the number of packages listed ~1600.

Not all of listed require re-build as they might not ship binaries and/or do not use golang compiler during build, but only use Go rpm macros that pull it in to every build root.

Contingency Plan

  • Contingency mechanism:Reverting to golang version 1.15.X if significant issues are discovered.
  • Contingency deadline: Beta Freeze(?)
  • Blocks release? No
  • Blocks product? No


Release Notes