From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1282232-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 203991382C5 for <garchives@archives.gentoo.org>; Sat, 15 May 2021 11:51:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E2050E086A; Sat, 15 May 2021 11:51:38 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 290C4E0843 for <gentoo-commits@lists.gentoo.org>; Sat, 15 May 2021 11:51:38 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C0C5833DE47 for <gentoo-commits@lists.gentoo.org>; Sat, 15 May 2021 11:51:36 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 2713178B for <gentoo-commits@lists.gentoo.org>; Sat, 15 May 2021 11:51:35 +0000 (UTC) From: "Michał Górny" <mgorny@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" <mgorny@gentoo.org> Message-ID: <1621079492.5afe2baaffb4746f159b3d82f6ed28c33c8f5e18.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/cryptography/, dev-python/cryptography/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-python/cryptography/cryptography-3.4.7-r1.ebuild dev-python/cryptography/cryptography-3.4.7.ebuild dev-python/cryptography/files/cryptography-3.4.7-py310.patch X-VCS-Directories: dev-python/cryptography/ dev-python/cryptography/files/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 5afe2baaffb4746f159b3d82f6ed28c33c8f5e18 X-VCS-Branch: master Date: Sat, 15 May 2021 11:51:35 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 23d3de46-b5ff-4e8f-acb9-ce40e3a770d2 X-Archives-Hash: 8156afda1d825c4d8a27e99f0cd272d5 commit: 5afe2baaffb4746f159b3d82f6ed28c33c8f5e18 Author: Ekaterina Vaartis <vaartis <AT> kotobank <DOT> ch> AuthorDate: Fri May 14 20:05:14 2021 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sat May 15 11:51:32 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5afe2baa dev-python/cryptography: bump to r1 and backport the fixes for 3.10 Signed-off-by: Ekaterina Vaartis <vaartis <AT> kotobank.ch> Closes: https://github.com/gentoo/gentoo/pull/20795 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> ...y-3.4.7.ebuild => cryptography-3.4.7-r1.ebuild} | 6 +- .../files/cryptography-3.4.7-py310.patch | 301 +++++++++++++++++++++ 2 files changed, 306 insertions(+), 1 deletion(-) diff --git a/dev-python/cryptography/cryptography-3.4.7.ebuild b/dev-python/cryptography/cryptography-3.4.7-r1.ebuild similarity index 95% rename from dev-python/cryptography/cryptography-3.4.7.ebuild rename to dev-python/cryptography/cryptography-3.4.7-r1.ebuild index 59b98063ce3..1a0d6a6f5d9 100644 --- a/dev-python/cryptography/cryptography-3.4.7.ebuild +++ b/dev-python/cryptography/cryptography-3.4.7-r1.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7..9} pypy3 ) +PYTHON_COMPAT=( python3_{7..10} pypy3 ) PYTHON_REQ_USE="threads(+)" inherit distutils-r1 multiprocessing @@ -41,6 +41,10 @@ DEPEND=" " RDEPEND+=${DEPEND} +PATCHES=( + "${FILESDIR}/${P}-py310.patch" +) + src_prepare() { default diff --git a/dev-python/cryptography/files/cryptography-3.4.7-py310.patch b/dev-python/cryptography/files/cryptography-3.4.7-py310.patch new file mode 100644 index 00000000000..d961af82b77 --- /dev/null +++ b/dev-python/cryptography/files/cryptography-3.4.7-py310.patch @@ -0,0 +1,301 @@ +diff --git a/src/cryptography/exceptions.py b/src/cryptography/exceptions.py +index f5860590..3bd98d82 100644 +--- a/src/cryptography/exceptions.py ++++ b/src/cryptography/exceptions.py +@@ -3,10 +3,10 @@ + # for complete details. + + +-from enum import Enum ++from cryptography import utils + + +-class _Reasons(Enum): ++class _Reasons(utils.Enum): + BACKEND_MISSING_INTERFACE = 0 + UNSUPPORTED_HASH = 1 + UNSUPPORTED_CIPHER = 2 +diff --git a/src/cryptography/hazmat/primitives/_serialization.py b/src/cryptography/hazmat/primitives/_serialization.py +index 96a5ed9b..160a6b89 100644 +--- a/src/cryptography/hazmat/primitives/_serialization.py ++++ b/src/cryptography/hazmat/primitives/_serialization.py +@@ -3,13 +3,14 @@ + # for complete details. + + import abc +-from enum import Enum ++ ++from cryptography import utils + + # This exists to break an import cycle. These classes are normally accessible + # from the serialization module. + + +-class Encoding(Enum): ++class Encoding(utils.Enum): + PEM = "PEM" + DER = "DER" + OpenSSH = "OpenSSH" +@@ -18,14 +19,14 @@ class Encoding(Enum): + SMIME = "S/MIME" + + +-class PrivateFormat(Enum): ++class PrivateFormat(utils.Enum): + PKCS8 = "PKCS8" + TraditionalOpenSSL = "TraditionalOpenSSL" + Raw = "Raw" + OpenSSH = "OpenSSH" + + +-class PublicFormat(Enum): ++class PublicFormat(utils.Enum): + SubjectPublicKeyInfo = "X.509 subjectPublicKeyInfo with PKCS#1" + PKCS1 = "Raw PKCS#1" + OpenSSH = "OpenSSH" +@@ -34,7 +35,7 @@ class PublicFormat(Enum): + UncompressedPoint = "X9.62 Uncompressed Point" + + +-class ParameterFormat(Enum): ++class ParameterFormat(utils.Enum): + PKCS3 = "PKCS3" + + +diff --git a/src/cryptography/hazmat/primitives/kdf/kbkdf.py b/src/cryptography/hazmat/primitives/kdf/kbkdf.py +index ac36474f..75fe7d51 100644 +--- a/src/cryptography/hazmat/primitives/kdf/kbkdf.py ++++ b/src/cryptography/hazmat/primitives/kdf/kbkdf.py +@@ -4,7 +4,6 @@ + + + import typing +-from enum import Enum + + from cryptography import utils + from cryptography.exceptions import ( +@@ -19,11 +18,11 @@ from cryptography.hazmat.primitives import constant_time, hashes, hmac + from cryptography.hazmat.primitives.kdf import KeyDerivationFunction + + +-class Mode(Enum): ++class Mode(utils.Enum): + CounterMode = "ctr" + + +-class CounterLocation(Enum): ++class CounterLocation(utils.Enum): + BeforeFixed = "before_fixed" + AfterFixed = "after_fixed" + +diff --git a/src/cryptography/hazmat/primitives/serialization/pkcs7.py b/src/cryptography/hazmat/primitives/serialization/pkcs7.py +index bcd9e330..57aac7e3 100644 +--- a/src/cryptography/hazmat/primitives/serialization/pkcs7.py ++++ b/src/cryptography/hazmat/primitives/serialization/pkcs7.py +@@ -3,8 +3,8 @@ + # for complete details. + + import typing +-from enum import Enum + ++from cryptography import utils + from cryptography import x509 + from cryptography.hazmat.backends import _get_backend + from cryptography.hazmat.primitives import hashes, serialization +@@ -35,7 +35,7 @@ _ALLOWED_PRIVATE_KEY_TYPES = typing.Union[ + ] + + +-class PKCS7Options(Enum): ++class PKCS7Options(utils.Enum): + Text = "Add text/plain MIME type" + Binary = "Don't translate input data into canonical MIME format" + DetachedSignature = "Don't embed data in the PKCS7 structure" +diff --git a/src/cryptography/utils.py b/src/cryptography/utils.py +index ef0fc443..9e571cfd 100644 +--- a/src/cryptography/utils.py ++++ b/src/cryptography/utils.py +@@ -4,6 +4,7 @@ + + + import abc ++import enum + import inspect + import sys + import typing +@@ -162,3 +163,13 @@ int_from_bytes = deprecated( + "int_from_bytes is deprecated, use int.from_bytes instead", + DeprecatedIn34, + ) ++ ++ ++# Python 3.10 changed representation of enums. We use well-defined object ++# representation and string representation from Python 3.9. ++class Enum(enum.Enum): ++ def __repr__(self): ++ return f"<{self.__class__.__name__}.{self._name_}: {self._value_!r}>" ++ ++ def __str__(self): ++ return f"{self.__class__.__name__}.{self._name_}" +diff --git a/src/cryptography/x509/base.py b/src/cryptography/x509/base.py +index 5505fa3b..e3846c33 100644 +--- a/src/cryptography/x509/base.py ++++ b/src/cryptography/x509/base.py +@@ -7,9 +7,9 @@ import abc + import datetime + import os + import typing +-from enum import Enum + + from cryptography.hazmat._types import _PRIVATE_KEY_TYPES, _PUBLIC_KEY_TYPES ++from cryptography import utils + from cryptography.hazmat.backends import _get_backend + from cryptography.hazmat.primitives import hashes, serialization + from cryptography.hazmat.primitives.asymmetric import ( +@@ -66,7 +66,7 @@ def _convert_to_naive_utc_time(time: datetime.datetime) -> datetime.datetime: + return time + + +-class Version(Enum): ++class Version(utils.Enum): + v1 = 0 + v3 = 2 + +diff --git a/src/cryptography/x509/certificate_transparency.py b/src/cryptography/x509/certificate_transparency.py +index d51bee92..d80f051a 100644 +--- a/src/cryptography/x509/certificate_transparency.py ++++ b/src/cryptography/x509/certificate_transparency.py +@@ -5,15 +5,16 @@ + + import abc + import datetime +-from enum import Enum + ++from cryptography import utils + +-class LogEntryType(Enum): ++ ++class LogEntryType(utils.Enum): + X509_CERTIFICATE = 0 + PRE_CERTIFICATE = 1 + + +-class Version(Enum): ++class Version(utils.Enum): + v1 = 0 + + +diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py +index 6cae016a..742f1fa2 100644 +--- a/src/cryptography/x509/extensions.py ++++ b/src/cryptography/x509/extensions.py +@@ -8,7 +8,6 @@ import datetime + import hashlib + import ipaddress + import typing +-from enum import Enum + + from cryptography import utils + from cryptography.hazmat._der import ( +@@ -634,7 +633,7 @@ class DistributionPoint(object): + crl_issuer = utils.read_only_property("_crl_issuer") + + +-class ReasonFlags(Enum): ++class ReasonFlags(utils.Enum): + unspecified = "unspecified" + key_compromise = "keyCompromise" + ca_compromise = "cACompromise" +@@ -978,7 +977,7 @@ class TLSFeature(ExtensionType): + return hash(tuple(self._features)) + + +-class TLSFeatureType(Enum): ++class TLSFeatureType(utils.Enum): + # status_request is defined in RFC 6066 and is used for what is commonly + # called OCSP Must-Staple when present in the TLS Feature extension in an + # X.509 certificate. +diff --git a/src/cryptography/x509/name.py b/src/cryptography/x509/name.py +index a579aa21..9069a9f4 100644 +--- a/src/cryptography/x509/name.py ++++ b/src/cryptography/x509/name.py +@@ -3,14 +3,13 @@ + # for complete details. + + import typing +-from enum import Enum + + from cryptography import utils + from cryptography.hazmat.backends import _get_backend + from cryptography.x509.oid import NameOID, ObjectIdentifier + + +-class _ASN1Type(Enum): ++class _ASN1Type(utils.Enum): + UTF8String = 12 + NumericString = 18 + PrintableString = 19 +diff --git a/src/cryptography/x509/ocsp.py b/src/cryptography/x509/ocsp.py +index 1c5de73e..bcf210c1 100644 +--- a/src/cryptography/x509/ocsp.py ++++ b/src/cryptography/x509/ocsp.py +@@ -6,8 +6,8 @@ + import abc + import datetime + import typing +-from enum import Enum + ++from cryptography import utils + from cryptography import x509 + from cryptography.hazmat.primitives import hashes, serialization + from cryptography.x509.base import ( +@@ -27,12 +27,12 @@ _OIDS_TO_HASH = { + } + + +-class OCSPResponderEncoding(Enum): ++class OCSPResponderEncoding(utils.Enum): + HASH = "By Hash" + NAME = "By Name" + + +-class OCSPResponseStatus(Enum): ++class OCSPResponseStatus(utils.Enum): + SUCCESSFUL = 0 + MALFORMED_REQUEST = 1 + INTERNAL_ERROR = 2 +@@ -58,7 +58,7 @@ def _verify_algorithm(algorithm): + ) + + +-class OCSPCertStatus(Enum): ++class OCSPCertStatus(utils.Enum): + GOOD = 0 + REVOKED = 1 + UNKNOWN = 2 +diff --git a/tests/test_cryptography_utils.py b/tests/test_cryptography_utils.py +index 6b795e0c..803997ac 100644 +--- a/tests/test_cryptography_utils.py ++++ b/tests/test_cryptography_utils.py +@@ -2,6 +2,7 @@ + # 2.0, and the BSD License. See the LICENSE file in the root of this repository + # for complete details. + ++import enum + import typing + + import pytest +@@ -51,3 +52,13 @@ class TestCachedProperty(object): + assert len(accesses) == 1 + assert t.t == 14 + assert len(accesses) == 1 ++ ++ ++def test_enum(): ++ class TestEnum(utils.Enum): ++ value = "something" ++ ++ assert issubclass(TestEnum, enum.Enum) ++ assert isinstance(TestEnum.value, enum.Enum) ++ assert repr(TestEnum.value) == "<TestEnum.value: 'something'>" ++ assert str(TestEnum.value) == "TestEnum.value"