diff --git a/psycopg2-2.9.6.tar.gz b/psycopg2-2.9.6.tar.gz deleted file mode 100644 index 4b79674..0000000 --- a/psycopg2-2.9.6.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f15158418fd826831b28585e2ab48ed8df2d0d98f502a2b4fe619e7d5ca29011 -size 383979 diff --git a/psycopg2-2.9.9.tar.gz b/psycopg2-2.9.9.tar.gz new file mode 100644 index 0000000..ff74968 --- /dev/null +++ b/psycopg2-2.9.9.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1454bde93fb1e224166811694d600e746430c006fbb031ea06ecc2ea41bf156 +size 384926 diff --git a/python-psycopg2.changes b/python-psycopg2.changes index b6e78ec..d4c8550 100644 --- a/python-psycopg2.changes +++ b/python-psycopg2.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Tue Oct 29 05:08:18 UTC 2024 - Steve Kowalik + +- 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 + +- add py313-tests.patch + +------------------------------------------------------------------- +Wed Jan 3 10:10:03 UTC 2024 - Dirk Müller + +- require setuptools + +------------------------------------------------------------------- +Tue Nov 28 21:39:17 UTC 2023 - Dirk Müller + +- 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 + +- 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 @@ -19,7 +53,7 @@ Mon Apr 3 19:55:26 UTC 2023 - Dirk Müller ------------------------------------------------------------------- Fri Oct 28 19:56:31 UTC 2022 - Yogalakshmi Arunachalam -- 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 Thu Dec 30 09:54:04 UTC 2021 - Dirk Müller - 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 @@ -101,7 +135,7 @@ Tue May 19 06:16:56 UTC 2020 - Tomáš Chvátal ------------------------------------------------------------------- Thu Apr 23 16:13:29 UTC 2020 - Marcus Rueckert -- 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 Tue Jun 4 15:36:23 UTC 2019 - Marketa Calabkova - 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 “there’s no async cursor” error polling a connection with + * Fixed “there’s 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 diff --git a/python-psycopg2.spec b/python-psycopg2.spec index 8f26b3f..b846ec8 100644 --- a/python-psycopg2.spec +++ b/python-psycopg2.spec @@ -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 diff --git a/support-python-313.patch b/support-python-313.patch new file mode 100644 index 0000000..5464e1a --- /dev/null +++ b/support-python-313.patch @@ -0,0 +1,81 @@ +From 829a7a2be93f5d0fb1edbc0feb104181f208efc6 Mon Sep 17 00:00:00 2001 +From: Karolina Surma +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 +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():