summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hogan <code@greghogan.com>2024-03-20 17:47:04 +0000
committerGuix Patches Tester <>2024-04-17 13:50:43 +0200
commitf06398697f3e190cc591e0b97fd592f3173b2193 (patch)
tree9462e5d6cd61132a26fd3389eb2025a32a68e5f2
parentb47ae1ecc43baaf726701ab2d2f810ecfaa75428 (diff)
downloadguix-patches-issue-69548.tar
guix-patches-issue-69548.tar.gz
gnu: Add git-extras.issue-69548
Second version moves all propagated inputs except git to inputs and instead injects the requisite bin directories into PATH at the beginning of each script. Also removes the unused bootstrap, build, and check phases. * gnu/packages/version-control.scm (git-extras): New variable. Change-Id: I7493ec9284559596d35546211b5f642f851dc485
-rw-r--r--gnu/packages/version-control.scm72
1 files changed, 72 insertions, 0 deletions
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 0c7c496c82..90eea25088 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -104,6 +104,7 @@
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -120,6 +121,7 @@
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages less)
#:use-module (gnu packages linux)
#:use-module (gnu packages mail)
#:use-module (gnu packages man)
@@ -140,6 +142,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages rsync)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages texinfo)
@@ -4026,6 +4029,75 @@ Git project instead of @command{git filter-branch}.")
commit messages for style.")
(license license:expat)))
+(define-public git-extras
+ (package
+ (name "git-extras")
+ (version "7.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tj/git-extras")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zvmc8rrrmfn0wv603l0ql7h00mdknqvh6dnb86xhi6kfl018mbv"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; No configure script, build process, or tests.
+ (delete 'bootstrap)
+ (delete 'configure)
+ (delete 'build)
+ (delete 'check)
+ (add-after 'unpack 'hardcode-dependency-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The Makefile injects helper scripts and functions into each
+ ;; script. This substitution injects a PATH appending the bin
+ ;; directory of each non-propagated input in order to minimize
+ ;; the number of packages propagated to the profile.
+ (substitute* "Makefile"
+ (("head -1 bin/\\$\\(COMMAND\\) > \\$\\(TEMPFILE\\); \\\\" line)
+ (string-append
+ line "\n"
+ "echo 'PATH=$$PATH:"
+ (string-join
+ (map (lambda (name) (assoc-ref inputs name))
+ (list "coreutils-minimal"
+ "curl"
+ "findutils"
+ "gawk"
+ "less"
+ "ncurses"
+ "procps"
+ "rsync"
+ "sed"
+ "util-linux"))
+ "/bin:")
+ "' >> $(TEMPFILE); \\"))))))))
+ (propagated-inputs (list git))
+ (inputs
+ (list coreutils-minimal
+ curl
+ findutils
+ gawk
+ less
+ ncurses
+ procps
+ rsync
+ sed
+ util-linux))
+ (home-page "https://github.com/tj/git-extras")
+ (synopsis "Additional Git utilities")
+ (description "The git-extras package provides a collection of additional
+git commands for repository metrics and summarization, commit and log editing,
+developer workflow, and project and release management.")
+ (license license:expat)))
+
(define-public hut
(package
(name "hut")