[Bug 2166409] Re: [SRU] Please backport golang-1.25 and 1.26 to noble and jammy

ChloƩ Smith 2166409 at bugs.launchpad.net
Fri Sep 11 19:07:27 UTC 2026


** Also affects: golang-1.25 (Ubuntu Resolute)
   Importance: Undecided
       Status: New

** Also affects: golang-1.26 (Ubuntu Resolute)
   Importance: Undecided
       Status: New

** Summary changed:

- [SRU] Please backport golang-1.25 and 1.26 to noble and jammy
+ [SRU] Please backport golang-1.25 (1.25.12) and golang-1.26 (1.26.7) to resolute, noble and jammy

** Description changed:

  ## [Impact]
  
  Noble 24.04 and Jammy 22.04 currently provide golang toolchains only up
  to and including `golang-1.24` (version `1.24.4`). Unfortunately as
  `1.26` isn't available yet we're blocked on building/maintaining pkgs
  that require a `go >= 1.26` toolchain
  
  Two new source pkgs will be required (as golang can only be built by a previous golang release):
- * `golang-1.25` (1.25.7-2): for bootstraping
- * `golang-1.26` (1.26.0-1): the actual pkg we want in noble and jammy
+ * `golang-1.25` (1.25.12-1): for bootstraping/completeness
+ * `golang-1.26` (1.26.7-1): the actual pkg we want in noble and jammy (and resolute for completeness)
  
  ### [Why is 1.25 needed as well?]
  
  `golang-1.26` upstream hardcodes a minimum bootstrap toolchain:
  
  ```
  src/cmd/dist/buildtool.go: const minBootstrap = "go1.24.6"
  ```
  
  Fortunately though, `golang-1.25` version `1.25.7-2` build-depends on
  `golang-1.24-go:native` and only requires `minBootstrap = go1.22.6`, so
  it builds directly against the `1.24.4` version of `golang-1.24` already
  published in jammy and noble
  
  ## [Proposed versions]
  
  Both packages can be backported with no new Ubuntu delta as the source
  is identical to what is already published in resolute (just needs a d/ch
  entry). I verified with `diff -rq pristine/debian extracted/debian`
  (`Files pristine/debian/changelog and extracted/debian/changelog
  differ`)
  
  ## [Test Plan]
  
  * Enable `-proposed` on a jammy and noble system
  * Install the new toolchain version with `sudo apt install golang-1.26`
  * Chech that the compiler reports the expected version with `/usr/lib/go-1.26/bin/go version` (should return `go version go1.26.0 linux/amd64` for amd64)
  * Build and run an easy script that pulls in the standard library:
  ```
  mkdir /tmp/gotest
  cd /tmp/gotest
  printf 'module hello\n\ngo 1.26\n' > go.mod
  cat > main.go <<'EOF'
  package main
  import ("fmt"; "net/http"; "runtime")
  func main() { _ = http.DefaultClient; fmt.Println(runtime.Version()) }
  EOF
  /usr/lib/go-1.26/bin/go build -o hello .
  ./hello
  ```
  
  * Check that cross-compilation still works:
  ```
  GOOS=linux GOARCH=arm64 /usr/lib/go-1.26/bin/go build -o hello-arm64 .
  file hello-arm64
  ```
  * Verify that the suite's default golang didn't also change (i.e. `go version` should still report the orginal `golang-defaults` version for the release)
  
  Also as these are technically new pkgs for JJ/NN, we should confirm that
  the autopkgtests run and succeed for each architecture (as Britney won't
  care the first time).
  
  ## [Where problems could occur]
  
  Golang toolchains tend to be big and slow to build, so the practical
  risk is build failures on slower or rarer architectures rather than any
  runtime regressions. These will be new source pkgs for jammy and noble
  (i.e. nothing in either release build-depends on `golang-1.25` or
  `golang-1.26` today, so there aren't any reverse dependencies to
  accidentally regress). The risk is contained to users who explicitly
  install `golang-1.26`. We're also not touching `golang-defaults` so any
  pkgs that use the default golang won't be changed.
  
  ## [Extra info]
  
  As neither `golang-1.25` or `golang-1.26` currently exist in jammy or
  noble, these uploads will land in the NEW queue (and I think require an
  AA review as well as the usual SRU team review?)
  
  I've built these in a PPA
  (https://launchpad.net/~kajiya/+archive/ubuntu/gogogo/+packages) but plz
  don't copy from there as I added `~ppa1`/`~ppa2` to the versions

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to golang-1.25 in Ubuntu.
https://bugs.launchpad.net/bugs/2166409

Title:
  [SRU] Please backport golang-1.25 (1.25.12) and golang-1.26 (1.26.7)
  to resolute, noble and jammy

Status in golang-1.25 package in Ubuntu:
  Fix Released
Status in golang-1.26 package in Ubuntu:
  Fix Released
Status in golang-1.25 source package in Jammy:
  New
Status in golang-1.26 source package in Jammy:
  New
Status in golang-1.25 source package in Noble:
  New
Status in golang-1.26 source package in Noble:
  New
Status in golang-1.25 source package in Resolute:
  New
Status in golang-1.26 source package in Resolute:
  New

Bug description:
  ## [Impact]

  Noble 24.04 and Jammy 22.04 currently provide golang toolchains only
  up to and including `golang-1.24` (version `1.24.4`). Unfortunately as
  `1.26` isn't available yet we're blocked on building/maintaining pkgs
  that require a `go >= 1.26` toolchain

  Two new source pkgs will be required (as golang can only be built by a previous golang release):
  * `golang-1.25` (1.25.12-1): for bootstraping/completeness
  * `golang-1.26` (1.26.7-1): the actual pkg we want in noble and jammy (and resolute for completeness)

  ### [Why is 1.25 needed as well?]

  `golang-1.26` upstream hardcodes a minimum bootstrap toolchain:

  ```
  src/cmd/dist/buildtool.go: const minBootstrap = "go1.24.6"
  ```

  However for `golang-1.25` we need to "downgrade" the build dependency
  to `golang-1.24-go` in jammy and noble's as 1.25 isn't in those
  releases yet

  
  ## [Test Plan]

  * Enable `-proposed` on a jammy and noble system
  * Install the new toolchain version with `sudo apt install golang-1.26`
  * Chech that the compiler reports the expected version with `/usr/lib/go-1.26/bin/go version` (should return `go version go1.26.0 linux/amd64` for amd64)
  * Build and run an easy script that pulls in the standard library:
  ```
  mkdir /tmp/gotest
  cd /tmp/gotest
  printf 'module hello\n\ngo 1.26\n' > go.mod
  cat > main.go <<'EOF'
  package main
  import ("fmt"; "net/http"; "runtime")
  func main() { _ = http.DefaultClient; fmt.Println(runtime.Version()) }
  EOF
  /usr/lib/go-1.26/bin/go build -o hello .
  ./hello
  ```

  * Check that cross-compilation still works:
  ```
  GOOS=linux GOARCH=arm64 /usr/lib/go-1.26/bin/go build -o hello-arm64 .
  file hello-arm64
  ```
  * Verify that the suite's default golang didn't also change (i.e. `go version` should still report the orginal `golang-defaults` version for the release)

  Also as these are technically new pkgs for JJ/NN, we should confirm
  that the autopkgtests run and succeed for each architecture (as
  Britney won't care the first time).

  ## [Where problems could occur]

  Golang toolchains tend to be big and slow to build, so the practical
  risk is build failures on slower or rarer architectures rather than
  any runtime regressions. These will be new source pkgs for jammy and
  noble (i.e. nothing in either release build-depends on `golang-1.25`
  or `golang-1.26` today, so there aren't any reverse dependencies to
  accidentally regress). The risk is contained to users who explicitly
  install `golang-1.26`. We're also not touching `golang-defaults` so
  any pkgs that use the default golang won't be changed.

  ## [Extra info]

  As neither `golang-1.25` or `golang-1.26` currently exist in jammy or
  noble, these uploads will land in the NEW queue (and I think require
  an AA review as well as the usual SRU team review?)

  I've built these in a PPA
  (https://launchpad.net/~kajiya/+archive/ubuntu/gogogo/+packages) but
  plz don't copy from there as I added `~ppa1`/`~ppa2` to the versions

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/golang-1.25/+bug/2166409/+subscriptions




More information about the foundations-bugs mailing list