about summary refs log tree commit diff
path: root/pkgs/development/python-modules/psycopg/ctypes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/psycopg/ctypes.patch')
-rw-r--r--pkgs/development/python-modules/psycopg/ctypes.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/psycopg/ctypes.patch b/pkgs/development/python-modules/psycopg/ctypes.patch
new file mode 100644
index 000000000000..a76d38f85e80
--- /dev/null
+++ b/pkgs/development/python-modules/psycopg/ctypes.patch
@@ -0,0 +1,46 @@
+diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py
+index 4f9d00fb..24b90ef6 100644
+--- a/psycopg/psycopg/pq/_pq_ctypes.py
++++ b/psycopg/psycopg/pq/_pq_ctypes.py
+@@ -11,14 +11,10 @@ from ctypes import Structure, CFUNCTYPE, POINTER
+ from ctypes import c_char, c_char_p, c_int, c_size_t, c_ubyte, c_uint, c_void_p
+ from typing import List, Optional, Tuple
+ 
+-from .misc import find_libpq_full_path
+ from ..errors import NotSupportedError
+ 
+-libname = find_libpq_full_path()
+-if not libname:
+-    raise ImportError("libpq library not found")
+ 
+-pq = ctypes.cdll.LoadLibrary(libname)
++pq = ctypes.cdll.LoadLibrary("@libpq@")
+ 
+ 
+ class FILE(Structure):
+@@ -28,9 +24,7 @@ class FILE(Structure):
+ FILE_ptr = POINTER(FILE)
+ 
+ if sys.platform == "linux":
+-    libcname = ctypes.util.find_library("c")
+-    assert libcname
+-    libc = ctypes.cdll.LoadLibrary(libcname)
++    libc = ctypes.cdll.LoadLibrary("@libc@")
+ 
+     fdopen = libc.fdopen
+     fdopen.argtypes = (c_int, c_char_p)
+diff --git a/tests/fix_pq.py b/tests/fix_pq.py
+index 6811a26c..c1829c82 100644
+--- a/tests/fix_pq.py
++++ b/tests/fix_pq.py
+@@ -51,9 +51,7 @@ def libpq():
+         from psycopg.pq.misc import find_libpq_full_path
+ 
+         # Not available when testing the binary package
+-        libname = find_libpq_full_path()
+-        assert libname, "libpq libname not found"
+-        return ctypes.pydll.LoadLibrary(libname)
++        return ctypes.pydll.LoadLibrary("@libpq@")
+     except Exception as e:
+         if pq.__impl__ == "binary":
+             pytest.skip(f"can't load libpq for testing: {e}")