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
+}

Reply via email to