diff --git a/dev-python/crc32c/Manifest b/dev-python/crc32c/Manifest index 36d9e6e808a8a..b3f5e226066a4 100644 --- a/dev-python/crc32c/Manifest +++ b/dev-python/crc32c/Manifest @@ -1 +1,2 @@ DIST crc32c-2.8.tar.gz 48179 BLAKE2B 8a4a91d068fe2baed4f4f089fef77ef9f3fd24d0e10c029500740f04b09150eeeea761fe919968253bbf83bb084a91b2ae0a0cc9f3db509701e75f67110858ab SHA512 10f139333f912d62dee4b6c21590b3182c3e6652e31aceb1bdec28ca8817ef8aa26abec3f44e6a271cb5c4f8c4abd8942b56e4642a9ab434cb41866c1ce03e19 +DIST crc32c-2.9.tar.gz 48240 BLAKE2B 3b1ee57b0b374787e538b41270f05cc057cbb1b4dfb596fc5de2b7237f13e347ea185ad565764b224a903a9f032b5a524da62f61d3a26ad94f27e9cb9ec4fb3e SHA512 ef7db78766996dffad1eaa1c4f9e170c63ff483360bac353d3449afba90194db7aeff2cdafe7e016a2dc6daf7b01acb7e78ab8a8f5777d450e6712a7a7aa150c diff --git a/dev-python/crc32c/crc32c-2.9.ebuild b/dev-python/crc32c/crc32c-2.9.ebuild new file mode 100644 index 0000000000000..3f36fa36ba30d --- /dev/null +++ b/dev-python/crc32c/crc32c-2.9.ebuild @@ -0,0 +1,46 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="CRC32c algorithm in hardware and software" +HOMEPAGE=" + https://github.com/ICRAR/crc32c/ + https://pypi.org/project/crc32c/ +" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86" +# NB: these don't affect the build, they are only used for tests +IUSE="cpu_flags_arm_crc32 cpu_flags_x86_sse4_2" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + local -x CRC32C_SW_MODE + + # force = run "software" code (i.e. unoptimized) + # none = run "hardware" code (i.e. SSE4.2 / ARMv8 CRC32) + for CRC32C_SW_MODE in none force; do + if [[ ${CRC32C_SW_MODE} == none ]]; then + if ! use cpu_flags_arm_crc32 && ! use cpu_flags_x86_sse4_2; then + continue + fi + + # the test suite just skips all tests, so double-check + "${EPYTHON}" -c "import crc32c" || + die "Importing crc32c failed (accelerated code path broken?)" + fi + + einfo "Testing with CRC32C_SW_MODE=${CRC32C_SW_MODE}" + epytest + done +}