apache-commons-collections/apache-commons-collections.spec

175 lines
5.9 KiB
RPMSpec

#
# spec file for package apache-commons-collections
#
# Copyright (c) 2014 SUSE LINUX Products 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 http://bugs.opensuse.org/
#
# icecream 0
%define base_name collections
%define short_name commons-%{base_name}
Name: apache-commons-collections
Version: 3.2.1
Release: 0
Summary: Commons Collections Package
License: Apache-2.0
Group: Development/Libraries/Java
Url: http://commons.apache.org/%{base_name}/
Source0: http://www.apache.org/dist/commons/%{base_name}/source/%{short_name}-%{version}-src.tar.gz
Source1: commons-collections-testframework.pom
Patch0: jakarta-commons-collections-javadoc-nonet.patch
Patch1: commons-collections-3.2-build_xml.patch
BuildRequires: ant
BuildRequires: ant-junit
BuildRequires: apache-commons-parent
BuildRequires: javapackages-tools
#BuildRequires: xml-commons-jaxp-1.3-apis
BuildRequires: java-devel
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: %{short_name} = %{version}-%{release}
Obsoletes: %{short_name} = 3.2
Provides: jakarta-%{short_name} = %{version}-%{release}
Obsoletes: jakarta-%{short_name} = 3.2
Requires(pre): coreutils
Requires(post): javapackages-tools
Requires(postun): javapackages-tools
%description
The introduction of the Collections API by Sun in JDK 1.2
has been a boon to quick and effective Java programming.
Ready access to powerful data structures has accelerated
development by reducing the need for custom container
classes around each core object. Most Java2 APIs are
significantly easier to use because of the Collections API.
However, there are certain holes left unfilled by Sun's
implementations, and the Jakarta-Commons Collections
Component strives to fulfill them. Among the features of
this package are: - special-purpose implementations of
Lists and Maps for fast access
- adapter classes from Java1-style containers (arrays,
enumerations) to Java2-style collections
- methods to test or create typical set theory properties
of collections such as union, intersection, and closure
%package testframework
Summary: Test framework for %{name}
Group: Development/Libraries/Java
Requires: %{name} = %{version}-%{release}
%description testframework
%{summary}.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Libraries/Java
%description javadoc
%{summary}.
%package testframework-javadoc
Summary: Javadoc for %{name} testframework
Group: Development/Libraries/Java
%description testframework-javadoc
%{summary}.
%prep
%setup -q -n %{short_name}-%{version}-src
# remove all binary libs
find . -name "*.jar" -exec rm -f {} \;
find . -name "*.class" -exec rm -f {} \;
%patch0 -p1
%patch1 -p0
# Fix file eof
%{__sed} -i 's/\r//' LICENSE.txt
%{__sed} -i 's/\r//' PROPOSAL.html
%{__sed} -i 's/\r//' RELEASE-NOTES.html
%{__sed} -i 's/\r//' README.txt
%{__sed} -i 's/\r//' NOTICE.txt
# Substitute version into testframework pom
cp -p %{SOURCE1} pom-testframework.xml
sed -i 's/@VERSION@/%{version}/' pom-testframework.xml
%build
#FIXME: the test fails on x390!
#java: pthread_mutex_lock.c:71: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed.
#ant -Djava.io.tmpdir=. test dist tf.javadoc
#FIXME: the test fails on ppc with openjdk b11
# See bnc#441085
#ant -Djava.io.tmpdir=. dist tf.javadoc
export CLASSPATH=$(build-classpath junit4)
ant -Djava.io.tmpdir=. jar javadoc tf.validate tf.jar dist.bin dist.src tf.javadoc
%install
%if 0%{?suse_version} == 1110
export NO_BRP_CHECK_BYTECODE_VERSION=true
%endif
# jars
install -d -m 755 %{buildroot}%{_javadir}
install -m 644 build/%{short_name}-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
install -m 644 build/%{short_name}-testframework-%{version}.jar %{buildroot}%{_javadir}/%{name}-testframework.jar
(cd %{buildroot}%{_javadir} && for jar in *; do ln -sf ${jar} `echo $jar| sed "s|apache-||g"`; done)
# poms
install -Dpm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{short_name}.pom
install -Dpm 644 pom-testframework.xml %{buildroot}%{_mavenpomdir}/JPP-%{short_name}-testframework.pom
%add_maven_depmap JPP-%{short_name}.pom %{short_name}.jar -a "org.apache.commons:%{short_name}"
%add_maven_depmap JPP-%{short_name}-testframework.pom %{short_name}-testframework.jar -f "testframework" -a "org.apache.commons:%{short_name}-testframework"
# javadoc
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
cp -pr build/docs/apidocs/* %{buildroot}%{_javadocdir}/%{name}
# testframework-javadoc
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}-testframework
cp -pr build/docs/testframework/* %{buildroot}%{_javadocdir}/%{name}-testframework
%files
%defattr(0644,root,root,0755)
%doc PROPOSAL.html README.txt LICENSE.txt RELEASE-NOTES.html NOTICE.txt
%{_javadir}/%{name}.jar
%{_javadir}/%{short_name}.jar
%{_mavenpomdir}/JPP-%{short_name}.pom
%{_mavendepmapfragdir}/%{name}
%files testframework
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-testframework.jar
%{_javadir}/%{short_name}-testframework.jar
%{_mavenpomdir}/JPP-%{short_name}-testframework.pom
%{_mavendepmapfragdir}/%{name}-testframework
%files javadoc
%defattr(0644,root,root,0755)
%doc LICENSE.txt NOTICE.txt
%{_javadocdir}/%{name}
%files testframework-javadoc
%defattr(0644,root,root,0755)
%doc LICENSE.txt NOTICE.txt
%{_javadocdir}/%{name}-testframework
%changelog