--- Begin Message ---
Subject: |
[PATCH 00/13] Add go-1.16 and build with gccgo |
Date: |
Thu, 24 Jun 2021 23:52:55 -0700 |
Hello Guix,
This patch adds go 1.16, but does *not* make it the default for other packages
which use go (as suggested in [2]). There have been a lot of changes between
1.14 and 1.16, and while I have fixed many issues, I am sure continued testing
will uncover many more.
This patch is based on [0], which adds gccgo-10.
With this patch, go automatically bootstraps from gccgo[0][1] on platforms not
supported by go 1.4, but you can do so on any platform with:
guix build go --with-input=go@1.4-bootstrap-20171003=gccgo@10
Additionally, to build packages with 1.16:
guix build <package> --with-input=go@1.14=go@1.16
I would appreciate testing and feedback on the new bootstrap process,
especially from powerpc64le users, as I have only been able to test on x86-64.
(Note that it took about two hours for gccgo to build and 30 minutes for gccgo
to build go.)
Changes from 1.14:
* Bootstrap with gccgo on platforms which do not support go 1.4 (see above)
* Use GO_LDSO to set the interpreter rather than patching files
* Fix typo in cgoldflags patch ("-rpath=" > "-Wl,-rpath=")
* Fix and re-enable some cgo/gccgo tests
* Remove references to perl (used for tests) to reduce closure size by 10%
* Set GOCACHE so go doesn't complain that it can't access it $HOME
* Break out tests into "check" phase so builders have more control
I have successfully built and tested most go packages on x86-64, including
restic, syncthing, chezmoi, and exercism.
However... docker does not pass tests. It should probably be updated to 20.10,
but it is a very complicated package and I do not have the skill to do so. I
attempted to backport some of the fixes, but that was also beyond my abilities.
Perhaps someone else will rise to the challenge? :)
Sarah
[0] <https://issues.guix.gnu.org/49019> [PATCH 0/1] gnu: Add gccgo-10.
[1] <https://issues.guix.gnu.org/28226> Build go with gccgo
[2] <https://issues.guix.gnu.org/45161> [PATCH] Added Go 1.16.2
Sarah Morgensen (13):
gnu: go-github-com-puerkitobio-goquery: Update to 1.7.0.
gnu: go-go-uber-org-atomic: Update to 1.8.0.
gnu: go-github-com-sergi-go-diff: Update to 1.2.0.
gnu: go-github-com-pelletier-go-toml: Update to 1.9.3.
gnu: go-github-com-masterminds-goutils: Update to 1.1.1.
gnu: go-github-com-magiconair-properties: Update to 1.8.5.
gnu: go-github-com-dlclark-regexp2: Update to 1.4.0.
gnu: earlyoom: Patch tests for go-1.16.
gnu: go-github-com-bmatcuk-doublestar: Remove test incompatible with
go-1.16.
gnu: restic: Patch tests for go-1.16.
gnu: go-gopkg-in-check-v1: Update to latest.
gnu: go-etcd-io-bbolt: Update to 1.3.6.
gnu: Add go-1.16.
gnu/local.mk | 4 +
gnu/packages/backup.scm | 5 +-
gnu/packages/golang.scm | 243 +++++++++++++++---
gnu/packages/linux.scm | 4 +-
.../earlyoom-1.6.2-disable-go-module.patch | 17 ++
.../patches/go-fix-script-tests.patch | 18 ++
...m-bmatcuk-doublestar-1.3-remove-test.patch | 15 ++
.../restic-0.9.6-fix-tests-for-go1.15.patch | 51 ++++
8 files changed, 314 insertions(+), 43 deletions(-)
create mode 100644 gnu/packages/patches/earlyoom-1.6.2-disable-go-module.patch
create mode 100644 gnu/packages/patches/go-fix-script-tests.patch
create mode 100644
gnu/packages/patches/go-github-com-bmatcuk-doublestar-1.3-remove-test.patch
create mode 100644 gnu/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch
base-commit: c7804cd97b28ef012acc20c1d861904e9592382b
prerequisite-patch-id: edb56de17ac3cce58402c83a9671b00381dfee76
--
2.31.1
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#49221: [PATCH 00/13] Add go-1.16 and build with gccgo |
Date: |
Thu, 05 Aug 2021 22:59:52 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Hello Sarah,
Sarah Morgensen <iskarian@mgsn.dev> writes:
[...]
>> I'm guessing this may also be not be necessary if we were to
>> successfully update restic to v0.12.1. Do you think that would be
>> difficult to try?
>
> You are correct. This should eventually be done, but between v0.9.6 and
> v0.10, restic unvendored all its dependencies, so it would require
> packaging any missing dependencies.
I see! Thanks for the explanation. I've now merged both remaining
patches from this tracker as commits 733ca63bcd and 1273548f4f, with the
first one modified to do the patching as a phase (the patch file name
was too long -- caught by guix lint).
Thank you!
Closing.
Maxim
--- End Message ---