Subject: [PATCH] gnu: git-sizer: Pin git version.

From: Greg Hogan <[email-masked]>
Date: Thu, 24 Oct 2024 19:05:07 +0000

When I submitted this package the placement of git in native-inputs was
incorrect. This patch switches that dependency to the pinned version of
git in inputs and therefore hard-codes the path.

* gnu/packages/version-control.scm (git-sizer)
[arguments]<#:phases>: Use gexps and hard-code git path in 'fix-paths.
[propagated-inputs]: Remove git.
[native-inputs]: Add git-minimal/pinned.

Change-Id: Ide0c5a3df7c0cf0ecdaa5446b5d13970dae96560
---
 gnu/packages/version-control.scm | 44 +++++++++++++++++---------------
 1 file changed, 24 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 6bd37fee82..78342fbe31 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -4364,26 +4364,30 @@ (define-public git-sizer
                 "1b4sl4djnfaxwph41y4bh9yal4bpd1nz4403ryp7nzna7h2x0zis"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/github/git-sizer"
-       #:install-source? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* '("src/github.com/github/git-sizer/git_sizer_test.go")
-               (("bin/git-sizer")
-                (string-append (assoc-ref outputs "out")
-                               "/bin/git-sizer")))))
-         (replace 'check
-           (lambda* (#:key tests? import-path #:allow-other-keys)
-             (when tests?
-               (for-each (lambda (test)
-                           (invoke "go" "test" "-v" "-run" test import-path))
-                         ;; TestExec and TestSubmodule require a copy of the
-                         ;; Git repository.
-                         '("TestBomb" "TestFromSubdir" "TestRefgroups"
-                           "TestRefSelections" "TestTaggedTags"))))))))
-    (native-inputs (list git))
+     (list
+      #:import-path "github.com/github/git-sizer"
+      #:install-source? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-paths
+            (lambda _
+              (let ((git #$git-minimal/pinned))
+               (substitute* '("src/github.com/github/git-sizer/git_sizer_test.go")
+                 (("bin/git-sizer")
+                  (string-append #$output "/bin/git-sizer")))
+               (substitute* '("src/github.com/github/git-sizer/git/git.go")
+                 (("gitBin, err := findGitBin\\(\\)")
+                  (string-append "gitBin := \"" git "/bin/git\"\n\tvar err error"))))))
+          (replace 'check
+            (lambda* (#:key tests? import-path #:allow-other-keys)
+              (when tests?
+                (for-each (lambda (test)
+                            (invoke "go" "test" "-v" "-run" test import-path))
+                          ;; TestExec and TestSubmodule require a copy of the
+                          ;; Git repository.
+                          '("TestBomb" "TestFromSubdir" "TestRefgroups"
+                            "TestRefSelections" "TestTaggedTags"))))))))
+    (inputs (list git-minimal/pinned))
     (propagated-inputs
      (list go-github-com-cli-safeexec
            go-github-com-davecgh-go-spew

base-commit: ac19ae37b5000c224c4cd167b239cc3027d01b30
-- 
2.46.1