Merge updates from master

This commit is contained in:
Repository mirror & CI 2025-12-06 18:30:46 +00:00
commit f5a949a0a9
No known key found for this signature in database
GPG Key ID: 7C2AC09CD98F2EDF
17 changed files with 658 additions and 18 deletions

View File

@ -1 +1,2 @@
DIST libgit2-1.9.1.tar.gz 7665631 BLAKE2B fac1ecb9ef1589049fe99d54984fb18692ecb4805fc02a1f49193a7d71de75f72b2143214f9239097867b196f90ca45a033b5e65d07ddf1a5b8f00068b1b784a SHA512 3bec01704ad1acdb4f7e9454101c2a205b7e288a4dffaa5e1afc2b1f849fa3a42b961c532bed2669841925ab8f84fb35bb82a2df8039b1caf76c5779665032d9
DIST libgit2-1.9.2.tar.gz 7667818 BLAKE2B 6e5be4aee7ebe959a23ec24952eaff3ad66bbc740e0fd3ef66bc61b57c3228b71ad9b01808494782a90d362692d2cfabbfc24946543bbc109ec66df9c03cf26d SHA512 b9ac2d0a7cc92a31057fbf066e47145cdda89ebf0489d712d4452c709c3de9923a93a3c37128fdcfd8fbb5498f513a519a7f2a77ad6ef4efafe865323d481f18

View File

@ -0,0 +1,79 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
inherit cmake flag-o-matic python-any-r1
DESCRIPTION="A linkable library for Git"
HOMEPAGE="https://libgit2.org/"
SRC_URI="
https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
"
S=${WORKDIR}/${P/_/-}
LICENSE="GPL-2-with-linking-exception"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="examples gssapi +ssh test +threads trace"
RESTRICT="!test? ( test )"
RDEPEND="
dev-libs/libpcre2:=
net-libs/llhttp:=
virtual/zlib:=
dev-libs/openssl:0=
gssapi? ( virtual/krb5 )
ssh? ( net-libs/libssh2 )
"
DEPEND="
${RDEPEND}
"
BDEPEND="
${PYTHON_DEPS}
virtual/pkgconfig
"
src_prepare() {
cmake_src_prepare
# https://bugs.gentoo.org/948941
sed -i -e 's:-Werror::' tests/headertest/CMakeLists.txt || die
}
src_configure() {
local mycmakeargs=(
-DBUILD_TESTS=$(usex test)
-DUSE_SSH=$(usex ssh libssh2 OFF)
-DUSE_GSSAPI=$(usex gssapi ON OFF)
-DUSE_HTTP_PARSER=llhttp
-DREGEX_BACKEND=pcre2
)
# https://bugs.gentoo.org/925207
append-lfs-flags
cmake_src_configure
}
src_test() {
if [[ ${EUID} -eq 0 ]] ; then
# repo::iterator::fs_preserves_error fails if run as root
# since root can still access dirs with 0000 perms
ewarn "Skipping tests: non-root privileges are required for all tests to pass"
else
local TEST_VERBOSE=1
cmake_src_test -R offline
fi
}
src_install() {
cmake_src_install
dodoc docs/*.{md,txt}
if use examples ; then
find examples -name '.gitignore' -delete || die
dodoc -r examples
docompress -x /usr/share/doc/${PF}/examples
fi
}

View File

@ -7,7 +7,7 @@ EAPI=8
DISTUTILS_USE_PEP517=flit
# NB: this package extends beyond built-in importlib stuff in py3.8+
# new entry_point API not yet included in cpython release
PYTHON_COMPAT=( pypy3 pypy3_11 python3_{10..13} )
PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
inherit distutils-r1 pypi

View File

@ -1,2 +1,4 @@
DIST librt-0.6.3.tar.gz 54209 BLAKE2B 93f0cfaed3fb4868871149b752c5b2d7a7ec8ab67b9c5b2099f127d3d43fd939ef864d5f39884c8e1252e1c12fbdb0541617966207c0194a797d4f1744959788 SHA512 ea560ac82962ddadaca8b2b8981dae81ff9f1d891a994b0fc7778d48db2528ea7e2333721632665df3c85e86a87a9097992de17ca46abab0c7909d6c6424d645
DIST librt-0.6.3.tar.gz.provenance 9164 BLAKE2B 9c7d26223e381fd14f608f9082a28025db40d281a1d04b7ee56fddf72f4a12d9a31bc97f367306dc924f76f9ed7eea2f9f8f2d49c7a64b7fc3f5c658c3bba82a SHA512 e032f0d68d08f88f01ceedcfba7bca8f7de2f2089044a7bc1e4986e6b4cbd2847d9e40d5c4d16ca7ac526e13cc0f74e04e801c2ba09b2145f54da28c50b77ee0
DIST librt-0.7.2.tar.gz 144193 BLAKE2B 72e1f613839b493ce823224810057f7f7161b8001eeac46b32b7e784ebc49da6c5de86b4b1074ee1d4fbff14feae963103224a991f54d2d3cef9be9599dd3dfc SHA512 472c4d7077fdb22ef30f6833620553b0b821ff9142d06041b3f84f5247efdeced966d160e61b9218e65ec3ec3463f843dc57c8478fd088c466904792d7096de1
DIST librt-0.7.2.tar.gz.provenance 9211 BLAKE2B 30abcae4ba65ab329dbc18831407d48d12927dd2a745180cdb1bbb72961d8c73c1375f39494786bbbcf630e9354627e9a9c55e2353e0005a9e26c03935f31181 SHA512 4c6afc3f8b0a640a7f729aac617515dce7fd72a43e177cd550dac1299ee7552b003ac22e8bf0a4249df9738e3a3872741cc20a3b3041982b83a378fed7d73f03

View File

@ -0,0 +1,35 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYPI_VERIFY_REPO=https://github.com/mypyc/librt
PYTHON_COMPAT=( python3_{11..14} )
inherit distutils-r1 pypi
DESCRIPTION="Mypyc runtime library"
HOMEPAGE="
https://github.com/mypyc/librt/
https://pypi.org/project/librt/
"
LICENSE="MIT PSF-2.4"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64"
BDEPEND="
test? (
dev-python/mypy-extensions[${PYTHON_USEDEP}]
)
"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
rm -rf librt || die
epytest smoke_tests.py
}

View File

@ -4,3 +4,4 @@ DIST libtmux-0.47.0.gh.tar.gz 357616 BLAKE2B 3372a0cb7fff2723ac21c364b1be813f4b4
DIST libtmux-0.48.0.post0.tar.gz 359150 BLAKE2B 8e105588e041e9ec106c6fba0419c601c9359242aef486690acf00da5337213f5718a67352f99fbc43abe267fb07feab7f232b9379b6eebcecadc551a2a04e7c SHA512 92df268534cb78fb39462f048b486487d095fab3dc2ff99092edea9dd9342edc2be97d3b7e3709fc39b9029e52ecd3f65ff3676bbce1f1a1545e35a505c8acf0
DIST libtmux-0.49.0.tar.gz 355432 BLAKE2B f6022b474168bfb1a71b319b1c6ebd3e290eaf4577576db72a877243d5ec81da86d4cdb7d1d979b5ef8f5ea22b590a8578285bf09699e122cab91a963a6f4fc4 SHA512 977f4da6f470474106f964559f1a40b0152b91ed7812977dbc504c3f54e1feff370c42b6ec259714b585e54edc55bf5422daa33e4cfafeff98f434038891d2a5
DIST libtmux-0.50.0.tar.gz 401066 BLAKE2B 4f8e24248d30ad5672eff5ea272223a0603eccfd158b735afe0ddb95c47f454c89f4f4fcc3c9d66d9e3e63cf881e6d0d442ea057abb5a925f5eae9760a99e8fd SHA512 101b7a3bc3c980aa9b5d8e3f7d3ce3c00ee778c5bdb6d65ca16782780982539409f2afa822171acc7913ec3c48bfc2e684d5a1142c85ab6b243c36f2efbe72b0
DIST libtmux-0.50.1.tar.gz 401531 BLAKE2B 0d6490122e21f0a82435e6506e1269fdf33478ab9fd8770b3147d517ba766b48de029d4ce6d7d78e5976bbd280137bd71d1cab590df2ae67e6c85bd4728e3475 SHA512 e3fccda1383b8443da55916f82a892d704248fb12b4afedf87f9fade6d69dcd302300af12fb9be5f783c1422973cd242431ad8f6f70498e1e25d2e90d6d3c663

View File

@ -0,0 +1,37 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
inherit distutils-r1 pypi
DESCRIPTION="Typed library that provides an ORM wrapper for tmux, a terminal multiplexer"
HOMEPAGE="
https://libtmux.git-pull.com/
https://github.com/tmux-python/libtmux/
https://pypi.org/project/libtmux/
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
RDEPEND="
>=app-misc/tmux-3.0a
"
EPYTEST_PLUGIN_LOAD_VIA_ENV=1
EPYTEST_PLUGINS=( "${PN}" pytest-mock )
EPYTEST_RERUNS=5
distutils_enable_tests pytest
python_test() {
# tests/test_window.py::test_fresh_window_data fails if TMUX_PANE is set
# https://bugs.gentoo.org/927158
local -x TMUX_PANE=
epytest -o addopts= tests
}

View File

@ -1,3 +1,5 @@
DIST orjson-3.11.3.tar.gz 5482394 BLAKE2B dfe5620b489b360d4370fbdf673bf6b8ef8306aaa628eaa7a58e6096981f22e5bf2def4b181b4a7aec6e8ee8cef360f7c3187ff49a90adbafd3c16a2cddb2808 SHA512 5ca76b94241f154b1f9de575ce0eb73d6a89db4172cf0f6ee2c470cb24a0cb96464558b13bdec5f03f0ae0936f39698d9761933eb3b4ae3654cac32dd24f1620
DIST orjson-3.11.4.tar.gz 5945188 BLAKE2B 255a5d00f084b62059de83745c46c15deccdf8692fa7023566c9cc2c7eb00786b4efc2a021c9b6b329d08042641831e08828f24d9ec9a3ae3bc0cb9daae9f79d SHA512 15e1fe6df2084446301b095b3d1f5665f604f5bdcac25579fd424ddd4df3819413c0d785bc3ef08b7a6ef8d57ba2526028d719c7396db88a477bb0c2e0bbf230
DIST orjson-3.11.4.tar.gz.provenance 9236 BLAKE2B c971dc83058c3d40fc4b96c7afdb4edaedf25fb720f58ce4e6dc0263390c17f1eea5ead4bcc4161d2681b82ba1f89a76a24460fb6ea6c3e93d2fcda5632936a2 SHA512 d57df6d9c3abfbb82777f84c60838c4851083eefa224d85cecde9525e4a4c59f07e8bcd7fe4e276dba80d4554b006554b68a62ae252a30baf0e713ca3db78f01
DIST orjson-3.11.5.tar.gz 5972347 BLAKE2B d006a0ef4722935024561d58c8c346f59a737904add18f673308d5810f3f7fe2d7f8a657c31866b3806b923d6261c642870011f8d4d53270fcf23796b6d6877e SHA512 8221d883840966d783d24ba61c716884dddf01c42593416a83cb3e4fb3e6d21b49dad47ae9fe3317e4e5132b52d681de211f630f1673b3866dbde962611b098f
DIST orjson-3.11.5.tar.gz.provenance 9030 BLAKE2B 3f647dfb032c5a61d6b0fc105781197aea53c39c3f57c43f0290b3ae59493511df85761789aa6b8ec3b56e00921129860172714c3f36aaf7c031a44d6d388dae SHA512 00a25d0622ad054fac6b44434736f999b115f1967b06ce472d312f9710414f55c35b93983fd698bfb579a4d1cd51cb90dce780df3b197c830844bbcf135168f3

View File

@ -0,0 +1,92 @@
# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=maturin
PYPI_VERIFY_REPO=https://github.com/ijl/orjson
PYTHON_COMPAT=( python3_{11..14} )
# upstream is vendoring crates
CRATES="
associative-cache@2.0.0
bytecount@0.6.9
bytes@1.11.0
cc@1.2.48
cfg-if@1.0.4
crunchy@0.2.4
encoding_rs@0.8.35
find-msvc-tools@0.1.5
gimli@0.32.3
half@2.7.1
itoa@1.0.15
itoap@1.0.1
jiff-static@0.2.16
jiff@0.2.16
libc@0.2.178
memchr@2.7.6
once_cell@1.21.3
portable-atomic-util@0.2.4
portable-atomic@1.11.1
proc-macro2@1.0.103
pyo3-build-config@0.27.2
pyo3-ffi@0.27.2
quote@1.0.42
ryu@1.0.20
serde@1.0.228
serde_core@1.0.228
serde_derive@1.0.228
serde_json@1.0.145
shlex@1.3.0
simdutf8@0.1.5
smallvec@1.15.1
syn@2.0.111
target-lexicon@0.13.3
unicode-ident@1.0.22
unwinding@0.2.8
uuid@1.19.0
version_check@0.9.5
xxhash-rust@0.8.15
zerocopy-derive@0.8.31
zerocopy@0.8.31
"
RUST_MIN_VER="1.88.0"
inherit cargo distutils-r1 pypi
DESCRIPTION="Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
HOMEPAGE="
https://github.com/ijl/orjson/
https://pypi.org/project/orjson/
"
LICENSE="|| ( Apache-2.0 MIT )"
# Dependent crate licenses
LICENSE+="
Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT Unicode-3.0
"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
>=dev-util/maturin-1.7.8[${PYTHON_USEDEP}]
test? (
dev-python/arrow[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
)
"
QA_FLAGS_IGNORED=".*"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
src_unpack() {
pypi_src_unpack
# https://github.com/ijl/orjson/issues/613
cargo_gen_config
}

View File

@ -5,5 +5,6 @@ DIST psycopg-3.2.13.gh.tar.gz 585567 BLAKE2B 244c9b51ae88dfafb235c65cec69b556ab6
DIST psycopg-3.2.9.gh.tar.gz 565735 BLAKE2B 5b9b16e5e310214bdbf12198a7b8d9d86ed7b7e947a33c7333fe79bca946b76f09c60ea25960d3cf3f99423598a65ce33b53bd6dc10a9c68a930a46068b54fd6 SHA512 3e455852dd19c9639a8ee18773486295ea76f9a16146997be9dd4f3f6350257440e0d8fff9494acb79e95f04e74c0c14ec7968694fe329abeb74edcfb297d4dd
DIST psycopg-3.3.0.gh.tar.gz 607828 BLAKE2B 494ce84ffaaecafccb353697198077d7bb60f9ed17171bb3946f5501c8e67d1e240fa08f228bdc9f61988c9c6487930df49112be7f658d1b8e3146c8aa95f729 SHA512 48a184e2629d7317c9a6b80addf5405feac4ba0f477c12c5ee9bc826bc132c8874020b62c28df9ba92e2655edf15daa2a619c9961cbe71dd2ad7d5b9580c6389
DIST psycopg-3.3.1.gh.tar.gz 607864 BLAKE2B 6cc1ead0c0fc612dd15ba24f067c80b4b6efff73fa3cfe193d617b34f1e2d7f3aa4e793f264703d1ded48da376599e3ee7e045f87420abe024aeca27c80ba19d SHA512 abd7c49e1607a0262434f4f506af71a0c4aea30093ed1f63b5919a5d7bc81e2c82aa933f345c3bbe2b15e92a300246bb3378d0cca72aec189b4a26818d35d4ff
DIST psycopg-3.3.2.gh.tar.gz 607955 BLAKE2B 8a7d9e74f573ceb5e51b0eab6fd7a17de371de084d48b15ec4a61e3a9e00c8027bb2d024b768f1b57e12fe9d125d1724b164613e9b872dfb8eab1f87e16f8079 SHA512 354e3b6666d0ce346734f290ff6907e0b0be0959dbf739ea6c0f6503a063f710ff5c0a3b02a63df407059ecc9ff2310b3a8617df754d237af44b249d7e92ae80
DIST psycopg2-2.9.10.tar.gz 385672 BLAKE2B 4a3ad64f406c427b785ffeb85f6520aa67ed04de2d1749eb22d8275146b71ba451f7c04c9ead401d6f7a273781492cd6a5a36beba68b36b1e5203ee75f7df503 SHA512 d0916f6a645b5e87f89f2463dc22fad78340a85fbff320d099bf429a42557f40d3a4eebdc670768469aef1e9fcee60123767bfe49e1186e8574f95bfd6f46900
DIST psycopg2-2.9.11.tar.gz 379598 BLAKE2B 78608a2b4a9b1db9ba9873ce01b84f898489de8ff6db5522ecc2fa68606b0ef8cdab7f137c86cf840509c9161b329a2efc1e1aadc494b565226099e8651372ab SHA512 44f7b03d958dc62822be8a8c38d738c4016c3a1f860c824158b78ba0a23f04ca63377171b22a14e38b76df868458ede25f29e4643197912adb2f1a1db8c0d5c0

View File

@ -0,0 +1,123 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
inherit distutils-r1
DESCRIPTION="PostgreSQL database adapter for Python"
HOMEPAGE="
https://www.psycopg.org/psycopg3/
https://github.com/psycopg/psycopg/
https://pypi.org/project/psycopg/
"
SRC_URI="
https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="+native-extensions"
DEPEND="
native-extensions? (
>=dev-db/postgresql-8.1:=
)
!native-extensions? (
>=dev-db/postgresql-8.1:*
)
"
RDEPEND="
${DEPEND}
$(python_gen_cond_dep '
>=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
' 3.11 3.12)
"
BDEPEND="
native-extensions? (
dev-python/cython[${PYTHON_USEDEP}]
)
test? (
>=dev-db/postgresql-8.1[server]
>=dev-python/dnspython-2.1[${PYTHON_USEDEP}]
)
"
EPYTEST_PLUGINS=( anyio )
distutils_enable_tests pytest
python_compile() {
# Python code + ctypes backend
cd psycopg || die
distutils-r1_python_compile
# optional C backend
if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
local DISTUTILS_USE_PEP517=standalone
cd ../psycopg_c || die
distutils-r1_python_compile
fi
cd .. || die
}
src_test() {
rm -r psycopg{,_c} || die
initdb -D "${T}"/pgsql || die
# TODO: random port
pg_ctl -w -D "${T}"/pgsql start \
-o "-h '' -k '${T}'" || die
createdb -h "${T}" test || die
local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
distutils-r1_src_test
pg_ctl -w -D "${T}"/pgsql stop || die
}
python_test() {
local EPYTEST_DESELECT=(
# tests for the psycopg_pool package
tests/pool
# some broken mypy magic
tests/test_module.py::test_version
tests/test_module.py::test_version_c
tests/test_typing.py
tests/crdb/test_typing.py
# TODO, relying on undefined ordering in Python?
tests/test_dns_srv.py::test_srv
# requires pproxy?
tests/test_waiting.py::test_remote_closed
tests/test_waiting.py::test_wait_remote_closed
tests/test_waiting_async.py::test_remote_closed
tests/test_waiting_async.py::test_wait_remote_closed
)
case ${ARCH} in
arm|x86)
EPYTEST_DESELECT+=(
# TODO
tests/types/test_numpy.py::test_classes_identities
)
;;
esac
local impls=( python )
if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
impls+=( c )
fi
local -x PSYCOPG_IMPL
for PSYCOPG_IMPL in "${impls[@]}"; do
einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
# leak and timing tests are fragile whereas slow tests are slow
epytest -k "not leak" \
-m "not timing and not slow and not flakey"
done
}

View File

@ -1,3 +1,3 @@
DIST python_lsp_server-1.13.0.tar.gz 119147 BLAKE2B 385aeb08f0f43a7a7e77a07c0f0a5799ff4aa9c4d4f6b80350ed0ef8c2d2da5979583e1696aac642308b851de3964ef2c9ae342ec7ff3e677c96e6ed8913a57a SHA512 140fb56e2fda6131c1e481792537c3ede1d511c48994416f2629d71c3b3e4fb2b05da583c6371780c4022b2cc8439a4d9e763962403a5a7f214fa1a1f3031f0c
DIST python_lsp_server-1.13.1.tar.gz 120484 BLAKE2B f07ed8546e4e1691a4fc03ead5bc4834755bee12fbe34abda3ec460a2ca261c3c7a14a98194ad085f217af1369bfc878b696770e2c8adb43135808dd196ade13 SHA512 9a8ef547a0d8383eace9aa0efeb83fca9852f3fc79676397c428508a3d8d90c045da7e4c98c9ff34016e9da6a41181e4dc1c881d2262856c9dfd4921f9a35d9a
DIST python_lsp_server-1.13.2.tar.gz 120665 BLAKE2B c45d7775f8af055f4b4e084e1ed6dbbf5a8788155691e04a742cb9494231ce7f8f80fb8fb01041edb7540f6d8fa0bd44187ef68a2cf3246c50808ac13905449d SHA512 0be67a934dd700346227e17e6b695c4e593d04dc82b49153868617a81af949a9ee11b4ada5dffe031c64d1dbfc4d1864c4d9dbf94ade0be606abef8eb8b2eaaf
DIST python_lsp_server-1.14.0.tar.gz 121536 BLAKE2B 207d43b758d6bb75070ac88174d483d9347593ca2b5cbe9fc724f916d73654e6907aced7e6fb19e339740b09d0ea3dc1e2bc18f7610ea2984f8c29cd441c92ad SHA512 6362bb87a1fc75751a37c42a899377bc420daa0bed4aa7206e956b41e09495a9d949820bcf789508ebe5b5646c6c1af8dba753b7cef06891c46b8ebed80d51dc

View File

@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 arm64 x86"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="all-plugins"
PLUGIN_DEP="
@ -55,6 +55,19 @@ BDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
EPYTEST_DESELECT=(
# broken by presence of pathlib2
'test/plugins/test_autoimport.py'
# Requires pyqt5
'test/plugins/test_completion.py::test_pyqt_completion'
# TODO: fails on teardown; also hangs the test suite
test/test_language_server.py::test_missing_message
)
EPYTEST_IGNORE=(
# pydocstyle is archived upstream and broken with py3.12
test/plugins/test_pydocstyle_lint.py
)
python_prepare_all() {
# remove pytest-cov dep
sed -i -e '/addopts =/d' pyproject.toml || die
@ -63,21 +76,6 @@ python_prepare_all() {
distutils-r1_python_prepare_all
}
python_test() {
local EPYTEST_DESELECT=(
# broken by presence of pathlib2
'test/plugins/test_autoimport.py'
# Requires pyqt5
'test/plugins/test_completion.py::test_pyqt_completion'
)
local EPYTEST_IGNORE=(
# pydocstyle is archived upstream and broken with py3.12
test/plugins/test_pydocstyle_lint.py
)
epytest
}
pkg_postinst() {
optfeature "Automatically format Python code to conform to the PEP 8 style guide" dev-python/autopep8
optfeature "A wrapper around PyFlakes, pep8 & mccabe" dev-python/flake8

View File

@ -4,6 +4,7 @@ DIST uv_build-0.9.12.tar.gz 338778 BLAKE2B b11a99bcd9f130107a2529a204bfcb64a3bdc
DIST uv_build-0.9.13.tar.gz 338831 BLAKE2B ba0b4eca782afc52d7303a51ecb18957073c22c0be1dae90ccc044c59cc2a6502c89ce06a5fa6b4014fdd54f641d97523cdad4ab15f19e9ae97541aa51a7a5ec SHA512 6ef5fe809b2fc80778b33c43b3083fdd4320be031818d88f3bf9e7f2dd4bcf59303ccd7b5398eacedbf9c500ae336bf18c7ed15de858b6f369594e14b005d71d
DIST uv_build-0.9.14.tar.gz 339665 BLAKE2B a23fa78e67450d3da7c17ce8828f3c635eddbbe36f2742f7bafa324a140dbf064fd19350263b0a87aec1edba2189a5d219a1e04416659287007598487f678f81 SHA512 ac4d578cf61cfaa4b4b0d38917f6f65de64111d7764bc2e837489fda8c6ce2a18b4256965df9e32b223ce34721bc07fbac7aeef078eaf9cac6d6d3309260180a
DIST uv_build-0.9.15.tar.gz 354021 BLAKE2B a47350ead8d9672d09967bbd7f9ac2f8e231e1dd5afb8c20e59926429792d3872feb1f8e4d7a9318ec447a99ce8add0503dfba0be2b970b2f192f954b472f1a7 SHA512 11fa1ebb1cfc184bd5bedf5e11fb28f14abf118183d94cbe0ac9a1b83f150a69836f0547a671e8cf16527d84ec61dd5b2983efafe5aeccd86e94cda79e1de664
DIST uv_build-0.9.16.tar.gz 356109 BLAKE2B d1c7269ee1caa4c66e4858871bed357cd3d9251a475cd97699421cba949d915af15b241b8e1ae1b64ff9a496974888590270d77508d91af3f000e3b6c8139b4b SHA512 4031ac8326a16d4eb65948749da157a97c7529713298085d9154ecf974a3469601495e5a0203638a3ea8eeb98ed375ab13348b494637a4452268e5e8b0856410
DIST uv_build-0.9.4.tar.gz 332506 BLAKE2B 3b65cc80192cf3abc33bcf01735c8b7f937a12f2dcd0557d0ae255ce8bd4cb7dbb15522e73802be0e17ac10c4acad6f9075f12d5f853bb1881b0c13f1d120b33 SHA512 c3be52cfbc1cf5a229df91d9e1125925a534e3fca3041e29a16edd2334fa28b055c73e21a6bd1a3d1d63924cf8f112645300530e8cb6139fb549499ca672070f
DIST uv_build-0.9.6.tar.gz 332253 BLAKE2B 2c3fa23dbe36b0866a3a3194b07ee1212cb00acd785c375646c3eb6c97a63435f28c9e934f56c8d6feeec145aace1aad37550b85ae2a611f521fc25a4c7d3bc1 SHA512 e8d8bbd46c92722261722f3d8865b2b24e695edf52652c1d1310adae3cb437ebef5397feda90e3bf863394ca75cf3024eb90a5f80b2b92af24ede4e2f81b0ce1
DIST uv_build-0.9.7.tar.gz 332992 BLAKE2B 069e615f41e78098b61cc073cb01bc77e0e6778f3054ccfcf36985be3755d7e819cc1bd151e875db109461f423cc855cd336467015ec7103e47346f230564679 SHA512 d61249de00640f6e0ab62ab440a8aae1802acbd6cf8ecb8aca3efe26361d7191d057735ab91c174c5772fc04accf0ae3281f447d010c99e2f458829f4c618abc

View File

@ -0,0 +1,99 @@
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Maturin compiles uv-build executable for every impl, we do not want
# that, so we use another backend. And since we use another backend,
# why not dogfood it in the first place?
DISTUTILS_USE_PEP517=standalone
PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
inherit distutils-r1 pypi
DESCRIPTION="PEP517 uv build backend"
HOMEPAGE="
https://github.com/astral-sh/uv/
https://pypi.org/project/uv-build/
"
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/uv-${PV}
"
BDEPEND="
test? (
app-arch/unzip
dev-python/build[${PYTHON_USEDEP}]
)
"
src_prepare() {
distutils-r1_src_prepare
# use the executable from dev-python/uv instead of building
# a largely overlapping uv-build executable (at least for now)
sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
# replace the build-system section
sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
cat >> pyproject.toml <<-EOF || die
[build-system]
requires = ["uv_build<9999"]
build-backend = "uv_build"
backend-path = ["src"]
EOF
# rename to make uv-build find it
mv python src || die
}
python_test() {
"${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
local zip_result=$(
unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
)
local zip_expected="\
Archive: dist/uv_build-${PV}-py3-none-any.whl
testing: uv_build/ OK
testing: uv_build/__init__.py OK
testing: uv_build/__main__.py OK
testing: uv_build/py.typed OK
testing: uv_build-${PV}.dist-info/ OK
testing: uv_build-${PV}.dist-info/WHEEL OK
testing: uv_build-${PV}.dist-info/METADATA OK
testing: uv_build-${PV}.dist-info/RECORD OK
No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
"
if [[ ${zip_result} != ${zip_expected} ]]; then
eerror ".zip result:\n${zip_result}"
eerror ".zip expected:\n${zip_expected}"
die ".whl result mismatch"
fi
local tar_result=$(
tar -tf "dist/uv_build-${PV}.tar.gz" || die
)
local tar_expected="\
uv_build-${PV}/PKG-INFO
uv_build-${PV}/
uv_build-${PV}/README.md
uv_build-${PV}/pyproject.toml
uv_build-${PV}/src
uv_build-${PV}/src/uv_build
uv_build-${PV}/src/uv_build/__init__.py
uv_build-${PV}/src/uv_build/__main__.py
uv_build-${PV}/src/uv_build/py.typed\
"
if [[ ${tar_result} != ${tar_expected} ]]; then
eerror ".tar.gz result:\n${tar_result}"
eerror ".tar.gz expected:\n${tar_expected}"
die ".tar.gz result mismatch"
fi
}

View File

@ -15,6 +15,8 @@ DIST uv-0.9.14-crates.tar.xz 46510364 BLAKE2B f39e68e8419d82dab627525288829f81bc
DIST uv-0.9.14.gh.tar.gz 4859989 BLAKE2B b4e8cdd35c9fc40a1777b2b625e870bf5d89a585ff722674c94abc75700047a69f32ab6651f8a3953c68feb02f8e86f61120b1b86057ae30b0162824c9e0a231 SHA512 d1cbdcc36fd65111ceb875c6ba4cc54bc7762556f2fb17f8bb130ed42d037782c5a5f0d55d33fdc47f8d17c7cea19e776c302b188b883f7a94df2c4227ab32a3
DIST uv-0.9.15-crates.tar.xz 46539408 BLAKE2B 57e582f56e12858292d1dfaec10292eb58fb118051618875eab0d2dcd4f55aa89de6f788b3aa5013ce5e03068bb404ef04faae633d5c208f382366ac5ddf70df SHA512 4db7549d6902682db7af385e5099e74bbd82e54aaf45a44fe64416fda91e065f4bf978b9db55ab72f2872f9e8933b49020102b959c1d2bcef4b9a9877ac1e789
DIST uv-0.9.15.gh.tar.gz 4887603 BLAKE2B 422a3c004abdf052438b145400675010b1adfc8cb8d49979367544e2d381389594188276fe603ffa983f5926be624f5d863053bd79342eeee10caf1260b2a479 SHA512 2605e2e7d5f6fdbb5ec4839363f65c8e71559944ec003cb9c69040be08094eb5c041831151b669e2dbbcf1799e862f484a21a592090524f79686469eac0e3381
DIST uv-0.9.16-crates.tar.xz 46525668 BLAKE2B b9825d93374f0c3231273606135f0693f94512b5f26ce45cea804ef38a05bbc3e7ce7edff5517c506f54367d304f0dac925e18e67a6fd7bebd635ce28dad8118 SHA512 beb9a9f0bd4ee79841e16ea4b1f7266dea9bfe8270e2e7dd381e3631e4db167e7dc79d18c444318f8e461daede6146f8510e398efab2f742f614f2654ee6eb29
DIST uv-0.9.16.gh.tar.gz 4907399 BLAKE2B e0394423a5d026dd479a7bf2b781154db56277bdc194b84f520436b8fb41467cb9e2878a15ee2ea192a39f903a35f0c2643524143d81efa0f397273ae2314600 SHA512 f7e563b92c802f561bb33e569d473ac85fb69a72b6e01ccea8284275e7c760bc2eaee9415782adb7d26c16ffad564ceb1152a2f6b853fa9b379cb704fdd1814a
DIST uv-0.9.4-crates.tar.xz 46093644 BLAKE2B bdce4b138718b91a67ccb36e6d8839358ab2ddeeedec3017bc245b0717e32d890a41f8c9c831983681ec715ce458efa8d43356c189b9b7457df3e71122924e3f SHA512 7047b68db7e05abb6a399250a4a531499985d42f12eff61ad1557823b37d62576b38b51ccbe39a02bc9a98af6341de728466b262c49bb48dd30abb64eb804660
DIST uv-0.9.4.gh.tar.gz 4749319 BLAKE2B b46d44830f7a2a621f3ab420db85e9d999b7c42ddebc21403ea2f11e819e8295af37049f1529848a3fd83ef87ac0de26ce1e1c03bf4177c3032b9adfd6dfe1e8 SHA512 ae11c1e777e3d0e036f0a665e2edfb9a4b5b50a9e107d795113b626bc16d406d3fca12e8a133185e54279b2a64f8e3d276372cefc9a96b2ac5f1ed0ece2c10b0
DIST uv-0.9.6-crates.tar.xz 45696768 BLAKE2B 96cff52c0e5477c4e9648e3863d32bde4b34a1a46b6d96703c48fe340b655319e951471aa6403c09818c313a59b0e54804467efa7e13a8410de34299a98f077b SHA512 46964460f3404304faefd1758bb07bcddf1d48efbdd2b890ddb0d2623841e1a0c86108ac3c9312ed8e2f8fcaefbf9b022b57cd6074fdb6d52f43c35e3b3c2d32

View File

@ -0,0 +1,167 @@
# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CRATES="
"
RUST_MIN_VER="1.89.0"
inherit cargo check-reqs
CRATE_PV=${PV}
DESCRIPTION="A Python package installer and resolver, written in Rust"
HOMEPAGE="
https://github.com/astral-sh/uv/
https://pypi.org/project/uv/
"
# pypi sdist misses scripts/, needed for tests
SRC_URI="
https://github.com/astral-sh/uv/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
${CARGO_CRATE_URIS}
"
if [[ ${PKGBUMPING} != ${PVR} ]]; then
SRC_URI+="
https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
"
fi
# most of the code
LICENSE="|| ( Apache-2.0 MIT )"
# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
# Dependent crate licenses
LICENSE+="
0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016
ZLIB
"
# ring crate
LICENSE+=" openssl"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
DEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
app-arch/zstd:=
"
RDEPEND="
${DEPEND}
"
BDEPEND="
test? (
dev-lang/python:3.9
dev-lang/python:3.10
dev-lang/python:3.11
dev-lang/python:3.12
dev-lang/python:3.13
!!~dev-python/uv-0.5.0
)
"
QA_FLAGS_IGNORED="usr/bin/.*"
check_space() {
local CHECKREQS_DISK_BUILD=3G
use debug && CHECKREQS_DISK_BUILD=9G
check-reqs_pkg_setup
}
pkg_pretend() {
check_space
}
pkg_setup() {
check_space
rust_pkg_setup
}
src_prepare() {
default
# force thin lto, makes build much faster and less memory hungry
# (i.e. makes it possible to actually build uv on 32-bit PPC)
sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
# enable system libraries where supported
export ZSTD_SYS_USE_PKG_CONFIG=1
# TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
# remove unbundled sources, just in case
find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || 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
}
src_configure() {
local myfeatures=(
git
pypi
python
)
cargo_src_configure --no-default-features
}
src_compile() {
cd crates/uv || die
cargo_src_compile
}
src_test() {
# work around https://github.com/astral-sh/uv/issues/4376
local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
local -x COLUMNS=100
local -x PYTHONDONTWRITEBYTECODE=
# fix tests failing because of our config
local -x XDG_CONFIG_DIRS=${T}
cd crates/uv || die
cargo_src_test --no-fail-fast
}
src_install() {
cd crates/uv || die
cargo_src_install
insinto /etc/xdg/uv
newins - uv.toml <<-EOF || die
# These defaults match Fedora, see:
# https://src.fedoraproject.org/rpms/uv/pull-request/18
# By default ("automatic"), uv downloads missing Python versions
# automatically and keeps them in the user's home directory.
# Disable that to make downloading opt-in, and especially
# to avoid unnecessarily fetching custom Python when the distro
# package would be preferable. Python builds can still be
# downloaded manually via "uv python install".
#
# https://docs.astral.sh/uv/reference/settings/#python-downloads
python-downloads = "manual"
# By default ("managed"), uv always prefers self-installed
# Python versions over the system Python, independently
# of versions. Since we generally expect users to use that
# to install old Python versions not in ::gentoo anymore,
# this effectively means that uv would end up preferring very
# old Python versions over the newer ones that are provided
# by the system. Default to using the system versions to avoid
# this counter-intuitive behavior.
#
# https://docs.astral.sh/uv/reference/settings/#python-preference
python-preference = "system"
EOF
}