Subject: bug#50493: [PATCH staging 0/4] build-system/go: Use go-1.17 by default.

From: Sarah Morgensen <[email-masked]>
Date: Sun, 19 Sep 2021 22:19:30 -0700

Hello Guix,

This patch series updates the Go build system to use Go 1.17 by default.

As a necessity, because go-1.17 no longer contains its own pre-compiled
standard library, an implicit input is added to the build system which
contains the build cache from building the standard library with the
go-build-system.  (This way, we can always guarantee that the cache is valid
because it's built with the same flags as the build system.)  The build system
is also modified to make use of this cache.

(We use the build cache rather than archives because the Go project is moving
away from archives towards an authoritative build cache.)

Three packages are modified to keep using an older Go:

* docker now explicitly uses go-1.14

* go-ipfs and go-github-com-go-ipfs-cmdkit-files now explitly use go-1.16
(go-ipfs and gx badly need to be upgraded!)

There are about 900 dependent packages according to `guix refresh -l go', but
I don't know how many are leaf packages, so I marked this for staging.  The
actual series is based on master because go-1.17 is only present in master.

I have built them all out successfully on x86_64.

Sarah Morgensen (4):
  build-system/go: Add #:substitutable? argument.
  build-system/go: Initialize build cache from input packages.
  build-system/go: Add pre-built standard library as implicit input.
  build-system/go: Use go-1.17 by default.

 gnu/packages/docker.scm        |  2 +-
 gnu/packages/golang.scm        | 32 +++++++++++++++++++++++++++++++-
 gnu/packages/ipfs.scm          |  6 ++++--
 guix/build-system/go.scm       | 24 ++++++++++++++++++++----
 guix/build/go-build-system.scm | 26 +++++++++++++++++++++++---
 5 files changed, 79 insertions(+), 11 deletions(-)

base-commit: a640ee7da3311e4fa560c7163d2dd7d24a25585a
-- 
2.33.0