]> git.pld-linux.org Git - packages/botan2.git/blob - botan2.spec
rpm version for noarch subpackage
[packages/botan2.git] / botan2.spec
1 # TODO: fix sphinx docs build (sphinx-build hangs?)
2 #
3 # Conditional build:
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
10 %bcond_with     openssl         # OpenSSL provider
11
12 %if %{without python}
13 %undefine       with_python2
14 %undefine       with_python3
15 %endif
16 Summary:        Crypto library written in C++
17 Summary(pl.UTF-8):      Biblioteka kryptograficzna napisana w C++
18 Name:           botan2
19 Version:        2.18.1
20 Release:        1
21 License:        BSD
22 Group:          Libraries
23 Source0:        https://botan.randombit.net/releases/Botan-%{version}.tar.xz
24 # Source0-md5:  77c558179f276273e0bf39ef941d36c5
25 URL:            https://botan.randombit.net/
26 BuildRequires:  bzip2-devel
27 BuildRequires:  docutils
28 BuildRequires:  libstdc++-devel
29 %{?with_openssl:BuildRequires:  openssl-devel}
30 BuildRequires:  python >= 1:2.7
31 BuildRequires:  rpm-build >= 4.6
32 BuildRequires:  rpm-pythonprov
33 BuildRequires:  rpmbuild(macros) >= 1.714
34 %{?with_apidocs:BuildRequires:  sphinx-pdg}
35 BuildRequires:  zlib-devel
36 %if %{with python2}
37 BuildRequires:  python-devel >= 1:2.7
38 %endif
39 %if %{with python3}
40 BuildRequires:  python3-devel >= 1:3.4
41 %endif
42 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
44 %description
45 Botan is a BSD-licensed crypto library written in C++. It provides a
46 wide variety of basic cryptographic algorithms, X.509 certificates and
47 CRLs, PKCS#10 certificate requests, a filter/pipe message processing
48 system, and a wide variety of other features, all written in portable
49 C++. The API reference, tutorial, and examples may help impart the
50 flavor of the library.
51
52 %description -l pl.UTF-8
53 Botan to biblioteka kryptograficzna na licencji BSD, napisana w C++.
54 Zapewnia szeroki zakres algorytmów kryptograficznych, certyfikaty
55 X.509 oraz CRL, żądania certyfikatów PKCS#10, system przetwarzania
56 komunikatów z filtrowaniem/potokami i wiele innych funkcji, wszystko
57 napisane w przenośnym C++. Dodatkowe udogodnienia to dokumentacja API,
58 wprowadzenie oraz przykłady.
59
60 %package devel
61 Summary:        Header files for Botan library
62 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki Botan
63 Group:          Development/Libraries
64 Requires:       %{name} = %{version}-%{release}
65 Requires:       bzip2-devel
66 Requires:       gmp-devel
67 %{?with_openssl:Requires:       openssl-devel}
68 Requires:       zlib-devel
69
70 %description devel
71 This package contains the header files for developing applications
72 that use Botan.
73
74 %description devel -l pl.UTF-8
75 Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
76 wykorzystujących bibliotekę Botan.
77
78 %package static
79 Summary:        Static Botan library
80 Summary(pl.UTF-8):      Statyczna biblioteka Botan
81 Group:          Development/Libraries
82 Requires:       %{name}-devel = %{version}-%{release}
83
84 %description static
85 Static Botan library.
86
87 %description static -l pl.UTF-8
88 Statyczna biblioteka Botan.
89
90 %package apidocs
91 Summary:        Botan API documentation
92 Summary(pl.UTF-8):      Dokumentacja API biblioteki Botan
93 Group:          Documentation
94 BuildArch:      noarch
95
96 %description apidocs
97 API and internal documentation for Botan library.
98
99 %description apidocs -l pl.UTF-8
100 Dokumentacja API biblioteki Botan.
101
102 %package -n python-botan
103 Summary:        Python 2.x binding for Botan library
104 Summary(pl.UTF-8):      Wiązanie Pythona 2.x do biblioteki Botan
105 Group:          Libraries/Python
106 Requires:       %{name} = %{version}-%{release}
107
108 %description -n python-botan
109 Python 2.x binding for Botan library.
110
111 %description -n python-botan -l pl.UTF-8
112 Wiązanie Pythona 2.x do biblioteki Botan.
113
114 %package -n python3-botan
115 Summary:        Python 3.x binding for Botan library
116 Summary(pl.UTF-8):      Wiązanie Pythona 3.x do biblioteki Botan
117 Group:          Libraries/Python
118 Requires:       %{name} = %{version}-%{release}
119
120 %description -n python3-botan
121 Python 3.x binding for Botan library.
122
123 %description -n python3-botan -l pl.UTF-8
124 Wiązanie Pythona 3.x do biblioteki Botan.
125
126 %prep
127 %setup -q -n Botan-%{version}
128
129 # kill shebang, nothing to execute directly
130 %{__sed} -i -e '1d' src/python/botan2.py
131
132 %build
133 # we have the necessary prerequisites, so enable optional modules
134 %define enable_modules bzip2,lzma,zlib,%{?with_openssl:openssl},sqlite3,tpm,pkcs11
135
136 # fixme: maybe disable unix_procs, very slow.
137 %define disable_modules %{nil}
138
139 ./configure.py \
140         --prefix=%{_prefix} \
141         --libdir=%{_lib} \
142         --cc=gcc \
143         --os=linux \
144         --cpu=%{_arch} \
145         --enable-modules=%{enable_modules} \
146         --disable-modules=%{disable_modules} \
147 %if %{with python2}
148         --with-python-version=%{py_ver} \
149 %endif
150         %{!?with_apidocs:--without-sphinx}
151
152 # (ab)using CXX as an easy way to inject our CXXFLAGS
153 %{__make} \
154         CXX="%{__cxx} -pthread" \
155         CXXFLAGS="%{rpmcxxflags}"
156
157 %if %{with apidocs}
158 %{__make} docs
159 %endif
160
161 %if %{with tests}
162 # certstor_system test is trying tp look up expired certs
163 # os_utils fail on builders
164 LD_LIBRARY_PATH=. ./botan-test --skip-tests=certstor_system,os_utils
165 %endif
166
167 %install
168 rm -rf $RPM_BUILD_ROOT
169
170 %{__make} install \
171         INSTALL_CMD_EXEC="install -p -m 755" \
172         INSTALL_CMD_DATA="install -p -m 644" \
173         DESTDIR=$RPM_BUILD_ROOT
174
175 %if %{with python2}
176 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
177 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
178 %py_postclean
179 %endif
180
181 %if %{with python3}
182 install -d $RPM_BUILD_ROOT%{py3_sitedir}
183 cp -p src/python/botan2.py $RPM_BUILD_ROOT%{py3_sitedir}
184 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
185 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
186 %endif
187
188 # packaged as %doc
189 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/botan-%{version}
190
191 %if %{with apidocs}
192 install -d $RPM_BUILD_ROOT%{_examplesdir}
193 cp -pr doc/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
194 %endif
195
196 %clean
197 rm -rf $RPM_BUILD_ROOT
198
199 %post   -p /sbin/ldconfig
200 %postun -p /sbin/ldconfig
201
202 %files
203 %defattr(644,root,root,755)
204 %doc license.txt news.rst readme.rst doc/{authors.txt,credits.rst,security.rst}
205 %attr(755,root,root) %{_bindir}/botan
206 %attr(755,root,root) %{_libdir}/libbotan-2.so.*.*
207 %attr(755,root,root) %ghost %{_libdir}/libbotan-2.so.18
208 %{_mandir}/man1/botan.1*
209
210 %files devel
211 %defattr(644,root,root,755)
212 %attr(755,root,root) %{_libdir}/libbotan-2.so
213 %{_includedir}/botan-2
214 %{_pkgconfigdir}/botan-2.pc
215
216 %if %{with static_libs}
217 %files static
218 %defattr(644,root,root,755)
219 %{_libdir}/libbotan-2.a
220 %endif
221
222 %if %{with apidocs}
223 %files apidocs
224 %defattr(644,root,root,755)
225 # FIXME: update path after fixing sphinx build
226 %doc _doc/manual/{_static,*.html,*.js}
227 %{_examplesdir}/%{name}-%{version}
228 %endif
229
230 %if %{with python2}
231 %files -n python-botan
232 %defattr(644,root,root,755)
233 %{py_sitedir}/botan2.py[co]
234 %endif
235
236 %if %{with python3}
237 %files -n python3-botan
238 %defattr(644,root,root,755)
239 %{py3_sitedir}/botan2.py
240 %{py3_sitedir}/__pycache__/botan2.cpython-*.py[co]
241 %endif
This page took 0.145859 seconds and 4 git commands to generate.