420 lines
13 KiB
RPMSpec
420 lines
13 KiB
RPMSpec
%global major_version 1.10
|
|
|
|
%if 0%{?fedora}
|
|
%global with_python3 1
|
|
%endif
|
|
|
|
Name: botan
|
|
Version: %{major_version}.14
|
|
Release: 3%{?dist}
|
|
Summary: Crypto library written in C++
|
|
|
|
Group: System Environment/Libraries
|
|
License: BSD
|
|
URL: http://botan.randombit.net/
|
|
# tarfile is stripped using repack.sh. original tarfile to be found
|
|
# here: http://botan.randombit.net/releases/Botan-%%{version}.tgz
|
|
Source0: Botan-%{version}.stripped.tar.gz
|
|
Source1: README.fedora
|
|
Patch0: botan-aarch64.patch
|
|
Patch1: botan-1.10-add-ppc64le.patch
|
|
# Enable only cleared ECC algorithms
|
|
Patch2: botan-1.10.5-ecc-fix.patch
|
|
# Make boost_python selectable
|
|
Patch3: botan-boost_python.patch
|
|
# Fix wrong path
|
|
Patch4: botan-1.10.13-python-init.patch
|
|
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: python2
|
|
BuildRequires: python2-devel
|
|
BuildRequires: boost-python-devel
|
|
%if 0%{?with_python3}
|
|
BuildRequires: python3
|
|
BuildRequires: python3-devel
|
|
BuildRequires: boost-python3-devel
|
|
%endif # with_python3
|
|
|
|
BuildRequires: python-sphinx
|
|
BuildRequires: bzip2-devel
|
|
BuildRequires: zlib-devel
|
|
%if 0%{?fedora} >=26
|
|
BuildRequires: compat-openssl10-devel
|
|
%else
|
|
BuildRequires: openssl-devel
|
|
%endif
|
|
|
|
# do not check .so files in the python_sitelib directories
|
|
%global __provides_exclude_from ^(%{python2_sitearch}/.*\\.so)$
|
|
%if 0%{?with_python3}
|
|
%global __provides_exclude_from ^(%{python3_sitearch}/.*\\.so)$
|
|
%endif # with_python3
|
|
|
|
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
|
|
|
|
%description
|
|
Botan is a BSD-licensed crypto library written in C++. It provides a
|
|
wide variety of basic cryptographic algorithms, X.509 certificates and
|
|
CRLs, PKCS \#10 certificate requests, a filter/pipe message processing
|
|
system, and a wide variety of other features, all written in portable
|
|
C++. The API reference, tutorial, and examples may help impart the
|
|
flavor of the library.
|
|
|
|
|
|
%package devel
|
|
Summary: Development files for %{name}
|
|
Group: Development/Libraries
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Requires: pkgconfig
|
|
Requires: bzip2-devel
|
|
Requires: zlib-devel
|
|
%if 0%{?fedora} >=26
|
|
Requires: compat-openssl10-devel
|
|
%else
|
|
Requires: openssl-devel
|
|
%endif
|
|
|
|
%description devel
|
|
The %{name}-devel package contains libraries and header files for
|
|
developing applications that use %{name}.
|
|
|
|
|
|
%package doc
|
|
Summary: Documentation for %{name}
|
|
Group: Documentation
|
|
BuildArch: noarch
|
|
|
|
%description doc
|
|
%{summary}
|
|
|
|
This package contains HTML documentation for %{name}.
|
|
|
|
|
|
%package -n python2-%{name}
|
|
Summary: Python2 bindings for %{name}
|
|
Group: System Environment/Libraries
|
|
%{?python_provide:%python_provide python2-%{name}}
|
|
# the python2 package was named botan-python up to 1.10.13-1
|
|
Provides: %{name}-python = %{version}-%{release}
|
|
Obsoletes: %{name}-python < 1.10.13-2
|
|
|
|
%description -n python2-%{name}
|
|
%{summary}
|
|
|
|
This package contains the Python2 binding for %{name}.
|
|
|
|
Note: The Python binding should be considered alpha software, and the
|
|
interfaces may change in the future.
|
|
|
|
%if 0%{?with_python3}
|
|
%package -n python3-%{name}
|
|
Summary: Python3 bindings for %{name}
|
|
Group: System Environment/Libraries
|
|
%{?python_provide:%python_provide python3-%{name}}
|
|
|
|
%description -n python3-%{name}
|
|
%{summary}
|
|
|
|
This package contains the Python3 binding for %{name}.
|
|
|
|
Note: The Python binding should be considered alpha software, and the
|
|
interfaces may change in the future.
|
|
%endif # with_python3
|
|
|
|
|
|
%prep
|
|
%setup -q -n Botan-%{version}
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
%patch2 -p1 -b .eccfix
|
|
%patch3 -p1
|
|
%patch4 -p1
|
|
|
|
# These tests will fail.
|
|
rm -rf checks/ec_tests.cpp
|
|
|
|
|
|
%build
|
|
# we have the necessary prerequisites, so enable optional modules
|
|
%global enable_modules bzip2,zlib,openssl
|
|
|
|
# fixme: maybe disable unix_procs, very slow.
|
|
%global disable_modules gnump
|
|
|
|
./configure.py \
|
|
--prefix=%{_prefix} \
|
|
--libdir=%{_lib} \
|
|
--cc=gcc \
|
|
--os=linux \
|
|
--cpu=%{_arch} \
|
|
--enable-modules=%{enable_modules} \
|
|
--disable-modules=%{disable_modules} \
|
|
--with-boost-python \
|
|
--with-python-version=dummy.dummy \
|
|
--with-sphinx
|
|
|
|
%if 0%{?with_python3}
|
|
cp -a build/python{,3}
|
|
%endif # with_python3
|
|
|
|
# (ab)using CXX as an easy way to inject our CXXFLAGS
|
|
make CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags}
|
|
|
|
make -f Makefile.python \
|
|
CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags} \
|
|
PYTHON_INC="$(python2-config --includes)" \
|
|
PYTHON_ROOT=.
|
|
|
|
%if 0%{?with_python3}
|
|
mv build/python{,2} ; mv build/python{3,}
|
|
make -f Makefile.python \
|
|
CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags} \
|
|
PYTHON_INC="$(python3-config --includes)" \
|
|
PYTHON_ROOT=. \
|
|
BOOST_PYTHON=boost_python3
|
|
mv build/python{,3} ; mv build/python{2,}
|
|
%endif # with_python3
|
|
|
|
%install
|
|
make install \
|
|
DESTDIR=%{buildroot}%{_prefix} \
|
|
DOCDIR=%{buildroot}%{_pkgdocdir} \
|
|
INSTALL_CMD_EXEC="install -p -m 755" \
|
|
INSTALL_CMD_DATA="install -p -m 644"
|
|
|
|
make -f Makefile.python install \
|
|
PYTHON_SITE_PACKAGE_DIR=%{buildroot}%{python2_sitearch}
|
|
|
|
%if 0%{?with_python3}
|
|
mv build/python{,2} ; mv build/python{3,}
|
|
make -f Makefile.python install \
|
|
PYTHON_SITE_PACKAGE_DIR=%{buildroot}%{python3_sitearch}
|
|
mv build/python{,3} ; mv build/python{2,}
|
|
%endif # with_python3
|
|
|
|
# fixups
|
|
find doc/examples -type f -exec chmod -x {} \;
|
|
mv doc/examples/python doc/python2-examples
|
|
cp -a doc/{examples,python2-examples,license.txt} \
|
|
%{buildroot}%{_pkgdocdir}
|
|
cp -a %{SOURCE1} %{buildroot}%{_pkgdocdir}
|
|
rm -r %{buildroot}%{_pkgdocdir}/manual/{.doctrees,.buildinfo}
|
|
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
|
|
%files
|
|
%dir %{_pkgdocdir}
|
|
%{_pkgdocdir}/readme.txt
|
|
%{_pkgdocdir}/README.fedora
|
|
%if 0%{?_licensedir:1}
|
|
%exclude %{_pkgdocdir}/license.txt
|
|
%license doc/license.txt
|
|
%else
|
|
%{_pkgdocdir}/license.txt
|
|
%endif # licensedir
|
|
%{_libdir}/libbotan-%{major_version}.so.*
|
|
|
|
|
|
%files devel
|
|
%{_pkgdocdir}/examples
|
|
%{_bindir}/botan-config-%{major_version}
|
|
%{_includedir}/*
|
|
%exclude %{_libdir}/libbotan-%{major_version}.a
|
|
%{_libdir}/libbotan-%{major_version}.so
|
|
%{_libdir}/pkgconfig/botan-%{major_version}.pc
|
|
|
|
|
|
%files doc
|
|
%dir %{_pkgdocdir}
|
|
%{_pkgdocdir}/manual
|
|
# next files duplicated on purpose, because -doc doesn't depend on the
|
|
# main package
|
|
%{_pkgdocdir}/readme.txt
|
|
%{_pkgdocdir}/README.fedora
|
|
%if 0%{?_licensedir:1}
|
|
%exclude %{_pkgdocdir}/license.txt
|
|
%license doc/license.txt
|
|
%else
|
|
%{_pkgdocdir}/license.txt
|
|
%endif # licensedir
|
|
%{_pkgdocdir}/python2-examples
|
|
|
|
|
|
%files -n python2-%{name}
|
|
%{python2_sitearch}/%{name}
|
|
|
|
|
|
%if 0%{?with_python3}
|
|
%files -n python3-%{name}
|
|
%{python3_sitearch}/%{name}
|
|
%endif # with_python3
|
|
|
|
|
|
%check
|
|
make CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags} check
|
|
|
|
# these checks would fail
|
|
mv checks/validate.dat{,.orig}
|
|
awk '/\[.*\]/{f=0} /\[(RC5.*|RC6)\]/{f=1} (f && !/^#/){sub(/^/,"#")} {print}' \
|
|
checks/validate.dat.orig > checks/validate.dat
|
|
LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./check --validate
|
|
|
|
|
|
%changelog
|
|
* Sat Dec 10 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.14-3
|
|
- Add -std=c++11 to the compilerflags (needed on EPEL7).
|
|
|
|
* Fri Dec 9 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.14-2
|
|
- Update to 1.10.14.
|
|
- Depend on OpenSSL 1.0 compat package for F26+.
|
|
|
|
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.10.13-4
|
|
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
|
|
|
* Sun Jul 3 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.13-3
|
|
- Fix typo.
|
|
|
|
* Sun Jul 3 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.13-2
|
|
- Provide python2- and python3- subpackages (rhbz#1313786).
|
|
- Move python examples to -doc subpackage.
|
|
|
|
* Fri Apr 29 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.13-1
|
|
- Update to 1.10.13.
|
|
|
|
* Mon Feb 8 2016 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.12-1
|
|
- Update to 1.10.12.
|
|
- Mark license.txt with %%license.
|
|
- Change %%define -> %%global.
|
|
|
|
* Thu Feb 26 2015 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.9-4
|
|
- Update to 1.10.9, based on the current rawhide spec file, also
|
|
containing these changes:
|
|
- Re-enable cleared ECC (spot@fedoraproject.org)
|
|
- Disable gmp engine (rhbz#1116406)
|
|
- Use _pkgdocdir
|
|
|
|
* Wed Jun 4 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.10.8-5
|
|
- Update to 1.10.8, based on the current rawhide spec file, also
|
|
containing these changes:
|
|
- Added ppc64le arch support (Brent Baude <baude@us.ibm.com>)
|
|
- Added AArch64 arch support (Marcin Juszkiewicz
|
|
<mjuszkiewicz@redhat.com>, Peter Robinson <pbrobinson@gmail.com>)
|
|
- Re-enable IDEA (rhbz#1003052) and SRP-6
|
|
- Modernize spec file
|
|
- New-doc subpackage containing HTML documentation
|
|
- Package Python binding
|
|
|
|
* Sat May 10 2014 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.14-3
|
|
- Add patch to fix prime testing.
|
|
|
|
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.14-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
|
|
|
* Sat Aug 25 2012 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.14-1
|
|
- Update to 1.8.14.
|
|
|
|
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.13-5.2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
|
|
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.13-4.2
|
|
- Rebuilt for c++ ABI breakage
|
|
|
|
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.13-3.2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
|
|
|
* Thu Oct 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 1.8.13-2.2
|
|
- rebuild with new gmp without compat lib
|
|
|
|
* Mon Oct 10 2011 Peter Schiffer <pschiffe@redhat.com> - 1.8.13-2.1
|
|
- rebuild with new gmp
|
|
|
|
* Thu Jul 21 2011 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.13-2
|
|
- Patch to revert the soname change.
|
|
|
|
* Wed Jul 20 2011 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.13-1
|
|
- Update to 1.8.13.
|
|
|
|
* Sat Jul 2 2011 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.12-1
|
|
- Update to 1.8.12.
|
|
|
|
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.11-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
|
|
|
* Sat Nov 6 2010 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.11-1
|
|
- Update to 1.8.11.
|
|
|
|
* Sat Sep 4 2010 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.10-1
|
|
- Update to 1.8.10.
|
|
|
|
* Sun Aug 29 2010 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.9-4
|
|
- Update README.fedora.
|
|
|
|
* Fri Aug 27 2010 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.9-3
|
|
- Also remove RC5 from the tarfile.
|
|
- Comment out RC5, RC6 and IDEA validation tests.
|
|
|
|
* Wed Aug 4 2010 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.9-2
|
|
- Remove IDEA, RC6, and ECC-related modules from the tarfile,
|
|
see bz 615372.
|
|
|
|
* Wed Jun 16 2010 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.9-1
|
|
- Update to 1.8.9.
|
|
- Drop patch applied upstream.
|
|
|
|
* Thu Nov 19 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.8-2
|
|
- Add patch from upstream to build with binutils-2.20.51.0.2.
|
|
Fixes bz 538949 (ftbfs).
|
|
|
|
* Thu Nov 5 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.8-1
|
|
- Update to 1.8.8, a bugfix release.
|
|
|
|
* Thu Sep 10 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.7-1
|
|
- Update to 1.8.7. This is mainly a bugfix release.
|
|
|
|
* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 1.8.6-2
|
|
- rebuilt with new openssl
|
|
|
|
* Thu Aug 13 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.6-1
|
|
- Update to 1.8.6, which contains new features as well as bugfixes,
|
|
e.g. concerning the /proc-walking entropy source.
|
|
|
|
* Wed Aug 12 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.5-2
|
|
- Fix changelog.
|
|
|
|
* Wed Aug 12 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.5-1
|
|
- Update to 1.8.5.
|
|
- Use .tbz source file.
|
|
- Configuration script uses python now.
|
|
|
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.2-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
|
|
|
* Sat Apr 25 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.2-1
|
|
- Update to 1.8.2.
|
|
|
|
* Mon Mar 16 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.1-4
|
|
- Add missing requirements to -devel package.
|
|
|
|
* Fri Feb 27 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.1-3
|
|
- Rebuilt again after failed attempt in mass rebuild.
|
|
|
|
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.1-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
|
|
|
* Wed Jan 21 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.1-1
|
|
- Update to 1.8.1. This is a bugfix release, see
|
|
http://botan.randombit.net/news/releases/1_8_1.html for changes.
|
|
- No need to explicitly enable modules that will be enabled by
|
|
configure.pl anyway.
|
|
|
|
* Mon Jan 19 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.0-2
|
|
- Move api* and tutorial* doc files to -devel package.
|
|
|
|
* Sat Jan 17 2009 Thomas Moschny <thomas.moschny@gmx.de> - 1.8.0-1
|
|
- New package.
|