1 # TODO: fix sphinx docs build (sphinx-build hangs?)
4 %bcond_without tests # unit tests
5 %bcond_with apidocs # Sphinx based HTML documentation [hangs, FIXME]
6 %bcond_without static_libs # static library
7 %bcond_without python # Python bindings
8 %bcond_without python2 # CPython 2.x binding
9 %bcond_without python3 # CPython 3.x binding
12 %undefine with_python2
13 %undefine with_python3
15 Summary: Crypto library written in C++
16 Summary(pl.UTF-8): Biblioteka kryptograficzna napisana w C++
22 Source0: https://botan.randombit.net/releases/Botan-%{version}.tgz
23 # Source0-md5: c819fce944ee688e01b07bb6332d9586
24 URL: https://botan.randombit.net/
25 BuildRequires: bzip2-devel
26 BuildRequires: libstdc++-devel
27 BuildRequires: openssl-devel
28 BuildRequires: python >= 1:2.7
29 BuildRequires: rpm-pythonprov
30 BuildRequires: rpmbuild(macros) >= 1.714
31 %{?with_apidocs:BuildRequires: sphinx-pdg}
32 BuildRequires: zlib-devel
34 BuildRequires: python-devel >= 1:2.7
37 BuildRequires: python3-devel >= 1:3.4
39 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 Botan is a BSD-licensed crypto library written in C++. It provides a
43 wide variety of basic cryptographic algorithms, X.509 certificates and
44 CRLs, PKCS#10 certificate requests, a filter/pipe message processing
45 system, and a wide variety of other features, all written in portable
46 C++. The API reference, tutorial, and examples may help impart the
47 flavor of the library.
49 %description -l pl.UTF-8
50 Botan to biblioteka kryptograficzna na licencji BSD, napisana w C++.
51 Zapewnia szeroki zakres algorytmów kryptograficznych, certyfikaty
52 X.509 oraz CRL, żądania certyfikatów PKCS#10, system przetwarzania
53 komunikatów z filtrowaniem/potokami i wiele innych funkcji, wszystko
54 napisane w przenośnym C++. Dodatkowe udogodnienia to dokumentacja API,
55 wprowadzenie oraz przykłady.
58 Summary: Header files for Botan library
59 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Botan
60 Group: Development/Libraries
61 Requires: %{name} = %{version}-%{release}
64 Requires: openssl-devel
68 This package contains the header files for developing applications
72 Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
73 wykorzystujących bibliotekę Botan.
76 Summary: Static Botan library
77 Summary(pl.UTF-8): Statyczna biblioteka Botan
78 Group: Development/Libraries
79 Requires: %{name}-devel = %{version}-%{release}
84 %description static -l pl.UTF-8
85 Statyczna biblioteka Botan.
88 Summary: Botan API documentation
89 Summary(pl.UTF-8): Dokumentacja API biblioteki Botan
91 %if "%{_rpmversion}" >= "5"
96 API and internal documentation for Botan library.
98 %description apidocs -l pl.UTF-8
99 Dokumentacja API biblioteki Botan.
101 %package -n python-botan
102 Summary: Python 2.x binding for Botan library
103 Summary(pl.UTF-8): Wiązanie Pythona 2.x do biblioteki Botan
104 Group: Libraries/Python
105 Requires: %{name} = %{version}-%{release}
107 %description -n python-botan
108 Python 2.x binding for Botan library.
110 %description -n python-botan -l pl.UTF-8
111 Wiązanie Pythona 2.x do biblioteki Botan.
113 %package -n python3-botan
114 Summary: Python 3.x binding for Botan library
115 Summary(pl.UTF-8): Wiązanie Pythona 3.x do biblioteki Botan
116 Group: Libraries/Python
117 Requires: %{name} = %{version}-%{release}
119 %description -n python3-botan
120 Python 3.x binding for Botan library.
122 %description -n python3-botan -l pl.UTF-8
123 Wiązanie Pythona 3.x do biblioteki Botan.
126 %setup -q -n Botan-%{version}
128 # kill shebang, nothing to execute directly
129 %{__sed} -i -e '1d' src/python/botan2.py
132 # we have the necessary prerequisites, so enable optional modules
133 %define enable_modules bzip2,lzma,zlib,openssl,sqlite3,tpm,pkcs11
135 # fixme: maybe disable unix_procs, very slow.
136 %define disable_modules %{nil}
139 --prefix=%{_prefix} \
144 --enable-modules=%{enable_modules} \
145 --disable-modules=%{disable_modules} \
147 --with-python-version=%{py_ver} \
149 %{!?with_apidocs:--without-sphinx}
151 # (ab)using CXX as an easy way to inject our CXXFLAGS
153 CXX="%{__cxx} -pthread" \
154 CXXFLAGS="%{rpmcxxflags}"
161 LD_LIBRARY_PATH=. ./botan-test
165 rm -rf $RPM_BUILD_ROOT
168 INSTALL_CMD_EXEC="install -p -m 755" \
169 INSTALL_CMD_DATA="install -p -m 644" \
170 DESTDIR=$RPM_BUILD_ROOT
173 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
174 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
179 install -d $RPM_BUILD_ROOT%{py3_sitedir}
180 cp -p src/python/botan2.py $RPM_BUILD_ROOT%{py3_sitedir}
181 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
182 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
186 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/botan-%{version}
189 install -d $RPM_BUILD_ROOT%{_examplesdir}
190 cp -pr doc/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
194 rm -rf $RPM_BUILD_ROOT
196 %post -p /sbin/ldconfig
197 %postun -p /sbin/ldconfig
200 %defattr(644,root,root,755)
201 %doc license.txt news.rst readme.rst doc/{authors.txt,credits.rst,reading_list.txt,manual/roadmap.rst,security.rst,todo.rst}
202 %attr(755,root,root) %{_bindir}/botan
203 %attr(755,root,root) %{_libdir}/libbotan-2.so.*.*
204 %attr(755,root,root) %ghost %{_libdir}/libbotan-2.so.7
205 %{_mandir}/man1/botan.1*
208 %defattr(644,root,root,755)
209 %attr(755,root,root) %{_libdir}/libbotan-2.so
210 %{_includedir}/botan-2
211 %{_pkgconfigdir}/botan-2.pc
213 %if %{with static_libs}
215 %defattr(644,root,root,755)
216 %{_libdir}/libbotan-2.a
221 %defattr(644,root,root,755)
222 # FIXME: update path after fixing sphinx build
223 %doc _doc/manual/{_static,*.html,*.js}
224 %{_examplesdir}/%{name}-%{version}
228 %files -n python-botan
229 %defattr(644,root,root,755)
230 %{py_sitedir}/botan2.py[co]
234 %files -n python3-botan
235 %defattr(644,root,root,755)
236 %{py3_sitedir}/botan2.py
237 %{py3_sitedir}/__pycache__/botan2.cpython-*.py[co]