- merged 2.8 from PLD
[packages/python-cryptography.git] / python-cryptography.spec
1 # TODO: when updating try to reenable all tests (two were failing in 2.7 with openssl 1.1.1d)
2 #
3 # Conditional build:
4 %bcond_without  python2 # CPython 2.x module
5 %bcond_without  python3 # CPython 3.x module
6 %bcond_without  doc     # Sphinx documentation
7 %bcond_without  tests   # unit test
8
9 Summary:        Crypthography library for Python 2
10 Summary(pl.UTF-8):      Biblioteka Cryptography dla Pythona 2
11 Name:           python-cryptography
12 Version:        2.8
13 Release:        1
14 License:        Apache v2.0 or BSD
15 Group:          Libraries/Python
16 #Source0Download: https://pypi.org/simple/cryptography/
17 Source0:        https://files.pythonhosted.org/packages/source/c/cryptography/cryptography-%{version}.tar.gz
18 # Source0-md5:  77730058b556c6d9838679a94c6229ce
19 #Source1Download: https://pypi.org/simple/cryptography_vectors/
20 Source1:        https://files.pythonhosted.org/packages/source/c/cryptography-vectors/cryptography_vectors-%{version}.tar.gz
21 # Source1-md5:  a744ed29bb9ef56b3a50317fea3b218e
22 URL:            https://cryptography.io/
23 BuildRequires:  openssl-devel >= 1.0.1
24 BuildRequires:  rpm-pythonprov
25 BuildRequires:  rpmbuild(macros) >= 1.714
26 %if %{with python2}
27 BuildRequires:  python-cffi >= 1.8
28 BuildRequires:  python-devel >= 1:2.7
29 BuildRequires:  python-enum34
30 BuildRequires:  python-pytz
31 BuildRequires:  python-setuptools >= 18.5
32 BuildRequires:  python-six >= 1.4.1
33 %if %{with tests}
34 BuildRequires:  python-asn1crypto >= 0.21.0
35 %if "%{py_ver}" >= "2.7"
36 BuildRequires:  python-hypothesis >= 1.11.4
37 %endif
38 BuildRequires:  python-idna >= 2.1
39 BuildRequires:  python-ipaddress
40 BuildRequires:  python-iso8601
41 BuildRequires:  python-pretend
42 BuildRequires:  python-pytest >= 3.6.0
43 BuildRequires:  python-pytz
44 %endif
45 %endif
46 %if %{with python3}
47 BuildRequires:  python3-cffi >= 1.8
48 BuildRequires:  python3-devel >= 1:3.4
49 BuildRequires:  python3-setuptools >= 18.5
50 BuildRequires:  python3-six >= 1.4.1
51 %if %{with tests}
52 BuildRequires:  python3-asn1crypto >= 0.21.0
53 BuildRequires:  python3-hypothesis >= 1.11.4
54 BuildRequires:  python3-idna >= 2.1
55 BuildRequires:  python3-iso8601
56 BuildRequires:  python3-pretend
57 BuildRequires:  python3-pytest >= 3.6.0
58 BuildRequires:  python3-pytz
59 %endif
60 %endif
61 %if %{with doc}
62 BuildRequires:  python3-sphinx_rtd_theme
63 BuildRequires:  sphinx-pdg-3 >= 1.6.5
64 %endif
65 Requires:       openssl >= 1.0.1
66 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68 %description
69 cryptography is a package designed to expose cryptographic recipes and
70 primitives to Python developers. Our goal is for it to be your
71 "cryptographic standard library". It supports Python 2.7, Python 3.4+,
72 and PyPy.
73
74 cryptography includes both high level recipes, and low level
75 interfaces to common cryptographic algorithms such as symmetric
76 ciphers, message digests and key derivation functions.
77
78 This package contains Python 2 modules.
79
80 %description -l pl.UTF-8
81 cryptography to pakiet zaprojektowany w celu udostępnienia funkcji i
82 obiektów kryptograficznych programistom Pythona. Celem jest
83 dostarczenie "standardowej biblioteki kryptograficznej". Obsługuje
84 Pythona 2.7, Pythona 3.4+ oraz PyPy.
85
86 cryptography zawiera zarówno funkcje wysokopoziomowe, jak i
87 niskopoziomowe interfejsy do popularnych algorytmów kryptograficznych,
88 takich jak szyfry symetryczne, skróty wiadomości czy funkcje
89 wyprowadzające klucze.
90
91 Ten pakiet zawiera moduły Pythona 2.
92
93 %package -n python3-cryptography
94 Summary:        Crypthography library for Python 3
95 Summary(pl.UTF-8):      Biblioteka Cryptography dla Pythona 3
96 Group:          Libraries/Python
97 Requires:       openssl >= 1.0.1
98
99 %description -n python3-cryptography
100 cryptography is a package designed to expose cryptographic recipes and
101 primitives to Python developers. Our goal is for it to be your
102 "cryptographic standard library". It supports Python 2.7, Python 3.4+,
103 and PyPy.
104
105 cryptography includes both high level recipes, and low level
106 interfaces to common cryptographic algorithms such as symmetric
107 ciphers, message digests and key derivation functions.
108
109 This package contains Python 3 modules.
110
111 %description -n python3-cryptography -l pl.UTF-8
112 cryptography to pakiet zaprojektowany w celu udostępnienia funkcji i
113 obiektów kryptograficznych programistom Pythona. Celem jest
114 dostarczenie "standardowej biblioteki kryptograficznej". Obsługuje
115 Pythona 2.7, Pythona 3.4+ oraz PyPy.
116
117 cryptography zawiera zarówno funkcje wysokopoziomowe, jak i
118 niskopoziomowe interfejsy do popularnych algorytmów kryptograficznych,
119 takich jak szyfry symetryczne, skróty wiadomości czy funkcje
120 wyprowadzające klucze.
121
122 Ten pakiet zawiera moduły Pythona 3.
123
124 %package apidocs
125 Summary:        API documentation for cryptography module
126 Summary(pl.UTF-8):      Dokumentacja API modułu cryptography
127 Group:          Documentation
128 %if "%{_rpmversion}" >= "5"
129 BuildArch:      noarch
130 %endif
131
132 %description apidocs
133 API documentation for cryptography module.
134
135 %description apidocs -l pl.UTF-8
136 Dokumentacja API modułu cryptography.
137
138 %prep
139 %setup -q -n cryptography-%{version} %{?with_tests:-a1}
140
141 %if %{with tests}
142 %{__mv} cryptography_vectors-%{version}/cryptography_vectors .
143 %endif
144
145 %build
146 export CFLAGS="%{rpmcflags}"
147
148 %if %{with python2}
149 %py_build
150
151 %if %{with tests}
152 PYTHONPATH=$(echo $(pwd)/build-2/lib.*) \
153 %{__python} -m pytest tests
154 %endif
155 %endif
156
157 %if %{with python3}
158 %py3_build
159
160 %if %{with tests}
161 PYTHONPATH=$(echo $(pwd)/build-3/lib.*) \
162 %{__python3} -m pytest tests
163 %endif
164 %endif
165
166 %if %{with doc}
167 %{__make} -C docs html \
168         SPHINXBUILD=sphinx-build-3
169 %endif
170
171 %install
172 rm -rf $RPM_BUILD_ROOT
173
174 %if %{with python2}
175 %py_install
176
177 %py_postclean
178 %endif
179
180 %if %{with python3}
181 %py3_install
182 %endif
183
184 %clean
185 rm -rf $RPM_BUILD_ROOT
186
187 %if %{with python2}
188 %files
189 %defattr(644,root,root,755)
190 %doc AUTHORS.rst README.rst LICENSE LICENSE.APACHE LICENSE.BSD
191 %dir %{py_sitedir}/cryptography
192 %{py_sitedir}/cryptography/*.py[co]
193 %dir %{py_sitedir}/cryptography/hazmat
194 %{py_sitedir}/cryptography/hazmat/*.py[co]
195 %dir %{py_sitedir}/cryptography/hazmat/backends
196 %{py_sitedir}/cryptography/hazmat/backends/*.py[co]
197 %dir %{py_sitedir}/cryptography/hazmat/backends/openssl
198 %{py_sitedir}/cryptography/hazmat/backends/openssl/*.py[co]
199 %dir %{py_sitedir}/cryptography/hazmat/bindings
200 %{py_sitedir}/cryptography/hazmat/bindings/*.py[co]
201 %attr(755,root,root) %{py_sitedir}/cryptography/hazmat/bindings/_*.so
202 %dir %{py_sitedir}/cryptography/hazmat/bindings/openssl
203 %{py_sitedir}/cryptography/hazmat/bindings/openssl/*.py[co]
204 %dir %{py_sitedir}/cryptography/hazmat/primitives
205 %{py_sitedir}/cryptography/hazmat/primitives/*.py[co]
206 %dir %{py_sitedir}/cryptography/hazmat/primitives/asymmetric
207 %{py_sitedir}/cryptography/hazmat/primitives/asymmetric/*.py[co]
208 %dir %{py_sitedir}/cryptography/hazmat/primitives/ciphers
209 %{py_sitedir}/cryptography/hazmat/primitives/ciphers/*.py[co]
210 %dir %{py_sitedir}/cryptography/hazmat/primitives/kdf
211 %{py_sitedir}/cryptography/hazmat/primitives/kdf/*.py[co]
212 %dir %{py_sitedir}/cryptography/hazmat/primitives/serialization
213 %{py_sitedir}/cryptography/hazmat/primitives/serialization/*.py[co]
214 %dir %{py_sitedir}/cryptography/hazmat/primitives/twofactor
215 %{py_sitedir}/cryptography/hazmat/primitives/twofactor/*.py[co]
216 %dir %{py_sitedir}/cryptography/x509
217 %{py_sitedir}/cryptography/x509/*.py[co]
218 %{py_sitedir}/cryptography-%{version}-py*.egg-info
219 %endif
220
221 %if %{with python3}
222 %files -n python3-cryptography
223 %defattr(644,root,root,755)
224 %doc AUTHORS.rst README.rst LICENSE LICENSE.APACHE LICENSE.BSD
225 %dir %{py3_sitedir}/cryptography
226 %{py3_sitedir}/cryptography/*.py
227 %{py3_sitedir}/cryptography/__pycache__
228 %dir %{py3_sitedir}/cryptography/hazmat
229 %{py3_sitedir}/cryptography/hazmat/*.py
230 %{py3_sitedir}/cryptography/hazmat/__pycache__
231 %dir %{py3_sitedir}/cryptography/hazmat/backends
232 %{py3_sitedir}/cryptography/hazmat/backends/*.py
233 %{py3_sitedir}/cryptography/hazmat/backends/__pycache__
234 %dir %{py3_sitedir}/cryptography/hazmat/backends/openssl
235 %{py3_sitedir}/cryptography/hazmat/backends/openssl/*.py
236 %{py3_sitedir}/cryptography/hazmat/backends/openssl/__pycache__
237 %dir %{py3_sitedir}/cryptography/hazmat/bindings
238 %{py3_sitedir}/cryptography/hazmat/bindings/*.py
239 %{py3_sitedir}/cryptography/hazmat/bindings/__pycache__
240 %attr(755,root,root) %{py3_sitedir}/cryptography/hazmat/bindings/_*.so
241 %dir %{py3_sitedir}/cryptography/hazmat/bindings/openssl
242 %{py3_sitedir}/cryptography/hazmat/bindings/openssl/*.py
243 %{py3_sitedir}/cryptography/hazmat/bindings/openssl/__pycache__
244 %dir %{py3_sitedir}/cryptography/hazmat/primitives
245 %{py3_sitedir}/cryptography/hazmat/primitives/*.py
246 %{py3_sitedir}/cryptography/hazmat/primitives/__pycache__
247 %dir %{py3_sitedir}/cryptography/hazmat/primitives/asymmetric
248 %{py3_sitedir}/cryptography/hazmat/primitives/asymmetric/*.py
249 %{py3_sitedir}/cryptography/hazmat/primitives/asymmetric/__pycache__
250 %dir %{py3_sitedir}/cryptography/hazmat/primitives/ciphers
251 %{py3_sitedir}/cryptography/hazmat/primitives/ciphers/*.py
252 %{py3_sitedir}/cryptography/hazmat/primitives/ciphers/__pycache__
253 %dir %{py3_sitedir}/cryptography/hazmat/primitives/kdf
254 %{py3_sitedir}/cryptography/hazmat/primitives/kdf/*.py
255 %{py3_sitedir}/cryptography/hazmat/primitives/kdf/__pycache__
256 %dir %{py3_sitedir}/cryptography/hazmat/primitives/serialization
257 %{py3_sitedir}/cryptography/hazmat/primitives/serialization/*.py
258 %{py3_sitedir}/cryptography/hazmat/primitives/serialization/__pycache__
259 %dir %{py3_sitedir}/cryptography/hazmat/primitives/twofactor
260 %{py3_sitedir}/cryptography/hazmat/primitives/twofactor/*.py
261 %{py3_sitedir}/cryptography/hazmat/primitives/twofactor/__pycache__
262 %dir %{py3_sitedir}/cryptography/x509
263 %{py3_sitedir}/cryptography/x509/*.py
264 %{py3_sitedir}/cryptography/x509/__pycache__
265 %{py3_sitedir}/cryptography-%{version}-py*.egg-info
266 %endif
267
268 %if %{with doc}
269 %files apidocs
270 %defattr(644,root,root,755)
271 %doc docs/_build/html/{_downloads,_static,development,hazmat,x509,*.html,*.js}
272 %endif