commit: 7e3cfdff6c0f7c885b8faf627f83e142a5a884ec
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 4 12:49:00 2025 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Aug 4 14:07:14 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e3cfdff
dev-util/maturin: add 1.9.3
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-util/maturin/Manifest | 2 +
dev-util/maturin/maturin-1.9.3.ebuild | 157 ++++++++++++++++++++++++++++++++++
2 files changed, 159 insertions(+)
diff --git a/dev-util/maturin/Manifest b/dev-util/maturin/Manifest
index 77531b55aa83..8c6b974834ba 100644
--- a/dev-util/maturin/Manifest
+++ b/dev-util/maturin/Manifest
@@ -4,3 +4,5 @@ DIST maturin-1.9.1-vendor.tar.xz 15643332 BLAKE2B
cf7fd445186c5de8d09c99eb4a270b
DIST maturin-1.9.1.gh.tar.gz 559847 BLAKE2B
8c69a437f7cabb71242e231baefb02b2f5c2a2f361318ddbcab18055d13b08836f36d690eac55307c61134e15f03511ea6bf711288f10871aff9578be41e6b44
SHA512
d4bc9994966cc654f109596a65d450924bdfd84b2ad5c1ea21ab93f8861b313258e0c60edc0843eeeb7d0d975a2f64f76d784868f1ef301fbb7748fc1ce56b96
DIST maturin-1.9.2-vendor.tar.xz 15642720 BLAKE2B
59ac8c7371fa576b4e8514cafa14badeb750052ea89e197c2149ba83bd7f08a7197d1b3d56c8c20c3295676fbf103eb8ee84f6dc47504c4d84a6d9e2ac47b935
SHA512
3d34a10ebfaa4a3ad34442d71f113651ef91c5a6bd46daaff60b73d9eff36b6091a50c25484cb883a8afbffb84180c051ff6b9f60c1f4455b10b54f211752540
DIST maturin-1.9.2.gh.tar.gz 562400 BLAKE2B
1cb97591e611a17bff562010178c1424a6f47ebb0c28c5ef2758a68b03936e88fc4447f73c87f2ec699959bf26d803343e0ee3870cbc4ab6439ab8528a298ade
SHA512
537f2cf1e44339dca6631408a57e3136e2c2a4f9c5de8fa0b3ee52798776d9cede2f5f8691fe0e23b4d055eb3070367585253bbc28bb24509ad06337be593030
+DIST maturin-1.9.3-vendor.tar.xz 15638528 BLAKE2B
bde95efcdcf0bcd0e559df0753b402756c1b8fa354c9be0b927f9dc969adb6b0b186914c6f35fcc0d7a02919c28e882de6b4d779fd51037ae3d6e963b23a1f16
SHA512
a3441ea6fd36e9284f6f8229ba2e370f5f43130e7bc4437e21d6a1612fb07b0671f29d98c2092c848db5dc22e1072ce06ae75f33bdc6a59e9297273c1fedcaf4
+DIST maturin-1.9.3.gh.tar.gz 563145 BLAKE2B
a9b303d9279f007ce86f51fb423787e53e8a86e9c0cfda03795d85c8e781eca8141258e2ce7eeb8c0841205f69005d14ded6641e631cab872d2337c5e7f9969c
SHA512
9c0c2e428db725b2f6e3bd06b166e2bb3448018c8f3b2e3e85effc4294cb0b7f25918761ac2fce70b4e98890b3f3fbeb93db64f5e5de39886d009ba8bc62a707
diff --git a/dev-util/maturin/maturin-1.9.3.ebuild
b/dev-util/maturin/maturin-1.9.3.ebuild
new file mode 100644
index 000000000000..0b54cdcc1fac
--- /dev/null
+++ b/dev-util/maturin/maturin-1.9.3.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 "[email protected]" || 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
+}