Sophie

Sophie

distrib > Mandriva > 2006.0 > x86_64 > by-pkgid > 44bc1dd86dea0f6270648f8425e41d7b > files > 9

bouncycastle-1.28-2mdk.src.rpm

%define name		bouncycastle
%define major		1
%define minor		28
%define version		%{major}.%{minor}
%define archivever	%{major}%{minor}
%define release		2mdk

%define section		free
%define gcj_support	1
%define with_jdk15	0
%define build_free	1

Summary:        Bouncy Castle Crypto Package for Java
Name:           %{name}
Version:        %{version}
Release:        %{release}
Epoch:          0
Group:          Development/Java
License:        BSD
URL:            http://www.bouncycastle.org/
BuildArch:      noarch
Source0:        ftp://ftp.bouncycastle.org/pub/release1.28/bcmail-jdk14-128.tar.bz2
Source1:        ftp://ftp.bouncycastle.org/pub/release1.28/bcmail-jdk15-128.tar.bz2
Source2:        ftp://ftp.bouncycastle.org/pub/release1.28/bcpg-jdk14-128.tar.bz2
Source3:        ftp://ftp.bouncycastle.org/pub/release1.28/bcpg-jdk15-128.tar.bz2
Source4:        ftp://ftp.bouncycastle.org/pub/release1.28/bcprov-jdk14-128.tar.bz2
Source5:        ftp://ftp.bouncycastle.org/pub/release1.28/bcprov-jdk15-128.tar.bz2
Source6:	ftp://ftp.bouncycastle.org/pub/release1.28/bctsp-jdk14-128.tar.bz2
Source7:	ftp://ftp.bouncycastle.org/pub/release1.28/bctsp-jdk14-128.tar.bz2
Source8:        ftp://ftp.bouncycastle.org/pub/release1.28/lcrypto-jdk14-128.tar.bz2
Source9:        ftp://ftp.bouncycastle.org/pub/release1.28/lcrypto-jdk15-128.tar.bz2
# FIXME: Just sign the jar
# We keep original 1.4 provider since java 1.4 wants it to be signed
# This sucks big time - should we add jar signing infrastructure to
# jpackage in || to rpm signing? Sun seems much less user-friendly than
# your average Linux distribution
%if !%{build_free}
Source100:	ftp://ftp.bouncycastle.org/pub/release1.28/bcprov-jdk14-128.jar
Source101:	ftp://ftp.bouncycastle.org/pub/release1.28/bcprov-jdk15-128.jar
%endif
Patch0:		%{name}-compile.patch.bz2
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
#Vendor:         JPackage Project
#Distribution:   JPackage
Requires:       %{name}-provider = %{epoch}:%{version}
Requires:       jpackage-utils >= 0:1.5
BuildRequires:	jaf
BuildRequires:	javamail
BuildRequires:  junit
%if %{with_jdk15}
BuildRequires:	java-devel >= 0:1.5.0
%endif
BuildRequires:	java-devel < 0:1.5.0
BuildRequires:	jpackage-utils >= 0:1.5

%description
The Bouncy Castle Crypto APIs consist of the following:
- A lightweight cryptography API in Java.
- A provider for the JCE and JCA.
- A clean room implementation of the JCE 1.2.1.
- Generators for Version 1 and Version 3 X.509 certificates and PKCS12 files.
- A signed jar version suitable for JDK 1.4 and the Sun JCE.

%package jdk1.4
Group:          Development/Java
Summary:        Bouncy Castle JCE APIs for Java 1.4.x
Requires:       %{name} = %{epoch}:%{version}
Requires:	jaf
Requires:	javamail
Requires:	java >= 0:1.4.0
Requires:	java < 0:1.5.0
%if %{gcj_support}
Requires(post,postun):	%{_bindir}/rebuild-security-providers
%endif
BuildRequires:	java-devel >= 0:1.4.0
BuildRequires:	java-devel < 0:1.5.0
Provides:	%{name}-provider = %{epoch}:%{version}
Provides:	jce

%description jdk1.4
Bouncy Castle JCE API's for Java 1.4.

%if %{with_jdk15}
%package jdk1.5
Group:          Development/Java
Summary:        Bouncy Castle JCE APIs for Java 1.5.x
Requires:       %{name} = %{epoch}:%{version}
Requires:	jaf
Requires:	javamail
Requires:	java >= 0:1.5.0
Requires:	java < 0:1.6.0
%if %{gcj_support}
Requires(post,postun):	%{_bindir}/rebuild-security-providers
%endif
BuildRequires:	java-devel >= 0:1.5.0
BuildRequires:	java < 0:1.6.0
Provides:	%{name}-provider = %{epoch}:%{version}
Provides:	jce

%description jdk1.5
Bouncy Castle JCE API's for Java 1.5.
%endif

%package javadoc-jdk1.4
Group:          Development/Java
Summary:        Java 1.4 javadoc for %{name}

%description javadoc-jdk1.4
Java 1.4 javadocs for %{name}.

%if %{with_jdk15}
%package javadoc-jdk1.5
Group:          Development/Java
Summary:        Java 1.5 javadoc for %{name}

%description javadoc-jdk1.5
Java 1.5 javadocs for %{name}.
%endif

%prep
%setup -q -c -D -T -a 0
%setup -q -D -T -a 1
%setup -q -D -T -a 2
%setup -q -D -T -a 3
%setup -q -D -T -a 4
%setup -q -D -T -a 5
%setup -q -D -T -a 6
%setup -q -D -T -a 7
%setup -q -D -T -a 8
%setup -q -D -T -a 9
%if %{build_free}
%patch0 -p1
%endif

# Remove provided binaries
find . -type f -name "*.class" -exec %__rm -f {} \;
find . -type f -name "*.jar" -exec %__rm -f {} \;
find . -type f -name "*.tar.bz2" -exec %__rm -f {} \;

%build
deps="jaf javamail/mailapi junit"
%if !%{build_free}
dirs14="bcprov-jdk14-%{archivever} bcmail-jdk14-%{archivever} bcpg-jdk14-%{archivever} bctsp-jdk14-%{archivever} lcrypto-jdk14-%{archivever}"
%else
dirs14="bcprov-jdk14-%{archivever} bcmail-jdk14-%{archivever} bcpg-jdk14-%{archivever} lcrypto-jdk14-%{archivever}"
%endif

# 1.4
unset JAVA_HOME
for javaver in 1.4.0 1.4.1 1.4.2; do
  [ -d "%{_jvmdir}/java-${javaver}" ] && \
  export JAVA_HOME=%{_jvmdir}/java-${javaver}
done
[ -z "$JAVA_HOME" ] && exit 1

javac=$JAVA_HOME/bin/javac
jar=$JAVA_HOME/bin/jar
javadoc=$JAVA_HOME/bin/javadoc

for i in $dirs14; do
  pushd $i/src
  export CLASSPATH=$(build-classpath $deps):\
$RPM_BUILD_DIR/%{name}-%{version}/bcprov-jdk14-%{archivever}/bcprov-jdk14-%{version}.jar:\
$RPM_BUILD_DIR/%{name}-%{version}/bcmail-jdk14-%{archivever}/bcmail-jdk14-%{version}.jar:\
.
  $javac `find . -type f -name "*.java"`
  jar2="../`basename $i -%{archivever}`-%{version}.jar"
  files="`find . -type f -name "*.class"`"
  test ! -d classes && mf="" || mf="`find classes/ -type f -name "*.mf" 2>/dev/null`"
  test -n "$mf" && $jar cfm $jar2 $mf $files || $jar cf $jar2 $files
  popd
done

# 1.5
%if %{with_jdk15}
%if !%{build_free}
dirs15="bcprov-jdk15-%{archivever} bcmail-jdk15-%{archivever} bcpg-jdk15-%{archivever} bctsp-jdk15-%{archivever} lcrypto-jdk15-%{archivever}"
%else
dirs15="bcprov-jdk15-%{archivever} bcmail-jdk15-%{archivever} bcpg-jdk15-%{archivever} lcrypto-jdk15-%{archivever}"
%endif
unset JAVA_HOME
for javaver in 1.5.0; do
  [ -d "%{_jvmdir}/java-${javaver}" ] && \
  export JAVA_HOME=%{_jvmdir}/java-${javaver}
done
[ -z "$JAVA_HOME" ] && exit 1

javac=$JAVA_HOME/bin/javac
jar=$JAVA_HOME/bin/jar
javadoc=$JAVA_HOME/bin/javadoc

for i in $dirs15; do
  pushd $i/src
  export CLASSPATH=$(build-classpath $deps):\
$RPM_BUILD_DIR/%{name}-%{version}/bcprov-jdk15-%{archivever}/bcprov-jdk15-%{version}.jar:\
$RPM_BUILD_DIR/%{name}-%{version}/bcmail-jdk15-%{archivever}/bcmail-jdk15-%{version}.jar:\
.
  $javac `find . -type f -name "*.java"`
  jar2="../`basename $i -%{archivever}`-%{version}.jar"
  files="`find . -type f -name "*.class"`"
  test ! -d classes && mf="" || mf="`find classes -type f -name "*.mf" 2>/dev/null`"
  test -n "$mf" && $jar cfm $jar2 $mf $files || $jar cf $jar2 $files
  popd
done
%endif

# 1.4 and 1.5 javadocs
dirs="$dirs14"
%if %{with_jdk15}
dirs="$dirs $dirs15"
%endif
for i in $dirs; do
  pushd $i
  for j in *.html; do
    %__mv -f $j $i-$j
  done

  %__mv -f *.html ../

  pushd src
  $javadoc -d ../docs `find . -type f -name "*.java"`
  popd
  popd
done

%install
%__rm -rf %{buildroot}

# jars
jars=`find . -type f -name "*.jar"`

for i in $jars; do
  %__mv -f $i .
done

# Replace built 1.4 and 1.5 providers with original one
%if !%{build_free}
%__rm -f bcprov-jdk14-%{version}.jar
%__cp -a %{SOURCE100} bcprov-jdk14-%{version}.jar
%if %{with_jdk15}
%__rm -f bcprov-jdk15-%{version}.jar
%__cp -a %{SOURCE101} bcprov-jdk15-%{version}.jar
%endif
%endif

# Java 1.4
%__mkdir_p %{buildroot}%{_javadir}-{ext/%{name}-jdk1.4,1.4.0,1.4.1,1.4.2}

for jar14 in *-jdk14-%{version}.jar; do
   jar=$(echo $jar14 | %__sed s+-jdk14++g)
   %__install -m 644 $jar14 %{buildroot}%{_javadir}-ext/%{name}-jdk1.4/$jar
done

pushd %{buildroot}%{_javadir}-ext/%{name}-jdk1.4
   for jar in *-%{version}.jar; do
      %__ln_s $jar $(echo $jar | %__sed s+-%{version}\.jar+.jar+g)
   done
popd

for javaver in 1.4.0 1.4.1 1.4.2; do
   # FIXME: This should be relative
   (cd %{buildroot}%{_javadir}-${javaver} && %__ln_s %{_javadir}-ext/%{name}-jdk1.4 %{name})
done

# Java 1.5
%if %{with_jdk15}
%__mkdir_p %{buildroot}%{_javadir}-{ext/%{name}-jdk1.5,1.5.0}

for jar15 in *-jdk15-%{version}.jar; do
   jar=$(echo $jar15 | %__sed s+-jdk15++g)
   %__install -m 644 $jar15 %{buildroot}%{_javadir}-ext/%{name}-jdk1.5/$jar
done

pushd %{buildroot}%{_javadir}-ext/%{name}-jdk1.5
  for jar in *-%{version}.jar; do
    %__ln_s $jar $(echo $jar | %__sed s+-%{version}\.jar+.jar+g)
  done
popd

for javaver in 1.5.0; do
  # FIXME: This should be relative
  (cd %{buildroot}%{_javadir}-${javaver} && %__ln_s %{_javadir}-ext/%{name}-jdk1.5 %{name})
done
%endif

%if %{gcj_support}
%{__mkdir_p} %{buildroot}%{_javadir}/gcj-endorsed
%{__ln_s} %{_javadir}-ext/%{name}-jdk1.4/bcprov-%{version}.jar \
  %{buildroot}%{_javadir}/gcj-endorsed/bcprov-jdk14-%{version}.jar
%if %{with_jdk15}
%{__ln_s} %{_javadir}-ext/%{name}-jdk1.5/bcprov-%{version}.jar \
  %{buildroot}%{_javadir}/gcj-endorsed/bcprov-jdk15-%{version}.jar
%endif
%endif

# javadoc
%__mkdir_p %{buildroot}%{_javadocdir}/%{name}-jdk14-%{version}
(cd %{buildroot}%{_javadocdir} && %__ln_s %{name}-jdk14-%{version} %{name}-jdk14)
%if %{with_jdk15}
%__mkdir_p %{buildroot}%{_javadocdir}/%{name}-jdk15-%{version}
(cd %{buildroot}%{_javadocdir} && %__ln_s %{name}-jdk15-%{version} %{name}-jdk15)
%endif

vers="14"
%if %{with_jdk15}
vers="$vers 15"
%endif
for javaver in $vers; do
  for javadoc in $(find . -type d -name docs | grep jdk${javaver}); do
    dest=$(echo $javadoc | %__sed s+-jdk${javaver}-%{version}++g | %__sed s+/docs++g)
    dest=$(echo $dest | %__sed 's+-%{archivever}++')
    %__cp -a $javadoc %{buildroot}%{_javadocdir}/%{name}-jdk${javaver}-%{version}/$dest
  done
done

find . -type d -name docs | xargs %__rm -rf

%if %{gcj_support}
%{__mkdir_p} %{buildroot}%{_sysconfdir}/java/security/security.d
touch  %{buildroot}%{_sysconfdir}/java/security/security.d/0500-org.bouncycastle.jce.provider.BouncyCastleProvider
%endif

%clean
%__rm -rf %{buildroot}

%if %{gcj_support}
%post
%{_bindir}/rebuild-security-providers

%postun
%{_bindir}/rebuild-security-providers
%endif

%post javadoc-jdk1.4
%__rm -f %{_javadocdir}/%{name}-jdk14
%__ln_s %{name}-jdk14-%{version} %{_javadocdir}/%{name}-jdk14

%postun javadoc-jdk1.4
if [ $1 -eq 0 ]; then
  %__rm -f %{_javadocdir}/%{name}-jdk1.4
fi

%if %{with_jdk15}
%post javadoc-jdk1.5
%__rm -f %{_javadocdir}/%{name}-jdk15
%__ln_s %{name}-jdk15-%{version} %{_javadocdir}/%{name}-jdk15

%postun javadoc-jdk1.5
if [ $1 -eq 0 ]; then
  %__rm -f %{_javadocdir}/%{name}-jdk15
fi
%endif

%files
%defattr(0644,root,root,0755)
%doc *.html
%if %{gcj_support}
%config(noreplace) %{_sysconfdir}/java/security/security.d/0500-org.bouncycastle.jce.provider.BouncyCastleProvider
%endif

%files jdk1.4
%defattr(0644,root,root,0755)
%dir %{_javadir}-ext/%{name}-jdk1.4
%{_javadir}-ext/%{name}-jdk1.4/*.jar
%{_javadir}-1.4.0/%{name}
%{_javadir}-1.4.1/%{name}
%{_javadir}-1.4.2/%{name}
%if %{gcj_support}
%{_javadir}/gcj-endorsed/bcprov-jdk14-%{version}.jar
%endif

%if %{with_jdk15}
%files jdk1.5
%defattr(0644,root,root,0755)
%dir %{_javadir}-ext/%{name}-jdk1.5
%{_javadir}-ext/%{name}-jdk1.5/*.jar
%{_javadir}-1.5.0/%{name}
%if %{gcj_support}
%{_javadir}/gcj-endorsed/bcprov-jdk15-%{version}.jar
%endif
%endif

%files javadoc-jdk1.4
%defattr(0644,root,root,0755)
%dir %{_javadocdir}/%{name}-jdk14-%{version}
%{_javadocdir}/%{name}-jdk14-%{version}/*
%ghost %{_javadocdir}/%{name}-jdk14

%if %{with_jdk15}
%files javadoc-jdk1.5
%defattr(0644,root,root,0755)
%dir %{_javadocdir}/%{name}-jdk15-%{version}
%{_javadocdir}/%{name}-jdk15-%{version}/*
%ghost %{_javadocdir}/%{name}-jdk15
%endif

%changelog
* Mon May 30 2005 David Walluck <walluck@mandriva.org> 0:1.28-2mdk
- fix provider installation under gcj

* Sun May 29 2005 David Walluck <walluck@mandriva.org> 0:1.28-1mdk
- 1.28
- make jdk 1.5 support optional
- add support for gcj

* Mon Feb 21 2005 David Walluck <david@jpackage.org> 0:1.27-1jpp
- 1.27
- "fix" requires-on-release
- change license to BSD (style)
- fix duplicate requires

* Thu Jan 20 2005 David Walluck <david@jpackage.org> 0:1.26-1jpp
- 1.26

* Sat Oct 09 2004 David Walluck <david@jpackage.org> 0:1.25-1jpp
- 1.25
- jdk 1.3.x support out, jdk 1.5.0 support in

* Sun Feb 08 2004 David Walluck <david@anti-microsoft.org> 0:1.25-1jpp
- 1.25
- fix javadocs and javadoc dirs
- clean up BuildRequires/Requires
- CLASSPATH doesn't need jce

* Tue Jan 20 2004 David Walluck <david@anti-microsoft.org> 0:1.21-1jpp
- 1.21

* Fri Oct 10 2003 David Walluck <david@anti-microsoft.org> 0:1.20-2jpp
- fix javadoc symlinks

* Fri Oct 10 2003 David Walluck <david@anti-microsoft.org> 0:1.20-1jpp
- 1.20
- add epochs
- %%ghost symlinks
- maybe bouncycastle should consider using ant so that it
  doesn't take over three hours to script the build process
- oh, and maybe a single source archive, thanks

* Sun Sep 09 2003 David Walluck <david@anti-microsoft.org> 0:1.19-2jpp 
- build bcmail.jar for jdk1.4 package
- add Epoch
- Requires: jpackage-utils >= 0:1.5

* Fri Jun 27 2003 Nicolas Mailhot <Nicolas.Mailhot at laPoste.net> 1.19-1jpp
- First jpackage 1.5 release
- use upstream 1.4 binary due to Sun braindamage

* Sun Sep  8 2002 Ville Skyttä <ville.skytta at iki.fi> 1.15-1jpp
- First JPackage release.