summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2023-02-25 21:30:29 +0100
committerJulien Lepiller <julien@lepiller.eu>2024-04-20 18:31:34 +0200
commit7ce7464934aa9ba26b4ec2708c964af7b1d0deb2 (patch)
treec773171dd9f63b528c41c9764673aca3f2bb8e63
parentf1ed3d4699a726cd13985afa32b9c97e72505970 (diff)
downloadguix-patches-7ce7464934aa9ba26b4ec2708c964af7b1d0deb2.tar
guix-patches-7ce7464934aa9ba26b4ec2708c964af7b1d0deb2.tar.gz
gnu: java-guava: Update to 31.1.
* 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. Change-Id: Id2553c48e11c6001fb45a0589720cef1551804d9
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/bioinformatics.scm8
-rw-r--r--gnu/packages/java.scm43
-rw-r--r--gnu/packages/maven.scm4
-rw-r--r--gnu/packages/patches/java-guava-remove-annotation-deps.patch37
5 files changed, 78 insertions, 15 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 2e0c6a5d3c..a153b3e247 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1511,6 +1511,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 448ea5d6de..c2e9f209bc 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -7303,6 +7303,10 @@ geographic distributions.")
(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"
@@ -7362,6 +7366,10 @@ VCF.")
(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 1d2dfb4d8d..eb7fff47df 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6249,8 +6249,7 @@ used by programmers to guide the static analysis.")
(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
@@ -6259,7 +6258,9 @@ used by programmers to guide the static analysis.")
(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
@@ -6273,27 +6274,26 @@ used by programmers to guide the static analysis.")
;; 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
@@ -6303,6 +6303,21 @@ concurrency, I/O, hashing, primitives, reflection, string processing, and much
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 @@ layer for plugins that need to keep Maven2 compatibility.")))
"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 @@ layer for plugins that need to keep Maven2 compatibility.")))
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
+