diff --git a/guava.spec b/guava.spec new file mode 100644 index 0000000..3a789a2 --- /dev/null +++ b/guava.spec @@ -0,0 +1,90 @@ +Name: guava +Version: 25.0 +Release: 4 +Summary: Google Core Libraries for Java +License: ASL 2.0 and CC0 +URL: https://github.com/google/guava +BuildArch: noarch + +Source0: https://github.com/google/guava/archive/v%{version}.tar.gz + +BuildRequires: maven-local mvn(com.google.code.findbugs:jsr305) mvn(junit:junit) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) mvn(org.sonatype.oss:oss-parent:pom:) + +%description +Guava is a set of core Java libraries from Google that includes new collection +types (such as multimap and multiset), immutable collections, a graph library, +and utilities for concurrency, I/O, hashing, caching, primitives, strings, +and more! It is widely used on most Java projects within Google, and widely +used by many other companies as well. + +%package help +Summary: javadoc for guava +Provides: %{name}-javadoc = %{version}-%{release} +Obsoletes: %{name}-javadoc < %{version}-%{release} + +%description help +API documentation for guava + +%package testlib +Summary: The guava-testlib artifact + +%description testlib +To facilitate unit testing, guava-testlib provides additional features + +%prep +%autosetup -p1 -n %{name}-%{version} + +find . -name '*.jar' -delete + +%pom_disable_module guava-gwt +%pom_disable_module guava-tests + +%pom_remove_plugin -r :animal-sniffer-maven-plugin +%pom_remove_plugin :maven-dependency-plugin guava + +%pom_remove_dep :caliper guava-tests + +%mvn_package :guava-parent guava + +%pom_remove_plugin -r :maven-javadoc-plugin + +%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: + +annotations=$( + find -name '*.java' \ + | xargs fgrep -h \ + -e 'import com.google.j2objc.annotations' \ + -e 'import com.google.errorprone.annotation' \ + -e 'import org.codehaus.mojo.animal_sniffer' \ + -e 'import org.checkerframework' \ + | sort -u \ + | sed 's/.*\.\([^.]*\);/\1/' \ + | paste -sd\| +) +find -name '*.java' | xargs sed -ri \ + "s/^import .*\.($annotations);//;s/@($annotations)"'\>\s*(\((("[^"]*")|([^)]*))\))?//g' + +%build +%mvn_build -s -f + +%install +%mvn_install + +%files -f .mfiles-guava +%doc CONTRIBUTORS README* +%license COPYING + +%files help -f .mfiles-javadoc +%license COPYING + +%files testlib -f .mfiles-guava-testlib + +%changelog +* Fri Mar 6 2020 dingyiming - 25.0-4 +- Package init diff --git a/v25.0.tar.gz b/v25.0.tar.gz new file mode 100644 index 0000000..cd81ecd Binary files /dev/null and b/v25.0.tar.gz differ