# # spec file for package guava # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: guava Version: 25.0 Release: 0 Summary: Google Core Libraries for Java License: Apache-2.0 AND CC0-1.0 Group: Development/Libraries/Java URL: https://github.com/google/guava Source0: https://github.com/google/guava/archive/v%{version}.tar.gz BuildRequires: fdupes BuildRequires: maven-local BuildRequires: mvn(com.google.code.findbugs:jsr305) BuildRequires: mvn(junit:junit) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) BuildArch: noarch %description Guava is a suite of core and expanded libraries that include utility classes, Google's collections, io classes, and much much more. 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} Group: Documentation/HTML %description javadoc API documentation for %{name}. %package testlib Summary: The guava-testlib artifact %description testlib guava-testlib provides additional functionality for conveninent unit testing %prep %setup -q find . -name '*.jar' -delete %pom_disable_module guava-gwt %pom_disable_module guava-tests %pom_remove_plugin -r :animal-sniffer-maven-plugin # Downloads JDK source for doc generation %pom_remove_plugin :maven-dependency-plugin guava %pom_remove_dep :caliper guava-tests %{mvn_package} :guava-parent guava %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 grep -F -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\| ) # 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' %build %{mvn_build} -s -f -- -Dsource=1.8 %install %mvn_install %fdupes -s %{buildroot}%{_javadocdir} %files -f .mfiles-guava %doc CONTRIBUTORS README* %license COPYING %files javadoc -f .mfiles-javadoc %license COPYING %files testlib -f .mfiles-guava-testlib %changelog