Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-PyQt6-sip for
openSUSE:Factory checked in at 2026-05-04 21:17:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-PyQt6-sip (Old)
and /work/SRC/openSUSE:Factory/.python-PyQt6-sip.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-PyQt6-sip"
Mon May 4 21:17:12 2026 rev:18 rq:1350694 version:13.11.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-PyQt6-sip/python-PyQt6-sip.changes
2025-06-11 18:34:46.531740999 +0200
+++
/work/SRC/openSUSE:Factory/.python-PyQt6-sip.new.30200/python-PyQt6-sip.changes
2026-05-04 21:17:22.356218428 +0200
@@ -1,0 +2,7 @@
+Thu Apr 30 11:56:44 UTC 2026 - Antonio Larrosa <[email protected]>
+
+- Update to 13.11.1
+ * Added support for Python v3.14.
+ * Python v3.10 or later is required.
+
+-------------------------------------------------------------------
Old:
----
pyqt6_sip-13.10.2.tar.gz
New:
----
pyqt6_sip-13.11.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-PyQt6-sip.spec ++++++
--- /var/tmp/diff_new_pack.CGMOaq/_old 2026-05-04 21:17:22.892240378 +0200
+++ /var/tmp/diff_new_pack.CGMOaq/_new 2026-05-04 21:17:22.892240378 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-PyQt6-sip
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?sle15_python_module_pythons}
# Check PyPI for version: https://pypi.org/project/PyQt6-sip/
Name: python-PyQt6-sip
-Version: 13.10.2
+Version: 13.11.1
Release: 0
Summary: The sip module support for PyQt6
License: BSD-2-Clause
++++++ pyqt6_sip-13.10.2.tar.gz -> pyqt6_sip-13.11.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/PKG-INFO
new/pyqt6_sip-13.11.1/PKG-INFO
--- old/pyqt6_sip-13.10.2/PKG-INFO 2025-05-23 13:58:18.004042400 +0200
+++ new/pyqt6_sip-13.11.1/PKG-INFO 2026-03-09 13:13:52.524743600 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: PyQt6_sip
-Version: 13.10.2
+Version: 13.11.1
Summary: The sip module support for PyQt6
Home-page: https://github.com/Python-SIP/sip
Author: Phil Thompson
@@ -9,7 +9,7 @@
Platform: X11
Platform: macOS
Platform: Windows
-Requires-Python: >=3.9
+Requires-Python: >=3.10
License-File: LICENSE
Dynamic: license
Dynamic: license-file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/PyQt6_sip.egg-info/PKG-INFO
new/pyqt6_sip-13.11.1/PyQt6_sip.egg-info/PKG-INFO
--- old/pyqt6_sip-13.10.2/PyQt6_sip.egg-info/PKG-INFO 2025-05-23
13:58:12.000000000 +0200
+++ new/pyqt6_sip-13.11.1/PyQt6_sip.egg-info/PKG-INFO 2026-03-09
13:13:51.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: PyQt6_sip
-Version: 13.10.2
+Version: 13.11.1
Summary: The sip module support for PyQt6
Home-page: https://github.com/Python-SIP/sip
Author: Phil Thompson
@@ -9,7 +9,7 @@
Platform: X11
Platform: macOS
Platform: Windows
-Requires-Python: >=3.9
+Requires-Python: >=3.10
License-File: LICENSE
Dynamic: license
Dynamic: license-file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/pyproject.toml
new/pyqt6_sip-13.11.1/pyproject.toml
--- old/pyqt6_sip-13.10.2/pyproject.toml 2025-05-23 13:58:12.000000000
+0200
+++ new/pyqt6_sip-13.11.1/pyproject.toml 2026-03-09 13:13:51.000000000
+0100
@@ -1,2 +1,3 @@
[build-system]
requires = ["setuptools >=75.8.1"]
+build-backend = "setuptools.build_meta"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/setup.py
new/pyqt6_sip-13.11.1/setup.py
--- old/pyqt6_sip-13.10.2/setup.py 2025-05-23 13:58:12.000000000 +0200
+++ new/pyqt6_sip-13.11.1/setup.py 2026-03-09 13:13:51.000000000 +0100
@@ -16,8 +16,8 @@
# Do the setup.
setup(
name='PyQt6_sip',
- version='13.10.2',
+ version='13.11.1',
license='BSD-2-Clause',
- python_requires='>=3.9',
+ python_requires='>=3.10',
ext_modules=[module]
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/sip.h new/pyqt6_sip-13.11.1/sip.h
--- old/pyqt6_sip-13.10.2/sip.h 2025-05-23 13:58:12.000000000 +0200
+++ new/pyqt6_sip-13.11.1/sip.h 2026-03-09 13:13:51.000000000 +0100
@@ -14,11 +14,14 @@
#include <Python.h>
/* Sanity check on the Python version. */
-#if PY_VERSION_HEX < 0x03090000
-#error "This version of PyQt6.sip requires Python v3.9 or later"
+#if PY_VERSION_HEX < 0x030a0000
+#error "This version of PyQt6.sip requires Python v3.10 or later"
#endif
+#include <stdbool.h>
+
+
#ifdef __cplusplus
#include <exception>
@@ -35,13 +38,17 @@
/* The version of the ABI. */
#define SIP_ABI_MAJOR_VERSION 13
-#define SIP_ABI_MINOR_VERSION 10
-#define SIP_MODULE_PATCH_VERSION 2
+#define SIP_ABI_MINOR_VERSION 11
+#define SIP_MODULE_PATCH_VERSION 1
/*
* The change history of the ABI.
*
+ * v13.11
+ * - Added support for Python v3.14.
+ * - Python v3.10 or later is required.
+ *
* v13.10
* - Added SIP_ABI_VERSION as a module attribute.
*
@@ -85,8 +92,8 @@
/* The version of the code generator. */
-#define SIP_VERSION 0x60b01
-#define SIP_VERSION_STR "6.11.1"
+#define SIP_VERSION 0x60f02
+#define SIP_VERSION_STR "6.15.2"
/* These are all dependent on the user-specified name of the sip module. */
#define _SIP_MODULE_FQ_NAME "PyQt6.sip"
@@ -151,21 +158,11 @@
#define SIP_TRACE_METHODS 0x0020
-/*
- * Hide some thread dependent stuff. This can be removed when support for
- * Python v3.6 is removed.
- */
-#ifdef WITH_THREAD
+/* Hide some thread related stuff. */
typedef PyGILState_STATE sip_gilstate_t;
#define SIP_RELEASE_GIL(gs) PyGILState_Release(gs);
#define SIP_BLOCK_THREADS {PyGILState_STATE sipGIL = PyGILState_Ensure();
#define SIP_UNBLOCK_THREADS PyGILState_Release(sipGIL);}
-#else
-typedef int sip_gilstate_t;
-#define SIP_RELEASE_GIL(gs)
-#define SIP_BLOCK_THREADS
-#define SIP_UNBLOCK_THREADS
-#endif
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/sip_core.c
new/pyqt6_sip-13.11.1/sip_core.c
--- old/pyqt6_sip-13.10.2/sip_core.c 2025-05-23 13:58:12.000000000 +0200
+++ new/pyqt6_sip-13.11.1/sip_core.c 2026-03-09 13:13:51.000000000 +0100
@@ -160,9 +160,7 @@
0, /* am_await */
0, /* am_aiter */
0, /* am_anext */
-#if PY_VERSION_HEX >= 0x030a0000
0, /* am_send */
-#endif
},
{
0, /* nb_add */
@@ -7079,43 +7077,51 @@
{
PyObject *w;
- switch (si->si_encoding)
+ if (si->si_val == NULL)
{
- case 'A':
- w = PyUnicode_DecodeASCII(si->si_val, strlen(si->si_val), NULL);
- break;
+ w = Py_None;
+ Py_INCREF(w);
+ }
+ else
+ {
+ switch (si->si_encoding)
+ {
+ case 'A':
+ w = PyUnicode_DecodeASCII(si->si_val, strlen(si->si_val),
NULL);
+ break;
- case 'L':
- w = PyUnicode_DecodeLatin1(si->si_val, strlen(si->si_val), NULL);
- break;
+ case 'L':
+ w = PyUnicode_DecodeLatin1(si->si_val, strlen(si->si_val),
NULL);
+ break;
- case '8':
- w = PyUnicode_FromString(si->si_val);
- break;
+ case '8':
+ w = PyUnicode_FromString(si->si_val);
+ break;
- case 'w':
- /* The hack for wchar_t. */
+ case 'w':
+ /* The hack for wchar_t. */
#if defined(HAVE_WCHAR_H)
- w = PyUnicode_FromWideChar((const wchar_t *)si->si_val, 1);
- break;
+ w = PyUnicode_FromWideChar((const wchar_t *)si->si_val, 1);
+ break;
#else
- raiseNoWChar();
- return -1;
+ raiseNoWChar();
+ return -1;
#endif
case 'W':
- /* The hack for wchar_t*. */
+ /* The hack for wchar_t*. */
#if defined(HAVE_WCHAR_H)
- w = PyUnicode_FromWideChar((const wchar_t *)si->si_val,
- wcslen((const wchar_t *)si->si_val));
- break;
+ w = PyUnicode_FromWideChar((const wchar_t *)si->si_val,
+ wcslen((const wchar_t *)si->si_val));
+ break;
#else
- raiseNoWChar();
- return -1;
+ raiseNoWChar();
+ return -1;
#endif
- default:
- w = PyBytes_FromString(si->si_val);
+ default:
+ w = PyBytes_FromString(si->si_val);
+ }
}
if (sip_dict_set_and_discard(dict, si->si_name, w) < 0)
@@ -7356,9 +7362,7 @@
if (sipInterpreter == NULL)
return NULL;
-#ifdef WITH_THREAD
*gil = PyGILState_Ensure();
-#endif
/* Only read this when we have the GIL. */
sipSelf = *sipSelfp;
@@ -7490,17 +7494,13 @@
PyErr_Print();
}
-#ifdef WITH_THREAD
PyGILState_Release(*gil);
-#endif
}
return reimp;
release_gil:
-#ifdef WITH_THREAD
PyGILState_Release(*gil);
-#endif
return NULL;
}
@@ -8432,7 +8432,6 @@
PyTypeObject *py_type = Py_TYPE(self);
/* See if it is a wrapper. */
- /* TODO: will this always be TRUE? */
if (PyObject_TypeCheck((PyObject *)py_type, &sipWrapperType_Type))
{
const sipClassTypeDef *ctd;
@@ -8441,6 +8440,19 @@
slot = findSlotInClass(ctd, st);
}
+ else
+ {
+ sipEnumTypeDef *etd;
+
+ /* If it is not a wrapper then it must be an enum. */
+ etd = (sipEnumTypeDef *)sip_enum_get_generated_type(
+ (PyObject *)py_type);
+
+ assert(etd != NULL);
+ assert(etd->etd_pyslots != NULL);
+
+ slot = findSlotInSlotList(etd->etd_pyslots, st);
+ }
return slot;
}
@@ -9670,9 +9682,7 @@
0, /* am_await */
0, /* am_aiter */
0, /* am_anext */
-#if PY_VERSION_HEX >= 0x030a0000
0, /* am_send */
-#endif
},
{
0, /* nb_add */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/sip_descriptors.c
new/pyqt6_sip-13.11.1/sip_descriptors.c
--- old/pyqt6_sip-13.10.2/sip_descriptors.c 2025-05-23 13:58:12.000000000
+0200
+++ new/pyqt6_sip-13.11.1/sip_descriptors.c 2026-03-09 13:13:51.000000000
+0100
@@ -388,6 +388,16 @@
sipVariableDescr *vd = (sipVariableDescr *)self;
void *addr;
+ /* Check that the value isn't being deleted. */
+ if (value == NULL)
+ {
+ PyErr_Format(PyExc_AttributeError,
+ "'%s' object attribute '%s' cannot be deleted",
+ sipPyNameOfContainer(vd->cod, vd->td), vd->vd->vd_name);
+
+ return -1;
+ }
+
/* Check that the value isn't const. */
if (vd->vd->vd_setter == NULL)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyqt6_sip-13.10.2/sip_threads.c
new/pyqt6_sip-13.11.1/sip_threads.c
--- old/pyqt6_sip-13.10.2/sip_threads.c 2025-05-23 13:58:12.000000000 +0200
+++ new/pyqt6_sip-13.11.1/sip_threads.c 2026-03-09 13:13:51.000000000 +0100
@@ -22,14 +22,11 @@
} pendingDef;
-#ifdef WITH_THREAD
-
-#include <pythread.h>
-
-
/*
* The per thread data we need to maintain.
*/
+#include <pythread.h>
+
typedef struct _threadDef {
long thr_ident; /* The thread identifier. */
pendingDef pending; /* An object waiting to be wrapped. */
@@ -40,9 +37,6 @@
static threadDef *currentThreadDef(int auto_alloc);
-#endif
-
-
static pendingDef *get_pending(int auto_alloc);
@@ -124,7 +118,6 @@
*/
void sip_api_end_thread(void)
{
-#ifdef WITH_THREAD
threadDef *thread;
PyGILState_STATE gil = PyGILState_Ensure();
@@ -132,7 +125,6 @@
thread->thr_ident = 0;
PyGILState_Release(gil);
-#endif
}
@@ -142,23 +134,15 @@
*/
static pendingDef *get_pending(int auto_alloc)
{
-#ifdef WITH_THREAD
threadDef *thread;
if ((thread = currentThreadDef(auto_alloc)) == NULL)
return NULL;
return &thread->pending;
-#else
- static pendingDef pending;
-
- return &pending;
-#endif
}
-#ifdef WITH_THREAD
-
/*
* Return the thread data for the current thread, allocating it if necessary,
* or NULL if there was an error.
@@ -204,5 +188,3 @@
return thread;
}
-
-#endif