File apache-commons-httpclient.spec of Package apache-commons-httpclient.16971

# spec file for package apache-commons-httpclient
# Copyright (c) 2020 SUSE LLC
# 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

%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
Source0:        commons-httpclient-%{version}-src.tar.gz
Patch0:         %{name}-disablecryptotests.patch
Patch1:         %{name}-addosgimanifest.patch
Patch2:         %{name}-encoding.patch
Patch3:         commons-httpclient-CVE-2012-5783-2.patch
#PATCH-FIX-UPSTREAM bsc#1178171 CVE-2014-3577 MITM security vulnerability
Patch4:         apache-commons-httpclient-CVE-2014-3577.patch
#PATCH-FIX-UPSTREAM bsc#945190 CVE-2015-5262 Missing HTTPS connection timeout
Patch5:         apache-commons-httpclient-CVE-2015-5262.patch
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

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

Although the  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
PreReq:         coreutils
Summary:        Developer documentation for apache-commons-httpclient
Group:          Development/Libraries/Java

%description    javadoc
Developer documentation for apache-commons-httpclient in JavaDoc


%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.


%package        manual
Summary:        Manual for apache-commons-httpclient
Group:          Development/Libraries/Java

%description    manual
Manual for apache-commons-httpclient


%setup -q -n commons-httpclient-%{version}
mkdir lib # duh
rm -rf docs/apidocs docs/*.patch docs/*.orig docs/*.rej


pushd src/conf
%{__sed} -i 's/\r//' MANIFEST.MF

%patch3 -p1
%patch4 -p1
%patch5 -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||' $j > tempf
        cp tempf $j
    rm tempf

%{__sed} -i 's/\r//' RELEASE_NOTES.txt
%{__sed} -i 's/\r//' README.txt
%{__sed} -i 's/\r//' LICENSE.txt

ant \
  -Dbuild.sysclasspath=first \{_javadocdir}/java \{_javadocdir}/apache-commons-logging \
  -Dtest.failonerror=false \
  -Dlib.dir=%{_javadir} \
  -Djavac.encoding=UTF-8 \
  dist test

# jars
mkdir -p $RPM_BUILD_ROOT%{_javadir}
cp -p dist/commons-httpclient.jar \
# compat symlink
pushd $RPM_BUILD_ROOT%{_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

# javadoc
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}
mv dist/docs/api $RPM_BUILD_ROOT%{_javadocdir}/%{name}

# demo
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}
cp -pr src/examples src/contrib $RPM_BUILD_ROOT%{_datadir}/%{name}

# manual and docs
rm -f dist/docs/{BUILDING,TESTING}.txt
ln -s %{_javadocdir}/%{name} dist/docs/apidocs


%license LICENSE.txt

%files javadoc
%doc %{_javadocdir}/%{name}

%files demo

%files manual
%doc dist/docs/*

openSUSE Build Service is sponsored by