lol

Merge pull request #189937 from mweinelt/psycopg-3.1.1

authored by

Martin Weinelt and committed by
GitHub
840dc5ab c9abd143

+50 -25
+46
pkgs/development/python-modules/psycopg/ctypes.patch
··· 1 + diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py 2 + index 4f9d00fb..24b90ef6 100644 3 + --- a/psycopg/psycopg/pq/_pq_ctypes.py 4 + +++ b/psycopg/psycopg/pq/_pq_ctypes.py 5 + @@ -11,14 +11,10 @@ from ctypes import Structure, CFUNCTYPE, POINTER 6 + from ctypes import c_char, c_char_p, c_int, c_size_t, c_ubyte, c_uint, c_void_p 7 + from typing import List, Optional, Tuple 8 + 9 + -from .misc import find_libpq_full_path 10 + from ..errors import NotSupportedError 11 + 12 + -libname = find_libpq_full_path() 13 + -if not libname: 14 + - raise ImportError("libpq library not found") 15 + 16 + -pq = ctypes.cdll.LoadLibrary(libname) 17 + +pq = ctypes.cdll.LoadLibrary("@libpq@") 18 + 19 + 20 + class FILE(Structure): 21 + @@ -28,9 +24,7 @@ class FILE(Structure): 22 + FILE_ptr = POINTER(FILE) 23 + 24 + if sys.platform == "linux": 25 + - libcname = ctypes.util.find_library("c") 26 + - assert libcname 27 + - libc = ctypes.cdll.LoadLibrary(libcname) 28 + + libc = ctypes.cdll.LoadLibrary("@libc@") 29 + 30 + fdopen = libc.fdopen 31 + fdopen.argtypes = (c_int, c_char_p) 32 + diff --git a/tests/fix_pq.py b/tests/fix_pq.py 33 + index 6811a26c..c1829c82 100644 34 + --- a/tests/fix_pq.py 35 + +++ b/tests/fix_pq.py 36 + @@ -51,9 +51,7 @@ def libpq(): 37 + from psycopg.pq.misc import find_libpq_full_path 38 + 39 + # Not available when testing the binary package 40 + - libname = find_libpq_full_path() 41 + - assert libname, "libpq libname not found" 42 + - return ctypes.pydll.LoadLibrary(libname) 43 + + return ctypes.pydll.LoadLibrary("@libpq@") 44 + except Exception as e: 45 + if pq.__impl__ == "binary": 46 + pytest.skip(f"can't load libpq for testing: {e}")
+4 -3
pkgs/development/python-modules/psycopg/default.nix
··· 32 32 33 33 let 34 34 pname = "psycopg"; 35 - version = "3.1"; 35 + version = "3.1.1"; 36 36 37 37 src = fetchFromGitHub { 38 38 owner = "psycopg"; 39 39 repo = pname; 40 40 rev = "refs/tags/${version}"; 41 - hash = "sha256-N0Qc8pSWN2NFZn06lYZ7DKMbk6H8aIByS+wDnOQ/O+Y="; 41 + hash = "sha256-PrWHjs8PLmx7bgKtyhXaiSKmz9oT2OhXDkKd4xi7e0A="; 42 42 }; 43 43 44 44 patches = [ 45 45 (substituteAll { 46 - src = ./libpq.patch; 46 + src = ./ctypes.patch; 47 47 libpq = "${postgresql.lib}/lib/libpq${stdenv.hostPlatform.extensions.sharedLibrary}"; 48 + libc = "${stdenv.cc.libc}/lib/libc.so.6"; 48 49 }) 49 50 ]; 50 51
-22
pkgs/development/python-modules/psycopg/libpq.patch
··· 1 - diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py 2 - index bf04d560..9e79fc3f 100644 3 - --- a/psycopg/psycopg/pq/_pq_ctypes.py 4 - +++ b/psycopg/psycopg/pq/_pq_ctypes.py 5 - @@ -13,16 +13,7 @@ from typing import List, Optional, Tuple 6 - 7 - from ..errors import NotSupportedError 8 - 9 - -if sys.platform == "win32": 10 - - libname = ctypes.util.find_library("libpq.dll") 11 - -elif sys.platform == "darwin": 12 - - libname = ctypes.util.find_library("libpq.dylib") 13 - -else: 14 - - libname = ctypes.util.find_library("pq") 15 - -if not libname: 16 - - raise ImportError("libpq library not found") 17 - - 18 - -pq = ctypes.cdll.LoadLibrary(libname) 19 - +pq = ctypes.cdll.LoadLibrary("@libpq@") 20 - 21 - # Get the libpq version to define what functions are available. 22 -