guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 2e099c8907d1c0e78e27e6793092cfa25728d0b6
Author: Mathieu Lirzin <[email protected]>
AuthorDate: Thu Feb 12 01:45:28 2026 +0100

    gnu: clojure-tools: Wrap clojure executable.
    
    * gnu/packages/clojure.scm (clojure-tools)
    [inputs]: Add coreutils-minimal, guile-3.0/pinned, openjdk:jdk.
    [arguments]: Wrap PATH and JAVA_HOME in ‘clojure’ executable.
    Do not reference openjdk in generated tools classpath.
    
    Change-Id: Ie711b1f870dc4f9609bec9a570215cacbf57e4a6
    Signed-off-by: Julien Lepiller <[email protected]>
---
 gnu/packages/clojure.scm | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index be6c1ad95f..09079bf6dc 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -24,6 +24,8 @@
 
 (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 (guix gexp)
@@ -33,8 +35,7 @@
   #: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
@@ -410,16 +411,29 @@ designs.")
                  (lambda* (#:key inputs #:allow-other-keys)
                    (substitute* "clojure"
                      (("\\$install_dir/libexec/clojure-tools-\\$version\\.jar")
-                      (let* ((input-dirs (map cdr inputs))
+                      (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 ":")))))))))
+                        (string-join jars ":"))))))
+               (add-after 'install 'wrap-clojure
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (let ((coreutils (assoc-ref inputs "coreutils-minimal"))
+                         (jdk (assoc-ref inputs "openjdk")))
+                     (wrap-script (string-append #$output "/bin/clojure")
+                       `("JAVA_HOME" = (,jdk))
+                       `("PATH" = (,(string-append coreutils "/bin"))))))))))
     (inputs (list clojure
                   clojure-tools-deps
+                  coreutils-minimal
+                  guile-3.0/pinned
                   java-commons-logging-minimal
-                  java-slf4j-nop))
+                  java-slf4j-nop
+                  ;; Depend on JDK instead of JRE since common developer tools
+                  ;; such as ‘cider-nrepl’ require it.
+                  (list openjdk "jdk")))
     (home-page "https://clojure.org/releases/tools";)
     (synopsis "CLI tools for the Clojure programming language")
     (description "This package provides the @command{clojure} and

Reply via email to