diff --git a/dev-python/pycryptodomex/Manifest b/dev-python/pycryptodomex/Manifest index 3e74325..ea51622 100644 --- a/dev-python/pycryptodomex/Manifest +++ b/dev-python/pycryptodomex/Manifest @@ -1,2 +1,2 @@ -DIST pycryptodomex-3.10.1.tar.gz 3787268 SHA256 541cd3e3e252fb19a7b48f420b798b53483302b7fe4d9954c947605d0a263d62 SHA512 0ffd37e75caf6472529bbc231c7e74290267094eb3a6013a55d32dc6e11313017bb8161bdfef6c96e911e788b837caa445a9e1fe3e17e5e0254c139378f2a5e6 WHIRLPOOL e07f6da41f17da89d59d4656aa1c40fe039f6bbb14fb7dde9cfdb0d86c639005f7e87f747c937c3ad4e941b39634c0399ebb905aca05625fc60d4ca5efd7797b DIST pycryptodomex-3.10.4.tar.gz 3797210 SHA256 acd3498a8ccf8ad20ce7daa5f7f5e6521465eeceb026f28a6adb0228dd9fcc6e SHA512 38a24f8a51c6b3d03e6fc7226921956bfaea4d8839a1e308de417d76931eedc969d913b62d7001bf2116ab613c31e6802194127af25cee2ff83971f871a62111 WHIRLPOOL 60786c71df0a9ca92ebb7a7633676bc6aaf19ebdb69f68a99058252e715462067f53b12cb83277d82d16e3ab4b49c594061e2e0c73a1bddd976b1f51877b626a +DIST pycryptodomex-3.14.1.tar.gz 3372625 SHA256 2ce76ed0081fd6ac8c74edc75b9d14eca2064173af79843c24fa62573263c1f2 SHA512 cd01431b9178bcb27332741097cf020859c48df83219bac9d6ffa1f52db1f112b562478260baa1aed4674e2833d6e0cd5794a43dafb09fda007fdce7a7330495 WHIRLPOOL 678b958ceb09528c8400f4ff65ba526a9b86cb7465e6eab4db0815f5f8b080931f7ef3254efb162ef65d36d82bfa56a313be8294516670b4559a6724ab79c227 diff --git a/dev-python/pycryptodomex/files/pycryptodome-3.10.1-system-libtomcrypt.patch b/dev-python/pycryptodomex/files/pycryptodome-3.10.1-system-libtomcrypt.patch new file mode 100644 index 0000000..51a5766 --- /dev/null +++ b/dev-python/pycryptodomex/files/pycryptodome-3.10.1-system-libtomcrypt.patch @@ -0,0 +1,50 @@ +diff -dupr a/setup.py b/setup.py +--- a/setup.py 2021-02-09 13:49:46.356455141 +0100 ++++ b/setup.py 2021-02-09 13:50:49.351076275 +0100 +@@ -367,13 +367,15 @@ ext_modules = [ + sources=["src/CAST.c"], + py_limited_api=True), + Extension("Crypto.Cipher._raw_des", +- include_dirs=['src/', 'src/libtom/'], ++ include_dirs=['src/'], + sources=["src/DES.c"], +- py_limited_api=True), ++ py_limited_api=True, ++ extra_link_args=["-ltomcrypt"]), + Extension("Crypto.Cipher._raw_des3", +- include_dirs=['src/', 'src/libtom/'], ++ include_dirs=['src/'], + sources=["src/DES3.c"], +- py_limited_api=True), ++ py_limited_api=True, ++ extra_link_args=["-ltomcrypt"]), + Extension("Crypto.Util._cpuid_c", + include_dirs=['src/'], + sources=['src/cpuid.c'], +@@ -410,9 +412,10 @@ ext_modules = [ + sources=["src/ARC4.c"], + py_limited_api=True), + Extension("Crypto.Cipher._Salsa20", +- include_dirs=['src/', 'src/libtom/'], ++ include_dirs=['src/'], + sources=["src/Salsa20.c"], +- py_limited_api=True), ++ py_limited_api=True, ++ extra_link_args=["-ltomcrypt"]), + Extension("Crypto.Cipher._chacha20", + include_dirs=['src/'], + sources=["src/chacha20.c"], +Only in b: setup.py.orig +Only in b: setup.py.rej +diff -dupr a/src/DES.c b/src/DES.c +--- a/src/DES.c 2021-02-09 13:49:46.336454729 +0100 ++++ b/src/DES.c 2021-02-09 13:50:02.640123617 +0100 +@@ -39,7 +39,7 @@ FAKE_INIT(raw_des3) + + /* Include the actial DES implementation */ + #define LTC_NO_PROTOTYPES +-#include "libtom/tomcrypt_des.c" ++#include + + struct block_state { + symmetric_key sk; diff --git a/dev-python/pycryptodomex/metadata.xml b/dev-python/pycryptodomex/metadata.xml index cfee3ba..f9c82e8 100644 --- a/dev-python/pycryptodomex/metadata.xml +++ b/dev-python/pycryptodomex/metadata.xml @@ -10,17 +10,12 @@ Gentoo Science Project - PyCryptodome is a self-contained Python package of low-level - cryptographic primitives. It is a fork of PyCrypto, and brings - numerous enhancements with respect to the official versions of - PyCrypto, such as Authenticated encryption modes (GCM, CCM, EAX, - SIV, OCB), Accelerated AES on Intel platforms via AES-NI, Elliptic - curves cryptography (NIST P-256, P-384 and P-521 curves only), - SHA-3 (including SHAKE XOFs), truncated SHA-512 and BLAKE2 hash - algorithms, and many more. PyCryptodome is not a wrapper to a - separate C library like OpenSSL. To the largest possible extent, - algorithms are implemented in pure Python. Only the pieces that - are extremely critical to performance (e.g. block ciphers) are - implemented as C extensions. + Equivalent package to dev-python/cryptodome which installs + modules under the Cryptodome package, so that PyCrypto and + PyCryptodome can coexist. + + Legrandin/pycryptodome + pycryptodomex + diff --git a/dev-python/pycryptodomex/pycryptodomex-3.10.1.ebuild b/dev-python/pycryptodomex/pycryptodomex-3.10.1.ebuild deleted file mode 100644 index 91fda6d..0000000 --- a/dev-python/pycryptodomex/pycryptodomex-3.10.1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{8..10} ) - -inherit distutils-r1 - -DESCRIPTION="Cryptographic library for Python" -HOMEPAGE="https://www.pycryptodome.org https://pypi.org/project/pycryptodomex/" -SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" -IUSE="test" -RESTRICT="test" -# Numerous tests fail, reported upstream https://github.com/Legrandin/pycryptodome/issues/549 - -DOCS="README.rst" - -RDEPEND="" -BDEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] - test? ( - dev-python/nose[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - )" - -python_test() { - nosetests --verbose || die - py.test -v -v || die -} diff --git a/dev-python/pycryptodomex/pycryptodomex-3.10.4.ebuild b/dev-python/pycryptodomex/pycryptodomex-3.10.4.ebuild index 91fda6d..0f5ad73 100644 --- a/dev-python/pycryptodomex/pycryptodomex-3.10.4.ebuild +++ b/dev-python/pycryptodomex/pycryptodomex-3.10.4.ebuild @@ -1,9 +1,11 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{8..10} ) +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} pypy3) +PYTHON_REQ_USE="threads(+)" inherit distutils-r1 @@ -11,24 +13,31 @@ DESCRIPTION="Cryptographic library for Python" HOMEPAGE="https://www.pycryptodome.org https://pypi.org/project/pycryptodomex/" SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" -LICENSE="BSD" +LICENSE="BSD-2 Unlicense" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" IUSE="test" -RESTRICT="test" -# Numerous tests fail, reported upstream https://github.com/Legrandin/pycryptodome/issues/549 +RESTRICT="!test? ( test )" -DOCS="README.rst" +DEPEND=" + dev-libs/gmp:0= + >=dev-libs/libtomcrypt-1.18.2-r1:= +" +BDEPEND="virtual/python-cffi[${PYTHON_USEDEP}]" +RDEPEND=" + ${DEPEND} + ${BDEPEND} +" -RDEPEND="" -BDEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] - test? ( - dev-python/nose[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}] - )" +PATCHES=( + "${FILESDIR}/pycryptodome-3.10.1-system-libtomcrypt.patch" +) -python_test() { - nosetests --verbose || die - py.test -v -v || die +distutils_enable_tests setup.py + +python_prepare_all() { + # make sure we're unbundling it correctly + rm -r src/libtom || die + + distutils-r1_python_prepare_all } diff --git a/dev-python/pycryptodomex/pycryptodomex-3.14.1.ebuild b/dev-python/pycryptodomex/pycryptodomex-3.14.1.ebuild new file mode 100644 index 0000000..0f5ad73 --- /dev/null +++ b/dev-python/pycryptodomex/pycryptodomex-3.14.1.ebuild @@ -0,0 +1,43 @@ +# 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..10} pypy3) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +DESCRIPTION="Cryptographic library for Python" +HOMEPAGE="https://www.pycryptodome.org https://pypi.org/project/pycryptodomex/" +SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD-2 Unlicense" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-libs/gmp:0= + >=dev-libs/libtomcrypt-1.18.2-r1:= +" +BDEPEND="virtual/python-cffi[${PYTHON_USEDEP}]" +RDEPEND=" + ${DEPEND} + ${BDEPEND} +" + +PATCHES=( + "${FILESDIR}/pycryptodome-3.10.1-system-libtomcrypt.patch" +) + +distutils_enable_tests setup.py + +python_prepare_all() { + # make sure we're unbundling it correctly + rm -r src/libtom || die + + distutils-r1_python_prepare_all +}