guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/05: gnu: git-annex: Don't patch shebang used in hooks.


From: guix-commits
Subject: 02/05: gnu: git-annex: Don't patch shebang used in hooks.
Date: Thu, 8 Aug 2019 14:24:01 -0400 (EDT)

mbakke pushed a commit to branch master
in repository guix.

commit 3d45d8f14bea0468494442597e005c9a6b46155b
Author: Kyle Meyer <address@hidden>
Date:   Sun Jul 21 15:50:57 2019 -0400

    gnu: git-annex: Don't patch shebang used in hooks.
    
    git-annex relies on configuring Git's pre-commit and post-receive hooks.
    Avoid patching the shebang that git-annex embeds when generating these hooks
    so that the hooks don't fail if garbage collection claims the bash that was
    current when the annex repository was initialized.
    
    * gnu/packages/haskell-apps.scm (git-annex):[arguments]: Patch hook shebangs
    only temporarily for tests.
    
    Signed-off-by: Marius Bakke <address@hidden>
---
 gnu/packages/haskell-apps.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index e01f796..818e691 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2018 Arun Isaac <address@hidden>
 ;;; Copyright © 2016, 2017 Leo Famulari <address@hidden>
 ;;; Copyright © 2015 Paul van der Walt <address@hidden>
+;;; Copyright © 2019 Kyle Meyer <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -157,8 +158,13 @@ unique algebra of patches called 
@url{http://darcs.net/Theory,Patchtheory}.
        '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV")
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch-shell
+         (add-before 'configure 'patch-shell-for-tests
            (lambda _
+             ;; Shell.hs defines "/bin/sh" that is used in Git hooks.  We
+             ;; shouldn't patch hooks with Guix's current bash because the
+             ;; hooks can exist after that bash is garbage collected, but
+             ;; let's temporarily patch it so that we can run the tests.
+             (copy-file "Utility/Shell.hs" "/tmp/Shell.hs")
              (substitute* "Utility/Shell.hs"
                (("/bin/sh") (which "sh")))
              #t))
@@ -192,6 +198,11 @@ unique algebra of patches called 
@url{http://darcs.net/Theory,Patchtheory}.
                (symlink "git-annex" "git-annex-shell"))
              (invoke "git-annex" "test")
              #t))
+         (add-after 'check 'unpatch-shell-and-rebuild
+           (lambda args
+             ;; Undo `patch-shell-for-tests'.
+             (copy-file "/tmp/Shell.hs" "Utility/Shell.hs")
+             (apply (assoc-ref %standard-phases 'build) args)))
          (add-after 'install 'install-symlinks
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]