Sync from SUSE:SLFO:Main python-psycopg2 revision 2660508958e298a30eda146f66a2025e

This commit is contained in:
Adrian Schröter 2024-12-13 11:59:02 +01:00
parent 4141036607
commit d8d0948dea
5 changed files with 163 additions and 46 deletions

BIN
psycopg2-2.9.6.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
psycopg2-2.9.9.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,37 @@
-------------------------------------------------------------------
Tue Oct 29 05:08:18 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Drop patch py313-tests.patch, included in:
- Add patch support-python-313.patch:
* Support Python 3.13.
-------------------------------------------------------------------
Mon Oct 28 21:56:17 UTC 2024 - Dirk Müller <dmueller@suse.com>
- add py313-tests.patch
-------------------------------------------------------------------
Wed Jan 3 10:10:03 UTC 2024 - Dirk Müller <dmueller@suse.com>
- require setuptools
-------------------------------------------------------------------
Tue Nov 28 21:39:17 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 2.9.9:
* Add support for Python 3.12.
* Drop support for Python 3.6.
* Wheel package bundled with PostgreSQL 16 libpq in order to
add support for recent features, such as ``sslcertmode``.
-------------------------------------------------------------------
Thu Sep 7 11:08:36 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 2.9.7:
* Fix propagation of exceptions raised during module
initialization
* Fix building when pg_config returns an empty string
-------------------------------------------------------------------
Fri Apr 21 12:30:00 UTC 2023 - Dirk Müller <dmueller@suse.com>
@ -19,7 +53,7 @@ Mon Apr 3 19:55:26 UTC 2023 - Dirk Müller <dmueller@suse.com>
-------------------------------------------------------------------
Fri Oct 28 19:56:31 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to 2.9.5
- Update to 2.9.5
* Add support for Python 3.11.
* Add support for rowcount in MERGE statements in binary packages
(ticket`#1497`).
@ -40,7 +74,7 @@ Fri Oct 28 19:56:31 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
Thu Dec 30 09:54:04 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 2.9.3:
* Alpine (musl) wheels now available
* Alpine (musl) wheels now available
-------------------------------------------------------------------
Mon Nov 29 10:57:15 UTC 2021 - Dirk Müller <dmueller@suse.com>
@ -101,7 +135,7 @@ Tue May 19 06:16:56 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
-------------------------------------------------------------------
Thu Apr 23 16:13:29 UTC 2020 - Marcus Rueckert <mrueckert@suse.de>
- update to 2.8.5
- update to 2.8.5
- Fixed use of connection_factory and cursor_factory together
(ticket #1019).
- Added support for logging.LoggerAdapter in LoggingConnection
@ -150,32 +184,32 @@ Thu Jul 4 15:02:11 UTC 2019 - Daniel Molkentin <daniel.molkentin@suse.com>
Tue Jun 4 15:36:23 UTC 2019 - Marketa Calabkova <mcalabkova@suse.com>
- Update to 2.8.3
* Added interval_status parameter to start_replication() method
and other facilities to send automatic replication keepalives
* Added interval_status parameter to start_replication() method
and other facilities to send automatic replication keepalives
at periodic intervals
* Fixed RealDictCursor when there are repeated columns
* Fixed RealDictRow modifiability
* Fixed “theres no async cursor” error polling a connection with
* Fixed “theres no async cursor” error polling a connection with
no cursor
2.8.0
* Added errors module. Every PostgreSQL error is converted into
* Added errors module. Every PostgreSQL error is converted into
a specific exception class
* Added encrypt_password() function
* Added BYTES adapter to manage databases with mixed encodings on
* Added BYTES adapter to manage databases with mixed encodings on
Python 3
* Added table_oid and table_column attributes on cursor.description
* Added table_oid and table_column attributes on cursor.description
items
* Added connection.info object to retrieve various PostgreSQL
* Added connection.info object to retrieve various PostgreSQL
connection information
* str() on Range produces a human-readable representation
* Fixed async communication blocking if results are returned in
* Fixed async communication blocking if results are returned in
different chunks
* Fixed adaptation of numeric subclasses such as IntEnum
* Dropped support for Python 2.6, 3.2, 3.3.
* Dropped deprecated register_tstz_w_secs()
* Dropped deprecated PersistentConnectionPool. Use
* Dropped deprecated PersistentConnectionPool. Use
ZPsycopgDA.pool instead.
* Binary packages no longer installed by default. The
* Binary packages no longer installed by default. The
psycopg2-binary package must be used explicitly.
* Dropped PSYCOPG_DISPLAY_SIZE build parameter.
@ -286,32 +320,32 @@ Fri Jun 23 16:26:18 UTC 2017 - jmatejek@suse.com
- convert to singlespec
- update to 2.7.1
* Added sql module to generate SQL dynamically (ticket #308).
* Added Replication protocol support (ticket #322). Main authors are
* Added Replication protocol support (ticket #322). Main authors are
Oleksandr Shulgin and Craig Ringer, who deserve a huge thank you.
* Added parse_dsn() and make_dsn() functions (tickets #321, #363). connect()
* Added parse_dsn() and make_dsn() functions (tickets #321, #363). connect()
now can take both dsn and keyword arguments, merging them together.
* Added __libpq_version__ and libpq_version() to inspect the version of the
* Added __libpq_version__ and libpq_version() to inspect the version of the
libpq library the module was compiled/loaded with (tickets #35, #323).
* The attributes notices and notifies can be customized replacing them with
* The attributes notices and notifies can be customized replacing them with
any object exposing an append() method (ticket #326).
* Adapt network types to ipaddress objects when available. When not enabled,
convert arrays of network types to lists by default. The old Inet adapter is
* Adapt network types to ipaddress objects when available. When not enabled,
convert arrays of network types to lists by default. The old Inet adapter is
deprecated (tickets #317, #343, #387).
* Added quote_ident() function (ticket #359).
* Added get_dsn_parameters() connection method (ticket #364).
* callproc() now accepts a dictionary of parameters (ticket #381).
* Give precedence to __conform__() over superclasses to choose an object
* Give precedence to __conform__() over superclasses to choose an object
adapter (ticket #456).
* Using Python C API decoding functions and codecs caching for faster
* Using Python C API decoding functions and codecs caching for faster
unicode encoding/decoding (ticket #473).
* executemany() slowness addressed by execute_batch() and execute_values()
* executemany() slowness addressed by execute_batch() and execute_values()
(ticket #491).
* Added async_ as an alias for async to support Python 3.7 where async will
* Added async_ as an alias for async to support Python 3.7 where async will
become a keyword (ticket #495).
* Unless in autocommit, do not use default_transaction_* settings to control
the session characteristics as it may create problems with external
* Unless in autocommit, do not use default_transaction_* settings to control
the session characteristics as it may create problems with external
connection pools such as pgbouncer; use BEGIN options instead (ticket #503).
* isolation_level is now writable and entirely separated from autocommit;
* isolation_level is now writable and entirely separated from autocommit;
added readonly, deferrable writable attributes.
* dropped support for python 2.5 and postgres client library < 9.1
* many bugs fixed
@ -479,7 +513,7 @@ Tue Apr 16 18:05:47 UTC 2013 - jfunk@funktronics.ca
-------------------------------------------------------------------
Fri May 25 14:07:21 UTC 2012 - cfarrell@suse.com
- license update: LGPL-3.0+ and (LGPL-3.0+ or ZPL-2.0) and
- license update: LGPL-3.0+ and (LGPL-3.0+ or ZPL-2.0) and
SUSE-GPL-2.0-with-openssl-exception
See the COPYING file. There are GPL-2.0+ (with openssl linking exceptions
for pgsql) in the package. Also, the ZPL option is only available for one
@ -489,7 +523,7 @@ Fri May 25 14:07:21 UTC 2012 - cfarrell@suse.com
Fri May 25 05:32:01 UTC 2012 - highwaystar.ru@gmail.com
- python3 package added
- minor spec improvement
- minor spec improvement
-------------------------------------------------------------------
Fri Apr 6 19:05:14 UTC 2012 - jfunk@funktronics.ca
@ -615,8 +649,8 @@ Wed Oct 27 02:43:22 UTC 2010 - termim@gmail.com
* the call to logging.basicConfig() in pool.py has been dropped:
it was messing with some projects using logging (and a library
should not initialize the logging system anyway.)
* psycopg now correctly handles time zones with seconds in the
UTC offset. The old register_tstz_w_secs() function is deprecated
* psycopg now correctly handles time zones with seconds in the
UTC offset. The old register_tstz_w_secs() function is deprecated
and will raise a warning if called.
* Exceptions raised by the column iterator are propagated.
* Exceptions raised by executemany() interators are propagated.
@ -674,7 +708,7 @@ Wed Nov 5 11:57:40 CET 2008 - poeml@suse.de
Wed Jun 13 07:56:02 UTC 2007 - judas_iscariote@shorewall.net
- Update to version 2.0.6 see http://initd.org/pub/software/psycopg/ChangeLog
for details.
for details.
-------------------------------------------------------------------
Wed Oct 19 00:00:00 UTC 2005 - jfunk@funktronics.ca

View File

@ -1,7 +1,7 @@
#
# spec file for package python-psycopg2
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,25 +16,27 @@
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
%{?sle15_python_module_pythons}
Name: python-psycopg2
Version: 2.9.6
Version: 2.9.9
Release: 0
Summary: Python-PostgreSQL Database Adapter
License: LGPL-3.0-or-later AND (LGPL-3.0-or-later OR ZPL-2.0) AND SUSE-GPL-2.0-with-openssl-exception
URL: http://initd.org/psycopg/
URL: https://www.psycopg.org/
Source: https://files.pythonhosted.org/packages/source/p/psycopg2/psycopg2-%{version}.tar.gz
BuildRequires: %{python_module devel >= 3.6}
# PATCH-FIX-UPSTREAM gh#psycopg/psycopg2#1695
Patch0: support-python-313.patch
BuildRequires: %{python_module devel >= 3.7}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# newer postgresql packages pg_config in -server-devel
%if 0%{?sle_version} > 150100 || 0%{?suse_version} > 1500
BuildRequires: postgresql-server-devel >= 9.1
BuildRequires: postgresql-server-devel >= 15
%else
BuildRequires: postgresql-devel >= 9.1
BuildRequires: postgresql-devel >= 15
%endif
%if 0%{?suse_version} || 0%{?fedora_version} >= 24
Suggests: postgresql-server
@ -52,14 +54,14 @@ UPDATEs. psycopg2 also provide asychronous operations and support
for coroutine libraries.
%prep
%setup -q -n psycopg2-%{version}
%autosetup -p1 -n psycopg2-%{version}
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
%python_build
%pyproject_wheel
%install
%python_install
%pyproject_install
%python_expand rm -rf %{buildroot}%{$python_sitearch}/psycopg2/tests # Don't package testsuite
%fdupes %{buildroot}/%{_mandir} # Create symlinks for man pages
%python_expand %fdupes %{buildroot}%{$python_sitearch}
@ -72,6 +74,6 @@ export CFLAGS="%{optflags} -fno-strict-aliasing"
%license LICENSE
%doc AUTHORS NEWS README.rst
%{python_sitearch}/psycopg2/
%{python_sitearch}/psycopg2-%{version}-py%{python_version}.egg-info
%{python_sitearch}/psycopg2-%{version}.dist-info
%changelog

81
support-python-313.patch Normal file
View File

@ -0,0 +1,81 @@
From 829a7a2be93f5d0fb1edbc0feb104181f208efc6 Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Wed, 24 Apr 2024 09:50:32 +0200
Subject: [PATCH 1/6] _PyInterpreterState_Get() has become public in Python
3.13
Since 3.13.0a1 it has been renamed to PyInterpreterStateGet()
Source: https://github.com/python/cpython/pull/106321
---
psycopg/utils.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/psycopg/utils.c b/psycopg/utils.c
index 16be9062a..1dfb87d0b 100644
--- a/psycopg/utils.c
+++ b/psycopg/utils.c
@@ -392,7 +392,10 @@ psyco_set_error(PyObject *exc, cursorObject *curs, const char *msg)
static int
psyco_is_main_interp(void)
{
-#if PY_VERSION_HEX >= 0x03080000
+#if PY_VERSION_HEX >= 0x030d0000
+ /* tested with Python 3.13.0a6 */
+ return PyInterpreterState_Get() == PyInterpreterState_Main();
+#elif PY_VERSION_HEX >= 0x03080000
/* tested with Python 3.8.0a2 */
return _PyInterpreterState_Get() == PyInterpreterState_Main();
#else
From 3b9aa7cf9f3b000407dc0ee8e77fbcf54fa04d7f Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Wed, 24 Apr 2024 09:56:08 +0200
Subject: [PATCH 2/6] Fix tests with Python 3.13
The textual representation of addresses has changed, adapt the code to
expect different values on Python 3.13+.
See: https://github.com/python/cpython/commit/f22bf8e3cf899896cf587099d292
---
tests/test_ipaddress.py | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/tests/test_ipaddress.py b/tests/test_ipaddress.py
index 4a2339ef9..3f8036900 100755
--- a/tests/test_ipaddress.py
+++ b/tests/test_ipaddress.py
@@ -18,6 +18,7 @@
from . import testutils
import unittest
+import sys
import psycopg2
import psycopg2.extras
@@ -68,7 +69,12 @@ def test_inet_adapt(self):
self.assertEquals(cur.fetchone()[0], '127.0.0.1/24')
cur.execute("select %s", [ip.ip_interface('::ffff:102:300/128')])
- self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128')
+
+ # The texual representation of addresses has changed in Python 3.13
+ if sys.version_info >= (3, 13):
+ self.assertEquals(cur.fetchone()[0], '::ffff:1.2.3.0/128')
+ else:
+ self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128')
@testutils.skip_if_crdb("cidr")
def test_cidr_cast(self):
@@ -109,7 +115,12 @@ def test_cidr_adapt(self):
self.assertEquals(cur.fetchone()[0], '127.0.0.0/24')
cur.execute("select %s", [ip.ip_network('::ffff:102:300/128')])
- self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128')
+
+ # The texual representation of addresses has changed in Python 3.13
+ if sys.version_info >= (3, 13):
+ self.assertEquals(cur.fetchone()[0], '::ffff:1.2.3.0/128')
+ else:
+ self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128')
def test_suite():