diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-01-28 00:57:36 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-01-28 00:57:36 +0000 |
commit | 2865ab43f3d9f17ce41a2b048f7ca1ea32177955 (patch) | |
tree | 707500345b262089fc01758ae9a45a4222e4bb59 /dev-python/psycopg | |
parent | eaa317e2ed8d0c068526a9abdd1940406252c52e (diff) |
gentoo auto-resync : 28:01:2024 - 00:57:36
Diffstat (limited to 'dev-python/psycopg')
-rw-r--r-- | dev-python/psycopg/Manifest | 3 | ||||
-rw-r--r-- | dev-python/psycopg/files/psycopg-3.1.17-musl.patch | 34 | ||||
-rw-r--r-- | dev-python/psycopg/psycopg-3.1.17.ebuild | 50 |
3 files changed, 80 insertions, 7 deletions
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest index 388b44160285..d09804f72b5d 100644 --- a/dev-python/psycopg/Manifest +++ b/dev-python/psycopg/Manifest @@ -1,3 +1,4 @@ +AUX psycopg-3.1.17-musl.patch 1316 BLAKE2B f4fb3e0e130777a6300ebd5bc2c357693ec4b35af888319c1fbbccc26e66ebf5f266bdad0c135ed3c6a0cd8f33115b72c0212b1d7d0ea8be27e8de237934f204 SHA512 c02afcc10a375d3649f315591304f9329de4f6dc95dc247fe1a90be3ab2cd092a9159238c6c0e28ee330c72dc63cd13139f92ad4e9e07174d63c31628fef3c63 DIST psycopg-3.1.16.gh.tar.gz 502759 BLAKE2B 6c0b912c2a93425ddbed842a437e042b58ec859b3cf163aa7cd45a0db21084fea58945b40028e0491460b7d4da6648cfc361e1434d43ec7ab71af91f1a0c4c86 SHA512 d6cfcc848c089ef79c817bf271bcbad7078cdacacef4ab26e882fdbe55c90ac12644e7ee0af22f4cf1fa759033e94ee54c812bca7b517b84cda77276557e8ca8 DIST psycopg-3.1.17.gh.tar.gz 503318 BLAKE2B 43c0c5ef0be20c9415c7dbe3b2ff242f30341d055bcf00ff4f9d9926c5c95df3bf10735e338c37f9e805562544637e75fd9edd5dbf71d67b42d04eea19e5c82e SHA512 d9f0ce05be71d67dbd7d1abad548befcdc229b53de93d5c08a52cae287d6f5293de6ede380c9ffc25ffa4d935782e90e9b04783f1c4c1fb88cb9ffd7016aabd5 DIST psycopg2-2.9.4.tar.gz 384017 BLAKE2B 4bc0afcc890c8a257c1ccd5c6e4e5301857a80f8b1428aa46c1473c9e18f5d2914a2e592c13336b06106217bb334d9b0321835bdd123f1627cbeb29dedf97bf7 SHA512 259088e42e0ab0d8a1a0ccf04f5e560f32c6179b4a0a0059e91bcf269baa8f4b0f1f949c332c640a2438c927a29b2c144078a861f8e18ba9c764da7c93c73b8d @@ -5,5 +6,5 @@ DIST psycopg2-2.9.9.tar.gz 384926 BLAKE2B 8418fca1329703cedfc86be74d85cae5133a06 EBUILD psycopg-2.9.4.ebuild 1248 BLAKE2B 05090945297120771b3983ead32e88a6c178e631441a7fa3a3dea02c528650db938f39e0e8beed6bb46502e5c708efa32fa167285b7eacd214f587de5f8a53b4 SHA512 1e11a0c254f38c7e355d29a824b85546850b39dee02ef39a1275c2e461b3683793ed8c7dcae74cc4b8b70b9885203895e4b701ee39880f7de0fdb666d3826fec EBUILD psycopg-2.9.9.ebuild 1290 BLAKE2B f478219e54cc7f2c59790b82f72bd38e26a3d1181cedaa67444f7cfa283214c2f6402417099c426d329133e47a5f6e9043eeceeb7cfd2ebff10b4d7433229ece SHA512 8a3d087058f98b069b7326480d8063993ed4d1ae73792c5a5abf9b386bec586af52d015d49171a062c0c6407ec1fd062c8f27bfdcf6366d04bb64420db34836c EBUILD psycopg-3.1.16.ebuild 1781 BLAKE2B 087e1f67b6ababbf666651d3d9216cb0382507e07b03d2cdc694ea6cc45551126a1cf66cd275881012f8427a4bb31159eace9e0369d32a7e2ba8f2cd4877ecb5 SHA512 e2aefd6658d44d2e28adf5785e035bfdb1c1ff40fe1d275f7bd6aca35e89bcebf7dc1cd4fac24ebe8238067ad6be2e9bd2fb351cd44e83a7bcc3e23541d57521 -EBUILD psycopg-3.1.17.ebuild 1782 BLAKE2B bff43e95ae976dfd508466b12a2c865d8ccd7c15161491a7126fd4892ce5ce1c5a6ecf686661403fc9d370e713223523a685e62d4e76717d03fefd0701628265 SHA512 979f3ef13e8b9e51d715c419a9b72dc845068812fd36ac5fa24adc9f3b5b5c81a8ff2f822e093a1edab62918483661dcfd11213b03a632c9454f7fecb7d410d6 +EBUILD psycopg-3.1.17.ebuild 2590 BLAKE2B f1064930c7da54de6673f6c9a406373188ffbe5e821e9173776420216efce31bda46f43d0e453e046f001698990d353e3507036785b0ca24e9ecbc7a8bed8fdf SHA512 3288147ca5332c28ec225f5b12bc382fca7df1c401be3f01a52c86402e06a5f1ddfc53a712584d3e3234b03d759e7223bd9d7b58e50e0d2c919ae60faaf3e221 MISC metadata.xml 426 BLAKE2B a573dbbef89ba2c3c7e7aa11e87005879fa823daa8d7e2080ce82dab7196429769b5e2ed0c4ffb363443469dfa47524d900fae75c4d7c8c9da901389e746838f SHA512 e3059428d8c00113696bfd232b2ad3fd4efccc304a31ff45801f30bb07c03acd58aafcab187fd85e4d89eff4db6c18a1395744eb1fd5cf8f11e43aca0f4e60cc diff --git a/dev-python/psycopg/files/psycopg-3.1.17-musl.patch b/dev-python/psycopg/files/psycopg-3.1.17-musl.patch new file mode 100644 index 000000000000..ca1689931ed8 --- /dev/null +++ b/dev-python/psycopg/files/psycopg-3.1.17-musl.patch @@ -0,0 +1,34 @@ +From eeb662bf89e9ffdb3e6fc40eb30d0b53e0b4bece Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Sat, 27 Jan 2024 15:28:34 +0100 +Subject: [PATCH] fix: add `libc.so` fallback for musl systems to the ctypes + impl + +Add a fallback to `libc.so` library name to fix loading the ctypes +implementation on musl systems. On musl, `find_library("c")` does +not work (the problem has been reported to CPython in 2014, and has not +been resolved yet), causing the module to fail on `assert libcname`. +Instead, add a fallback to using `libc.so` and let ctypes raise +an exception if such a library does not exist. +--- + psycopg/psycopg/pq/_pq_ctypes.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py +index 9d4dd181..3ecff080 100644 +--- a/psycopg/psycopg/pq/_pq_ctypes.py ++++ b/psycopg/psycopg/pq/_pq_ctypes.py +@@ -28,8 +28,8 @@ class FILE(Structure): + FILE_ptr = POINTER(FILE) + + if sys.platform == "linux": +- libcname = ctypes.util.find_library("c") +- assert libcname ++ # find_library("c") does not work on musl, fall back to libc.so instead ++ libcname = ctypes.util.find_library("c") or "libc.so" + libc = ctypes.cdll.LoadLibrary(libcname) + + fdopen = libc.fdopen +-- +2.43.0 + diff --git a/dev-python/psycopg/psycopg-3.1.17.ebuild b/dev-python/psycopg/psycopg-3.1.17.ebuild index 5dc95f268c32..df2def1f51f9 100644 --- a/dev-python/psycopg/psycopg-3.1.17.ebuild +++ b/dev-python/psycopg/psycopg-3.1.17.ebuild @@ -3,6 +3,7 @@ EAPI=8 +DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( pypy3 python3_{10..12} ) @@ -18,20 +19,29 @@ SRC_URI=" https://github.com/psycopg/psycopg/archive/${PV}.tar.gz -> ${P}.gh.tar.gz " -S=${WORKDIR}/${P}/psycopg LICENSE="LGPL-3+" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="+native-extensions" DEPEND=" - >=dev-db/postgresql-8.1:* + native-extensions? ( + >=dev-db/postgresql-8.1:= + ) + !native-extensions? ( + >=dev-db/postgresql-8.1:* + ) " RDEPEND=" ${DEPEND} >=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}] " BDEPEND=" + native-extensions? ( + dev-python/cython[${PYTHON_USEDEP}] + dev-python/tomli[${PYTHON_USEDEP}] + ) test? ( >=dev-db/postgresql-8.1[server] dev-python/anyio[${PYTHON_USEDEP}] @@ -41,9 +51,27 @@ BDEPEND=" distutils_enable_tests pytest -src_test() { - # tests are lurking in top-level directory +PATCHES=( + # https://github.com/psycopg/psycopg/pull/725 + "${FILESDIR}/${P}-musl.patch" +) + +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 @@ -70,7 +98,17 @@ python_test() { tests/test_dns_srv.py::test_srv ) + local impls=( python ) + if use native-extensions && [[ ${EPYTHON} != pypy3 ]]; then + impls+=( c ) + fi + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - # leak and timing tests are fragile whereas slow tests are slow - epytest -p anyio -k "not leak" -m "not timing and not slow" + 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 -p anyio -k "not leak" \ + -m "not timing and not slow and not flakey" + done } |