build-system/go: Build with a filesystem union of Go dependencies.
authorLeo Famulari <leo@famulari.name>
Sat, 6 Jan 2018 20:47:47 +0000 (15:47 -0500)
committerLeo Famulari <leo@famulari.name>
Thu, 14 Mar 2019 19:34:26 +0000 (15:34 -0400)
commite3900a4d64e4bf6f426809d6bff058e5a2ae9bc8
tree84ecbe268ad4024f43fbceb179e2697a72535f15
parent5a14b913ad8513202077471539d41c51d9f271ee
build-system/go: Build with a filesystem union of Go dependencies.

This basically changes (guix build-system go) so that instead of looking
up its dependencies in a list of directories in $GOPATH, all the
Go dependencies are symlinked into a single directory.

Fixes <https://bugs.gnu.org/33620>.

* guix/build/go-build-system.scm (setup-go-environment): New variable.
(setup-environment, install-source): Remove variables.
(unpack): Unpack the source relative to $GOPATH.
(install): Do not install the compiled objects in the 'pkg' directory.
Install the source code in this phase, and only install the source of
the package named by IMPORT-PATH.
* doc/guix.texi (Build Systems): Adjust accordingly.
* gnu/packages/docker.scm (docker): Import (guix build union) on the build side
and adjust to build phase name changes in (guix build-system go).
* gnu/packages/shellutils.scm (direnv): Likewise.
* gnu/packages/databases.scm (mongo-tools)[arguments]:
Set '#:install-source #f'.
* gnu/packages/music.scm (demlo)[arguments]: Move the 'install-scripts'
phase after the 'install' phase.
doc/guix.texi
gnu/packages/databases.scm
gnu/packages/docker.scm
gnu/packages/music.scm
gnu/packages/shellutils.scm
guix/build-system/go.scm
guix/build/go-build-system.scm