- merged 2.7 from PLD
authorMarcin Krol <hawk@tld-linux.org>
Fri, 6 Dec 2019 14:24:32 +0000 (15:24 +0100)
committerMarcin Krol <hawk@tld-linux.org>
Fri, 6 Dec 2019 14:24:32 +0000 (15:24 +0100)
python-cryptography.spec

index e7bcdc1e1e44c54ac7067d0b5379a06e882f54f8..71ec7faa7352004907b40e59b60ea31772730496 100644 (file)
@@ -1,25 +1,30 @@
+# TODO: when updating try to reenable all tests (two were failing in 2.7 with openssl 1.1.1d)
 #
 # Conditional build:
 %bcond_without python2 # CPython 2.x module
 %bcond_without python3 # CPython 3.x module
-%bcond_with    tests   # test target [not all dependencies are currently available in PLD]
+%bcond_without doc     # Sphinx documentation
+%bcond_without tests   # unit test
 
 Summary:       Crypthography library for Python 2
 Summary(pl.UTF-8):     Biblioteka Cryptography dla Pythona 2
 Name:          python-cryptography
-Version:       2.4.2
-Release:       1
+Version:       2.7
+Release:       2
 License:       Apache v2.0 or BSD
 Group:         Libraries/Python
 #Source0Download: https://pypi.org/simple/cryptography/
 Source0:       https://files.pythonhosted.org/packages/source/c/cryptography/cryptography-%{version}.tar.gz
-# Source0-md5: 26bad6a40a373e2ad43dfa13dc4b162b
+# Source0-md5: 7dfe1035cae43569e571318f000462a4
+#Source1Download: https://pypi.org/simple/cryptography_vectors/
+Source1:       https://files.pythonhosted.org/packages/source/c/cryptography-vectors/cryptography_vectors-%{version}.tar.gz
+# Source1-md5: 1a518a28ed9c924ca6c570aa8ea0c334
 URL:           https://cryptography.io/
 BuildRequires: openssl-devel >= 1.0.1
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.714
 %if %{with python2}
-BuildRequires: python-cffi >= 1.7
+BuildRequires: python-cffi >= 1.8
 BuildRequires: python-devel >= 1:2.7
 BuildRequires: python-enum34
 BuildRequires: python-pytz
@@ -27,7 +32,6 @@ BuildRequires:        python-setuptools >= 18.5
 BuildRequires: python-six >= 1.4.1
 %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
@@ -36,33 +40,36 @@ 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-cffi >= 1.7
+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
+%if %{with doc}
+BuildRequires: python3-sphinx_rtd_theme
+BuildRequires: sphinx-pdg-3 >= 1.6.5
 %endif
 Requires:      openssl >= 1.0.1
-Requires:      python-cffi >= 1.7
-Requires:      python-six >= 1.4.1
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
 cryptography is a package designed to expose cryptographic recipes and
 primitives to Python developers. Our goal is for it to be your
-"cryptographic standard library". It supports Python 2.6-2.7, Python
-3.2+, and PyPy.
+"cryptographic standard library". It supports Python 2.7, Python 3.4+,
+and PyPy.
 
 cryptography includes both high level recipes, and low level
 interfaces to common cryptographic algorithms such as symmetric
@@ -74,7 +81,7 @@ This package contains Python 2 modules.
 cryptography to pakiet zaprojektowany w celu udostępnienia funkcji i
 obiektów kryptograficznych programistom Pythona. Celem jest
 dostarczenie "standardowej biblioteki kryptograficznej". Obsługuje
-Pythona 2.6-2.7, Pythona 3.2+ oraz PyPy.
+Pythona 2.7, Pythona 3.4+ oraz PyPy.
 
 cryptography zawiera zarówno funkcje wysokopoziomowe, jak i
 niskopoziomowe interfejsy do popularnych algorytmów kryptograficznych,
@@ -88,14 +95,12 @@ Summary:    Crypthography library for Python 3
 Summary(pl.UTF-8):     Biblioteka Cryptography dla Pythona 3
 Group:         Libraries/Python
 Requires:      openssl >= 1.0.1
-Requires:      python3-cffi >= 1.7
-Requires:      python3-six >= 1.4.1
 
 %description -n python3-cryptography
 cryptography is a package designed to expose cryptographic recipes and
 primitives to Python developers. Our goal is for it to be your
-"cryptographic standard library". It supports Python 2.6-2.7, Python
-3.2+, and PyPy.
+"cryptographic standard library". It supports Python 2.7, Python 3.4+,
+and PyPy.
 
 cryptography includes both high level recipes, and low level
 interfaces to common cryptographic algorithms such as symmetric
@@ -107,7 +112,7 @@ This package contains Python 3 modules.
 cryptography to pakiet zaprojektowany w celu udostępnienia funkcji i
 obiektów kryptograficznych programistom Pythona. Celem jest
 dostarczenie "standardowej biblioteki kryptograficznej". Obsługuje
-Pythona 2.6-2.7, Pythona 3.2+ oraz PyPy.
+Pythona 2.7, Pythona 3.4+ oraz PyPy.
 
 cryptography zawiera zarówno funkcje wysokopoziomowe, jak i
 niskopoziomowe interfejsy do popularnych algorytmów kryptograficznych,
@@ -116,18 +121,51 @@ 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
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
+
+%description apidocs
+API documentation for cryptography module.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API modułu cryptography.
+
 %prep
-%setup -q -n cryptography-%{version}
+%setup -q -n cryptography-%{version} %{?with_tests:-a1}
+
+%if %{with tests}
+%{__mv} cryptography_vectors-%{version}/cryptography_vectors .
+%endif
 
 %build
 export CFLAGS="%{rpmcflags}"
 
 %if %{with python2}
-%py_build %{?with_tests:test}
+%py_build
+
+%if %{with tests}
+PYTHONPATH=$(pwd) \
+%{__python} -m pytest tests  -k 'not test_dh_parameters_supported and not test_load_ecdsa_no_named_curve'
+%endif
 %endif
 
 %if %{with python2}
-%py3_build %{?with_tests:test}
+%py3_build
+
+%if %{with tests}
+PYTHONPATH=$(pwd) \
+%{__python3} -m pytest tests  -k 'not test_dh_parameters_supported and not test_load_ecdsa_no_named_curve'
+%endif
+%endif
+
+%if %{with doc}
+%{__make} -C docs html \
+       SPHINXBUILD=sphinx-build-3
 %endif
 
 %install
@@ -171,6 +209,8 @@ rm -rf $RPM_BUILD_ROOT
 %{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
@@ -213,6 +253,9 @@ rm -rf $RPM_BUILD_ROOT
 %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__
@@ -221,3 +264,9 @@ rm -rf $RPM_BUILD_ROOT
 %{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