summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-03-07 19:51:18 +0100
committerRicardo Wurmus <rekado@elephly.net>2017-05-10 21:44:53 +0200
commitaf8f8281db99fb4cde06f24a84caea32b0821c79 (patch)
tree78a22721e17284689dae1917276a1c68c20a0a36
parent4f3e47ea82e72cedeb1fef51534f380105fdaf1e (diff)
downloadguix-patches-af8f8281db99fb4cde06f24a84caea32b0821c79.tar
guix-patches-af8f8281db99fb4cde06f24a84caea32b0821c79.tar.gz
gnu: Add java-commons-logging-minimal.
* gnu/packages/java.scm (java-commons-logging-minimal): New variable.
-rw-r--r--gnu/packages/java.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 62f6b55263..c14b5e7d8d 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1927,6 +1927,53 @@ concurrency, I/O, hashing, primitives, reflection, string processing, and much
more!")
(license license:asl2.0)))
+;; The java-commons-logging package provides adapters to many different
+;; logging frameworks. To avoid an excessive dependency graph we try to build
+;; it with only a minimal set of adapters.
+(define-public java-commons-logging-minimal
+ (package
+ (name "java-commons-logging-minimal")
+ (version "1.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/commons/logging/source/"
+ "commons-logging-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "10bwcy5w8d7y39n0krlwhnp8ds3kj5zhmzj0zxnkw0qdlsjmsrj9"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:tests? #f ; avoid dependency on logging frameworks
+ #:jar-name "commons-logging-minimal.jar"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-adapters-and-tests
+ (lambda _
+ ;; Delete all adapters except for NoOpLog, SimpleLog, and
+ ;; LogFactoryImpl. NoOpLog is required to build; LogFactoryImpl
+ ;; is used by applications; SimpleLog is the only actually usable
+ ;; implementation that does not depend on another logging
+ ;; framework.
+ (for-each
+ (lambda (file)
+ (delete-file (string-append
+ "src/main/java/org/apache/commons/logging/impl/" file)))
+ (list "Jdk13LumberjackLogger.java"
+ "WeakHashtable.java"
+ "Log4JLogger.java"
+ "ServletContextCleaner.java"
+ "Jdk14Logger.java"
+ "AvalonLogger.java"
+ "LogKitLogger.java"))
+ (delete-file-recursively "src/test")
+ #t)))))
+ (home-page "http://commons.apache.org/logging/")
+ (synopsis "Common API for logging implementations")
+ (description "The Logging package is a thin bridge between different
+logging implementations. A library that uses the commons-logging API can be
+used with any logging implementation at runtime.")
+ (license license:asl2.0)))
+
(define-public java-commons-cli
(package
(name "java-commons-cli")