unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: "Björn Höfling" <bjoern.hoefling@bjoernhoefling.de>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: icu4j, antlr4, source archives without a root path
Date: Sun, 28 Jun 2020 22:41:35 +0200	[thread overview]
Message-ID: <20200628224135.3852f91e@tachikoma.lepiller.eu> (raw)
In-Reply-To: <20200512235758.101cefc3@alma-ubu>

[-- Attachment #1: Type: text/plain, Size: 1775 bytes --]

Le Tue, 12 May 2020 23:57:58 +0200,
Björn Höfling <bjoern.hoefling@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?

[-- Attachment #2: 0001-gnu-Add-java-junitparams.patch --]
[-- Type: text/x-patch, Size: 2011 bytes --]

From 21f02625baa603e0f6c31a7f2a96dd26e3f27ded Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-java-icu4c-Update-to-66.1-use-full-sources.patch --]
[-- Type: text/x-patch, Size: 4446 bytes --]

From d6dbe5507b24ef63b9f899e936ece422a401c21e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?=
 <bjoern.hoefling@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 <julien@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 <rekado@elephly.net>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@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	other threads:[~2020-06-28 20:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-11  0:29 icu4j, antlr4, source archives without a root path Michael Zucchi
2020-05-12 21:57 ` Björn Höfling
2020-06-28 20:41   ` Julien Lepiller [this message]
2020-07-05 12:20     ` Julien Lepiller
2020-07-06  1:43       ` Michael Zucchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200628224135.3852f91e@tachikoma.lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=bjoern.hoefling@bjoernhoefling.de \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).