Subject: [PATCH] Update direnv to 2.28.0
From: Artem Chernyak <[email-masked]>
To: [email-masked]
Date: Mon, 4 Oct 2021 21:23:25 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

This patch includes an update to direnv. As part of the updated a few
extra changes were necessary to support the new version:

- Addition of go-golang-org-x-mod as a new dependency.
- Removal of the delete-vendor step since direnv no longer depends on
vendor files.
- Removal of the test run. The new tests depend on
https://github.com/golangci/golangci-lint which requires a lot of othe
dependencies. Since it's only needed for tests, maybe we can handle it
in a separate patch or once golangci-lint becomes needed in other
places.
From ced4b50ad1dda92e7ba58bebbe702b9dd7a3dae9 Mon Sep 17 00:00:00 2001
From: hackeryarn <[email-masked]>
Date: Mon, 4 Oct 2021 21:08:46 -0500
Subject: [PATCH] Update direnv to 2.28.0

---
 gnu/packages/golang.scm     | 37 +++++++++++++++++++++++++++++++++++++
 gnu/packages/shellutils.scm | 13 +++++--------
 2 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index a96f743f68..3e4e691631 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -2669,6 +2669,43 @@ time.")
       (home-page "https://godoc.org/golang.org/x/xerrors")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-mod
+  (let ((commit "0f08993efd8a8ec67e75bcccf86b0e1569b0ab0a")
+        (revision "0"))
+    (package
+      (name "go-golang-org-x-mod")
+      (version (git-version "0.5.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://go.googlesource.com/x/mod")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pl0jc5jvg7hxj4z66zg6kglnq5g7li09f3k9klwvyr4jx5dw88k"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/mod/"
+         #:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           ;; Source-only package
+           (delete 'build))))
+      (home-page "https://golang.org/x/mod")
+      (synopsis "Tools to work directly with Go module mechanics")
+      (description
+       "This repository holds packages for writing tools that work directly
+with Go module mechanics. That is, it is for direct manipulation of Go modules
+themselves.
+It is NOT about supporting general development tools that need to do things
+like load packages in module mode. That use case, where modules are incidental
+rather than the focus, should remain in x/tools, specifically
+x/tools/go/packages.
+The specific case of loading packages should still be done by invoking the go
+command, which remains the single point of truth for package loading algorithms.")
+      (license license:bsd-3))))
+
 (define-public go-github-com-burntsushi-toml
   (package
     (name "go-github-com-burntsushi-toml")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 94b5536df7..a8f0956913 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -239,7 +239,7 @@ are already there.")
 (define-public direnv
   (package
     (name "direnv")
-    (version "2.15.2")
+    (version "2.28.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -248,18 +248,13 @@ are already there.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "1y18619pmhfl0vrf4w0h75ybkkwgi9wcb7d9kv4n8drg1xp4aw4w"))))
+               "0yk53jn7wafklixclka17wyjjs2g5giigjr2bd0xzy10nrzwp7c9"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/direnv/direnv"
+       #:tests? #f ;; TODO fix tests
        #:phases
        (modify-phases %standard-phases
-         (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))
          (add-after 'install 'install-manpages
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -285,6 +280,8 @@ are already there.")
     (native-inputs
      `(("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
        ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)
+       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
+       ("go-golang-org-x-mod" ,go-golang-org-x-mod)
        ("which" ,which)))
     (home-page "https://direnv.net/")
     (synopsis "Environment switcher for the shell")
-- 
2.33.0