GNU bug report logs - #48735
[PATCH] gnu: Add clojure-tools.

Previous Next

Package: guix-patches;

Reported by: Reily Siegel <mail <at> reilysiegel.com>

Date: Sun, 30 May 2021 02:13:01 UTC

Severity: normal

Tags: patch

Done: Ricardo Wurmus <rekado <at> elephly.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 48735 in the body.
You can then email your comments to 48735 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Sun, 30 May 2021 02:13:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Reily Siegel <mail <at> reilysiegel.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 30 May 2021 02:13:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add clojure-tools.
Date: Sat, 29 May 2021 22:10:29 -0400
[0001-gnu-Add-clojure-tools.patch (text/x-patch, attachment)]
From a377461613f7aff8436b4969d3cce1c2cd079191 Mon Sep 17 00:00:00 2001
From: Reily Siegel <mail <at> 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 <at> tobias.gr>
 ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix <at> gmail.com>
 ;;; Copyright © 2020 Ludovic Courtès <ludo <at> gnu.org>
+;;; Copyright © 2021 Reily Siegel <mail <at> 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Mon, 31 May 2021 11:37:01 GMT) Full text and rfc822 format available.

Message #8 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Reily Siegel <mail <at> reilysiegel.com>, 48735 <at> debbugs.gnu.org
Subject: Re: [bug#48735] [PATCH] gnu: Add clojure-tools.
Date: Mon, 31 May 2021 11:15:25 +0200
[Message part 1 (text/plain, inline)]
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.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Fri, 03 Sep 2021 16:12:01 GMT) Full text and rfc822 format available.

Message #11 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: Reily Siegel <mail <at> reilysiegel.com>, 48735 <at> debbugs.gnu.org
Subject: Re: bug#48735: [PATCH] gnu: Add clojure-tools.
Date: Fri, 03 Sep 2021 18:11:43 +0200
Hi,

Maxime Devos <maximedevos <at> 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’.




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Mon, 06 Sep 2021 07:58:02 GMT) Full text and rfc822 format available.

Notification sent to Reily Siegel <mail <at> reilysiegel.com>:
bug acknowledged by developer. (Mon, 06 Sep 2021 07:58:02 GMT) Full text and rfc822 format available.

Message #16 received at 48735-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Reily Siegel <mail <at> reilysiegel.com>
Cc: 48735-done <at> debbugs.gnu.org
Subject: Re: bug#48735: [PATCH] gnu: Add clojure-tools.
Date: Mon, 06 Sep 2021 09:56:50 +0200
Hi Reily,

Reily Siegel <mail <at> reilysiegel.com> skribis:

> Ludovic Courtès <ludo <at> 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’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 04 Oct 2021 11:24:08 GMT) Full text and rfc822 format available.

bug unarchived. Request was from Reily Siegel <mail <at> reilysiegel.com> to control <at> debbugs.gnu.org. (Thu, 23 Dec 2021 23:01:01 GMT) Full text and rfc822 format available.

Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 23 Dec 2021 23:01:01 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:02 GMT) Full text and rfc822 format available.

Message #25 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 01/10] gnu: Add maven-resolver-transport-file.
Date: Thu, 23 Dec 2021 18:04:22 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:02 GMT) Full text and rfc822 format available.

Message #28 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 02/10] gnu: Add maven-resolver-transport-http.
Date: Thu, 23 Dec 2021 18:04:26 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:03 GMT) Full text and rfc822 format available.

Message #31 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 03/10] build: clojure-utils: Don't try to compile Clojure
Date: Thu, 23 Dec 2021 18:04:28 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:04 GMT) Full text and rfc822 format available.

Message #34 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 04/10] gnu: Add clojure-test-check.
Date: Thu, 23 Dec 2021 18:04:31 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:04 GMT) Full text and rfc822 format available.

Message #37 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 05/10] gnu: Add clojure-tools-gitlibs.
Date: Thu, 23 Dec 2021 18:04:35 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:04 GMT) Full text and rfc822 format available.

Message #40 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 06/10] gnu: Add clojure-data-codec.
Date: Thu, 23 Dec 2021 18:04:38 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:05 GMT) Full text and rfc822 format available.

Message #43 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 07/10] gnu: Add clojure-data-xml.
Date: Thu, 23 Dec 2021 18:04:40 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:05 GMT) Full text and rfc822 format available.

Message #46 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 08/10] gnu: Add clojure-tools-deps-alpha.
Date: Thu, 23 Dec 2021 18:04:43 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:06 GMT) Full text and rfc822 format available.

Message #49 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 09/10] gnu: Add clojure-tools.
Date: Thu, 23 Dec 2021 18:04:46 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Thu, 23 Dec 2021 23:05:06 GMT) Full text and rfc822 format available.

Message #52 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH v2 10/10] gnu: clojure: Remove wrapper in favor of using
Date: Thu, 23 Dec 2021 18:04:50 -0500
* 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





Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Wed, 12 Jan 2022 08:52:01 GMT) Full text and rfc822 format available.

Message #55 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: 48735 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add clojure-tools.
Date: Wed, 12 Jan 2022 09:45:02 +0100
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




Information forwarded to guix-patches <at> gnu.org:
bug#48735; Package guix-patches. (Wed, 12 Jan 2022 09:24:01 GMT) Full text and rfc822 format available.

Message #58 received at 48735 <at> debbugs.gnu.org (full text, mbox):

From: Reily Siegel <mail <at> reilysiegel.com>
To: Ricardo Wurmus <rekado <at> elephly.net>
Cc: 48735 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add clojure-tools.
Date: Wed, 12 Jan 2022 04:23:26 -0500
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




Reply sent to Ricardo Wurmus <rekado <at> elephly.net>:
You have taken responsibility. (Wed, 12 Jan 2022 16:46:02 GMT) Full text and rfc822 format available.

Notification sent to Reily Siegel <mail <at> reilysiegel.com>:
bug acknowledged by developer. (Wed, 12 Jan 2022 16:46:02 GMT) Full text and rfc822 format available.

Message #63 received at 48735-done <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: 48735-done <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add clojure-tools.
Date: Wed, 12 Jan 2022 17:44:56 +0100
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




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 10 Feb 2022 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 81 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.