diff --git a/.gitignore b/.gitignore index ce1d50b..085fb4a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,8 @@ /v20.0.tar.gz /v24.0.tar.gz /v25.0.tar.gz +/v28.0.tar.gz +/v28.1.tar.gz +/v28.2.tar.gz +/v29.0.tar.gz +/v30.1.tar.gz diff --git a/0001-Remove-multi-line-annotations.patch b/0001-Remove-multi-line-annotations.patch new file mode 100644 index 0000000..df43f66 --- /dev/null +++ b/0001-Remove-multi-line-annotations.patch @@ -0,0 +1,343 @@ +From c5d3a8295d62ede99b5e4c7c6ef63c14819ec112 Mon Sep 17 00:00:00 2001 +From: Marian Koncek +Date: Mon, 18 Jan 2021 12:39:46 +0100 +Subject: [PATCH] Remove multi-line annotations + +--- + .../guava/src/com/google/common/collect/CompactHashMap.java | 2 -- + .../guava/src/com/google/common/collect/CompactHashSet.java | 2 -- + android/guava/src/com/google/common/graph/Traverser.java | 3 --- + android/guava/src/com/google/common/primitives/Doubles.java | 4 ---- + android/guava/src/com/google/common/primitives/Floats.java | 4 ---- + android/guava/src/com/google/common/primitives/Ints.java | 4 ---- + android/guava/src/com/google/common/primitives/Shorts.java | 4 ---- + .../src/com/google/common/util/concurrent/ClosingFuture.java | 3 --- + .../common/util/concurrent/ListeningExecutorService.java | 4 ---- + guava/src/com/google/common/collect/CompactHashMap.java | 2 -- + guava/src/com/google/common/collect/CompactHashSet.java | 2 -- + guava/src/com/google/common/graph/Traverser.java | 3 --- + guava/src/com/google/common/primitives/Doubles.java | 4 ---- + guava/src/com/google/common/primitives/Floats.java | 4 ---- + guava/src/com/google/common/primitives/Ints.java | 4 ---- + guava/src/com/google/common/primitives/Shorts.java | 4 ---- + .../src/com/google/common/util/concurrent/ClosingFuture.java | 3 --- + .../common/util/concurrent/ListeningExecutorService.java | 4 ---- + 18 files changed, 60 deletions(-) + +diff --git a/android/guava/src/com/google/common/collect/CompactHashMap.java b/android/guava/src/com/google/common/collect/CompactHashMap.java +index 69e1412..e6cba86 100644 +--- a/android/guava/src/com/google/common/collect/CompactHashMap.java ++++ b/android/guava/src/com/google/common/collect/CompactHashMap.java +@@ -105,8 +105,6 @@ class CompactHashMap extends AbstractMap implements Serializable { + * Maximum allowed false positive probability of detecting a hash flooding attack given random + * input. + */ +- ( +- ) + static final double HASH_FLOODING_FPP = 0.001; + + /** +diff --git a/android/guava/src/com/google/common/collect/CompactHashSet.java b/android/guava/src/com/google/common/collect/CompactHashSet.java +index 43072b6..85debcd 100644 +--- a/android/guava/src/com/google/common/collect/CompactHashSet.java ++++ b/android/guava/src/com/google/common/collect/CompactHashSet.java +@@ -122,8 +122,6 @@ class CompactHashSet extends AbstractSet implements Serializable { + * Maximum allowed false positive probability of detecting a hash flooding attack given random + * input. + */ +- ( +- ) + static final double HASH_FLOODING_FPP = 0.001; + + /** +diff --git a/android/guava/src/com/google/common/graph/Traverser.java b/android/guava/src/com/google/common/graph/Traverser.java +index 7a40bdd..2b3f60c 100644 +--- a/android/guava/src/com/google/common/graph/Traverser.java ++++ b/android/guava/src/com/google/common/graph/Traverser.java +@@ -60,9 +60,6 @@ import java.util.Set; + * @since 23.1 + */ + +-( +- "Call forGraph or forTree, passing a lambda or a Graph with the desired edges (built with" +- + " GraphBuilder)") + public abstract class Traverser { + private final SuccessorsFunction successorFunction; + +diff --git a/android/guava/src/com/google/common/primitives/Doubles.java b/android/guava/src/com/google/common/primitives/Doubles.java +index d99300b..2cab6b8 100644 +--- a/android/guava/src/com/google/common/primitives/Doubles.java ++++ b/android/guava/src/com/google/common/primitives/Doubles.java +@@ -208,8 +208,6 @@ public final class Doubles extends DoublesMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static double min(double... array) { + checkArgument(array.length > 0); + double min = array[0]; +@@ -228,8 +226,6 @@ public final class Doubles extends DoublesMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static double max(double... array) { + checkArgument(array.length > 0); + double max = array[0]; +diff --git a/android/guava/src/com/google/common/primitives/Floats.java b/android/guava/src/com/google/common/primitives/Floats.java +index 6166813..aa293dc 100644 +--- a/android/guava/src/com/google/common/primitives/Floats.java ++++ b/android/guava/src/com/google/common/primitives/Floats.java +@@ -205,8 +205,6 @@ public final class Floats extends FloatsMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static float min(float... array) { + checkArgument(array.length > 0); + float min = array[0]; +@@ -225,8 +223,6 @@ public final class Floats extends FloatsMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static float max(float... array) { + checkArgument(array.length > 0); + float max = array[0]; +diff --git a/android/guava/src/com/google/common/primitives/Ints.java b/android/guava/src/com/google/common/primitives/Ints.java +index 511ec2b..f7f5ce3 100644 +--- a/android/guava/src/com/google/common/primitives/Ints.java ++++ b/android/guava/src/com/google/common/primitives/Ints.java +@@ -219,8 +219,6 @@ public final class Ints extends IntsMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static int min(int... array) { + checkArgument(array.length > 0); + int min = array[0]; +@@ -240,8 +238,6 @@ public final class Ints extends IntsMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static int max(int... array) { + checkArgument(array.length > 0); + int max = array[0]; +diff --git a/android/guava/src/com/google/common/primitives/Shorts.java b/android/guava/src/com/google/common/primitives/Shorts.java +index f07c59d..7ebc7de 100644 +--- a/android/guava/src/com/google/common/primitives/Shorts.java ++++ b/android/guava/src/com/google/common/primitives/Shorts.java +@@ -218,8 +218,6 @@ public final class Shorts extends ShortsMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static short min(short... array) { + checkArgument(array.length > 0); + short min = array[0]; +@@ -239,8 +237,6 @@ public final class Shorts extends ShortsMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static short max(short... array) { + checkArgument(array.length > 0); + short max = array[0]; +diff --git a/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java b/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java +index f1d1250..ca89d9d 100644 +--- a/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java ++++ b/android/guava/src/com/google/common/util/concurrent/ClosingFuture.java +@@ -1203,9 +1203,6 @@ public final class ClosingFuture { + * .closing(executor); + * } + */ +- // TODO(cpovirk): Use simple name instead of fully qualified after we stop building with JDK 8. +- @com.google.errorprone.annotations.DoNotMock( +- "Use ClosingFuture.whenAllSucceed() or .whenAllComplete() instead.") + public static class Combiner { + + private final CloseableList closeables = new CloseableList(); +diff --git a/android/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java b/android/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java +index 241242a..6ada4e9 100644 +--- a/android/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java ++++ b/android/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java +@@ -32,10 +32,6 @@ import java.util.concurrent.TimeUnit; + * @author Chris Povirk + * @since 10.0 + */ +-( +- "Use TestingExecutors.sameThreadScheduledExecutor, or wrap a real Executor from " +- + "java.util.concurrent.Executors with MoreExecutors.listeningDecorator") +- + public interface ListeningExecutorService extends ExecutorService { + /** + * @return a {@code ListenableFuture} representing pending completion of the task +diff --git a/guava/src/com/google/common/collect/CompactHashMap.java b/guava/src/com/google/common/collect/CompactHashMap.java +index fbf1d4d..8a88a9f 100644 +--- a/guava/src/com/google/common/collect/CompactHashMap.java ++++ b/guava/src/com/google/common/collect/CompactHashMap.java +@@ -109,8 +109,6 @@ class CompactHashMap extends AbstractMap implements Serializable { + * Maximum allowed false positive probability of detecting a hash flooding attack given random + * input. + */ +- ( +- ) + static final double HASH_FLOODING_FPP = 0.001; + + /** +diff --git a/guava/src/com/google/common/collect/CompactHashSet.java b/guava/src/com/google/common/collect/CompactHashSet.java +index 9f6b3b9..7237175 100644 +--- a/guava/src/com/google/common/collect/CompactHashSet.java ++++ b/guava/src/com/google/common/collect/CompactHashSet.java +@@ -126,8 +126,6 @@ class CompactHashSet extends AbstractSet implements Serializable { + * Maximum allowed false positive probability of detecting a hash flooding attack given random + * input. + */ +- ( +- ) + static final double HASH_FLOODING_FPP = 0.001; + + /** +diff --git a/guava/src/com/google/common/graph/Traverser.java b/guava/src/com/google/common/graph/Traverser.java +index 7a40bdd..2b3f60c 100644 +--- a/guava/src/com/google/common/graph/Traverser.java ++++ b/guava/src/com/google/common/graph/Traverser.java +@@ -60,9 +60,6 @@ import java.util.Set; + * @since 23.1 + */ + +-( +- "Call forGraph or forTree, passing a lambda or a Graph with the desired edges (built with" +- + " GraphBuilder)") + public abstract class Traverser { + private final SuccessorsFunction successorFunction; + +diff --git a/guava/src/com/google/common/primitives/Doubles.java b/guava/src/com/google/common/primitives/Doubles.java +index 8317163..3b157ba 100644 +--- a/guava/src/com/google/common/primitives/Doubles.java ++++ b/guava/src/com/google/common/primitives/Doubles.java +@@ -210,8 +210,6 @@ public final class Doubles extends DoublesMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static double min(double... array) { + checkArgument(array.length > 0); + double min = array[0]; +@@ -230,8 +228,6 @@ public final class Doubles extends DoublesMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static double max(double... array) { + checkArgument(array.length > 0); + double max = array[0]; +diff --git a/guava/src/com/google/common/primitives/Floats.java b/guava/src/com/google/common/primitives/Floats.java +index 7578aa8..60a6da3 100644 +--- a/guava/src/com/google/common/primitives/Floats.java ++++ b/guava/src/com/google/common/primitives/Floats.java +@@ -205,8 +205,6 @@ public final class Floats extends FloatsMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static float min(float... array) { + checkArgument(array.length > 0); + float min = array[0]; +@@ -225,8 +223,6 @@ public final class Floats extends FloatsMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static float max(float... array) { + checkArgument(array.length > 0); + float max = array[0]; +diff --git a/guava/src/com/google/common/primitives/Ints.java b/guava/src/com/google/common/primitives/Ints.java +index f2a0cad..0e4ea1f 100644 +--- a/guava/src/com/google/common/primitives/Ints.java ++++ b/guava/src/com/google/common/primitives/Ints.java +@@ -221,8 +221,6 @@ public final class Ints extends IntsMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static int min(int... array) { + checkArgument(array.length > 0); + int min = array[0]; +@@ -242,8 +240,6 @@ public final class Ints extends IntsMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static int max(int... array) { + checkArgument(array.length > 0); + int max = array[0]; +diff --git a/guava/src/com/google/common/primitives/Shorts.java b/guava/src/com/google/common/primitives/Shorts.java +index f07c59d..7ebc7de 100644 +--- a/guava/src/com/google/common/primitives/Shorts.java ++++ b/guava/src/com/google/common/primitives/Shorts.java +@@ -218,8 +218,6 @@ public final class Shorts extends ShortsMethodsForWeb { + * the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static short min(short... array) { + checkArgument(array.length > 0); + short min = array[0]; +@@ -239,8 +237,6 @@ public final class Shorts extends ShortsMethodsForWeb { + * in the array + * @throws IllegalArgumentException if {@code array} is empty + */ +- ( +- "Available in GWT! Annotation is to avoid conflict with GWT specialization of base class.") + public static short max(short... array) { + checkArgument(array.length > 0); + short max = array[0]; +diff --git a/guava/src/com/google/common/util/concurrent/ClosingFuture.java b/guava/src/com/google/common/util/concurrent/ClosingFuture.java +index 0a867aa..fdb3887 100644 +--- a/guava/src/com/google/common/util/concurrent/ClosingFuture.java ++++ b/guava/src/com/google/common/util/concurrent/ClosingFuture.java +@@ -1201,9 +1201,6 @@ public final class ClosingFuture { + * .closing(executor); + * } + */ +- // TODO(cpovirk): Use simple name instead of fully qualified after we stop building with JDK 8. +- @com.google.errorprone.annotations.DoNotMock( +- "Use ClosingFuture.whenAllSucceed() or .whenAllComplete() instead.") + public static class Combiner { + + private final CloseableList closeables = new CloseableList(); +diff --git a/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java b/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java +index 241242a..6ada4e9 100644 +--- a/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java ++++ b/guava/src/com/google/common/util/concurrent/ListeningExecutorService.java +@@ -32,10 +32,6 @@ import java.util.concurrent.TimeUnit; + * @author Chris Povirk + * @since 10.0 + */ +-( +- "Use TestingExecutors.sameThreadScheduledExecutor, or wrap a real Executor from " +- + "java.util.concurrent.Executors with MoreExecutors.listeningDecorator") +- + public interface ListeningExecutorService extends ExecutorService { + /** + * @return a {@code ListenableFuture} representing pending completion of the task +-- +2.29.2 + diff --git a/guava.spec b/guava.spec index e3505b1..43c1b2f 100644 --- a/guava.spec +++ b/guava.spec @@ -1,6 +1,12 @@ +# Workaround for rhbz#1969370: __bootstrap macro is not defined in +# CentOS Stream, See https://bugzilla.redhat.com/1969370 +%global __bootstrap ~bootstrap + +%bcond_without bootstrap + Name: guava -Version: 25.0 -Release: 11%{?dist} +Version: 30.1 +Release: 3%{?dist} Summary: Google Core Libraries for Java # Most of the code is under ASL 2.0 # Few classes are under CC0, grep for creativecommons @@ -10,10 +16,17 @@ BuildArch: noarch Source0: https://github.com/google/guava/archive/v%{version}.tar.gz -BuildRequires: maven-local -BuildRequires: mvn(com.google.code.findbugs:jsr305) +Patch1: 0001-Remove-multi-line-annotations.patch + +BuildRequires: maven-local-openjdk8 +%if %{with bootstrap} +BuildRequires: javapackages-bootstrap +%else +BuildRequires: %{?module_prefix}mvn(com.google.code.findbugs:jsr305) BuildRequires: mvn(junit:junit) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin) +%endif %description Guava is a suite of core and expanded libraries that include @@ -23,11 +36,7 @@ This project is a complete packaging of all the Guava libraries into a single jar. Individual portions of Guava can be used by downloading the appropriate module and its dependencies. -%package javadoc -Summary: Javadoc for %{name} - -%description javadoc -API documentation for %{name}. +%{?javadoc_package} %package testlib Summary: The guava-testlib artifact @@ -40,12 +49,15 @@ guava-testlib provides additional functionality for conveninent unit testing find . -name '*.jar' -delete -# drop unnecessary dependency on parent POM -%pom_remove_parent +%pom_remove_parent guava-bom %pom_disable_module guava-gwt %pom_disable_module guava-tests +%pom_xpath_inject pom:modules "futures/failureaccess" +%pom_xpath_inject pom:parent "../.." futures/failureaccess +%pom_xpath_set pom:parent/pom:version %{version}-jre futures/failureaccess + %pom_remove_plugin -r :animal-sniffer-maven-plugin # Downloads JDK source for doc generation %pom_remove_plugin :maven-dependency-plugin guava @@ -59,27 +71,36 @@ find . -name '*.jar' -delete %pom_xpath_inject /pom:project/pom:build/pom:plugins/pom:plugin/pom:configuration/pom:instructions "<_nouses>true" guava/pom.xml -%pom_remove_dep -r :animal-sniffer-annotations %pom_remove_dep -r :error_prone_annotations %pom_remove_dep -r :j2objc-annotations %pom_remove_dep -r org.checkerframework: +%pom_remove_dep -r :listenablefuture annotations=$( find -name '*.java' \ | xargs fgrep -h \ -e 'import com.google.j2objc.annotations' \ -e 'import com.google.errorprone.annotation' \ + -e 'import com.google.errorprone.annotations' \ + -e 'import com.google.common.annotations' \ -e 'import org.codehaus.mojo.animal_sniffer' \ -e 'import org.checkerframework' \ | sort -u \ | sed 's/.*\.\([^.]*\);/\1/' \ | paste -sd\| ) + # guava started using quite a few annotation libraries for code quality, which # we don't have. This ugly regex is supposed to remove their usage from the code find -name '*.java' | xargs sed -ri \ "s/^import .*\.($annotations);//;s/@($annotations)"'\>\s*(\((("[^"]*")|([^)]*))\))?//g' +%patch1 -p1 + +%mvn_package "com.google.guava:failureaccess" guava + +%mvn_package "com.google.guava:guava-bom" __noinstall + %build # Tests fail on Koji due to insufficient memory, # see https://bugzilla.redhat.com/show_bug.cgi?id=1332971 @@ -92,18 +113,25 @@ find -name '*.java' | xargs sed -ri \ %doc CONTRIBUTORS README* %license COPYING -%files javadoc -f .mfiles-javadoc -%license COPYING - %files testlib -f .mfiles-guava-testlib %changelog -* Fri Apr 16 2021 Mohan Boddu - 25.0-11 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Tue Jun 08 2021 Mikolaj Izdebski - 30.1-3 +- Bootstrap Maven for CentOS Stream 9 + +* Mon May 17 2021 Mikolaj Izdebski - 30.1-2 +- Bootstrap build +- Non-bootstrap build * Tue Jan 26 2021 Fedora Release Engineering - 25.0-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild +* Tue Jan 26 2021 Marian Koncek - 30.1-1 +- Update to upstream version 30.1 + +* Fri Sep 18 2020 Marian Koncek - 29.0-1 +- Update to upstream version 29.0 + * Tue Jul 28 2020 Fedora Release Engineering - 25.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild @@ -116,9 +144,27 @@ find -name '*.java' | xargs sed -ri \ * Wed Jan 29 2020 Fedora Release Engineering - 25.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +* Sat Jan 25 2020 Mikolaj Izdebski - 28.2-2 +- Build with OpenJDK 8 + +* Fri Jan 24 2020 Marian Koncek - 28.2-1 +- Update to upstream version 28.2 + +* Tue Nov 05 2019 Mikolaj Izdebski - 28.1-2 +- Mass rebuild for javapackages-tools 201902 + +* Mon Sep 02 2019 Marian Koncek - 28.1-1 +- Update to upstream version 28.1 + +* Thu Aug 01 2019 Marian Koncek - 28.0-1 +- Update to upstream version 28.0 + * Thu Jul 25 2019 Fedora Release Engineering - 25.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild +* Fri May 24 2019 Mikolaj Izdebski - 25.0-4 +- Mass rebuild for javapackages-tools 201901 + * Fri Feb 01 2019 Fedora Release Engineering - 25.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index 62006bf..d75725e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (v25.0.tar.gz) = d846d18b336169b2d07ee0ac5109000e4d5e6534051200b5d525b9294f41e44366483e79e2adfb59a8a45603601e8e86e9347eb2b2fd955708031fe7eedfaf26 +SHA512 (v30.1.tar.gz) = 0f8fa73414cf844a853ffc551f7ef808cd1f41ae9978a9b4261660ac039c0966448973f7c946efd33a6ab5d3995ef113107db1a7806cd5586473ed9434afc7b3