From d90002ea64e96dfa5663cc1cbb0dad0a69e0b964 Mon Sep 17 00:00:00 2001 From: Ionen Wolkens Date: Tue, 8 Jul 2025 04:48:16 -0400 Subject: [PATCH] dev-util/maturin: add 1.9.1 Signed-off-by: Ionen Wolkens --- dev-util/maturin/Manifest | 2 + dev-util/maturin/maturin-1.9.1.ebuild | 157 ++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 dev-util/maturin/maturin-1.9.1.ebuild diff --git a/dev-util/maturin/Manifest b/dev-util/maturin/Manifest index 384b2ad0a06e7..c84e8b63f4d3c 100644 --- a/dev-util/maturin/Manifest +++ b/dev-util/maturin/Manifest @@ -4,3 +4,5 @@ DIST maturin-1.8.6-vendor.tar.xz 15035340 BLAKE2B 0bc4016f460c704ac2be81af27842f DIST maturin-1.8.6.gh.tar.gz 551946 BLAKE2B 4fbeadeb25b69e99286238c9f7b7acb2bdde05242af760a0279664277334831a8cd03db49ddb3a0d528b6acd827d3ee3863e283318270ee53c3710c103c7461f SHA512 2616b3bcdbb96c77a3efeda5a24841675fded9d1299507c64905c94e57af15afa855c329f013a1e36527c2b8de4bf7acfb060e5d2828558da658a7b86d88bf8f DIST maturin-1.9.0-vendor.tar.xz 15629684 BLAKE2B aa12b79df4073246f48377a8630532da497f66d13f2b6417cf40c2e955a7c454d91392fb49d49493928e0619fa9248720e87a7aa52c37df1a2fef5667a356a6f SHA512 ba8378e772d0dcc10a321e54b6a9f69043ba1451d7e538c9a53030328aeccce16afa877a3be27c578f6ef7040a16f7c45143764a592fffc081596f5304116074 DIST maturin-1.9.0.gh.tar.gz 559678 BLAKE2B d4b79649f8d347a0504bb0eb3a883e6747e825928cbefeaa1396cbfd4a07efe0e9830f117eb1ed8c7ff0b6cf45ebe3d6148c9929280e290b1ffe515e2514881f SHA512 509fb64bcd1c24239e0c7e1e1af8ada99f6ba59e37af70e0484d060e88860b4df69dcd8ed48c4bfd4f027d368e2eb5938501920d820377f31617218c7717acc3 +DIST maturin-1.9.1-vendor.tar.xz 15643332 BLAKE2B cf7fd445186c5de8d09c99eb4a270b85c547bcf8dddf891c24bf0d2a75f634f49115de7841b1bce88c97391d784119e9dd4873a6a4903735443ce05958056a3b SHA512 93665219f09bb16f1abcf810bc60e3b9056521d42b03d5b42d03e76ad782f56c86f1ead5077ab260eb530ff444dd16cd7ce18df89cd72d3ac8f6dcb588f46582 +DIST maturin-1.9.1.gh.tar.gz 559847 BLAKE2B 8c69a437f7cabb71242e231baefb02b2f5c2a2f361318ddbcab18055d13b08836f36d690eac55307c61134e15f03511ea6bf711288f10871aff9578be41e6b44 SHA512 d4bc9994966cc654f109596a65d450924bdfd84b2ad5c1ea21ab93f8861b313258e0c60edc0843eeeb7d0d975a2f64f76d784868f1ef301fbb7748fc1ce56b96 diff --git a/dev-util/maturin/maturin-1.9.1.ebuild b/dev-util/maturin/maturin-1.9.1.ebuild new file mode 100644 index 0000000000000..0b54cdcc1fac5 --- /dev/null +++ b/dev-util/maturin/maturin-1.9.1.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_UPSTREAM_PEP517=standalone +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) +RUST_MIN_VER=1.75.0 +inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs + +DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings" +HOMEPAGE="https://www.maturin.rs/" +SRC_URI=" + https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz + https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz +" +# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests + +LICENSE="|| ( Apache-2.0 MIT ) doc? ( CC-BY-4.0 OFL-1.1 )" +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT + MPL-2.0 Unicode-3.0 Unicode-DFS-2016 +" # crates +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc +ssl test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/xz-utils + app-arch/zstd:= + ssl? ( dev-libs/openssl:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/mdbook ) + test? ( + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') + dev-python/boltons[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-vcs/git + elibc_musl? ( dev-util/patchelf ) + ) +" + +QA_FLAGS_IGNORED="usr/bin/${PN}" + +src_prepare() { + distutils-r1_src_prepare + + # we build the Rust executable (just once) via cargo_src_compile + sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die + + if use test; then + # used to prevent use of network during tests, and silence pip + # if it finds unrelated issues with system packages (bug #913613) + cat > "${T}"/pip.conf <<-EOF || die + [global] + quiet = 2 + + [install] + no-index = yes + no-dependencies = yes + EOF + + # uv does not work easily w/ network-sandbox, force virtualenv + sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die + + # increase timeouts for tests (bug #950332) + sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die + + # used by *git_sdist_generator tests + git init -q || die + git config --global user.email "larry@gentoo.org" || die + git config --global user.name "Larry the Cow" || die + git add . || die + git commit -qm init || die + fi +} + +src_configure() { + export OPENSSL_NO_VENDOR=1 + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # https://github.com/rust-lang/stacker/issues/79 + use s390 && ! is-flagq '-march=*' && + append-cflags $(test-flags-CC -march=z10) + + local myfeatures=( + # like release.yml + native-tls for better platform support than rustls + full + password-storage + $(usev ssl native-tls) + ) + + cargo_src_configure --no-default-features +} + +python_compile_all() { + cargo_src_compile + + use !doc || mdbook build -d html guide || die + + if ! tc-is-cross-compiler; then + local maturin=$(cargo_target_dir)/maturin + "${maturin}" completions bash > "${T}"/${PN} || die + "${maturin}" completions fish > "${T}"/${PN}.fish || die + "${maturin}" completions zsh > "${T}"/_${PN} || die + else + ewarn "shell completion files were skipped due to cross-compilation" + fi +} + +python_test() { + local -x MATURIN_TEST_PYTHON=${EPYTHON} + local -x PIP_CONFIG_FILE=${T}/pip.conf + local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 + + # need this for (new) python versions not yet recognized by pyo3 + local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + + local skip=( + # picky cli output test that easily benignly fail (bug #937992) + --skip cli_tests + # avoid need for wasm over a single hello world test + --skip integration_wasm_hello_world + # fragile depending on rust version, also wants libpypy*-c.so for pypy + --skip pyo3_no_extension_module + # unimportant tests that require uv, and not obvious to get it + # to work with network-sandbox (not worth the trouble) + --skip develop_hello_world::case_2 + --skip develop_pyo3_ffi_pure::case_2 + # compliance test using zig requires an old libc to pass (bug #946967) + --skip integration_pyo3_mixed_py_subdir + # fails on sparc since rust-1.74 (bug #934573), skip for now given + # should not affect the pep517 backend which is all we need on sparc + $(usev sparc '--skip build_context::test::test_macosx_deployment_target') + ) + + cargo_src_test -- "${skip[@]}" +} + +python_install_all() { + cargo_src_install + + dodoc Changelog.md README.md + use doc && dodoc -r guide/html + + if ! tc-is-cross-compiler; then + dobashcomp "${T}"/${PN} + dofishcomp "${T}"/${PN}.fish + dozshcomp "${T}"/_${PN} + fi +}