commit: 587bc926dd2685e92ae2643ad6ea81b7d594cc0b Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Mon Oct 7 16:45:55 2024 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Mon Oct 7 17:32:11 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=587bc926
dev-python/cramjam: Use system dev-libs/isa-l Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/cramjam/cramjam-2.9.0_rc1-r1.ebuild | 225 +++++++++++++++++++++++++ 1 file changed, 225 insertions(+) diff --git a/dev-python/cramjam/cramjam-2.9.0_rc1-r1.ebuild b/dev-python/cramjam/cramjam-2.9.0_rc1-r1.ebuild new file mode 100644 index 000000000000..dca92895d759 --- /dev/null +++ b/dev-python/cramjam/cramjam-2.9.0_rc1-r1.ebuild @@ -0,0 +1,225 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: you need to use top-level Cargo.lock to generate the crate list. +CRATES=" + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected]+2.15.1 + [email protected]+2.15.1 + [email protected] + [email protected] + [email protected]+1.0.8 + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected]+496255c + [email protected]+496255c + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected]+lz4-1.10.0 + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected] + [email protected]+zstd.1.5.6 + [email protected] +" + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +PYTHON_COMPAT=( pypy3 python3_{10..13} ) + +inherit cargo distutils-r1 pypi + +DESCRIPTION="Thin Python bindings to de/compression algorithms in Rust" +HOMEPAGE=" + https://github.com/milesgranger/cramjam/ + https://pypi.org/project/cramjam/ +" +SRC_URI+=" + ${CARGO_CRATE_URIS} +" + +LICENSE="MIT" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT MPL-2.0 + Unicode-DFS-2016 +" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86" + +DEPEND=" + app-arch/bzip2:= + app-arch/libdeflate:= + app-arch/lz4:= + app-arch/xz-utils:= + app-arch/zstd:= + dev-libs/c-blosc2:= + dev-libs/isa-l:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/cramjam/cramjam.*.so" + +src_prepare() { + sed -i -e '/strip/d' pyproject.toml || die + distutils-r1_src_prepare + export UNSAFE_PYO3_SKIP_VERSION_CHECK=1 + + # strip all the bundled C libraries + find "${ECARGO_VENDOR}"/*-sys-* \ + -name '*.c' -delete || die + + # https://github.com/10XGenomics/lz4-rs/pull/39 + pushd "${ECARGO_VENDOR}"/lz4-sys* >/dev/null || Die + eapply -p2 "${FILESDIR}/lz4-sys-unbundle-lz4.patch" + popd >/dev/null || die + + # https://github.com/milesgranger/isal-rs/pull/25 (cheap workaround) + sed -i -e '/default/d' "${ECARGO_VENDOR}"/isal-sys*/Cargo.toml || die + + # enable system libraries where supported + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # unpin C library versions + sed -i -e '/exactly_version/d' \ + "${ECARGO_VENDOR}"/libdeflate-sys-*/build.rs || die + + # bzip2-sys requires a pkg-config file + # https://github.com/alexcrichton/bzip2-rs/issues/104 + mkdir "${T}/pkg-config" || die + export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} + cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die + Name: bzip2 + Version: 9999 + Description: + Libs: -lbz2 + EOF + + local features=( + extension-module + + snappy + lz4 + bzip2 + brotli + zstd + + xz-shared + igzip-shared + ideflate-shared + izlib-shared + use-system-isal-shared + gzip-shared + zlib-shared + deflate-shared + blosc2-shared + use-system-blosc2-shared + ) + local features_s=${features[*]} + + DISTUTILS_ARGS=( + --no-default-features + --features="${features_s// /,}" + ) +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests +}
