# 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].