Name: cryptopp
Version: 5.5.2
Release: 3%{?dist}
Summary: Public domain C++ class library of cryptographic schemes
License: Public Domain
Group: System Environment/Libraries
URL: http://www.cryptopp.com/
Source0: http://www.cryptopp.com/cryptopp552.zip
# Used to purge the source from patented code, see http://www.cryptopp.com/License.txt
Source10: cryptopp-remove-patented-code.sh
Patch0: cryptopp-5.5.2-autotools.patch
Patch1: cryptopp-5.5.2-gcc4.3.patch
# Don't try to build the patented code
Patch2: cryptopp-5.5.2-nomars.patch
BuildRequires: doxygen, autoconf, libtool
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
Crypto++ Library is a free C++ class library of cryptographic schemes.
See http://www.cryptopp.com/ for a list of supported algorithms.
One purpose of Crypto++ is to act as a repository of public domain
(not copyrighted) source code. Although the library is copyrighted as a
compilation, the individual files in it (except for a few exceptions listed
in the license) are in the public domain.
The MARS implementation may be subjected to patents, therefore it has been
removed from this package.
%package devel
Summary: Header files and development documentation for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description devel
Crypto++ Library is a free C++ class library of cryptographic schemes.
This package contains the header files and development documentation
for %{name}.
%package doc
Summary: Documentation for %{name}
Group: Documentation
%description doc
Crypto++ Library is a free C++ class library of cryptographic schemes.
This package contains documentation for %{name}.
%package progs
Summary: Programs for manipulating %{name} routines
Group: Development/Tools
%description progs
Crypto++ Library is a free C++ class library of cryptographic schemes.
This package contains programs for manipulating %{name} routines.
%prep
%setup -q -c
%patch2 -p1 -b .nomars
rm -f GNUmakefile
%patch0 -p1
%patch1 -p1 -b .gcc4.3
autoreconf --verbose --force --install
perl -pi -e 's/\r$//g' License.txt Readme.txt
%build
%configure --disable-static
%ifnarch x86_64
# Does not build with PIC by default on x86, see
# http://groups.google.com/group/cryptopp-users/browse_thread/thread/d639907b0b1816b9
sed -i -e '1 i #define CRYPTOPP_DISABLE_SSE2' config.h
%endif
make %{?_smp_mflags}
doxygen
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p -c "
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%check
mkdir -p tmp
cp -a *.dat TestVectors/* tmp
(cd tmp && ../cryptest v > cryptest.log 2>&1 && \
test ! -z "`grep -q '^FAILED' cryptest.log`" || exit 1)
rm -r tmp
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(0644,root,root,0755)
%doc License.txt Readme.txt
%defattr(-,root,root,0755)
%{_libdir}/*.so.*
%files devel
%defattr(0644,root,root,0755)
%{_includedir}/cryptopp
%defattr(-,root,root,0755)
%{_libdir}/*.so
%files doc
%defattr(0644,root,root,0755)
%doc doc/html/*
%files progs
%defattr(0644,root,root,0755)
%attr(0755,root,root) %{_bindir}/cryptest
%{_datadir}/cryptopp
%changelog
* Tue Sep 30 2008 Aurelien Bompard <abompard@fedoraproject.org> 5.5.2-3
- purge source archive from patented code
- use SSE2 on x86_64
- preserve timestamps on install
* Mon Sep 22 2008 Aurelien Bompard <abompard@fedoraproject.org> 5.5.2-2
- rediff gcc 4.3 patch
* Wed Aug 27 2008 Aurelien Bompard <abompard@fedoraproject.org> 5.5.2-1
- adapt to fedora, from Mandriva