Subject: [PATCH 05/82] gnu: Add java-bouncycastle.

From: Julien Lepiller <[email-masked]>
Date: Sun, 18 Mar 2018 14:05:25 +0100

* gnu/packages/java.scm (java-bouncycastle): New variable.
(java-bouncycastle-bcprov, java-bouncycastle-bcpkix): Remove variable.
(java-kafka-clients): Use java-bouncycastle.
---
 gnu/packages/java.scm | 69 ++++++++++++++++-----------------------------------
 1 file changed, 21 insertions(+), 48 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index b1ecf843d..9f5b234bb 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -8229,29 +8229,37 @@ by technical operatives or consultants working with enterprise platforms.")
 algorithms and xxHash hashing algorithm.")
     (license license:asl2.0)))
 
-(define-public java-bouncycastle-bcprov
+(define-public java-bouncycastle
   (package
-    (name "java-bouncycastle-bcprov")
+    (name "java-bouncycastle")
     (version "1.58")
     (source (origin
               (method url-fetch)
-              (uri "https://bouncycastle.org/download/bcprov-jdk15on-158.tar.gz")
+              (uri (string-append "https://github.com/bcgit/bc-java/archive/r"
+                                  (substring version 0 1) "rv"
+                                  (substring version 2 4) ".tar.gz"))
+              ;(uri "https://bouncycastle.org/download/bcprov-jdk15on-158.tar.gz")
               (sha256
                (base32
-                "1hgkg96llbvgs8i0krwz2n0j7wlg6jfnq8w8kg0cc899j0wfmf3n"))))
+                ;"1hgkg96llbvgs8i0krwz2n0j7wlg6jfnq8w8kg0cc899j0wfmf3n"))))
+                "1sffl2w7sa48vfkq03zhc8x0kxycb747dprhq2z39kb45jlrf5f5"))))
     (build-system ant-build-system)
     (arguments
-     `(#:jar-name "bouncycastle-bcprov.jar"
-       #:tests? #f; no tests
-       #:source-dir "src"
+     `(#:tests? #f ;FIXME: how to run tests?
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'unzip-src
+         (replace 'build
            (lambda _
-             (mkdir-p "src")
-             (with-directory-excursion "src"
-               (invoke "unzip" "../src.zip"))
-             #t)))))
+             (invoke "ant" "-f" "ant/jdk15+.xml" "build-provider")
+             (invoke "ant" "-f" "ant/jdk15+.xml" "build")
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "ant" "-f" "ant/jdk15+.xml" "test")))
+         (replace 'install
+           (install-jars "build/artifacts/jdk1.5/jars")))))
+    (inputs
+     `(("java-javax-mail" ,java-javax-mail)))
     (native-inputs
      `(("unzip" ,unzip)
        ("junit" ,java-junit)))
@@ -8261,40 +8269,6 @@ algorithms and xxHash hashing algorithm.")
 for the Java programming language.")
     (license license:expat)))
 
-(define-public java-bouncycastle-bcpkix
-  (package
-    (name "java-bouncycastle-bcpkix")
-    (version "1.58")
-    (source (origin
-              (method url-fetch)
-              (uri "https://bouncycastle.org/download/bcpkix-jdk15on-158.tar.gz")
-              (sha256
-               (base32
-                "0is7qay02803s9f7lhnfcjlz61ni3hq5d7apg0iil7nbqkbfbcq2"))))
-    (build-system ant-build-system)
-    (arguments
-     `(#:jar-name "bouncycastle-bcpkix.jar"
-       #:tests? #f; no tests
-       #:source-dir "src"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'unzip-src
-           (lambda _
-             (mkdir-p "src")
-             (with-directory-excursion "src"
-               (invoke "unzip" "../src.zip"))
-             #t)))))
-    (native-inputs
-     `(("unzip" ,unzip)
-       ("junit" ,java-junit)))
-    (inputs
-     `(("bcprov" ,java-bouncycastle-bcprov)))
-    (home-page "https://www.bouncycastle.org")
-    (synopsis "Cryptographic library")
-    (description "Bouncy Castle Java API for PKIX, CMS, EAC, TSP, PKCS, OCSP,
-CMP, and CRMF.")
-    (license license:expat)))
-
 (define-public java-lmax-disruptor
   (package
     (name "java-lmax-disruptor")
@@ -8715,8 +8689,7 @@ protocol-independent framework to build mail and messaging applications.")
        ("powermock-junit4-common" ,java-powermock-modules-junit4-common)
        ("powermock-junit4" ,java-powermock-modules-junit4)
        ("powermock-support" ,java-powermock-api-support)
-       ("bouncycastle" ,java-bouncycastle-bcprov)
-       ("bouncycastle-bcpkix" ,java-bouncycastle-bcpkix)))
+       ("bouncycastle" ,java-bouncycastle)))
     (home-page "https://kafka.apache.org")
     (synopsis "Distributed streaming platform")
     (description "Kafka is a distributed streaming platform, which means:
-- 
2.16.1