From f225bf288b65927ce6141deed5c9ea876c317d8c Mon Sep 17 00:00:00 2001 From: tigro Date: Thu, 26 Dec 2024 14:10:43 +0300 Subject: [PATCH] import python-oauth2client-4.1.3-27.el10 --- .gitignore | 2 +- .python-oauth2client.metadata | 2 +- SOURCES/doc-fix.patch | 14 ++ SOURCES/docs-build-fix.patch | 4 +- SOURCES/keyring-remove.patch | 23 +++ SOURCES/rsa-to-cryptography.patch | 101 ----------- SPECS/python-oauth2client.spec | 280 +++++++++++++----------------- 7 files changed, 162 insertions(+), 264 deletions(-) create mode 100644 SOURCES/doc-fix.patch create mode 100644 SOURCES/keyring-remove.patch delete mode 100644 SOURCES/rsa-to-cryptography.patch diff --git a/.gitignore b/.gitignore index 548d0b1..0b42902 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/oauth2client-4.1.2.tar.gz +SOURCES/oauth2client-4.1.3.tar.gz diff --git a/.python-oauth2client.metadata b/.python-oauth2client.metadata index b2845c0..fffa57f 100644 --- a/.python-oauth2client.metadata +++ b/.python-oauth2client.metadata @@ -1 +1 @@ -cd7f51930553caeb51726035831e6b7fa903d1a7 SOURCES/oauth2client-4.1.2.tar.gz +deb413dc837cdc1dd6729fa1c34155f14adb6135 SOURCES/oauth2client-4.1.3.tar.gz diff --git a/SOURCES/doc-fix.patch b/SOURCES/doc-fix.patch new file mode 100644 index 0000000..a44134c --- /dev/null +++ b/SOURCES/doc-fix.patch @@ -0,0 +1,14 @@ +diff -up oauth2client-4.1.3/docs/index.rst.orig oauth2client-4.1.3/docs/index.rst +--- oauth2client-4.1.3/docs/index.rst.orig 2019-01-21 10:43:49.300783027 +0100 ++++ oauth2client-4.1.3/docs/index.rst 2019-01-21 10:44:02.524939465 +0100 +@@ -2,8 +2,8 @@ oauth2client + ============ + + .. note:: oauth2client is now deprecated. No more features will be added to the +-libraries and the core team is turning down support. We recommend you use +-`google-auth`_ and `oauthlib`_. For more details on the deprecation, see `oauth2client deprecation`_. ++ libraries and the core team is turning down support. We recommend you use ++ `google-auth`_ and `oauthlib`_. For more details on the deprecation, see `oauth2client deprecation`_. + + .. _google-auth: https://google-auth.readthedocs.io + .. _oauthlib: http://oauthlib.readthedocs.io/ diff --git a/SOURCES/docs-build-fix.patch b/SOURCES/docs-build-fix.patch index 457d530..7004c8e 100644 --- a/SOURCES/docs-build-fix.patch +++ b/SOURCES/docs-build-fix.patch @@ -9,8 +9,8 @@ diff -up oauth2client-3.0.0/docs/conf.py.doc oauth2client-3.0.0/docs/conf.py -version = distro.version -release = distro.version +#distro = get_distribution('oauth2client') -+version = '4.1.2' -+release = '4.1.2' ++version = '4.1.3' ++release = '4.1.3' exclude_patterns = ['_build'] diff --git a/SOURCES/keyring-remove.patch b/SOURCES/keyring-remove.patch new file mode 100644 index 0000000..096166c --- /dev/null +++ b/SOURCES/keyring-remove.patch @@ -0,0 +1,23 @@ +diff -up oauth2client-4.1.3/docs/requirements.txt.keyring oauth2client-4.1.3/docs/requirements.txt +diff -up oauth2client-4.1.3/docs/source/oauth2client.contrib.rst.keyring oauth2client-4.1.3/docs/source/oauth2client.contrib.rst +--- oauth2client-4.1.3/docs/source/oauth2client.contrib.rst.keyring 2019-01-21 10:46:01.673326890 +0100 ++++ oauth2client-4.1.3/docs/source/oauth2client.contrib.rst 2019-01-21 10:47:11.808142431 +0100 +@@ -17,7 +17,6 @@ Submodules + oauth2client.contrib.dictionary_storage + oauth2client.contrib.flask_util + oauth2client.contrib.gce +- oauth2client.contrib.keyring_storage + oauth2client.contrib.multiprocess_file_storage + oauth2client.contrib.sqlalchemy + oauth2client.contrib.xsrfutil +diff -up oauth2client-4.1.3/tox.ini.keyring oauth2client-4.1.3/tox.ini +--- oauth2client-4.1.3/tox.ini.keyring 2019-01-21 10:46:22.888573585 +0100 ++++ oauth2client-4.1.3/tox.ini 2019-01-21 10:47:05.105064487 +0100 +@@ -13,7 +13,6 @@ basedeps = mock>=1.3.0 + fasteners + deps = {[testenv]basedeps} + django +- keyring + jsonpickle + setenv = + pypy: with_gmp=no diff --git a/SOURCES/rsa-to-cryptography.patch b/SOURCES/rsa-to-cryptography.patch deleted file mode 100644 index 54fb3cb..0000000 --- a/SOURCES/rsa-to-cryptography.patch +++ /dev/null @@ -1,101 +0,0 @@ -diff -uNr a/oauth2client/_pure_python_crypt.py b/oauth2client/_pure_python_crypt.py ---- a/oauth2client/_pure_python_crypt.py 2016-10-14 19:53:53.000000000 +0200 -+++ b/oauth2client/_pure_python_crypt.py 2018-06-21 15:40:25.216478384 +0200 -@@ -23,7 +23,10 @@ - from pyasn1_modules import pem - from pyasn1_modules.rfc2459 import Certificate - from pyasn1_modules.rfc5208 import PrivateKeyInfo --import rsa -+from cryptography.hazmat.primitives import serialization, hashes -+from cryptography.hazmat.primitives.asymmetric import padding -+from cryptography import x509 -+from cryptography.hazmat.backends import default_backend - import six - - from oauth2client import _helpers -@@ -70,7 +73,8 @@ - """ - - def __init__(self, pubkey): -- self._pubkey = pubkey -+ self._pubkey = serialization.load_pem_public_key(pubkey, -+ backend=default_backend()) - - def verify(self, message, signature): - """Verifies a message against a signature. -@@ -87,8 +91,9 @@ - """ - message = _helpers._to_bytes(message, encoding='utf-8') - try: -- return rsa.pkcs1.verify(message, signature, self._pubkey) -- except (ValueError, rsa.pkcs1.VerificationError): -+ return self._pubkey.verify(signature, message, padding.PKCS1v15(), -+ hashes.SHA256()) -+ except (ValueError, TypeError, InvalidSignature): - return False - - @classmethod -@@ -112,16 +117,18 @@ - """ - key_pem = _helpers._to_bytes(key_pem) - if is_x509_cert: -- der = rsa.pem.load_pem(key_pem, 'CERTIFICATE') -+ der = x509.load_pem_x509_certificate(pem_data, default_backend()) - asn1_cert, remaining = decoder.decode(der, asn1Spec=Certificate()) - if remaining != b'': - raise ValueError('Unused bytes', remaining) - - cert_info = asn1_cert['tbsCertificate']['subjectPublicKeyInfo'] - key_bytes = _bit_list_to_bytes(cert_info['subjectPublicKey']) -- pubkey = rsa.PublicKey.load_pkcs1(key_bytes, 'DER') -+ pubkey = serialization.load_der_public_key(decoded_key, -+ backend=default_backend()) - else: -- pubkey = rsa.PublicKey.load_pkcs1(key_pem, 'PEM') -+ pubkey = serialization.load_pem_public_key(decoded_key, -+ backend=default_backend()) - return cls(pubkey) - - -@@ -134,6 +141,8 @@ - - def __init__(self, pkey): - self._key = pkey -+ self._pubkey = serialization.load_pem_private_key(pkey, -+ backend=default_backend()) - - def sign(self, message): - """Signs a message. -@@ -145,7 +154,7 @@ - string, The signature of the message for the given key. - """ - message = _helpers._to_bytes(message, encoding='utf-8') -- return rsa.pkcs1.sign(message, self._key, 'SHA-256') -+ return self._key.sign(message, padding.PKCS1v15(), hashes.SHA256()) - - @classmethod - def from_string(cls, key, password='notasecret'): -@@ -168,16 +177,19 @@ - six.StringIO(key), _PKCS1_MARKER, _PKCS8_MARKER) - - if marker_id == 0: -- pkey = rsa.key.PrivateKey.load_pkcs1(key_bytes, -- format='DER') -+ pkey = serialization.load_der_private_key( -+ key_bytes, password=None, -+ backend=default_backend()) -+ - elif marker_id == 1: - key_info, remaining = decoder.decode( - key_bytes, asn1Spec=_PKCS8_SPEC) - if remaining != b'': - raise ValueError('Unused bytes', remaining) - pkey_info = key_info.getComponentByName('privateKey') -- pkey = rsa.key.PrivateKey.load_pkcs1(pkey_info.asOctets(), -- format='DER') -+ pkey = serialization.load_der_private_key( -+ pkey_info.asOctets(), password=None, -+ backend=default_backend()) - else: - raise ValueError('No key could be detected.') - diff --git a/SPECS/python-oauth2client.spec b/SPECS/python-oauth2client.spec index f611d17..fb2e7f0 100644 --- a/SPECS/python-oauth2client.spec +++ b/SPECS/python-oauth2client.spec @@ -3,131 +3,47 @@ # Share doc between python- and python3- %global _docdir_fmt %{name} - -%if 0%{?fedora} || 0%{?rhel} > 7 -%bcond_without python3 -%else -%bcond_with python3 -%endif - -%if 0%{?rhel} < 7 -%bcond_without python2 -%else -%bcond_with python2 -%endif - Name: python-%{srcname} -Version: 4.1.2 -Release: 6%{?dist} +Version: 4.1.3 +Release: 27%{?dist} Summary: %{sum} -Group: Development/Languages -License: ASL 2.0 +License: Apache-2.0 URL: https://github.com/google/%{srcname} Source0: https://github.com/google/%{srcname}/archive/v%{version}.tar.gz#/%{srcname}-%{version}.tar.gz Patch0: docs-build-fix.patch -Patch1: rsa-to-cryptography.patch +Patch1: doc-fix.patch +Patch2: keyring-remove.patch BuildArch: noarch +#BuildRequires: %{_bindir}/tox +BuildRequires: python3-devel -%if %{with python2} -BuildRequires: python2-devel -BuildRequires: pytest -BuildRequires: python2-setuptools -BuildRequires: python2-fasteners -BuildRequires: python2-six >= 1.6.1 -%endif - -%if 0%{?fedora} -# Needed for docs build -BuildRequires: pyOpenSSL -BuildRequires: python-crypto -BuildRequires: python2-django1.11 -BuildRequires: python-jsonpickle -BuildRequires: python-flask -BuildRequires: python2-gflags -BuildRequires: python-httplib2 -BuildRequires: python-keyring -BuildRequires: python-mock -BuildRequires: python-nose -BuildRequires: python2-pyasn1 >= 0.1.7 -BuildRequires: python2-pyasn1-modules >= 0.0.5 -BuildRequires: python2-cryptography >= 1.7.2 -BuildRequires: python-sqlalchemy -BuildRequires: python-tox -BuildRequires: python-unittest2 -BuildRequires: python-webtest -# RHEL 7 has too old a version of python-sphinx -BuildRequires: python-sphinx > 1.3 -BuildRequires: python-sphinx_rtd_theme -%endif - -%if %{with python3} BuildRequires: python3-setuptools BuildRequires: python3-devel -# For tests only -#BuildRequires: python3-fasteners -#BuildRequires: python3-mock -#BuildRequires: python3-pyasn1 >= 0.1.7 -#BuildRequires: python3-pyasn1-modules >= 0.0.5 -#BuildRequires: python3-tox -#BuildRequires: python3-pytest -%endif +BuildRequires: python3-fasteners +BuildRequires: python3-pyasn1 >= 0.1.7 +BuildRequires: python3-pyasn1-modules >= 0.0.5 +BuildRequires: python3-pytest %description This is a python client module for accessing resources protected by OAuth 2.0 -%if %{with python2} -%package -n python2-%{srcname} -Summary: %{sum} -%{?python_provide:%python_provide python2-%{srcname}} - -Requires: pyOpenSSL -Requires: python2-gflags -Requires: python-httplib2 -Requires: python-keyring -Requires: python2-pyasn1 >= 0.1.7 -Requires: python2-pyasn1-modules >= 0.0.5 -Requires: python2-cryptography >= 1.7.2 -Requires: python2-fasteners -Requires: python2-six >= 1.6.1 - -%description -n python2-%{srcname} -This is a python client module for accessing resources protected by OAuth 2.0 -%endif - -%if %{with python3} %package -n python3-%{srcname} Summary: %{sum} %{?python_provide:%python_provide python3-%{srcname}} Requires: python3-pyOpenSSL -Requires: python3-gflags Requires: python3-fasteners -Requires: python3-httplib2 >= 0.9.1 -#Requires: python3-keyring -Requires: python3-pyasn1 >= 0.1.7 -Requires: python3-pyasn1-modules >= 0.0.5 -Requires: python3-cryptography >= 1.7.2 -Requires: python3-six >= 1.6.1 %description -n python3-%{srcname} This is a python client module for accessing resources protected by OAuth 2.0 -%endif - -%if 0%{?fedora} -%package doc -Summary: Documentation for python oauth2client - -%description doc -The python-oauth2client-doc package provides the documentation -for the package. Documentation is shipped in html format. -%endif %prep %setup -q -n %{srcname}-%{version} -%patch0 -p1 -b .doc -%patch1 -p1 +%patch -P0 -p1 -b .doc +%patch -P1 -p1 -b .doc2 +%patch -P2 -p1 -b .keyring # Remove the version constraint on httplib2. From reading upstream's git log, # it seems the only reason they require a new version is to force python3 @@ -138,89 +54,135 @@ sed -i 's/httplib2>=0.9.1/httplib2/' setup.py # This is removed because it breaks the docs build otherwise rm -f docs/source/oauth2client.contrib.appengine.rst oauth2client/appengine.py -%if %{with python2} -rm -rf %{py2dir} -cp -a . %{py2dir} -%endif +# Remove keyring support +rm oauth2client/contrib/keyring_storage.py tests/contrib/test_keyring_storage.py docs/source/oauth2client.contrib.keyring_storage.rst + +# Remove deprecated PyPI mock dependency, replacing it with unittest.mock. See +# https://fedoraproject.org/wiki/Changes/DeprecatePythonMock. Since +# oauth2client is deprecated/archived upstream, this patch must be +# downstream-only. The find-then-modify pattern keeps us from discarding mtimes +# on any sources that do not need modification. +find docs tests -type f \( -name '*.py' -o -name '*.py.doc' \) -exec \ + gawk '/^import mock$/ { print FILENAME; nextfile }' '{}' '+' | + xargs -r -t sed -r -i 's/^import mock$/from unittest &/' +sed -r -i 's/\bmock.*//' tox.ini + %build -%if %{with python3} %py3_build -%endif - -%if 0%{?fedora} -export PYTHONPATH=`pwd` -pushd docs -# Not running with smp_flags as sometimes sphinx fails when run -# with parallel make -make html -popd -unset PYTHONPATH -rm -vr docs/_build/html/_sources -rm -vr docs/_build/html/_static/fonts -rm -v docs/_build/html/{.buildinfo,objects.inv} -%endif - -%if %{with python2} -pushd %{py2dir} -%py2_build -%endif %install -%if %{with python3} %py3_install -%endif - -%if %{with python2} -pushd %{py2dir} -%py2_install -popd -%endif %check - -%if %{with python2} -pushd %{py2dir} -tox -v --sitepackages -e py27 -popd -%endif - -%if %{with python3} -#python3-tox --sitepackages -e py35 -%endif +#tox -v --sitepackages -e py%%{python3_version_nodots} # We remove tests currently, we will ship them eventually # This is a bit of a hack until I package the test scripts in a separate package rm -r $(find %{_buildrootdir} -type d -name 'tests') || /bin/true -%if %{with python2} -%files -n python2-%{srcname} -%license LICENSE -%doc CHANGELOG.md CONTRIBUTING.md README.md -%{python2_sitelib}/%{srcname} -%{python2_sitelib}/%{srcname}-%{version}-*.egg-info -%endif - -%if 0%{?fedora} -%files doc -%doc docs/_build/html -%endif - -%if %{with python3} %files -n python3-%{srcname} %license LICENSE %doc CHANGELOG.md CONTRIBUTING.md README.md %{python3_sitelib}/%{srcname} %{python3_sitelib}/%{srcname}*.egg-info -%endif %changelog -* Mon Jul 30 2018 Oyvind Albrigtsen - 4.1.2-6 -- Use FIPS 140-2 compliant RSA library +* Thu Dec 26 2024 Arkady L. Shane - 4.1.3-27 +- Rebuilt for MSVSphere 10 + +* Fri Jul 19 2024 Fedora Release Engineering - 4.1.3-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 4.1.3-26 +- Rebuilt for Python 3.13 + +* Fri Jan 26 2024 Fedora Release Engineering - 4.1.3-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 4.1.3-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 4.1.3-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 4.1.3-22 +- Rebuilt for Python 3.12 + +* Wed Jun 07 2023 Jan Friesse - 4.1.3-21 +- migrated to SPDX license + +* Fri Jan 20 2023 Fedora Release Engineering - 4.1.3-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 4.1.3-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 4.1.3-18 +- Rebuilt for Python 3.11 + +* Fri Feb 11 2022 Benjamin A. Beasley - 4.1.3-17 +- Remove dependency on deprecated PyPI mock + +* Fri Jan 21 2022 Fedora Release Engineering - 4.1.3-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 4.1.3-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 4.1.3-14 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 4.1.3-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 4.1.3-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 4.1.3-11 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 4.1.3-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 15 2020 Gwyn Ciesla - 4.1.3-9 +- Don't BR tox if we don't run tests. + +* Sat Oct 26 2019 Orion Poplawski - 4.1.3-8 +- Drop py3dir +- Drop obsolete dependency on python-gflags + +* Thu Oct 03 2019 Miro Hrončok - 4.1.3-7 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Sat Aug 24 2019 Gwyn Ciesla - 4.1.3-6 +- Drop Python 2. + +* Mon Aug 19 2019 Miro Hrončok - 4.1.3-5 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 4.1.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Apr 30 2019 Miro Hrončok - 4.1.3-3 +- Don't ship docs, use python2 names to declare Python 2 dependencies + +* Sat Feb 02 2019 Fedora Release Engineering - 4.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 21 2019 Michele Baldessari - 4.1.3-1 +- New upstream +- Disable keyring requires as python-keyring is gone + +* Sat Jul 14 2018 Fedora Release Engineering - 4.1.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 4.1.2-6 +- Rebuilt for Python 3.7 -* Tue Jun 05 2018 Troy Dawson - 4.1.2-5.1 -- Do not do python2 in RHEL8 +* Tue May 08 2018 Miro Hrončok - 4.1.2-5 +- Fix BuildRequires to require the tox command and not the python2 module * Wed Mar 21 2018 Michele Baldessari - 4.1.2-4 - Fix FTBFS due to missing python-django (rhbz#1556223)