diff options
| author | Mathieu Lirzin <mthl@gnu.org> | 2026-01-28 04:54:20 +0100 |
|---|---|---|
| committer | Julien Lepiller <julien@lepiller.eu> | 2026-02-09 19:21:52 +0100 |
| commit | 1481959db7372d7cc919fe77155030b3b3f67339 (patch) | |
| tree | 0f0444765cc437bf79e814604372431dfbc7528f /gnu | |
| parent | 9ccc91ae1f00983af695b6aa189cd589ff77c990 (diff) | |
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 <julien@lepiller.eu>
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/packages/clojure.scm | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index a7e04bb9c08..a61e8d9f714 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 |
