diff mbox series

[bug#53765,15/17] gnu: Add clojure-com-cognitect-aws-s3.

Message ID 87czk332an.fsf@reilysiegel.com
State New
Headers show
Series Remove limitations on clojure-tools | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Reily Siegel Feb. 4, 2022, 12:26 a.m. UTC
* gnu/packages/clojure.scm (clojure-com-cognitect-aws-s3): New variable.
---
 gnu/packages/clojure.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

M Feb. 6, 2022, 10:35 a.m. UTC | #1
Reily Siegel schreef op do 03-02-2022 om 19:26 [-0500]:
> +    (synopsis "S3 service description for @code{aws-api}")

I have no idea what that means.

From ‘17.4.4 Synopses and Descriptions’:

[...] Use full sentences, and avoid using acronyms without first
introducing them. [...]

That's strictly speaking only for descriptions, but it's useful advice
for synopses as well.

Greetings,
Maxime.
M Feb. 7, 2022, 7:44 p.m. UTC | #2
Reily Siegel schreef op do 03-02-2022 om 19:26 [-0500]:
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://repo1.maven.org/maven2/"
> +                                  "com/cognitect/aws/s3/"
> +                                  version "/s3-"
> +                                  version "-sources.jar"))
> +    [...]
> +    (license license:asl2.0)))

I downloaded it, the hash matches.
However, the license appears to be incorrect: specs.clj starts with

;; Copyright (c) Cognitect, Inc.
;; All rights reserved.

‘All rights reserved’ is not ASL2.0, and is blatantly non-free.
Also, are you sure this is source code? Aside from the comment above,
I don't see any comments or docstrings in specs.clj.

Furthermore, service.edn and docs.edn are huge blobs -- it's textual
and not binary, but that doesn't make it source code.

Greetings,
Maxime.
Reily Siegel Feb. 7, 2022, 7:56 p.m. UTC | #3
Maxime Devos <maximedevos@telenet.be> writes:

> ;; Copyright (c) Cognitect, Inc.
> ;; All rights reserved.
>
> ‘All rights reserved’ is not ASL2.0, and is blatantly non-free.

The pom.xml file says that this is ASL2.0 [1]

> Also, are you sure this is source code? Aside from the comment above,
> I don't see any comments or docstrings in specs.clj.

specs.clj just contains what are essentially type definitions. The
aws-api library that uses this is declarative, so it only needs to load
type definitions, and the edn files that describe the endpoints.

> Furthermore, service.edn and docs.edn are huge blobs -- it's textual
> and not binary, but that doesn't make it source code.

EDN is a strict subset of Clojure used for representing Clojure data
structures, similar to JSON for JavaScript.

> Greetings,
> Maxime.
M March 26, 2022, 10:08 a.m. UTC | #4
Reily Siegel schreef op ma 07-02-2022 om 14:56 [-0500]:
> > Furthermore, service.edn and docs.edn are huge blobs -- it's
> > textual
> > and not binary, but that doesn't make it source code.
> 
> EDN is a strict subset of Clojure used for representing Clojure data
> structures, similar to JSON for JavaScript.

If docs.edn is documentation, should it be in #:doc-dirs?
Additionally, this doesn't make it any less a blob.  Where does this
data come from?  Was it written manually by cognitect people?  Was some
(possibly propietary?) data taken from Amazon and then converted into
another data format?  How can I edit these files?

Greetings,
MAxime.
M March 26, 2022, 10:13 a.m. UTC | #5
Maxime Devos schreef op za 26-03-2022 om 11:08 [+0100]:
> Reily Siegel schreef op ma 07-02-2022 om 14:56 [-0500]:
> > > Furthermore, service.edn and docs.edn are huge blobs -- it's
> > > textual
> > > and not binary, but that doesn't make it source code.
> > 
> > EDN is a strict subset of Clojure used for representing Clojure
> data
> > structures, similar to JSON for JavaScript.
> 
> If docs.edn is documentation, should it be in #:doc-dirs?
> Additionally, this doesn't make it any less a blob.  Where does this
> data come from?  Was it written manually by cognitect people?  Was
> some
> (possibly propietary?) data taken from Amazon and then converted into
> another data format?  How can I edit these files?

More specifically, I noticed that "docs.edn" contains the string

 Amazon S3 frees up the space used to store the parts and stop charging
you for storing them only after you either complete or abort a
multipart upload.

and so does

<https://web.archive.org/web/20220322191400/https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html>

but AFAIK Amazon has not released the documentation as ASL2.0.

Greetings,
Maxime.
Reily Siegel March 28, 2022, 10:31 a.m. UTC | #6
Maxime Devos <maximedevos@telenet.be> writes:

> If docs.edn is documentation, should it be in #:doc-dirs?

It is not documentation, it is a data structure that is used to generate
code.

> Additionally, this doesn't make it any less a blob.  Where does this
> data come from?  Was it written manually by cognitect people?  Was some
> (possibly propietary?) data taken from Amazon and then converted into
> another data format?  How can I edit these files?

As I said in response to another package, I can reach out to Cognitect
on slack and ask, however based on the previous conversations I have had
I strongly suspect they will not want to make any changes ot the package
to clarify licensing for the sole benefit of Guix.
M March 28, 2022, 11:50 a.m. UTC | #7
Reily Siegel schreef op ma 28-03-2022 om 12:31 [+0200]:
> Maxime Devos <maximedevos@telenet.be> writes:
> 
> > If docs.edn is documentation, should it be in #:doc-dirs?
> 
> It is not documentation, it is a data structure that is used to generate
> code.

The string ‘Amazon S3 frees up the space used to store the parts and
stop charging you for storing them only after you either complete or
abort a multipart upload.’ and other strings like that look like
documentation to me, and I did not see any code reading docs.edn to
generate code from it.

Greetings,
Maxime.
M March 28, 2022, 11:52 a.m. UTC | #8
Reily Siegel schreef op ma 28-03-2022 om 12:31 [+0200]:
> > Additionally, this doesn't make it any less a blob.  Where does
> > this
> > data come from?  Was it written manually by cognitect people?  Was
> > some
> > (possibly propietary?) data taken from Amazon and then converted
> > into
> > another data format?  How can I edit these files?
> 
> As I said in response to another package, I can reach out to
> Cognitect on slack and ask, however based on the previous
> conversations I have had I strongly suspect they will not want to
> make any changes ot the package to clarify licensing for the sole
> benefit of Guix.

It won't be for the sole benefit of Guix.  It would be of the benefit
for *everyone* distributing a copy of clojure-com-cognitect-aws-s3 that
wants to avoids copyright violation.

If the apparent (*) copyright violation and non-freeness cannot be
resolved, then I don't think that clojure-com-cognitect-aws-s3 can be
included in Guix, given that Guix is not above the (copyright) law and
given that software in Guix must be free software.

Unless the blob is removed I suppose, in a snippet.

(*) as-in, there is no evidence it is not a violation or actually free.

Greetings,
MMaxime.
M April 5, 2022, 1:50 p.m. UTC | #9
Reily Siegel schreef op do 03-02-2022 om 19:26 [-0500]:
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://repo1.maven.org/maven2/"
> +                                  "com/cognitect/aws/s3/"
> +                                  version "/s3-"
> +                                  version "-sources.jar"))
> +              (sha256
> +               (base32

The potential license issue appears to have been resolved in the new
version:
<https://github.com/cognitect-labs/aws-api/issues/208#issuecomment-1088702896>.

Greetings,
Maxime.
diff mbox series

Patch

diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index f4b389f7b0..4979300dc7 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -324,6 +324,30 @@  (define-public clojure-com-cognitect-aws-endpoints
     (synopsis "Endpoint data for @code{aws-api}")
     (license license:asl2.0)))
 
+(define-public clojure-com-cognitect-aws-s3
+  (package
+    (inherit clojure-com-cognitect-aws-api)
+    (name "clojure-com-cognitect-aws-s3")
+    (version "814.2.991.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://repo1.maven.org/maven2/"
+                                  "com/cognitect/aws/s3/"
+                                  version "/s3-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "0aw3mpddmnjmp45vbmv1l47jn84lgq866fy9mg4wf1x2lqdyhigh"))))
+    (native-inputs '())
+    (propagated-inputs '())
+    (arguments
+     '(#:doc-dirs '()
+       ;; This package has no tests.
+       #:tests? #f
+       #:aot-exclude '(#:all)))
+    (synopsis "S3 service description for @code{aws-api}")
+    (license license:asl2.0)))
+
 (define-public clojure-com-cognitect-http-client
   (package
     (name "clojure-com-cognitect-aws-api")