@@ -23,6 +23,7 @@
(define-module (gnu packages clojure)
#:use-module (gnu packages)
#:use-module (gnu packages java)
+ #:use-module (gnu packages version-control)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@@ -368,3 +369,34 @@ (define-public clojure-tools-cli
"The @code{tools.cli} library provides Clojure programmers with tools to
work with command-line arguments.")
(license license:epl1.0)))
+
+(define-public clojure-tools-gitlibs
+ (package
+ (name "clojure-tools-gitlibs")
+ (version "2.4.172")
+ (home-page "https://github.com/clojure/tools.gitlibs")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "19d83wigmigy66f5i61a3ishg7zrlv8jngj8m9brsh9v38a0fwdr"))))
+ (build-system clojure-build-system)
+ (arguments
+ '(#:source-dirs '("src/main/clojure")
+ #:test-dirs '("src/test/clojure")
+ #:doc-dirs '()
+ ;; FIXME: Tests modify filesystem (cloning git repos), and the build
+ ;; system does not like this.
+ #:tests? #f))
+ (native-inputs (list git))
+ (synopsis "API for retrieving, caching, and programatically accessing git
+libraries")
+ (description "To access git dependencies (for example, via tools.deps),
+one must download git directories and working trees as indicated by git
+shas. This library provides this functionality and also keeps a cache of git
+dirs and working trees that can be reused.")
+ (license license:epl1.0)))