unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#48735] [PATCH] gnu: Add clojure-tools.
@ 2021-05-30  2:10 Reily Siegel
  2021-05-31  9:15 ` Maxime Devos
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Reily Siegel @ 2021-05-30  2:10 UTC (permalink / raw)
  To: 48735

[-- Attachment #1: 0001-gnu-Add-clojure-tools.patch --]
[-- Type: text/x-patch, Size: 3142 bytes --]

From a377461613f7aff8436b4969d3cce1c2cd079191 Mon Sep 17 00:00:00 2001
From: Reily Siegel <mail@reilysiegel.com>
Date: Sat, 29 May 2021 21:35:45 -0400
Subject: [PATCH] gnu: Add clojure-tools.

* gnu/packages/clojure.scm (clojure-tools): New variable.
---
 gnu/packages/clojure.scm | 41 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 5b238ab996..d203a67b01 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021 Reily Siegel <mail@reilysiegel.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,11 +24,13 @@
 (define-module (gnu packages clojure)
   #:use-module (gnu packages)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages readline)
   #: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))
 
@@ -163,6 +166,44 @@ designs.")
                      license:asl2.0
                      license:cpl1.0)))))
 
+(define-public clojure-tools
+  (package
+    (name "clojure-tools")
+    (version "1.10.3.855")
+    (inputs `(("rlwrap" ,rlwrap)))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.clojure.org/install/clojure-tools-"
+                           version
+                           ".tar.gz"))
+       (sha256 (base32 "114kn44azhsgzbjhiisdm502j6ss4kfg1mck9rjldrka2hwfwqyb"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan
+       '(("deps.edn" "lib/clojure/")
+         ("example-deps.edn" "lib/clojure/")
+         ("exec.jar" "lib/clojure/libexec/")
+         (,(string-append "clojure-tools-" version ".jar") "lib/clojure/libexec/")
+         ("clojure" "bin/")
+         ("clj" "bin/"))
+       #: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")))
+             #true)))))
+    (synopsis "CLI tools for the Clojure programming language")
+    (description "The Clojure command line tools can be used to start
+a Clojure repl, use Clojure and Java libraries, and start Clojure
+programs.")
+    (license license:epl1.0)
+    (home-page "https://clojure.org/releases/tools")))
+
 (define-public clojure-algo-generic
   (package
     (name "clojure-algo-generic")
-- 
2.31.1





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH] gnu: Add clojure-tools.
  2021-05-30  2:10 [bug#48735] [PATCH] gnu: Add clojure-tools Reily Siegel
@ 2021-05-31  9:15 ` Maxime Devos
  2021-09-03 16:11   ` Ludovic Courtès
  2021-12-23 23:04 ` [bug#48735] [PATCH v2 01/10] gnu: Add maven-resolver-transport-file Reily Siegel
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 17+ messages in thread
From: Maxime Devos @ 2021-05-31  9:15 UTC (permalink / raw)
  To: Reily Siegel, 48735

[-- Attachment #1: Type: text/plain, Size: 673 bytes --]

Reily Siegel schreef op za 29-05-2021 om 22:10 [-0400]:
> [...]
> +    (build-system copy-build-system)
> +    (arguments
> +     `(#:install-plan
> +       '(("deps.edn" "lib/clojure/")
> +         ("example-deps.edn" "lib/clojure/")
> +         ("exec.jar" "lib/clojure/libexec/")
> +         (,(string-append "clojure-tools-" version ".jar") "lib/clojure/libexec/")
> +         ("clojure" "bin/")
> +         ("clj" "bin/"))

Packages in Guix must be compiled from the source code.
"exec.jar" and "clojure-tools-VERSION.jar" look like
compiled Java code to me. Oddly, I can't find the source
code at <https://github.com/clojure/>.

Greetings,
Maxime.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH] gnu: Add clojure-tools.
  2021-05-31  9:15 ` Maxime Devos
@ 2021-09-03 16:11   ` Ludovic Courtès
       [not found]     ` <87r1e5636w.fsf@reilysiegel.com>
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2021-09-03 16:11 UTC (permalink / raw)
  To: Maxime Devos; +Cc: Reily Siegel, 48735

Hi,

Maxime Devos <maximedevos@telenet.be> skribis:

> Reily Siegel schreef op za 29-05-2021 om 22:10 [-0400]:
>> [...]
>> +    (build-system copy-build-system)
>> +    (arguments
>> +     `(#:install-plan
>> +       '(("deps.edn" "lib/clojure/")
>> +         ("example-deps.edn" "lib/clojure/")
>> +         ("exec.jar" "lib/clojure/libexec/")
>> +         (,(string-append "clojure-tools-" version ".jar") "lib/clojure/libexec/")
>> +         ("clojure" "bin/")
>> +         ("clj" "bin/"))
>
> Packages in Guix must be compiled from the source code.
> "exec.jar" and "clojure-tools-VERSION.jar" look like
> compiled Java code to me. Oddly, I can't find the source
> code at <https://github.com/clojure/>.

Reily, could you clarify whether this package can be built from source,
and if so, whether you could post an updated patch set?

Context: <https://issues.guix.gnu.org/48735>.

Thanks in advance,
Ludo’.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#48735: [PATCH] gnu: Add clojure-tools.
       [not found]     ` <87r1e5636w.fsf@reilysiegel.com>
@ 2021-09-06  7:56       ` Ludovic Courtès
  0 siblings, 0 replies; 17+ messages in thread
From: Ludovic Courtès @ 2021-09-06  7:56 UTC (permalink / raw)
  To: Reily Siegel; +Cc: 48735-done

Hi Reily,

Reily Siegel <mail@reilysiegel.com> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Reily, could you clarify whether this package can be built from source,
>> and if so, whether you could post an updated patch set?
>
> I have taken a look into building this from source, however, although
> possible, it relies indirectly on several Google Java libraries with
> very particular build system. While it is possible to build from source,
> it would be very cumbersome. I haven't looked at trying to do this since
> the Maven Build System was introduced, however I likely wont have the
> time required to package all the dependencies, even if it is now
> simpler.

Thanks for explaining.  I’m closing this issue for now, but I hope what
we’ll eventually close is the gap that prevents us from building
clojure-tools from source!

Ludo’.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 01/10] gnu: Add maven-resolver-transport-file.
  2021-05-30  2:10 [bug#48735] [PATCH] gnu: Add clojure-tools Reily Siegel
  2021-05-31  9:15 ` Maxime Devos
@ 2021-12-23 23:04 ` Reily Siegel
  2021-12-23 23:04   ` [bug#48735] [PATCH v2 02/10] gnu: Add maven-resolver-transport-http Reily Siegel
  2022-01-12  8:45 ` [bug#48735] [PATCH] gnu: Add clojure-tools Ricardo Wurmus
  2022-01-12  9:23 ` [bug#48735] " Reily Siegel
  3 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/maven.scm (maven-resolver-transport-file): New variable.
---
 gnu/packages/maven.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 479746639a..0f00053207 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -312,6 +312,48 @@ (define-public maven-resolver-transport-wagon
     (description "This package contains a transport implementation based on
 Maven Wagon, for use in Maven.")))
 
+(define-public maven-resolver-transport-file
+  (package
+    (inherit maven-resolver-api)
+    (name "maven-resolver-transport-file")
+    (arguments
+     `(#:jar-name "maven-resolver-transport-file.jar"
+       #:source-dir "maven-resolver-transport-file/src/main/java"
+       #:test-dir "maven-resolver-transport-file/src/test"
+       #:jdk ,icedtea-8
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'generate-sisu
+           (lambda _
+             (mkdir-p "build/classes/META-INF/sisu")
+             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
+               (lambda _
+                 (display "org.eclipse.aether.transport.file.FileTransporterFactory\n")))
+             #t)))))
+    (inputs
+     (list maven-resolver-api
+           maven-resolver-spi
+           maven-resolver-util
+           java-javax-inject
+           maven-wagon-provider-api
+           java-plexus-component-annotations
+           java-plexus-classworlds
+           java-plexus-utils
+           java-slf4j-api
+           java-eclipse-sisu-inject
+           java-eclipse-sisu-plexus))
+    (native-inputs
+     (list java-junit
+           java-hamcrest-core
+           maven-resolver-test-util
+           java-guava
+           java-cglib
+           java-asm
+           java-aopalliance
+           java-guice))
+    (synopsis "Transport implementation for Maven")
+    (description "This package contains a transport implementation based on
+files, for use in Maven.")))
 ;; aether is the parent project that was forked into maven-resolver.  It used
 ;; to be used with older versions of Maven, and is still required for some
 ;; plugins and their dependencies.  This version is required for the plugins,
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 02/10] gnu: Add maven-resolver-transport-http.
  2021-12-23 23:04 ` [bug#48735] [PATCH v2 01/10] gnu: Add maven-resolver-transport-file Reily Siegel
@ 2021-12-23 23:04   ` Reily Siegel
  2021-12-23 23:04     ` [bug#48735] [PATCH v2 03/10] build: clojure-utils: Don't try to compile Clojure Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/maven.scm (maven-resolver-transport-http): New variable.
---
 gnu/packages/maven.scm | 53 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 0f00053207..ad592df8fa 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -354,6 +354,59 @@ (define-public maven-resolver-transport-file
     (synopsis "Transport implementation for Maven")
     (description "This package contains a transport implementation based on
 files, for use in Maven.")))
+
+(define-public maven-resolver-transport-http
+  (package
+    (inherit maven-resolver-api)
+    (name "maven-resolver-transport-http")
+    (arguments
+     `(#:jar-name "maven-resolver-transport-http.jar"
+       #:source-dir "maven-resolver-transport-http/src/main/java"
+       #:test-dir "maven-resolver-transport-http/src/test"
+       #:jdk ,icedtea-8
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'generate-sisu
+           (lambda _
+             (mkdir-p "build/classes/META-INF/sisu")
+             (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
+               (lambda _
+                 (display "org.eclipse.aether.transport.http.HttpTransporterFactory\n")))
+             #t)))))
+    (inputs
+     (list maven-resolver-api
+           maven-resolver-spi
+           maven-resolver-util
+           java-javax-inject
+           maven-wagon-provider-api
+           java-plexus-component-annotations
+           java-plexus-classworlds
+           java-plexus-utils
+           java-slf4j-api
+           java-eclipse-sisu-inject
+           java-eclipse-sisu-plexus))
+    (propagated-inputs
+     (list java-httpcomponents-httpclient
+           java-httpcomponents-httpcore))
+    (native-inputs
+     (list java-junit
+           java-hamcrest-core
+           maven-resolver-test-util
+           java-guava
+           java-cglib
+           java-asm
+           java-aopalliance
+           java-guice
+           java-eclipse-jetty-server
+           java-eclipse-jetty-servlet
+           java-eclipse-jetty-util
+           java-eclipse-jetty-http
+           java-javaee-servletapi))
+    (synopsis "Transport implementation for Maven")
+    (description "This package contains a transport implementation based on
+HTTP, for use in Maven.")))
+
 ;; aether is the parent project that was forked into maven-resolver.  It used
 ;; to be used with older versions of Maven, and is still required for some
 ;; plugins and their dependencies.  This version is required for the plugins,
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 03/10] build: clojure-utils: Don't try to compile Clojure
  2021-12-23 23:04   ` [bug#48735] [PATCH v2 02/10] gnu: Add maven-resolver-transport-http Reily Siegel
@ 2021-12-23 23:04     ` Reily Siegel
  2021-12-23 23:04       ` [bug#48735] [PATCH v2 04/10] gnu: Add clojure-test-check Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* guix/build/clojure-utils.scm (%aot-include): Add "data-readers" to the
default list of files to exclude from ahead-of-time compilation.
---
 guix/build/clojure-utils.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/build/clojure-utils.scm b/guix/build/clojure-utils.scm
index a9ffad3c8f..8817cab52a 100644
--- a/guix/build/clojure-utils.scm
+++ b/guix/build/clojure-utils.scm
@@ -135,7 +135,7 @@ (define-with-docs %aot-include
 (define-with-docs %aot-exclude
   "A default list of symbols deciding what not to compile.
 See the doc string of '%aot-include' for more details."
-  '())
+  '(data-readers))
 
 (define-with-docs %tests?
   "Enable tests by default."
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 04/10] gnu: Add clojure-test-check.
  2021-12-23 23:04     ` [bug#48735] [PATCH v2 03/10] build: clojure-utils: Don't try to compile Clojure Reily Siegel
@ 2021-12-23 23:04       ` Reily Siegel
  2021-12-23 23:04         ` [bug#48735] [PATCH v2 05/10] gnu: Add clojure-tools-gitlibs Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure-test-check): New variable.
---
 gnu/packages/clojure.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index f48101079e..463d0fb46c 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -295,6 +295,33 @@ (define-public clojure-instaparse
       (home-page "https://github.com/Engelberg/instaparse")
       (license license:epl1.0))))
 
+(define-public clojure-test-check
+  (package
+    (name "clojure-test-check")
+    (version "1.1.1")
+    (home-page "https://github.com/clojure/test.check")
+    (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
+                "09jvlibnxhjv0l57y0sa7yy5in67gq4sssag77hv2d980mwdnls6"))))
+    (build-system clojure-build-system)
+    (arguments
+     '(#:source-dirs '("src/main/clojure")
+       #:test-dirs '("src/test/clojure")
+       #:doc-dirs '()))
+    (synopsis "QuickCheck for Clojure")
+    (description "@code{test.check} is a Clojure property-based testing tool
+inspired by QuickCheck.  The core idea of @code{test.check} is that instead of
+enumerating expected input and output for unit tests, you write properties
+about your function that should hold true for all inputs.  This lets you write
+concise, powerful tests.")
+    (license license:epl1.0)))
+
 (define-public clojure-tools-macro
   (package
     (name "clojure-tools-macro")
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 05/10] gnu: Add clojure-tools-gitlibs.
  2021-12-23 23:04       ` [bug#48735] [PATCH v2 04/10] gnu: Add clojure-test-check Reily Siegel
@ 2021-12-23 23:04         ` Reily Siegel
  2021-12-23 23:04           ` [bug#48735] [PATCH v2 06/10] gnu: Add clojure-data-codec Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure-tools-gitlibs): New variable.
---
 gnu/packages/clojure.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 463d0fb46c..70239cb7e7 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -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)))
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 06/10] gnu: Add clojure-data-codec.
  2021-12-23 23:04         ` [bug#48735] [PATCH v2 05/10] gnu: Add clojure-tools-gitlibs Reily Siegel
@ 2021-12-23 23:04           ` Reily Siegel
  2021-12-23 23:04             ` [bug#48735] [PATCH v2 07/10] gnu: Add clojure-data-xml Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure-data-codec): New variable.
---
 gnu/packages/clojure.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 70239cb7e7..9dca984c10 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -244,6 +244,35 @@ (define-public clojure-core-match
       (home-page "https://github.com/clojure/core.match")
       (license license:epl1.0))))
 
+(define-public clojure-data-codec
+  (package
+    (name "clojure-data-codec")
+    (version "0.1.1")
+    (home-page "https://github.com/clojure/data.codec")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "data.codec-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "192df1dmbwvf1x837mi731n9x94bdypaz18va45plzgdsh4xx6dr"))))
+    (build-system clojure-build-system)
+    (arguments
+     '(#:source-dirs '("src/main/clojure")
+       #:test-dirs '("src/test/clojure")
+       #:doc-dirs '()))
+    (native-inputs (list java-commons-codec
+                         clojure-test-check))
+    (synopsis "Native codec implementations for Clojure")
+    (description "Native codec implementations for Clojure.  Currently only
+base64 has been implemented.  Implements the standard base64 encoding
+character set, but does not yet support automatic fixed line-length encoding.
+All operations work on either byte arrays or Input/OutputStreams.  Performance
+is on par with Java implementations, e.g., Apache commons-codec.")
+    (license license:epl1.0)))
+
 (define-public clojure-instaparse
   (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
         (version "1.4.9")) ; upstream forget to tag this release
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 07/10] gnu: Add clojure-data-xml.
  2021-12-23 23:04           ` [bug#48735] [PATCH v2 06/10] gnu: Add clojure-data-codec Reily Siegel
@ 2021-12-23 23:04             ` Reily Siegel
  2021-12-23 23:04               ` [bug#48735] [PATCH v2 08/10] gnu: Add clojure-tools-deps-alpha Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure-data-xml): New variable.
---
 gnu/packages/clojure.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 9dca984c10..45865bd4e1 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -273,6 +273,37 @@ (define-public clojure-data-codec
 is on par with Java implementations, e.g., Apache commons-codec.")
     (license license:epl1.0)))
 
+(define-public clojure-data-xml
+  (package
+    (name "clojure-data-xml")
+    (version "0.2.0-alpha6")
+    (home-page "https://github.com/clojure/data.xml")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "data.xml-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08vglcapq7sd9zhw8dw1y7dcdks7f21w1pw9p05i475i3bw4cf94"))))
+    (build-system clojure-build-system)
+    (arguments
+     '(#:source-dirs '("src/main/clojure")
+       #:test-dirs '("src/test/clojure")
+       #:doc-dirs '()))
+    (propagated-inputs (list clojure-data-codec))
+    (synopsis "Clojure library for reading and writing XML data")
+    (description "@code{data.xml} is a Clojure library for reading and writing
+XML data. @code{data.xml} has the following features:
+
+Parses XML documents into Clojure data structures
+Emits XML from Clojure data structures
+No additional dependencies if using JDK >= 1.6
+Uses StAX internally
+lazy - should allow parsing and emitting of large XML documents")
+    (license license:epl1.0)))
+
 (define-public clojure-instaparse
   (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
         (version "1.4.9")) ; upstream forget to tag this release
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 08/10] gnu: Add clojure-tools-deps-alpha.
  2021-12-23 23:04             ` [bug#48735] [PATCH v2 07/10] gnu: Add clojure-data-xml Reily Siegel
@ 2021-12-23 23:04               ` Reily Siegel
  2021-12-23 23:04                 ` [bug#48735] [PATCH v2 09/10] gnu: Add clojure-tools Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure-tools-deps-alpha): New variable.
---
 gnu/packages/clojure.scm | 62 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 45865bd4e1..11efa89741 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -23,6 +23,7 @@
 (define-module (gnu packages clojure)
   #:use-module (gnu packages)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages maven)
   #:use-module (gnu packages version-control)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -430,6 +431,67 @@ (define-public clojure-tools-cli
 work with command-line arguments.")
     (license license:epl1.0)))
 
+(define-public clojure-tools-deps-alpha
+  (package
+    (name "clojure-tools-deps-alpha")
+    (version "0.12.1104")
+    (home-page "https://github.com/clojure/tools.deps.alpha")
+    (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
+                "174m83n5m3arai2vbg434zjibbsr3r4pp7lz3adja8lxq7g21r80"))))
+    (build-system clojure-build-system)
+    (arguments
+     `(#:source-dirs '("src/main/clojure" "src/main/resources")
+       #:test-dirs '("src/test/clojure")
+       #:doc-dirs '()
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; FIXME: Currently, the S3 transporter depends on ClojureScript,
+         ;; which is very difficult to package due to dependencies on Java
+         ;; libraries with non-standard build systems. Instead of actually
+         ;; packaging these libraries, we just remove the S3 transporter that
+         ;; depends on them.
+         (add-after 'unpack 'remove-s3-transporter
+           (lambda _
+             (for-each delete-file
+                       (list
+                        (string-append
+                         "src/main/clojure/clojure/"
+                         "tools/deps/alpha/util/s3_aws_client.clj")
+                        (string-append
+                         "src/main/clojure/clojure/"
+                         "tools/deps/alpha/util/s3_transporter.clj")
+                        (string-append
+                         "src/test/clojure/clojure/"
+                         "tools/deps/alpha/util/test_s3_transporter.clj")))
+             (substitute*
+                 "src/main/clojure/clojure/tools/deps/alpha/util/maven.clj"
+               (("clojure.tools.deps.alpha.util.s3-transporter")
+                "")))))))
+    (propagated-inputs (list maven-resolver-api
+                             maven-resolver-spi
+                             maven-resolver-impl
+                             maven-resolver-util
+                             maven-resolver-connector-basic
+                             maven-resolver-provider
+                             maven-core
+                             maven-resolver-transport-http
+                             maven-resolver-transport-file
+                             clojure-tools-gitlibs
+                             clojure-tools-cli
+                             clojure-data-xml))
+    (synopsis "Clojure library supporting clojure-tools")
+    (description "A functional API for transitive dependency graph expansion and
+the creation of classpaths.")
+    (license license:epl1.0)))
+
 (define-public clojure-tools-gitlibs
   (package
     (name "clojure-tools-gitlibs")
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 09/10] gnu: Add clojure-tools.
  2021-12-23 23:04               ` [bug#48735] [PATCH v2 08/10] gnu: Add clojure-tools-deps-alpha Reily Siegel
@ 2021-12-23 23:04                 ` Reily Siegel
  2021-12-23 23:04                   ` [bug#48735] [PATCH v2 10/10] gnu: clojure: Remove wrapper in favor of using Reily Siegel
  0 siblings, 1 reply; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure-tools): New variable.
---
 gnu/packages/clojure.scm | 63 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 11efa89741..b091f31eca 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -24,12 +24,14 @@ (define-module (gnu packages clojure)
   #:use-module (gnu packages)
   #:use-module (gnu packages java)
   #:use-module (gnu packages maven)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages version-control)
   #: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))
 
@@ -165,6 +167,67 @@ (define (extract-library name)
                      license:asl2.0
                      license:cpl1.0)))))
 
+(define-public clojure-tools
+  (package
+    (name "clojure-tools")
+    (version "1.10.3.1040")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.clojure.org/install/clojure-tools-"
+                           version
+                           ".tar.gz"))
+       (sha256 (base32 "0xvr9nmk9q789vp32zmmzj4macv8v7y9ivnfd6lf7i8vxgg6hvgv"))
+       (modules '((guix build utils)))
+       ;; Remove AOT compiled JAR. The other JAR only contains
+       ;; uncompiled Clojure source code, so should be fine.
+       (snippet
+        `(begin
+           (delete-file ,(string-append "clojure-tools-" version ".jar"))
+	   #t))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan
+       '(("deps.edn" "lib/clojure/")
+         ("example-deps.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")))
+             #true))
+         (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)
+                 ":"))))))))
+    (inputs (list rlwrap
+                  clojure
+                  clojure-tools-deps-alpha
+                  java-commons-logging-minimal))
+    (synopsis "CLI tools for the Clojure programming language")
+    (description "The Clojure command line tools can be used to start
+a Clojure repl, use Clojure and Java libraries, and start Clojure
+programs.")
+    (license license:epl1.0)
+    (home-page "https://clojure.org/releases/tools")))
+
 (define-public clojure-algo-generic
   (package
     (name "clojure-algo-generic")
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH v2 10/10] gnu: clojure: Remove wrapper in favor of using
  2021-12-23 23:04                 ` [bug#48735] [PATCH v2 09/10] gnu: Add clojure-tools Reily Siegel
@ 2021-12-23 23:04                   ` Reily Siegel
  0 siblings, 0 replies; 17+ messages in thread
From: Reily Siegel @ 2021-12-23 23:04 UTC (permalink / raw)
  To: 48735


* gnu/packages/clojure.scm (clojure): Remove generated wrapper around
clojure.jar, as it conflicts with the clojure-tools package.
---
 gnu/packages/clojure.scm | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index b091f31eca..71e5e22937 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -122,23 +122,7 @@ (define (extract-library name)
            (add-after 'install-license-files 'install-doc
              (cut install-doc #:doc-dirs '("doc/clojure/") <...>))
            (add-after 'install-doc 'install-javadoc
-             (install-javadoc "target/javadoc/"))
-           (add-after 'install 'make-wrapper
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (wrapper (string-append out "/bin/clojure")))
-                 (mkdir-p (string-append out "/bin"))
-                 (with-output-to-file wrapper
-                   (lambda _
-                     (display
-                      (string-append
-                       "#!"
-                       (which "sh")
-                       "\n\n"
-                       (assoc-ref inputs "jre") "/bin/java -jar "
-                       out "/share/java/clojure.jar \"$@\"\n"))))
-                 (chmod wrapper #o555))
-               #t)))))
+             (install-javadoc "target/javadoc/")))))
       (native-inputs libraries)
       (home-page "https://clojure.org/")
       (synopsis "Lisp dialect running on the JVM")
-- 
2.34.0





^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH] gnu: Add clojure-tools.
  2021-05-30  2:10 [bug#48735] [PATCH] gnu: Add clojure-tools Reily Siegel
  2021-05-31  9:15 ` Maxime Devos
  2021-12-23 23:04 ` [bug#48735] [PATCH v2 01/10] gnu: Add maven-resolver-transport-file Reily Siegel
@ 2022-01-12  8:45 ` Ricardo Wurmus
  2022-01-12 16:44   ` bug#48735: " Ricardo Wurmus
  2022-01-12  9:23 ` [bug#48735] " Reily Siegel
  3 siblings, 1 reply; 17+ messages in thread
From: Ricardo Wurmus @ 2022-01-12  8:45 UTC (permalink / raw)
  To: 48735

Hi Reily,

this new patch set looks good.  Thank you very much!

I just have a few minor comments/questions:

- build phases and snippets no longer need to end on #t or #true

- nitpick: I’m not a fan of the somewhat unusual location of the
  “home-page” field, but I understand that you’re reusing the URL.  My
  personal preference is not to do that and to move the “home-page”
  field above the “synopsis” field.

- some packages have disabled tests; it would be good to add a comment
  as to why the tests are disabled

- some descriptions are not complete sentences.

If you can tell me about these disabled tests (e.g. in
clojure-tools-deps-alpha), I can add comments and make the changes I
suggested above when applying the patches.  (You don’t need to send new
patches.)

Thanks again!

-- 
Ricardo




^ permalink raw reply	[flat|nested] 17+ messages in thread

* [bug#48735] [PATCH] gnu: Add clojure-tools.
  2021-05-30  2:10 [bug#48735] [PATCH] gnu: Add clojure-tools Reily Siegel
                   ` (2 preceding siblings ...)
  2022-01-12  8:45 ` [bug#48735] [PATCH] gnu: Add clojure-tools Ricardo Wurmus
@ 2022-01-12  9:23 ` Reily Siegel
  3 siblings, 0 replies; 17+ messages in thread
From: Reily Siegel @ 2022-01-12  9:23 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 48735

Hello,

> If you can tell me about these disabled tests (e.g. in
> clojure-tools-deps-alpha), I can add comments and make the changes I
> suggested above when applying the patches. (You don’t need to send new
> patches.)

These tests are disabled for the same reason as the tests in
clojure-tools-gitlibs. The tests do a fair bit of filesystem
access/modification, and this causes problems with the build system.

Thanks again for taking a look at this patch,

Reily




^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#48735: [PATCH] gnu: Add clojure-tools.
  2022-01-12  8:45 ` [bug#48735] [PATCH] gnu: Add clojure-tools Ricardo Wurmus
@ 2022-01-12 16:44   ` Ricardo Wurmus
  0 siblings, 0 replies; 17+ messages in thread
From: Ricardo Wurmus @ 2022-01-12 16:44 UTC (permalink / raw)
  To: 48735-done

Hi again,

I made a couple of changes and pushed the updated series of patches with
the commits ending on 9fe48723c8266ffe8e6a639be2ec2e362cf20cb5.

Thank you for your patience!

-- 
Ricardo




^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-01-12 16:49 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-30  2:10 [bug#48735] [PATCH] gnu: Add clojure-tools Reily Siegel
2021-05-31  9:15 ` Maxime Devos
2021-09-03 16:11   ` Ludovic Courtès
     [not found]     ` <87r1e5636w.fsf@reilysiegel.com>
2021-09-06  7:56       ` bug#48735: " Ludovic Courtès
2021-12-23 23:04 ` [bug#48735] [PATCH v2 01/10] gnu: Add maven-resolver-transport-file Reily Siegel
2021-12-23 23:04   ` [bug#48735] [PATCH v2 02/10] gnu: Add maven-resolver-transport-http Reily Siegel
2021-12-23 23:04     ` [bug#48735] [PATCH v2 03/10] build: clojure-utils: Don't try to compile Clojure Reily Siegel
2021-12-23 23:04       ` [bug#48735] [PATCH v2 04/10] gnu: Add clojure-test-check Reily Siegel
2021-12-23 23:04         ` [bug#48735] [PATCH v2 05/10] gnu: Add clojure-tools-gitlibs Reily Siegel
2021-12-23 23:04           ` [bug#48735] [PATCH v2 06/10] gnu: Add clojure-data-codec Reily Siegel
2021-12-23 23:04             ` [bug#48735] [PATCH v2 07/10] gnu: Add clojure-data-xml Reily Siegel
2021-12-23 23:04               ` [bug#48735] [PATCH v2 08/10] gnu: Add clojure-tools-deps-alpha Reily Siegel
2021-12-23 23:04                 ` [bug#48735] [PATCH v2 09/10] gnu: Add clojure-tools Reily Siegel
2021-12-23 23:04                   ` [bug#48735] [PATCH v2 10/10] gnu: clojure: Remove wrapper in favor of using Reily Siegel
2022-01-12  8:45 ` [bug#48735] [PATCH] gnu: Add clojure-tools Ricardo Wurmus
2022-01-12 16:44   ` bug#48735: " Ricardo Wurmus
2022-01-12  9:23 ` [bug#48735] " Reily Siegel

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).