unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: 61794@debbugs.gnu.org
Subject: [bug#61794] [PATCH 05/18] gnu: java-guava: Update to 31.1.
Date: Sat, 25 Feb 2023 21:30:29 +0100	[thread overview]
Message-ID: <67cbc476d00ec8fd7385846c88850208a1316a50.1677357041.git.julien@lepiller.eu> (raw)
In-Reply-To: <8c21fa41d1a4bc4665a074eee3b960a99455459e.1677357041.git.julien@lepiller.eu>

* gnu/packages/patches/java-guava-remove-annotation-deps.patch: New
  file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-guava): Update to 31.1.
[source]: Use patch.
(java-guava-futures-failureaccess): New variable.
* gnu/packages/bioinformatics.scm (java-picard, java-picard-2.10.3): Fix for
  newer guava.
* gnu/packages/maven.scm (maven): Add java-guava-futures-failureaccess.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/bioinformatics.scm               |  8 ++++
 gnu/packages/java.scm                         | 43 +++++++++++++------
 gnu/packages/maven.scm                        |  4 +-
 .../java-guava-remove-annotation-deps.patch   | 37 ++++++++++++++++
 5 files changed, 78 insertions(+), 15 deletions(-)
 create mode 100644 gnu/packages/patches/java-guava-remove-annotation-deps.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 63ec92ebef..019e3de794 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1361,6 +1361,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch	\
   %D%/packages/patches/java-commons-collections-fix-java8.patch \
   %D%/packages/patches/java-commons-lang-fix-dependency.patch \
+  %D%/packages/patches/java-guava-remove-annotation-deps.patch \
   %D%/packages/patches/java-jeromq-fix-tests.patch		\
   %D%/packages/patches/java-openjfx-build-jdk_version.patch     \
   %D%/packages/patches/java-powermock-fix-java-files.patch		\
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index b5d132749f..a24c89ac6d 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5014,6 +5014,10 @@ (define-public java-picard
        (modify-phases %standard-phases
          ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
          (delete 'generate-jar-indices)
+         (add-after 'unpack 'fix-guava
+           (lambda _
+             (substitute* "src/java/picard/cmdline/CommandLineParser.java"
+               (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
          (add-after 'unpack 'use-our-htsjdk
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "build.xml"
@@ -5073,6 +5077,10 @@ (define-public java-picard-2.10.3
          (delete 'generate-jar-indices)
          (add-after 'unpack 'remove-useless-build.xml
            (lambda _ (delete-file "build.xml") #t))
+         (add-after 'unpack 'fix-guava
+           (lambda _
+             (substitute* "src/main/java/picard/cmdline/CommandLineParser.java"
+               (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
          ;; This is necessary to ensure that htsjdk is found when using
          ;; picard.jar as an executable.
          (add-before 'build 'edit-classpath-in-manifest
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index fbd8b50872..4d57ba4f79 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -5904,8 +5904,7 @@ (define java-error-prone-parent-pom
 (define-public java-guava
   (package
     (name "java-guava")
-    ;; This is the last release of Guava that can be built with Java 7.
-    (version "20.0")
+    (version "31.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5914,7 +5913,9 @@ (define-public java-guava
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "00h5cawdjic1vind3yivzh1f58flvm1yfmhsyqwyvmbvj1vakysp"))))
+                "0sv1w5cnids9ad3l7qhrh3dh1wdqwc946iinsxryafr25wg5z1lp"))
+              (patches
+               (search-patches "java-guava-remove-annotation-deps.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f                      ; no tests included
@@ -5928,27 +5929,26 @@ (define-public java-guava
                ;; Remove annotations to avoid extra dependencies:
                ;; * "j2objc" annotations are used when converting Java to
                ;;   Objective C;
-               ;; * "errorprone" annotations catch common Java mistakes at
-               ;;   compile time;
                ;; * "IgnoreJRERequirement" is used for Android.
+               ;; * "Nullable" is used to catch NPE at build time.
                (substitute* (find-files "." "\\.java$")
                  (("import com.google.j2objc.*") "")
-                 (("import com.google.errorprone.annotation.*") "")
-                 (("import org.codehaus.mojo.animal_sniffer.*") "")
-                 (("@CanIgnoreReturnValue") "")
-                 (("@LazyInit") "")
+                 (("import org.checkerframework.checker.*") "")
+                 (("@ReflectionSupport.*") "")
                  (("@WeakOuter") "")
                  (("@RetainedWith") "")
                  (("@Weak") "")
-                 (("@ForOverride") "")
                  (("@J2ObjCIncompatible") "")
-                 (("@IgnoreJRERequirement") "")))
-             #t))
+                 (("@IgnoreJRERequirement") "")
+                 (("@Nullable") "")))))
+         ;; This is required by guava, but this is just an empty stub
+         (add-before 'install 'install-listenablefuture-stub
+           (install-pom-file "futures/listenablefuture9999/pom.xml"))
          (replace 'install (install-from-pom "guava/pom.xml")))))
     (inputs
-     (list java-jsr305))
+     (list java-error-prone-annotations java-jsr305))
     (propagated-inputs
-     (list java-guava-parent-pom))
+     (list java-guava-futures-failureaccess java-guava-parent-pom))
     (home-page "https://github.com/google/guava")
     (synopsis "Google core libraries for Java")
     (description "Guava is a set of core libraries that includes new
@@ -5958,6 +5958,21 @@ (define-public java-guava
 more!")
     (license license:asl2.0)))
 
+(define-public java-guava-futures-failureaccess
+  (package
+    (inherit java-guava)
+    (name "java-guava-futures-failureaccess")
+    (arguments
+     `(#:tests? #f; no tests
+       #:jar-name "guava-futures-failureaccess.jar"
+       #:source-dir "futures/failureaccess/src"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (install-from-pom "futures/failureaccess/pom.xml")))))
+    (propagated-inputs
+     `(("java-sonatype-oss-parent-pom" ,java-sonatype-oss-parent-pom-7)))))
+
 (define java-guava-parent-pom
   (package
     (inherit java-guava)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index f941bf0dd0..3ab8b6dffc 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -2170,7 +2170,8 @@ (define-public maven
                      "java-javax-inject" "java-plexus-component-annotations"
                      "java-plexus-utils" "java-plexus-interpolation"
                      "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
-                     "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
+                     "java-guava-futures-failureaccess" "java-jansi"
+                     "java-jsr250" "java-cdi-api" "java-commons-cli"
                      "java-commons-io" "java-commons-lang3" "java-slf4j-api"))))
              (substitute* "apache-maven/src/bin/mvn"
                (("cygwin=false;")
@@ -2239,6 +2240,7 @@ (define-public maven
            java-plexus-sec-dispatcher
            java-plexus-cipher
            java-guava
+           java-guava-futures-failureaccess
            java-jansi
            java-jsr250
            java-cdi-api
diff --git a/gnu/packages/patches/java-guava-remove-annotation-deps.patch b/gnu/packages/patches/java-guava-remove-annotation-deps.patch
new file mode 100644
index 0000000000..6f038b1ba4
--- /dev/null
+++ b/gnu/packages/patches/java-guava-remove-annotation-deps.patch
@@ -0,0 +1,37 @@
+From 41d216ca7993991d32a077d0650ccfad8a846942 Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Sat, 25 Feb 2023 10:02:11 +0100
+Subject: [PATCH] Remove annotation dependencies
+
+This is used to prevent a failure when guix creates the Maven directory
+structure and fails to find these dependencies.
+---
+ guava/pom.xml | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/guava/pom.xml b/guava/pom.xml
+index 81a2005..5237047 100644
+--- a/guava/pom.xml
++++ b/guava/pom.xml
+@@ -31,18 +31,6 @@
+       <groupId>com.google.code.findbugs</groupId>
+       <artifactId>jsr305</artifactId>
+     </dependency>
+-    <dependency>
+-      <groupId>org.checkerframework</groupId>
+-      <artifactId>checker-qual</artifactId>
+-    </dependency>
+-    <dependency>
+-      <groupId>com.google.errorprone</groupId>
+-      <artifactId>error_prone_annotations</artifactId>
+-    </dependency>
+-    <dependency>
+-      <groupId>com.google.j2objc</groupId>
+-      <artifactId>j2objc-annotations</artifactId>
+-    </dependency>
+     <!-- TODO(cpovirk): does this comment belong on the <dependency> in <profiles>? -->
+     <!-- TODO(cpovirk): want this only for dependency plugin but seems not to work there? Maven runs without failure, but the resulting Javadoc is missing the hoped-for inherited text -->
+   </dependencies>
+-- 
+2.38.1
+
-- 
2.38.1





  parent reply	other threads:[~2023-02-25 20:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-25 20:26 [bug#61794] [PATCH] Update some Java packages Julien Lepiller
2023-02-25 20:30 ` [bug#61794] [PATCH 01/18] gnu: java-objenesis: Update to 3.3 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 02/18] gnu: java-bsh: Update to 2.1.1 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 03/18] gnu: java-cglib: Update to 3.3.0 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 04/18] gnu: Add java-error-prone-annotations Julien Lepiller
2023-02-25 20:30   ` Julien Lepiller [this message]
2023-02-25 20:30   ` [bug#61794] [PATCH 06/18] gnu: Add apache-parent-pom-29 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 07/18] gnu: Add maven-parent-pom-39 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 08/18] gnu: Add apache-parent-pom-27 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 09/18] gnu: Add maven-parent-pom-37 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 10/18] gnu: maven-resolver-api: Update to 1.9.4 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 11/18] gnu: maven: Update to 3.9.0 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 12/18] gnu: Add java-asm-9 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 13/18] gnu: Add java-asm-tree-9 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 14/18] gnu: Add java-asm-analysis-9 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 15/18] gnu: Add java-asm-util-9 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 16/18] gnu: Add java-asm-commons-9 Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 17/18] gnu: Add java-byte-buddy-dep Julien Lepiller
2023-02-25 20:30   ` [bug#61794] [PATCH 18/18] gnu: java-powermock-reflect: Update to 2.0.9 Julien Lepiller
2023-07-24 12:15 ` [bug#61794] Commit? Andreas Enge
2024-04-01 20:55 ` [bug#61794] [PATCH] Update some Java packages Ludovic Courtès

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=67cbc476d00ec8fd7385846c88850208a1316a50.1677357041.git.julien@lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=61794@debbugs.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).