apache-commons-httpclient/apache-commons-httpclient.spec

186 lines
5.8 KiB
RPMSpec

#
# spec file for package apache-commons-httpclient
#
# 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/
#
%define short_name commons-httpclient
Name: apache-commons-httpclient
Version: 3.1
Release: 0
Summary: Feature rich package for accessing resources via HTTP
License: Apache-2.0
Group: Development/Libraries/Java
Url: http://hc.apache.org/httpclient-3.x/
Source0: http://www.apache.org/dist/httpcomponents/commons-httpclient/source/commons-httpclient-%{version}-src.tar.gz
Patch0: %{name}-disablecryptotests.patch
# Add OSGi MANIFEST.MF bits
Patch1: %{name}-addosgimanifest.patch
Patch2: %{name}-encoding.patch
#PATCH-FIX-UPSTREAM: bnc#803332
#https://issues.apache.org/jira/secure/attachment/12560251/CVE-2012-5783-2.patch
Patch3: commons-httpclient-CVE-2012-5783-2.patch
BuildRequires: ant
BuildRequires: ant-junit
BuildRequires: commons-codec
BuildRequires: commons-logging >= 1.0.3
BuildRequires: java-devel >= 1.6.0
BuildRequires: junit
Requires: commons-codec
Requires: commons-logging >= 1.0.3
Provides: %{short_name} = %{version}
Provides: jakarta-%{short_name} = %{version}
Obsoletes: jakarta-%{short_name} <= 3.1
Provides: jakarta-%{short_name}3 = %{version}
Obsoletes: jakarta-%{short_name}3 <= 3.1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
Although the java.net package provides basic functionality for
accessing resources via HTTP, it doesn't provide the full flexibility
or functionality needed by many applications. The Apache Commons
HttpClient component seeks to fill this void by providing an efficient,
up-to-date, and feature-rich package implementing the client side of
the most recent HTTP standards and recommendations.
Designed for extension while providing robust support for the base HTTP
protocol, the HttpClient component may be of interest to anyone
building HTTP-aware client applications such as web browsers, web
service clients, or systems that leverage or extend the HTTP protocol
for distributed communication.
%package javadoc
Summary: Developer documentation for apache-commons-httpclient
Group: Development/Libraries/Java
%description javadoc
Developer documentation for apache-commons-httpclient in JavaDoc
format.
%{summary}.
%package demo
Summary: Demonstration files for apache-commons-httpclient
Group: Development/Libraries/Java
Requires: %{name} = %{version}
%description demo
Demonstration files for apache-commons-httpclient. NOTE: It is
possible that some demonstration files are specially prepared for SUN
Java runtime environment. If they fail with IBM or BEA Java, the
package itself does not need to be broken.
%{summary}.
%package manual
Summary: Manual for apache-commons-httpclient
Group: Development/Libraries/Java
%description manual
Manual for apache-commons-httpclient
%{summary}.
%prep
%setup -q -n commons-httpclient-%{version}
mkdir lib # duh
rm -rf docs/apidocs docs/*.patch docs/*.orig docs/*.rej
%patch0
pushd src/conf
sed -i 's/\r//' MANIFEST.MF
%patch1
popd
%patch2
%patch3 -p1
# Use javax classes, not com.sun ones
# assume no filename contains spaces
pushd src
for j in $(find . -name "*.java" -exec grep -l 'com\.sun\.net\.ssl' {} \;); do
sed -e 's|com\.sun\.net\.ssl|javax.net.ssl|' $j > tempf
cp tempf $j
done
rm tempf
popd
sed -i 's/\r//' RELEASE_NOTES.txt
sed -i 's/\r//' README.txt
sed -i 's/\r//' LICENSE.txt
%build
ant \
-Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 \
-Dbuild.sysclasspath=first \
-Djavadoc.j2sdk.link=%{_javadocdir}/java \
-Djavadoc.logging.link=%{_javadocdir}/apache-commons-logging \
-Dtest.failonerror=false \
-Dlib.dir=%{_javadir} \
-Djavac.encoding=UTF-8 \
dist test
%install
# jars
mkdir -p %{buildroot}%{_javadir}
cp -p dist/commons-httpclient.jar \
%{buildroot}%{_javadir}/%{name}.jar
# compat symlink
pushd %{buildroot}%{_javadir}
ln -s apache-commons-httpclient.jar apache-commons-httpclient3.jar
ln -s apache-commons-httpclient.jar commons-httpclient3.jar
ln -s apache-commons-httpclient.jar commons-httpclient.jar
ln -s apache-commons-httpclient.jar jakarta-commons-httpclient.jar
ln -s apache-commons-httpclient.jar jakarta-commons-httpclient3.jar
popd
# javadoc
mkdir -p %{buildroot}%{_javadocdir}
mv dist/docs/api %{buildroot}%{_javadocdir}/%{name}
# demo
mkdir -p %{buildroot}%{_datadir}/%{name}
cp -pr src/examples src/contrib %{buildroot}%{_datadir}/%{name}
# manual and docs
rm -f dist/docs/{BUILDING,TESTING}.txt
ln -s %{_javadocdir}/%{name} dist/docs/apidocs
%files
%defattr(0644,root,root,0755)
%doc LICENSE.txt README.txt RELEASE_NOTES.txt
%{_javadir}/%{name}.jar
%{_javadir}/apache-commons-httpclient3.jar
%{_javadir}/commons-httpclient3.jar
%{_javadir}/commons-httpclient.jar
%{_javadir}/jakarta-commons-httpclient3.jar
%{_javadir}/jakarta-commons-httpclient.jar
%files javadoc
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}
%files demo
%defattr(0644,root,root,0755)
%{_datadir}/%{name}
%files manual
%defattr(0644,root,root,0755)
%doc dist/docs/*
%changelog