This announcement dropped today:
The #golang Module Mirror (~caching proxy), Index, and Checksum DB have launched:https://t.co/IrUZXimjCkhttps://t.co/sO1wvgsKxxhttps://t.co/8XrlUF3cX5— Brad Fitzpatrick (@bradfitz) April 29, 2019
Props to team. (I did nothing.)
I realized that this is the missing piece for supporting Go modules in pkgsrc.
If you go back and reread the “fetch” section in Supporting Go Modules in
pkgsrc, it seems a bit awkward compared to a standard fetch action. The
reason is that
go mod download re-packs the source into its own zip format
The module proxy (https://proxy.golang.org/) solves this problem and enables a
simple solution for modules, very similar to lang/rust/cargo.mk. Basically,
a target similar to
show-cargo-depends that outputs a Makefile fragment
containing the names of modules that the current package depends upon. All
these become distfiles fetched from a hypothetical
Crucially, this means that the distfiles do not have to be stored in a
LOCAL_PORTS subdirectory but can use the normal fetch infrastructure.
Now all that remains is implementing this :) There is some more time to do
that: Go 1.13 (to be released some time in summer) will use module support by
default. What’s more, a bunch of new software (including the various
golang.org/x/* repositories) has
go.mod files these days, using
module-based builds by default.