guava/guava.spec
2020-03-09 10:16:47 +08:00

91 lines
2.6 KiB
RPMSpec

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</_nouses>" 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 <dingyiming3@huawei.com> - 25.0-4
- Package init