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/packages/clojure.scm | |
| 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/packages/clojure.scm')
| -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 @@ | |||
| 24 | 24 | ||
| 25 | (define-module (gnu packages clojure) | 25 | (define-module (gnu packages clojure) |
| 26 | #:use-module (gnu packages) | 26 | #:use-module (gnu packages) |
| 27 | #:use-module (gnu packages base) | ||
| 28 | #:use-module (gnu packages guile) | ||
| 27 | #:use-module (gnu packages java) | 29 | #:use-module (gnu packages java) |
| 28 | #:use-module (gnu packages maven) | 30 | #:use-module (gnu packages maven) |
| 29 | #:use-module (gnu packages readline) | 31 | #:use-module (gnu packages readline) |
| 32 | #:use-module (guix gexp) | ||
| 30 | #:use-module ((guix licenses) #:prefix license:) | 33 | #:use-module ((guix licenses) #:prefix license:) |
| 31 | #:use-module (guix packages) | 34 | #:use-module (guix packages) |
| 32 | #:use-module (guix download) | 35 | #:use-module (guix download) |
| 33 | #:use-module (guix git-download) | 36 | #:use-module (guix git-download) |
| 34 | #:use-module (guix build-system ant) | 37 | #:use-module (guix build-system ant) |
| 35 | #:use-module (guix build-system copy) | 38 | #:use-module (guix build-system copy) |
| 36 | #:use-module (guix build-system clojure) | 39 | #:use-module (guix build-system clojure)) |
| 37 | #:use-module (ice-9 match)) | ||
| 38 | 40 | ||
| 39 | (define-public clojure-spec-alpha | 41 | (define-public clojure-spec-alpha |
| 40 | (package | 42 | (package |
| @@ -390,41 +392,44 @@ designs.") | |||
| 390 | `(delete-file ,(string-append "clojure-tools-" version ".jar"))))) | 392 | `(delete-file ,(string-append "clojure-tools-" version ".jar"))))) |
| 391 | (build-system copy-build-system) | 393 | (build-system copy-build-system) |
| 392 | (arguments | 394 | (arguments |
| 393 | `(#:install-plan | 395 | (list #:install-plan #~'(("deps.edn" "lib/clojure/") |
| 394 | '(("deps.edn" "lib/clojure/") | 396 | ("example-deps.edn" "lib/clojure/") |
| 395 | ("example-deps.edn" "lib/clojure/") | 397 | ("tools.edn" "lib/clojure/") |
| 396 | ("tools.edn" "lib/clojure/") | 398 | ("exec.jar" "lib/clojure/libexec/") |
| 397 | ("exec.jar" "lib/clojure/libexec/") | 399 | ("clojure" "bin/") |
| 398 | ("clojure" "bin/") | 400 | ("clj" "bin/")) |
| 399 | ("clj" "bin/")) | 401 | #:phases |
| 400 | #:modules ((guix build copy-build-system) | 402 | #~(modify-phases %standard-phases |
| 401 | (guix build utils) | 403 | (add-before 'install 'fix-paths |
| 402 | (srfi srfi-1) | 404 | (lambda _ |
| 403 | (ice-9 match)) | 405 | (substitute* "clj" |
| 404 | #:phases | 406 | (("BINDIR") (string-append #$output "/bin"))) |
| 405 | (modify-phases %standard-phases | 407 | (substitute* "clojure" |
| 406 | (add-after 'unpack 'fix-paths | 408 | (("PREFIX") (string-append #$output "/lib/clojure"))) |
| 407 | (lambda* (#:key outputs #:allow-other-keys) | 409 | (let ((coreutils #$(this-package-input "coreutils-minimal")) |
| 408 | (substitute* "clojure" | 410 | (jre #$(this-package-input "openjdk"))) |
| 409 | (("PREFIX") (string-append (assoc-ref outputs "out") "/lib/clojure"))) | 411 | (wrap-script "clojure" |
| 410 | (substitute* "clj" | 412 | `("JAVA_HOME" = (,jre)) |
| 411 | (("BINDIR") (string-append (assoc-ref outputs "out") "/bin")) | 413 | `("PATH" = (,(string-append coreutils "/bin"))))))) |
| 412 | (("rlwrap") (which "rlwrap"))))) | 414 | (add-after 'fix-paths 'copy-tools-deps-alpha-jar |
| 413 | (add-after 'fix-paths 'copy-tools-deps-alpha-jar | 415 | (lambda* (#:key inputs #:allow-other-keys) |
| 414 | (lambda* (#:key inputs outputs #:allow-other-keys) | 416 | (substitute* "clojure" |
| 415 | (substitute* "clojure" | 417 | (("\\$install_dir/libexec/clojure-tools-\\$version\\.jar") |
| 416 | (("\\$install_dir/libexec/clojure-tools-\\$version\\.jar") | 418 | (let* ((selected (assq-remove! inputs "openjdk")) |
| 417 | (string-join | 419 | (input-dirs (map cdr selected)) |
| 418 | (append-map (match-lambda | 420 | (jars (apply append |
| 419 | ((label . dir) | 421 | (map (lambda (dir) |
| 420 | (find-files dir "\\.jar$"))) | 422 | (find-files dir "\\.jar$")) |
| 421 | inputs) | 423 | input-dirs)))) |
| 422 | ":")))))))) | 424 | (string-join jars ":"))))))))) |
| 423 | (inputs (list rlwrap | 425 | (inputs (list rlwrap |
| 426 | coreutils-minimal | ||
| 424 | clojure | 427 | clojure |
| 425 | clojure-tools-deps | 428 | clojure-tools-deps |
| 429 | guile-3.0/pinned | ||
| 426 | java-commons-logging-minimal | 430 | java-commons-logging-minimal |
| 427 | java-slf4j-nop)) | 431 | java-slf4j-nop |
| 432 | openjdk)) | ||
| 428 | (home-page "https://clojure.org/releases/tools") | 433 | (home-page "https://clojure.org/releases/tools") |
| 429 | (synopsis "CLI tools for the Clojure programming language") | 434 | (synopsis "CLI tools for the Clojure programming language") |
| 430 | (description "The Clojure command line tools can be used to start a | 435 | (description "The Clojure command line tools can be used to start a |
