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> 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> 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 Python 3.11.
* Add support for rowcount in MERGE statements in binary packages * Add support for rowcount in MERGE statements in binary packages
(ticket`#1497`). (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> Thu Dec 30 09:54:04 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 2.9.3: - 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> 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> 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 - Fixed use of connection_factory and cursor_factory together
(ticket #1019). (ticket #1019).
- Added support for logging.LoggerAdapter in LoggingConnection - 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> Tue Jun 4 15:36:23 UTC 2019 - Marketa Calabkova <mcalabkova@suse.com>
- Update to 2.8.3 - Update to 2.8.3
* Added interval_status parameter to start_replication() method * Added interval_status parameter to start_replication() method
and other facilities to send automatic replication keepalives and other facilities to send automatic replication keepalives
at periodic intervals at periodic intervals
* Fixed RealDictCursor when there are repeated columns * Fixed RealDictCursor when there are repeated columns
* Fixed RealDictRow modifiability * 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 no cursor
2.8.0 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 a specific exception class
* Added encrypt_password() function * 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 Python 3
* Added table_oid and table_column attributes on cursor.description * Added table_oid and table_column attributes on cursor.description
items items
* Added connection.info object to retrieve various PostgreSQL * Added connection.info object to retrieve various PostgreSQL
connection information connection information
* str() on Range produces a human-readable representation * 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 different chunks
* Fixed adaptation of numeric subclasses such as IntEnum * Fixed adaptation of numeric subclasses such as IntEnum
* Dropped support for Python 2.6, 3.2, 3.3. * Dropped support for Python 2.6, 3.2, 3.3.
* Dropped deprecated register_tstz_w_secs() * Dropped deprecated register_tstz_w_secs()
* Dropped deprecated PersistentConnectionPool. Use * Dropped deprecated PersistentConnectionPool. Use
ZPsycopgDA.pool instead. 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. psycopg2-binary package must be used explicitly.
* Dropped PSYCOPG_DISPLAY_SIZE build parameter. * Dropped PSYCOPG_DISPLAY_SIZE build parameter.
@ -286,32 +320,32 @@ Fri Jun 23 16:26:18 UTC 2017 - jmatejek@suse.com
- convert to singlespec - convert to singlespec
- update to 2.7.1 - update to 2.7.1
* Added sql module to generate SQL dynamically (ticket #308). * 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. 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. 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). 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). any object exposing an append() method (ticket #326).
* Adapt network types to ipaddress objects when available. When not enabled, * 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 convert arrays of network types to lists by default. The old Inet adapter is
deprecated (tickets #317, #343, #387). deprecated (tickets #317, #343, #387).
* Added quote_ident() function (ticket #359). * Added quote_ident() function (ticket #359).
* Added get_dsn_parameters() connection method (ticket #364). * Added get_dsn_parameters() connection method (ticket #364).
* callproc() now accepts a dictionary of parameters (ticket #381). * 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). 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). 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). (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). become a keyword (ticket #495).
* Unless in autocommit, do not use default_transaction_* settings to control * Unless in autocommit, do not use default_transaction_* settings to control
the session characteristics as it may create problems with external the session characteristics as it may create problems with external
connection pools such as pgbouncer; use BEGIN options instead (ticket #503). 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. added readonly, deferrable writable attributes.
* dropped support for python 2.5 and postgres client library < 9.1 * dropped support for python 2.5 and postgres client library < 9.1
* many bugs fixed * 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 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 SUSE-GPL-2.0-with-openssl-exception
See the COPYING file. There are GPL-2.0+ (with openssl linking exceptions 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 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 Fri May 25 05:32:01 UTC 2012 - highwaystar.ru@gmail.com
- python3 package added - python3 package added
- minor spec improvement - minor spec improvement
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Apr 6 19:05:14 UTC 2012 - jfunk@funktronics.ca 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: * the call to logging.basicConfig() in pool.py has been dropped:
it was messing with some projects using logging (and a library it was messing with some projects using logging (and a library
should not initialize the logging system anyway.) should not initialize the logging system anyway.)
* psycopg now correctly handles time zones with seconds in the * psycopg now correctly handles time zones with seconds in the
UTC offset. The old register_tstz_w_secs() function is deprecated UTC offset. The old register_tstz_w_secs() function is deprecated
and will raise a warning if called. and will raise a warning if called.
* Exceptions raised by the column iterator are propagated. * Exceptions raised by the column iterator are propagated.
* Exceptions raised by executemany() interators 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 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 - 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 Wed Oct 19 00:00:00 UTC 2005 - jfunk@funktronics.ca

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-psycopg2 # 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 # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # 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} %{?sle15_python_module_pythons}
Name: python-psycopg2 Name: python-psycopg2
Version: 2.9.6 Version: 2.9.9
Release: 0 Release: 0
Summary: Python-PostgreSQL Database Adapter 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 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 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 setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
# newer postgresql packages pg_config in -server-devel # newer postgresql packages pg_config in -server-devel
%if 0%{?sle_version} > 150100 || 0%{?suse_version} > 1500 %if 0%{?sle_version} > 150100 || 0%{?suse_version} > 1500
BuildRequires: postgresql-server-devel >= 9.1 BuildRequires: postgresql-server-devel >= 15
%else %else
BuildRequires: postgresql-devel >= 9.1 BuildRequires: postgresql-devel >= 15
%endif %endif
%if 0%{?suse_version} || 0%{?fedora_version} >= 24 %if 0%{?suse_version} || 0%{?fedora_version} >= 24
Suggests: postgresql-server Suggests: postgresql-server
@ -52,14 +54,14 @@ UPDATEs. psycopg2 also provide asychronous operations and support
for coroutine libraries. for coroutine libraries.
%prep %prep
%setup -q -n psycopg2-%{version} %autosetup -p1 -n psycopg2-%{version}
%build %build
export CFLAGS="%{optflags} -fno-strict-aliasing" export CFLAGS="%{optflags} -fno-strict-aliasing"
%python_build %pyproject_wheel
%install %install
%python_install %pyproject_install
%python_expand rm -rf %{buildroot}%{$python_sitearch}/psycopg2/tests # Don't package testsuite %python_expand rm -rf %{buildroot}%{$python_sitearch}/psycopg2/tests # Don't package testsuite
%fdupes %{buildroot}/%{_mandir} # Create symlinks for man pages %fdupes %{buildroot}/%{_mandir} # Create symlinks for man pages
%python_expand %fdupes %{buildroot}%{$python_sitearch} %python_expand %fdupes %{buildroot}%{$python_sitearch}
@ -72,6 +74,6 @@ export CFLAGS="%{optflags} -fno-strict-aliasing"
%license LICENSE %license LICENSE
%doc AUTHORS NEWS README.rst %doc AUTHORS NEWS README.rst
%{python_sitearch}/psycopg2/ %{python_sitearch}/psycopg2/
%{python_sitearch}/psycopg2-%{version}-py%{python_version}.egg-info %{python_sitearch}/psycopg2-%{version}.dist-info
%changelog %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():