guix_mirror_bot pushed a commit to branch next-master
in repository guix.
commit 63cc24336f1a5e5d919b043be130a4ee3d6b8277
Author: Mathieu Lirzin <[email protected]>
AuthorDate: Sat Dec 27 07:20:07 2025 +0100
gnu: Add cognitect-aws-api.
* gnu/packages/clojure.scm (cognitect-aws-api): New variable.
(clojure-tools-deps): Use it.
Change-Id: I1df8d2c5fceed621c1fc1676c9f766d0ac488b04
Signed-off-by: Ludovic Courtès <[email protected]>
---
gnu/packages/clojure.scm | 82 ++++++++++++++++++++++++++++++++++--------------
1 file changed, 59 insertions(+), 23 deletions(-)
diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm
index 0431baf830..8cae8f1cea 100644
--- a/gnu/packages/clojure.scm
+++ b/gnu/packages/clojure.scm
@@ -795,6 +795,7 @@ work with command-line arguments.")
(build-system clojure-build-system)
(arguments
`(#:source-dirs '("src/main/clojure" "src/main/resources")
+ #:java-source-dirs '("src/main/java")
#:test-dirs '("src/test/clojure")
#:doc-dirs '()
;; FIXME: Could not initialize class
@@ -802,28 +803,6 @@ work with command-line arguments.")
#: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/util/s3_aws_client.clj")
- (string-append
- "src/main/clojure/clojure/"
- "tools/deps/util/s3_transporter.clj")
- (string-append
- "src/test/clojure/clojure/"
- "tools/deps/util/test_s3_transporter.clj")))
- (substitute*
- "src/main/clojure/clojure/tools/deps/util/maven.clj"
- (("clojure.tools.deps.util.s3-transporter")
- ""))))
(add-before 'build 'reference-clojure-jar-input
;; Use static clojure jar from build input at runtime by default.
(lambda* (#:key inputs #:allow-other-keys)
@@ -843,7 +822,8 @@ work with command-line arguments.")
maven-resolver-transport-file
clojure-tools-gitlibs
clojure-tools-cli
- clojure-data-xml))
+ clojure-data-xml
+ cognitect-aws-api))
(synopsis "Clojure library supporting clojure-tools")
(description "This package provides a functional API for transitive
dependency graph expansion and the creation of classpaths.")
@@ -1041,3 +1021,59 @@ high-performance Clojure HTTP client and server library
with WebSocket and
asynchronous support.")
(home-page "https://github.com/http-kit/http-kit")
(license license:asl2.0)))
+
+(define-public cognitect-aws-api
+ (package
+ (name "cognitect-aws-api")
+ (version "0.8.774")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cognitect-labs/aws-api")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1y3impishicd8niy1vddx6c80pnbpz24zfr7vysi4r56p1vqnwmb"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file
+ (list
+ ;; Require Cognitect http client
+ "src/cognitect/aws/http/cognitect.clj"
+ ;; Requires Babashka.
+ "test/src/bb_test_runner.clj"
+ ;; Requires AWS Java SDK v2.
+ "test/src/cognitect/aws/jdk_v2.clj"
+ "test/src/cognitect/aws/signers_test.clj"
+ ;; Remove integration tests.
+ "test/src/cognitect/aws/client/shared_test.clj"
+ "test/src/cognitect/aws/api_test.clj"
+ "test/src/cognitect/client/impl_test.clj"
+ "test/src/cognitect/client/test_double_test.clj"))
+ ;; Remove integration tests
+ (delete-file-recursively
"test/src/cognitect/aws/integration")))))
+ (build-system clojure-build-system)
+ (propagated-inputs (list clojure-core-async
+ clojure-tools-logging
+ clojure-data-json
+ clojure-data-xml))
+ (native-inputs (list clojure-test-check
+ http-kit))
+ (arguments `(#:source-dirs '("src")
+ #:doc-dirs '()
+ #:test-dirs '("test/src" "test/resources")
+ ;; Allow using java.net.http client.
+ #:jdk ,openjdk11))
+ (synopsis
+ "Programmatic access to AWS services from Clojure programs")
+ (description
+ "This package is an idiomatic, data-oriented Clojure library for invoking
AWS
+APIs. While the library offers some helper and documentation functions you'll
+use at development time, the only functions you ever need at runtime are
+client, which creates a client for a given service and invoke, which invokes
+an operation on the service. invoke takes a map and returns a map, and works
+the same way for every operation on every service.")
+ (home-page "https://github.com/cognitect-labs/aws-api")
+ (license license:asl2.0)))