All, I want to start a discussion here about the go ebuilds we have in the tree that are installing *.a files to $GOROOT/pkg. From now on in this message, when I say package, I mean a *.a file.
dev-lang/go must do this, because it includes the standard library. However, I do not think third party programs written in go should put their packages there, or maybe anywhere at all, for a couple of reasons. First, the format of Go's packages is not guaranteed to be the same for new releases of Go; only source level compatibility is guaranteed [1]. This means every thircd party Go package should be rebuilt every time dev-lang/go is bumped. I thought about subslotting dev-lang/go, but given the second consideration, that seems to be a lot of overhead without a good reason unless I am missing something. The second consideration is that go's packages are static; they are only used at build time. Once you have a go binary compiled, you do not need any external libraries to run the binary, and normally in Gentoo, we do not keep static libraries around. These considerations, combined with how "go get" pulls all dependencies of a project, lead me to wonder if we should have ebuilds in the tree for Go projects that only install packages. I'm interested in hearing what people think. William [1] https://golang.org/doc/go1compat
signature.asc
Description: Digital signature
