From 77dac2f63ec95886284aa76bb39df5c71d2bc46a Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 6 Sep 2022 02:56:33 +0200 Subject: [PATCH] python3Packages.psycopg: 3.1 -> 3.1.1 https://www.psycopg.org/psycopg3/docs/news.html#psycopg-3-1-1 --- .../python-modules/psycopg/ctypes.patch | 46 +++++++++++++++++++ .../python-modules/psycopg/default.nix | 7 +-- .../python-modules/psycopg/libpq.patch | 22 --------- 3 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 pkgs/development/python-modules/psycopg/ctypes.patch delete mode 100644 pkgs/development/python-modules/psycopg/libpq.patch 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}") diff --git a/pkgs/development/python-modules/psycopg/default.nix b/pkgs/development/python-modules/psycopg/default.nix index a5fe3150d5d9..1f096ccac321 100644 --- a/pkgs/development/python-modules/psycopg/default.nix +++ b/pkgs/development/python-modules/psycopg/default.nix @@ -32,19 +32,20 @@ let pname = "psycopg"; - version = "3.1"; + version = "3.1.1"; src = fetchFromGitHub { owner = "psycopg"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-N0Qc8pSWN2NFZn06lYZ7DKMbk6H8aIByS+wDnOQ/O+Y="; + hash = "sha256-PrWHjs8PLmx7bgKtyhXaiSKmz9oT2OhXDkKd4xi7e0A="; }; patches = [ (substituteAll { - src = ./libpq.patch; + src = ./ctypes.patch; libpq = "${postgresql.lib}/lib/libpq${stdenv.hostPlatform.extensions.sharedLibrary}"; + libc = "${stdenv.cc.libc}/lib/libc.so.6"; }) ]; diff --git a/pkgs/development/python-modules/psycopg/libpq.patch b/pkgs/development/python-modules/psycopg/libpq.patch deleted file mode 100644 index 51271c3021aa..000000000000 --- a/pkgs/development/python-modules/psycopg/libpq.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py -index bf04d560..9e79fc3f 100644 ---- a/psycopg/psycopg/pq/_pq_ctypes.py -+++ b/psycopg/psycopg/pq/_pq_ctypes.py -@@ -13,16 +13,7 @@ from typing import List, Optional, Tuple - - from ..errors import NotSupportedError - --if sys.platform == "win32": -- libname = ctypes.util.find_library("libpq.dll") --elif sys.platform == "darwin": -- libname = ctypes.util.find_library("libpq.dylib") --else: -- libname = ctypes.util.find_library("pq") --if not libname: -- raise ImportError("libpq library not found") -- --pq = ctypes.cdll.LoadLibrary(libname) -+pq = ctypes.cdll.LoadLibrary("@libpq@") - - # Get the libpq version to define what functions are available. -