diff --git a/dev-python/cryptography/cryptography-3.4.7-r3.ebuild b/dev-python/cryptography/cryptography-3.4.7-r3.ebuild new file mode 100644 index 0000000..a986780 --- /dev/null +++ b/dev-python/cryptography/cryptography-3.4.7-r3.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..11} pypy3 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing + +VEC_P=cryptography_vectors-${PV} +DESCRIPTION="Library providing cryptographic recipes and primitives" +HOMEPAGE=" + https://github.com/pyca/cryptography/ + https://pypi.org/project/cryptography/ +" +SRC_URI=" + mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz + test? ( mirror://pypi/c/cryptography_vectors/${VEC_P}.tar.gz ) +" + +LICENSE="|| ( Apache-2.0 BSD )" +SLOT="0" +KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +RDEPEND=" + $(python_gen_cond_dep ' + >=dev-python/cffi-1.8:=[${PYTHON_USEDEP}] + ' 'python*') +" +BDEPEND=" + test? ( + >=dev-python/hypothesis-1.11.4[${PYTHON_USEDEP}] + dev-python/iso8601[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/pyasn1-modules[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + dev-python/pytest-subtests[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +DEPEND=" + >=dev-libs/openssl-1.0.2o-r6:0= +" +RDEPEND+=${DEPEND} + +PATCHES=( + "${FILESDIR}/${P}-py310.patch" +) + +src_prepare() { + default + + # avoid automagic dependency on dev-libs/openssl[sslv3] + # https://bugs.gentoo.org/789450 + export CPPFLAGS="${CPPFLAGS} -DOPENSSL_NO_SSL3_METHOD=1" + + # work around availability macros not supported in GCC (yet) + if [[ ${CHOST} == *-darwin* ]] ; then + local darwinok=0 + [[ ${CHOST##*-darwin} -ge 16 ]] && darwinok=1 + sed -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \ + -i src/_cffi_src/openssl/src/osrandom_engine.c || die + fi + + # this version does not really use Rust, it just creates a dummy + # extension to break stuff + export CRYPTOGRAPHY_DONT_BUILD_RUST=1 + sed -e 's:from setuptools_rust import RustExtension:pass:' \ + -e '/setup_requires/d' \ + -i setup.py || die +} + +python_test() { + local -x PYTHONPATH=${PYTHONPATH}:${WORKDIR}/${VEC_P} + epytest -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")" +} 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 0000000..d961af8 --- /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) == "" ++ assert str(TestEnum.value) == "TestEnum.value" diff --git a/media-gfx/realesrgan-ncnn-vulkan/Manifest b/media-gfx/realesrgan-ncnn-vulkan/Manifest new file mode 100644 index 0000000..a2c01d6 --- /dev/null +++ b/media-gfx/realesrgan-ncnn-vulkan/Manifest @@ -0,0 +1,3 @@ +DIST realesrgan-ncnn-vulkan-0.2.0.zip 46931474 BLAKE2B c16c05c343501272f5b4df6db7e7f8c592c4f8c8170ca0a0181c4433d1889ddea702d65fc134013bdaca302eeeab6e5b6d6fbad407adb7a2afa0acbefd6f4eca SHA512 f462692524f3a85261714fe182e7f0c680101eb48558ae644df25145df5bbbe65f154ca0fcb8364dae2a2e1a362ac24df1869756d2e567ea6a4f767009213e9f +DIST v0.2.0.zip 146717 BLAKE2B c0bb925c86b51f8c76b7cc7033d49b46e9a66f396e05bc334297933a01448c513a7e00d7eacc84bea5ca2c32706982d5bbcb59cd97823150ccc3a0b29a8e87a6 SHA512 1be70ebd9ec2e9feeb1dc616bd8401f46c5aae8d2f758ff725bfe2ef949cc90cf647bedbb81e4df45b4a21752ad82ca92af6a5df63166a27372ad17904742b26 +EBUILD realesrgan-ncnn-vulkan-0.2.0.ebuild 1504 BLAKE2B 99c7386443296abf660f533369447e60cc182191373a2bbff36874e61b07a06fe42b1a176955c769c2dba5e0108020a7fe2c3bbf2309545053ce9fd1f7bc8a67 SHA512 eb572cb2cf5ed6e502b67a9a05f8312674d1112d695715038597115366b529319b9221e149a4da51d17178139433dafe980a73a4d0773817458ace57229e8317 diff --git a/media-gfx/realesrgan-ncnn-vulkan/realesrgan-ncnn-vulkan-0.2.0.ebuild b/media-gfx/realesrgan-ncnn-vulkan/realesrgan-ncnn-vulkan-0.2.0.ebuild new file mode 100644 index 0000000..0ccf3dc --- /dev/null +++ b/media-gfx/realesrgan-ncnn-vulkan/realesrgan-ncnn-vulkan-0.2.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Big thank you to whoever made the original waifu2x-ncnn-vulkan ebuild, which I took and modified using the existing AUR PKGBUILD as reference +# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=realesrgan-ncnn-vulkan + +EAPI=8 + +inherit cmake + +DESCRIPTION="NCNN implementation of Real-ESRGAN" +HOMEPAGE="https://github.com/xinntao/Real-ESRGAN" +SRC_URI="https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan/archive/refs/tags/v0.2.0.zip https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-ubuntu.zip -> ${P}.zip" +S="${WORKDIR}/Real-ESRGAN-ncnn-vulkan-0.2.0" + + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +BDEPEND="app-arch/unzip" + +RDEPEND=" + dev-libs/ncnn:=[vulkan] + media-libs/libwebp:= + media-libs/vulkan-loader" +DEPEND=" + ${RDEPEND} + dev-util/glslang + dev-util/vulkan-headers" + +src_prepare() { + CMAKE_USE_DIR=${S}/src + cmake_src_prepare + + # Update all paths to match installation for models. + sed "/PATHSTR\|model path/s|models-|${EPREFIX}/usr/share/${PN}/models-|" \ + -i src/main.cpp || die +} + +src_configure() { + local mycmakeargs=( + -DGLSLANG_TARGET_DIR="${ESYSROOT}"/usr/$(get_libdir)/cmake + -DUSE_SYSTEM_NCNN=ON + -DUSE_SYSTEM_WEBP=ON + -DCMAKE_INSTALL_PREFIX=/usr + ) + + cmake_src_configure +} + +src_install() { + dobin "${BUILD_DIR}"/realesrgan-ncnn-vulkan + + insinto /usr/share/${PN} + doins -r "${WORKDIR}"/models + + einstalldocs +}