Le Tue, 12 May 2020 23:57:58 +0200,
Björn Höfling <bjoern.hoefl...@bjoernhoefling.de> a écrit :

> Hi Michael,
> 
> what is the central message of your email? Is it just to say "I gave
> up, sorry", or do you need help at specific points? :-)
> 
> At least I can tell you that I have quite a bunch of work-in-progress
> branches lying around because I start with "Oh, let's _just_
> update/fix/add this little program ..." and you end up in a chain of
> needed updates, conflicting updates, broken states, etc.
> 
> Don't get confused by this :-) I try to plan my work step by step in
> these situations, cleanly commit what's finished and write a personal
> log of the success and failures and intermediate knowledge gained.
> 
> To the concrete java-icu4j:
> 
> What do you think about the attached patch (needs some clean-up)?
> 
> What's a bit uncommon about the project is that it builds separate
> sub-projects and then combines them. I'm not sure about the output(s):
> There are icu4j.jar, icu4j-charset.jar and icu4j-localespi.jar, I only
> copied the first one as I think this is what the original package
> definition did.
> 
> Björn

Hi,

I took your patch and changed it a bit to enable tests. They require
JUnitParams, which we don't have, as well as some work to actually be
able to run the tests without having the package try to download
anything.

Attached are two patches, that add java-junitparams and that update
icu4j with the proper sources.

I also tried to use the git repository, but that failed because three
data archive files come from git-lfs and are not fetched by git-fetch,
so I kept using the release tarball instead. I've rebuilt the few
packages listed by guix refresh successfully.

WDYT?
>From 21f02625baa603e0f6c31a7f2a96dd26e3f27ded Mon Sep 17 00:00:00 2001
From: Julien Lepiller <jul...@lepiller.eu>
Date: Sun, 28 Jun 2020 22:33:21 +0200
Subject: [PATCH 1/2] gnu: Add java-junitparams.

* gnu/packages/java.scm (java-junitparams): New variable.
---
 gnu/packages/java.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 48f9a52a56..fc85d12aa5 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3735,6 +3735,37 @@ JUnit provides assertions for testing expected results, test fixtures for
 sharing common test data, and test runners for running tests.")
     (license license:epl1.0)))
 
+(define-public java-junitparams
+  (package
+    (name "java-junitparams")
+    (version "1.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/Pragmatists/JUnitParams";)
+                     (commit (string-append "JUnitParams-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0rb52xdfp99invyjrras3w0bf0a81cz30yd47rkkiyqcqj0y1q9b"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "junitparams.jar"
+       #:source-dir "src/main/java"
+       #:test-dir "src/test"
+       #:test-exclude (list "**/SuperclassTest.java")))
+    (inputs
+     `(("java-junit" ,java-junit)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)
+       ("java-assertj" ,java-assertj)))
+    (home-page "https://github.com/Pragmatists/JUnitParams";)
+    (synopsis "Parameterised test support for JUnit")
+    (description "The JUnitParams project adds a new runner to JUnit and
+provides much easier and readable parametrised tests for JUnit.")
+    (license license:asl2.0)))
+
 (define-public java-plexus-utils
   (package
     (name "java-plexus-utils")
-- 
2.26.2

From d6dbe5507b24ef63b9f899e936ece422a401c21e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?=
 <bjoern.hoefl...@bjoernhoefling.de>
Date: Tue, 12 May 2020 20:27:59 +0200
Subject: [PATCH 2/2] gnu: java-icu4c: Update to 66.1, use full sources.

* gnu/packages/icu4c.scm (java-icu4c): Update to 66.1.
[source]: Use full sources instead of jar-sources.
[arguments]: Add chdir phase, replace install phase.

Co-Authored-By: Julien Lepiller <jul...@lepiller.eu>
---
 gnu/packages/icu4c.scm | 58 ++++++++++++++++++++++++++++++++++--------
 1 file changed, 47 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index 54a65365d7..b00d3172a4 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rek...@elephly.net>
 ;;; Copyright © 2019, 2020 Marius Bakke <mba...@fastmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othac...@gmail.com>
+;;; Copyright © 2020 Björn Höfling <bjoern.hoefl...@bjoernhoefling.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
 
 (define-module (gnu packages icu4c)
   #:use-module (gnu packages)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (guix licenses)
@@ -133,22 +135,56 @@ C/C++ part.")
 (define-public java-icu4j
   (package
     (name "java-icu4j")
-    (version "59.1")
+    (version "66.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.icu-project.org/files/icu4j/";
-                                  version "/icu4j-"
-                                  (string-map (lambda (x)
-                                                (if (char=? x #\.) #\_ x))
-                                              version)
-                                  "-src.jar"))
+              (uri (string-append
+                    "https://github.com/unicode-org/icu/releases/download/release-";
+                    (string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
+                    "/icu4j-"
+                    (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
+                    ".tgz"))
               (sha256
-               (base32
-                "0bgxsvgi0qcwj60pvcxrf7a3fbk7aksyxnfwpbzavyfrfzixqh0c"))))
+               (base32 "1ahdyz9209lwl7knb2l3gmnkkby221p0vpgx70fj4j02rdzgvw0d"))))
     (build-system ant-build-system)
     (arguments
-     `(#:tests? #f                      ; no tests included
-       #:jar-name "icu4j.jar"))
+     `(#:make-flags
+       (list (string-append "-Djunit.core.jar="
+                            (car (find-files
+                                   (assoc-ref %build-inputs "java-junit")
+                                   ".*.jar$")))
+             (string-append "-Djunit.junitparams.jar="
+                            (car (find-files
+                                   (assoc-ref %build-inputs "java-junitparams")
+                                   ".*.jar$")))
+             (string-append "-Djunit.hamcrest.jar="
+                            (car (find-files
+                                   (assoc-ref %build-inputs "java-hamcrest-core")
+                                   ".*.jar$"))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "..")
+             #t))
+         (add-before 'build 'remove-ivy
+           (lambda _
+             ;; This target wants to download ivy and use it to download
+             ;; junit.
+             (substitute* "build.xml"
+               (("depends=\"test-init-junit-dependency\"") ""))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((share (string-append (assoc-ref outputs "out")
+                                         "/share/java/")))
+               (mkdir-p share)
+               (install-file "icu4j.jar" share)
+               #t))))))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-junitparams" ,java-junitparams)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
     (home-page "http://site.icu-project.org/";)
     (synopsis "International Components for Unicode")
     (description
-- 
2.26.2

Reply via email to