guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 1481959db7372d7cc919fe77155030b3b3f67339
Author: Mathieu Lirzin <[email protected]>
AuthorDate: Wed Jan 28 04:54:20 2026 +0100
gnu: clojure-tools: Add coreutils-minimal and openjdk inputs.
* gnu/packages/clojure.scm (clojure-tools)
[inputs]: Add coreutils-minimal, openjdk and guile-3.0/pinned.
[arguments]: Wrap PATH and JAVA_HOME in ‘clojure’ executable.
Do not reference openjdk in generated classpath.
Change-Id: Ia6ed624df29d2ee42f08c6e1ae3d64719b0f7474
Signed-off-by: Julien Lepiller <[email protected]>
---
gnu/packages/clojure.scm | 71 ++++++++++++++++++++++++++----------------------
1 file changed, 38 insertions(+), 33 deletions(-)
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index a7e04bb9c0..a61e8d9f71 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -24,17 +24,19 @@
(define-module (gnu packages clojure)
#:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages java)
#:use-module (gnu packages maven)
#:use-module (gnu packages readline)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system copy)
- #:use-module (guix build-system clojure)
- #:use-module (ice-9 match))
+ #:use-module (guix build-system clojure))
(define-public clojure-spec-alpha
(package
@@ -390,41 +392,44 @@ designs.")
`(delete-file ,(string-append "clojure-tools-" version ".jar")))))
(build-system copy-build-system)
(arguments
- `(#:install-plan
- '(("deps.edn" "lib/clojure/")
- ("example-deps.edn" "lib/clojure/")
- ("tools.edn" "lib/clojure/")
- ("exec.jar" "lib/clojure/libexec/")
- ("clojure" "bin/")
- ("clj" "bin/"))
- #:modules ((guix build copy-build-system)
- (guix build utils)
- (srfi srfi-1)
- (ice-9 match))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "clojure"
- (("PREFIX") (string-append (assoc-ref outputs "out")
"/lib/clojure")))
- (substitute* "clj"
- (("BINDIR") (string-append (assoc-ref outputs "out") "/bin"))
- (("rlwrap") (which "rlwrap")))))
- (add-after 'fix-paths 'copy-tools-deps-alpha-jar
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "clojure"
- (("\\$install_dir/libexec/clojure-tools-\\$version\\.jar")
- (string-join
- (append-map (match-lambda
- ((label . dir)
- (find-files dir "\\.jar$")))
- inputs)
- ":"))))))))
+ (list #:install-plan #~'(("deps.edn" "lib/clojure/")
+ ("example-deps.edn" "lib/clojure/")
+ ("tools.edn" "lib/clojure/")
+ ("exec.jar" "lib/clojure/libexec/")
+ ("clojure" "bin/")
+ ("clj" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'install 'fix-paths
+ (lambda _
+ (substitute* "clj"
+ (("BINDIR") (string-append #$output "/bin")))
+ (substitute* "clojure"
+ (("PREFIX") (string-append #$output "/lib/clojure")))
+ (let ((coreutils #$(this-package-input "coreutils-minimal"))
+ (jre #$(this-package-input "openjdk")))
+ (wrap-script "clojure"
+ `("JAVA_HOME" = (,jre))
+ `("PATH" = (,(string-append coreutils "/bin")))))))
+ (add-after 'fix-paths 'copy-tools-deps-alpha-jar
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "clojure"
+ (("\\$install_dir/libexec/clojure-tools-\\$version\\.jar")
+ (let* ((selected (assq-remove! inputs "openjdk"))
+ (input-dirs (map cdr selected))
+ (jars (apply append
+ (map (lambda (dir)
+ (find-files dir "\\.jar$"))
+ input-dirs))))
+ (string-join jars ":")))))))))
(inputs (list rlwrap
+ coreutils-minimal
clojure
clojure-tools-deps
+ guile-3.0/pinned
java-commons-logging-minimal
- java-slf4j-nop))
+ java-slf4j-nop
+ openjdk))
(home-page "https://clojure.org/releases/tools")
(synopsis "CLI tools for the Clojure programming language")
(description "The Clojure command line tools can be used to start a