diff options
author | Christopher Baines <mail@cbaines.net> | 2019-04-23 00:57:19 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-04-28 23:13:31 +0100 |
commit | 81aa6c721b0277a24456ae78364929dc38cb7e57 (patch) | |
tree | 4ddcfbfda986692e9e6398409fc2cea7f066b685 | |
parent | d779de18175fe99f4ed490bc8af2e80571389144 (diff) | |
download | guix-81aa6c721b0277a24456ae78364929dc38cb7e57.tar guix-81aa6c721b0277a24456ae78364929dc38cb7e57.tar.gz |
gnu: direnv: Change to the go-build-system.
The go-build-system is slightly more appropriate, and switching resolves an
issue with combining the 'unpack phase from the gnu-build-system, and the
'setup-go-environment from the go-build-system. With both of those phases
creating a directory, the first-subdirectory call at the end of the 'unpack
phase can return different values depending on the filesystem ordering.
* gnu/packages/shellutils.scm (direnv)[source]: Use the git repository, as
this works better with the go-build-system.
[build-system]: Change to the go-build-system.
[arguments]: Adjust for the go-build-system.
[native-inputs]: Remove go.
-rw-r--r-- | gnu/packages/shellutils.scm | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 59a8b744eb..56359ce160 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -105,35 +105,40 @@ are already there.") (name "direnv") (version "2.15.2") (source - (origin (method url-fetch) - (uri (string-append "https://github.com/direnv/" name - "/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (origin (method git-fetch) + (uri (git-reference + (url "https://github.com/direnv/direnv.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1hhmc6rb7b1d4s4kgb4blrq35h388ax37ap88dq3dgfcw9w6j1rm")))) - (build-system gnu-build-system) + "1y18619pmhfl0vrf4w0h75ybkkwgi9wcb7d9kv4n8drg1xp4aw4w")))) + (build-system go-build-system) (arguments - `(#:test-target "test" - #: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)) + '(#:import-path "github.com/direnv/direnv" #:phases (modify-phases %standard-phases - (delete 'configure) - ;; Help the build scripts find the Go language dependencies. - (add-before 'unpack 'setup-go-environment - (assoc-ref go:%standard-phases 'setup-go-environment)) - (add-after 'install 'remove-go-references - (assoc-ref go:%standard-phases 'remove-go-references))))) + (add-after 'unpack 'delete-vendor + (lambda _ + ;; Using a snippet causes issues with the name of the directory, + ;; so delete the extra source code here. + (delete-file-recursively "src/github.com/direnv/direnv/vendor") + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + (with-directory-excursion "src/github.com/direnv/direnv" + ;; The following file needs to be writable so it can be + ;; modified by the testsuite. + (make-file-writable "test/scenarios/base/.envrc") + (invoke "make" "test") + ;; Clean up from the tests, especially so that the extra + ;; direnv executable that's generated is removed. + (invoke "make" "clean"))) + #t))))) (native-inputs - `(("go" ,go) - ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml) + `(("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml) ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv) ("which" ,which))) (home-page "https://direnv.net/") |