From e3900a4d64e4bf6f426809d6bff058e5a2ae9bc8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 6 Jan 2018 15:47:47 -0500 Subject: 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 . * 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. --- gnu/packages/databases.scm | 3 +-- gnu/packages/docker.scm | 6 ++++-- gnu/packages/music.scm | 2 +- gnu/packages/shellutils.scm | 6 ++++-- 4 files changed, 10 insertions(+), 7 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index be02b79efa..921304ef2a 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -2610,6 +2610,7 @@ (define-public mongo-tools #:modules ((srfi srfi-1) (guix build go-build-system) (guix build utils)) + #:install-source? #f #:phases (let ((all-tools '("bsondump" "mongodump" "mongoexport" "mongofiles" @@ -2629,8 +2630,6 @@ (define-public mongo-tools (("skipping restore of system.profile collection\", db)") "skipping restore of system.profile collection\")")) #t)) - ;; We don't need to install the source code for end-user applications - (delete 'install-source) (replace 'build (lambda _ (for-each (lambda (tool) diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 7cb8f96258..4b6d04fe91 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -249,9 +249,11 @@ (define-public docker `(#:modules ((guix build gnu-build-system) ((guix build go-build-system) #:prefix go:) + (guix build union) (guix build utils)) #:imported-modules (,@%gnu-build-system-modules + (guix build union) (guix build go-build-system)) #:phases (modify-phases %standard-phases @@ -412,8 +414,8 @@ (define-public docker ;; Make build faster (setenv "GOCACHE" "/tmp") #t)) - (add-before 'build 'setup-environment - (assoc-ref go:%standard-phases 'setup-environment)) + (add-before 'build 'setup-go-environment + (assoc-ref go:%standard-phases 'setup-go-environment)) (replace 'build (lambda _ ;; Our LD doesn't like the statically linked relocatable things diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 05fdc1428f..54c7798472 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -4361,7 +4361,7 @@ (define-public demlo dir "/sbin")) (list ffmpeg chromaprint)))) #t))) - (add-after 'install-source 'install-scripts + (add-after 'install 'install-scripts (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (root (string-append out "/src/gitlab.com/ambrevar/demlo")) diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index a672aa041a..88c0f32e99 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -118,15 +118,17 @@ (define-public direnv #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) #:modules ((guix build gnu-build-system) ((guix build go-build-system) #:prefix go:) + (guix build union) (guix build utils)) #:imported-modules (,@%gnu-build-system-modules + (guix build union) (guix build go-build-system)) #:phases (modify-phases %standard-phases (delete 'configure) ;; Help the build scripts find the Go language dependencies. - (add-after 'unpack 'setup-go-environment - (assoc-ref go:%standard-phases 'setup-environment))))) + (add-before 'unpack 'setup-go-environment + (assoc-ref go:%standard-phases 'setup-go-environment))))) (inputs `(("go" ,go) ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml) -- cgit v1.2.3