(address . guix-patches@gnu.org)
# Add package `go-ethereum`
These patches add the [go-ethereum][5] package and a small workaround that
allows experimental module support.
## [Checklist][1]
1. Code authentication: all the code is being pulled from Git repositories
and Go packages, so there isn't any specific code signature we can verify.
2. Synopsis and description: built from the official documentation and
around the style guidelines.
3. Results for `guix lint`: everything seems to be fine, and it seems to
have scheduled a [Software Heritage][2] archival (?).
4. Native build check: the package builds correctly on my platform
(x86-64), using `guix build` package.
5. Cross-build check: package was not tested on any other supported
platform because `go-build-system` [doesn't seem to support
cross-compilation][3].
6. Package deduplication: dependencies are being pulled from their
respective module repositories at build time; there isn't practically any
overlap between the package code and the Guix repositories.
7. Package size: as per `guix size`, this package requires a total of 418.7
MiB, with a package (self) size of 282.4 MiB.
8. Dependent packages: this is a freshly added package with no dependent
items.
9. Deterministic build: this package is fully deterministic and has fixed
hashes for both the initial download and the build derivation.
10. Inclusive language: documentation was written with neutrality in mind
and there isn't any obvious bias, though it might need proofreading.
11. Patch atomicity: this patch contains only one set of related changes,
though modifications affect two files.
12. Code formatting: added lines were formatted by using `indent-code.el`.
13. Source consistency: all the involved downloads are being pulled along
with a Git tag or commit, so results should be consistent enough.
14. Guix build: these changes don't affect Guix builds nor introduce any
warning.
15. Guix consistency: these changes do not break Guix in any obvious way.
## Desiderata
It would be great to have easier ways to replace Go module management
system with Guix in a seamless and painless way. Rust build system for Guix
has a cleaner implementation, majorly due to the existence of a
[centralized package registry][4].
[3]:
[4]: https://crates.io