summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-libs/libgit2/Manifest1
-rw-r--r--dev-libs/libgit2/libgit2-1.9.2.ebuild79
-rw-r--r--dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild2
-rw-r--r--dev-python/librt/Manifest2
-rw-r--r--dev-python/librt/librt-0.7.2.ebuild35
-rw-r--r--dev-python/libtmux/Manifest1
-rw-r--r--dev-python/libtmux/libtmux-0.50.1.ebuild37
-rw-r--r--dev-python/orjson/Manifest2
-rw-r--r--dev-python/orjson/orjson-3.11.5.ebuild92
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-3.3.2.ebuild123
-rw-r--r--dev-python/python-lsp-server/Manifest2
-rw-r--r--dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild (renamed from dev-python/python-lsp-server/python-lsp-server-1.13.0.ebuild)30
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.9.16.ebuild99
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.9.16.ebuild167
17 files changed, 658 insertions, 18 deletions
diff --git a/dev-libs/libgit2/Manifest b/dev-libs/libgit2/Manifest
index f429554b3ce1..726acc78fe1f 100644
--- a/dev-libs/libgit2/Manifest
+++ b/dev-libs/libgit2/Manifest
@@ -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
diff --git a/dev-libs/libgit2/libgit2-1.9.2.ebuild b/dev-libs/libgit2/libgit2-1.9.2.ebuild
new file mode 100644
index 000000000000..b86ed590044b
--- /dev/null
+++ b/dev-libs/libgit2/libgit2-1.9.2.ebuild
@@ -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
+}
diff --git a/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild b/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild
index a6339a42602b..10c57ddcaae7 100644
--- a/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild
+++ b/dev-python/importlib-metadata/importlib-metadata-8.7.0.ebuild
@@ -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
diff --git a/dev-python/librt/Manifest b/dev-python/librt/Manifest
index b1d64f95ea04..7137a5127562 100644
--- a/dev-python/librt/Manifest
+++ b/dev-python/librt/Manifest
@@ -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
diff --git a/dev-python/librt/librt-0.7.2.ebuild b/dev-python/librt/librt-0.7.2.ebuild
new file mode 100644
index 000000000000..6271fdc94475
--- /dev/null
+++ b/dev-python/librt/librt-0.7.2.ebuild
@@ -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
+}
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index 5887db96aa71..c65acf301dd1 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -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
diff --git a/dev-python/libtmux/libtmux-0.50.1.ebuild b/dev-python/libtmux/libtmux-0.50.1.ebuild
new file mode 100644
index 000000000000..578d5b1119f4
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.50.1.ebuild
@@ -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
+}
diff --git a/dev-python/orjson/Manifest b/dev-python/orjson/Manifest
index 2c9f2ab2e468..88498f00a0b4 100644
--- a/dev-python/orjson/Manifest
+++ b/dev-python/orjson/Manifest
@@ -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
diff --git a/dev-python/orjson/orjson-3.11.5.ebuild b/dev-python/orjson/orjson-3.11.5.ebuild
new file mode 100644
index 000000000000..fdfbad6f6cb5
--- /dev/null
+++ b/dev-python/orjson/orjson-3.11.5.ebuild
@@ -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
+}
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index 09721d36820c..7fec59d6c41a 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -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
diff --git a/dev-python/psycopg/psycopg-3.3.2.ebuild b/dev-python/psycopg/psycopg-3.3.2.ebuild
new file mode 100644
index 000000000000..f3416b240927
--- /dev/null
+++ b/dev-python/psycopg/psycopg-3.3.2.ebuild
@@ -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
+}
diff --git a/dev-python/python-lsp-server/Manifest b/dev-python/python-lsp-server/Manifest
index 6b6ac3a09dc0..7bf14006cdb9 100644
--- a/dev-python/python-lsp-server/Manifest
+++ b/dev-python/python-lsp-server/Manifest
@@ -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
diff --git a/dev-python/python-lsp-server/python-lsp-server-1.13.0.ebuild b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
index 47c54ed61e48..416f09cad193 100644
--- a/dev-python/python-lsp-server/python-lsp-server-1.13.0.ebuild
+++ b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
@@ -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
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index c4a041b4a6de..8ea7962f719f 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -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
diff --git a/dev-python/uv-build/uv-build-0.9.16.ebuild b/dev-python/uv-build/uv-build-0.9.16.ebuild
new file mode 100644
index 000000000000..ca71aacd7b98
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.9.16.ebuild
@@ -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
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index aea111cce11a..a6969e6ab250 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -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
diff --git a/dev-python/uv/uv-0.9.16.ebuild b/dev-python/uv/uv-0.9.16.ebuild
new file mode 100644
index 000000000000..253d1ec065af
--- /dev/null
+++ b/dev-python/uv/uv-0.9.16.ebuild
@@ -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
+