diff options
Diffstat (limited to 'dev-python/asyncpg')
| -rw-r--r-- | dev-python/asyncpg/Manifest | 3 | ||||
| -rw-r--r-- | dev-python/asyncpg/asyncpg-0.30.0.ebuild | 86 | ||||
| -rw-r--r-- | dev-python/asyncpg/asyncpg-0.31.0.ebuild | 87 | ||||
| -rw-r--r-- | dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch | 15 | ||||
| -rw-r--r-- | dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch | 67 | ||||
| -rw-r--r-- | dev-python/asyncpg/metadata.xml | 16 |
6 files changed, 274 insertions, 0 deletions
diff --git a/dev-python/asyncpg/Manifest b/dev-python/asyncpg/Manifest new file mode 100644 index 000000000000..8ae73e987189 --- /dev/null +++ b/dev-python/asyncpg/Manifest @@ -0,0 +1,3 @@ +DIST asyncpg-0.30.0.tar.gz 957746 BLAKE2B 2da92520bd30c1e5eebbfddabf78b9e9e221fb33ad77fa01f77ceb8bdf73e057868bf60987c2c67a6ed5d8b0cacb3b80c0aefd6afa1b574e2629d358c9158bbb SHA512 bbfc83ae881f454cb16343037ae48fbc9c9c65b57d11fc1e28ec054b9051d823f7da0735307090d0ce4e5dca166590b147d0f9d383a1ac0b894396290aa0782a +DIST asyncpg-0.31.0.tar.gz 993667 BLAKE2B 41c88e652b280ccb2add527df35fd470a3c42573082022ba5e241a9c414f4bf32265249b22d5c7de8414b95c0b2de7ed974df1fff1d8777864553e3ba9b3dfce SHA512 150c5b989a0ecd9903e9c932030f30c58750a180e95d2fab7323cf2b8b20a13b85c346f9fae19efb74ced5dbe724fd2722bbd3b0c44eedca532fb79b42edf350 +DIST asyncpg-0.31.0.tar.gz.provenance 9517 BLAKE2B dc9a5462ab05b3a5dc5fd31104b801dd3f2699428bbf2eae4c3fbfa3479cb0912bcced83123d244ed4a51cce53dce12a841656de13b05c18113e74816aa4f193 SHA512 f8f9f93dd503a2c143006b9736a0460638e185be1352778b2556b200c79664f73c6c7dfae6364afe298c6d08566bad76871894b917b3f7a9ba53d249b2453608 diff --git a/dev-python/asyncpg/asyncpg-0.30.0.ebuild b/dev-python/asyncpg/asyncpg-0.30.0.ebuild new file mode 100644 index 000000000000..88938fc950f1 --- /dev/null +++ b/dev-python/asyncpg/asyncpg-0.30.0.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) # doesn't build with pypy3 +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 pypi + +DESCRIPTION="An asyncio PostgreSQL driver" +HOMEPAGE=" + https://pypi.org/project/asyncpg/ + https://github.com/MagicStack/asyncpg +" + +LICENSE="Apache-2.0 PSF-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="kerberos" + +RDEPEND=" + kerberos? ( dev-python/gssapi[${PYTHON_USEDEP}] ) +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + test? ( + dev-db/postgresql[kerberos?,server,ssl] + dev-python/distro[${PYTHON_USEDEP}] + dev-python/uvloop[${PYTHON_USEDEP}] + kerberos? ( + app-crypt/mit-krb5 + dev-python/k5test[${PYTHON_USEDEP}] + ) + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.30.0-cflags.patch + "${FILESDIR}"/${PN}-0.30.0-disable-broken-tests.patch +) + +EPYTEST_PLUGINS=( ) +EPYTEST_IGNORE=( + # checks versions from env variables + "${S}"/tests/test__environment.py + # runs flake8 (???) + "${S}"/tests/test__sourcecode.py +) + +distutils_enable_tests pytest + +distutils_enable_sphinx docs \ + dev-python/sphinx-rtd-theme + +python_prepare_all() { + # bug #926720 + cat <<-EOF >> setup.cfg || die + [build_ext] + debug=False + cython_always=True + cython_annotate=False + cython_directives= + EOF + + # remove pre-generated Cython sources + rm asyncpg/{pgproto/pgproto,protocol/protocol}.c || die + + distutils-r1_python_prepare_all +} + +python_configure_all() { + use debug && \ + export ASYNCPG_DEBUG=1 + + use kerberos || \ + EPYTEST_DESELECT+=( tests/test_connect.py::TestGssAuthentication ) +} + +python_test() { + cd "${T}" || die + for opt in "" "1"; do + einfo " testing with USE_UVLOOP='${opt}'" + USE_UVLOOP="${opt}" epytest "${S}"/tests + done +} diff --git a/dev-python/asyncpg/asyncpg-0.31.0.ebuild b/dev-python/asyncpg/asyncpg-0.31.0.ebuild new file mode 100644 index 000000000000..33a01c48f330 --- /dev/null +++ b/dev-python/asyncpg/asyncpg-0.31.0.ebuild @@ -0,0 +1,87 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) # doesn't build with pypy3 +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO="https://github.com/MagicStack/asyncpg" +inherit distutils-r1 pypi + +DESCRIPTION="An asyncio PostgreSQL driver" +HOMEPAGE=" + https://pypi.org/project/asyncpg/ + https://github.com/MagicStack/asyncpg +" + +LICENSE="Apache-2.0 PSF-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="kerberos" + +RDEPEND=" + kerberos? ( dev-python/gssapi[${PYTHON_USEDEP}] ) +" +BDEPEND=" + >=dev-python/cython-3.2.1[${PYTHON_USEDEP}] + <dev-python/cython-4[${PYTHON_USEDEP}] + test? ( + dev-db/postgresql[kerberos?,server,ssl] + dev-python/distro[${PYTHON_USEDEP}] + dev-python/uvloop[${PYTHON_USEDEP}] + kerberos? ( + app-crypt/mit-krb5 + dev-python/k5test[${PYTHON_USEDEP}] + ) + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.30.0-cflags.patch +) + +EPYTEST_PLUGINS=( ) +EPYTEST_IGNORE=( + # checks versions from env variables + "${S}"/tests/test__environment.py + # runs flake8 (???) + "${S}"/tests/test__sourcecode.py +) + +distutils_enable_tests pytest + +distutils_enable_sphinx docs \ + dev-python/sphinx-rtd-theme + +python_prepare_all() { + # bug #926720 + cat <<-EOF >> setup.cfg || die + [build_ext] + debug=False + cython_always=True + cython_annotate=False + cython_directives= + EOF + + # remove pre-generated Cython sources + rm asyncpg/{pgproto/pgproto,protocol/protocol}.c || die + + distutils-r1_python_prepare_all +} + +python_configure_all() { + use debug && \ + export ASYNCPG_DEBUG=1 + + use kerberos || \ + EPYTEST_DESELECT+=( tests/test_connect.py::TestGssAuthentication ) +} + +python_test() { + cd "${T}" || die + for opt in "" "1"; do + einfo " testing with USE_UVLOOP='${opt}'" + USE_UVLOOP="${opt}" epytest "${S}"/tests + done +} diff --git a/dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch b/dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch new file mode 100644 index 000000000000..19c197dd7bd1 --- /dev/null +++ b/dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch @@ -0,0 +1,15 @@ +Do not overwrite user's optimization. + +Bug: https://bugs.gentoo.org/887651 + +--- a/setup.py ++++ b/setup.py +@@ -27,7 +27,7 @@ from setuptools.command import build_ext as setuptools_build_ext + + CYTHON_DEPENDENCY = 'Cython(>=0.29.24,<4.0.0)' + +-CFLAGS = ['-O2'] ++CFLAGS = [] + LDFLAGS = [] + + if platform.uname().system != 'Windows': diff --git a/dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch b/dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch new file mode 100644 index 000000000000..1fafbc25f3c0 --- /dev/null +++ b/dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch @@ -0,0 +1,67 @@ +From 5a1ee01f8bc8fc6709ef4f636f7a67029d90e26d Mon Sep 17 00:00:00 2001 +From: Elvis Pranskevichus <elvis@edgedb.com> +Date: Fri, 14 Mar 2025 17:58:46 -0700 +Subject: [PATCH] Disable connection URI tests broken by a recent Python fix + (#1244) + +A fix for python/cpython#105704 broke parsing of URIs containing +multiple hosts if one or all of the hosts are IPv6 address literals. +This blocks CI, so disable those tests for now until this is fixed +properly. +--- + tests/test_connect.py | 39 ++++++++++++++++++++------------------- + 1 file changed, 20 insertions(+), 19 deletions(-) + +diff --git a/tests/test_connect.py b/tests/test_connect.py +index 0037ee5..024c29e 100644 +--- a/tests/test_connect.py ++++ b/tests/test_connect.py +@@ -846,25 +846,26 @@ class TestConnectParams(tb.TestCase): + ), + }, + +- { +- 'name': 'dsn_ipv6_multi_host', +- 'dsn': 'postgresql://user@[2001:db8::1234%25eth0],[::1]/db', +- 'result': ([('2001:db8::1234%eth0', 5432), ('::1', 5432)], { +- 'database': 'db', +- 'user': 'user', +- 'target_session_attrs': 'any', +- }) +- }, +- +- { +- 'name': 'dsn_ipv6_multi_host_port', +- 'dsn': 'postgresql://user@[2001:db8::1234]:1111,[::1]:2222/db', +- 'result': ([('2001:db8::1234', 1111), ('::1', 2222)], { +- 'database': 'db', +- 'user': 'user', +- 'target_session_attrs': 'any', +- }) +- }, ++ # broken by https://github.com/python/cpython/pull/129418 ++ # { ++ # 'name': 'dsn_ipv6_multi_host', ++ # 'dsn': 'postgresql://user@[2001:db8::1234%25eth0],[::1]/db', ++ # 'result': ([('2001:db8::1234%eth0', 5432), ('::1', 5432)], { ++ # 'database': 'db', ++ # 'user': 'user', ++ # 'target_session_attrs': 'any', ++ # }) ++ # }, ++ ++ # { ++ # 'name': 'dsn_ipv6_multi_host_port', ++ # 'dsn': 'postgresql://user@[2001:db8::1234]:1111,[::1]:2222/db', ++ # 'result': ([('2001:db8::1234', 1111), ('::1', 2222)], { ++ # 'database': 'db', ++ # 'user': 'user', ++ # 'target_session_attrs': 'any', ++ # }) ++ # }, + + { + 'name': 'dsn_ipv6_multi_host_query_part', +-- +2.50.0 + diff --git a/dev-python/asyncpg/metadata.xml b/dev-python/asyncpg/metadata.xml new file mode 100644 index 000000000000..7340e7af2344 --- /dev/null +++ b/dev-python/asyncpg/metadata.xml @@ -0,0 +1,16 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>cyber+gentoo@sysrq.in</email> + <name>Anna</name> + </maintainer> + <upstream> + <remote-id type="github">MagicStack/asyncpg</remote-id> + <remote-id type="pypi">asyncpg</remote-id> + <maintainer> + <name>MagicStack Inc</name> + <email>hello@magic.io</email> + </maintainer> + </upstream> +</pkgmetadata> |
