#
# Conditional build:
-%bcond_without python2 # CPython 2.x module
-%bcond_without python3 # CPython 3.x module
+%bcond_without python2 # CPython 2.x module
+%bcond_without python3 # CPython 3.x module
+%bcond_without doc # Sphinx documentation
+%bcond_with tests # test target [not all dependencies are currently available in PLD]
Summary: Crypthography library for Python 2
Summary(pl.UTF-8): Biblioteka Cryptography dla Pythona 2
Name: python-cryptography
-Version: 0.2.1
+Version: 2.7
Release: 1
-License: Apache v2.0
+License: Apache v2.0 or BSD
Group: Libraries/Python
-Source0: https://pypi.python.org/packages/source/c/cryptography/cryptography-%{version}.tar.gz
-# Source0-md5: 872fc04268dadc66a0305ae5ab1c123b
+#Source0Download: https://pypi.org/simple/cryptography/
+Source0: https://files.pythonhosted.org/packages/source/c/cryptography/cryptography-%{version}.tar.gz
+# Source0-md5: 7dfe1035cae43569e571318f000462a4
URL: https://cryptography.io/
-BuildRequires: openssl-devel
+BuildRequires: openssl-devel >= 1.0.1
+BuildRequires: rpm-pythonprov >= 5.4.15-48
+BuildRequires: rpmbuild(macros) >= 1.714
%if %{with python2}
-BuildRequires: python-devel >= 1:2.6
-BuildRequires: python-cffi >= 0.8
+BuildRequires: python-cffi >= 1.8
+BuildRequires: python-devel >= 1:2.7
+BuildRequires: python-enum34
+BuildRequires: python-pytz
+BuildRequires: python-setuptools >= 18.5
BuildRequires: python-six >= 1.4.1
-BuildRequires: rpmbuild(macros) >= 1.219
+%if %{with tests}
+BuildRequires: python-asn1crypto >= 0.21.0
+BuildRequires: python-cryptography_vectors
+%if "%{py_ver}" >= "2.7"
+BuildRequires: python-hypothesis >= 1.11.4
+%endif
+BuildRequires: python-idna >= 2.1
+BuildRequires: python-ipaddress
+BuildRequires: python-iso8601
+BuildRequires: python-pretend
+BuildRequires: python-pytest >= 3.6.0
+BuildRequires: python-pytz
+%endif
%endif
%if %{with python3}
-BuildRequires: python3-devel >= 3.2
-BuildRequires: python3-cffi >= 0.8
+BuildRequires: python3-cffi >= 1.8
+BuildRequires: python3-devel >= 1:3.4
+BuildRequires: python3-setuptools >= 18.5
BuildRequires: python3-six >= 1.4.1
+%if %{with tests}
+BuildRequires: python3-asn1crypto >= 0.21.0
+BuildRequires: python3-cryptography_vectors
+BuildRequires: python3-hypothesis >= 1.11.4
+BuildRequires: python3-idna >= 2.1
+BuildRequires: python3-iso8601
+BuildRequires: python3-pretend
+BuildRequires: python3-pytest >= 3.6.0
+BuildRequires: python3-pytz
+%endif
%endif
-BuildRequires: rpm-pythonprov
-Requires: python-cffi >= 0.8
-Requires: python-six >= 1.4.1
+%if %{with doc}
+BuildRequires: python3-sphinx_rtd_theme
+BuildRequires: sphinx-pdg-3 >= 1.6.5
+%endif
+Requires: openssl >= 1.0.1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
cryptography zawiera zarówno funkcje wysokopoziomowe, jak i
niskopoziomowe interfejsy do popularnych algorytmów kryptograficznych,
-takich jak szyfry symetryczne, skróty wiadomości czy funkcje
+takich jak szyfry symetryczne, skróty wiadomości czy funkcje
wyprowadzające klucze.
Ten pakiet zawiera moduły Pythona 2.
Summary: Crypthography library for Python 3
Summary(pl.UTF-8): Biblioteka Cryptography dla Pythona 3
Group: Libraries/Python
-Requires: python3-cffi >= 0.8
-Requires: python3-six >= 1.4.1
+Requires: openssl >= 1.0.1
%description -n python3-cryptography
cryptography is a package designed to expose cryptographic recipes and
cryptography zawiera zarówno funkcje wysokopoziomowe, jak i
niskopoziomowe interfejsy do popularnych algorytmów kryptograficznych,
-takich jak szyfry symetryczne, skróty wiadomości czy funkcje
+takich jak szyfry symetryczne, skróty wiadomości czy funkcje
wyprowadzające klucze.
Ten pakiet zawiera moduły Pythona 3.
+%package apidocs
+Summary: API documentation for cryptography module
+Summary(pl.UTF-8): Dokumentacja API modułu cryptography
+Group: Documentation
+
+%description apidocs
+API documentation for cryptography module.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API modułu cryptography.
+
%prep
%setup -q -n cryptography-%{version}
export CFLAGS="%{rpmcflags}"
%if %{with python2}
-%{__python} setup.py build \
- --build-base build-2
+%py_build %{?with_tests:test}
%endif
%if %{with python2}
-%{__python3} setup.py build \
- --build-base build-3
+%py3_build %{?with_tests:test}
+%endif
+
+%if %{with doc}
+%{__make} -C docs html \
+ SPHINXBUILD=sphinx-build-3
%endif
%install
rm -rf $RPM_BUILD_ROOT
%if %{with python2}
-%{__python} setup.py \
- build \
- --build-base build-2 \
- install \
- --optimize=2 \
- --root=$RPM_BUILD_ROOT
+%py_install
%py_postclean
%endif
%if %{with python3}
-%{__python3} setup.py \
- build \
- --build-base build-3 \
- install \
- --optimize=2 \
- --root=$RPM_BUILD_ROOT
+%py3_install
%endif
%clean
%if %{with python2}
%files
%defattr(644,root,root,755)
-%doc AUTHORS.rst README.rst
+%doc AUTHORS.rst README.rst LICENSE LICENSE.APACHE LICENSE.BSD
%dir %{py_sitedir}/cryptography
-%attr(755,root,root) %{py_sitedir}/cryptography/_cffi__*.so
%{py_sitedir}/cryptography/*.py[co]
%dir %{py_sitedir}/cryptography/hazmat
%{py_sitedir}/cryptography/hazmat/*.py[co]
%dir %{py_sitedir}/cryptography/hazmat/backends
%{py_sitedir}/cryptography/hazmat/backends/*.py[co]
-%dir %{py_sitedir}/cryptography/hazmat/backends/commoncrypto
-%{py_sitedir}/cryptography/hazmat/backends/commoncrypto/*.py[co]
%dir %{py_sitedir}/cryptography/hazmat/backends/openssl
%{py_sitedir}/cryptography/hazmat/backends/openssl/*.py[co]
%dir %{py_sitedir}/cryptography/hazmat/bindings
%{py_sitedir}/cryptography/hazmat/bindings/*.py[co]
-%dir %{py_sitedir}/cryptography/hazmat/bindings/commoncrypto
-%{py_sitedir}/cryptography/hazmat/bindings/commoncrypto/*.py[co]
+%attr(755,root,root) %{py_sitedir}/cryptography/hazmat/bindings/_*.so
%dir %{py_sitedir}/cryptography/hazmat/bindings/openssl
%{py_sitedir}/cryptography/hazmat/bindings/openssl/*.py[co]
%dir %{py_sitedir}/cryptography/hazmat/primitives
%{py_sitedir}/cryptography/hazmat/primitives/ciphers/*.py[co]
%dir %{py_sitedir}/cryptography/hazmat/primitives/kdf
%{py_sitedir}/cryptography/hazmat/primitives/kdf/*.py[co]
+%dir %{py_sitedir}/cryptography/hazmat/primitives/serialization
+%{py_sitedir}/cryptography/hazmat/primitives/serialization/*.py[co]
+%dir %{py_sitedir}/cryptography/hazmat/primitives/twofactor
+%{py_sitedir}/cryptography/hazmat/primitives/twofactor/*.py[co]
+%dir %{py_sitedir}/cryptography/x509
+%{py_sitedir}/cryptography/x509/*.py[co]
%{py_sitedir}/cryptography-%{version}-py*.egg-info
%endif
%if %{with python3}
%files -n python3-cryptography
%defattr(644,root,root,755)
-%doc AUTHORS.rst README.rst
+%doc AUTHORS.rst README.rst LICENSE LICENSE.APACHE LICENSE.BSD
%dir %{py3_sitedir}/cryptography
-%attr(755,root,root) %{py3_sitedir}/cryptography/_cffi__*.so
%{py3_sitedir}/cryptography/*.py
%{py3_sitedir}/cryptography/__pycache__
%dir %{py3_sitedir}/cryptography/hazmat
%dir %{py3_sitedir}/cryptography/hazmat/backends
%{py3_sitedir}/cryptography/hazmat/backends/*.py
%{py3_sitedir}/cryptography/hazmat/backends/__pycache__
-%dir %{py3_sitedir}/cryptography/hazmat/backends/commoncrypto
-%{py3_sitedir}/cryptography/hazmat/backends/commoncrypto/*.py
-%{py3_sitedir}/cryptography/hazmat/backends/commoncrypto/__pycache__
%dir %{py3_sitedir}/cryptography/hazmat/backends/openssl
%{py3_sitedir}/cryptography/hazmat/backends/openssl/*.py
%{py3_sitedir}/cryptography/hazmat/backends/openssl/__pycache__
%dir %{py3_sitedir}/cryptography/hazmat/bindings
%{py3_sitedir}/cryptography/hazmat/bindings/*.py
%{py3_sitedir}/cryptography/hazmat/bindings/__pycache__
-%dir %{py3_sitedir}/cryptography/hazmat/bindings/commoncrypto
-%{py3_sitedir}/cryptography/hazmat/bindings/commoncrypto/*.py
-%{py3_sitedir}/cryptography/hazmat/bindings/commoncrypto/__pycache__
+%attr(755,root,root) %{py3_sitedir}/cryptography/hazmat/bindings/_*.so
%dir %{py3_sitedir}/cryptography/hazmat/bindings/openssl
%{py3_sitedir}/cryptography/hazmat/bindings/openssl/*.py
%{py3_sitedir}/cryptography/hazmat/bindings/openssl/__pycache__
%dir %{py3_sitedir}/cryptography/hazmat/primitives/kdf
%{py3_sitedir}/cryptography/hazmat/primitives/kdf/*.py
%{py3_sitedir}/cryptography/hazmat/primitives/kdf/__pycache__
+%dir %{py3_sitedir}/cryptography/hazmat/primitives/serialization
+%{py3_sitedir}/cryptography/hazmat/primitives/serialization/*.py
+%{py3_sitedir}/cryptography/hazmat/primitives/serialization/__pycache__
+%dir %{py3_sitedir}/cryptography/hazmat/primitives/twofactor
+%{py3_sitedir}/cryptography/hazmat/primitives/twofactor/*.py
+%{py3_sitedir}/cryptography/hazmat/primitives/twofactor/__pycache__
+%dir %{py3_sitedir}/cryptography/x509
+%{py3_sitedir}/cryptography/x509/*.py
+%{py3_sitedir}/cryptography/x509/__pycache__
%{py3_sitedir}/cryptography-%{version}-py*.egg-info
%endif
+
+%if %{with doc}
+%files apidocs
+%defattr(644,root,root,755)
+%doc docs/_build/html/{_downloads,_modules,_static,development,hazmat,x509,*.html,*.js}
+%endif