Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-PyQt6 for openSUSE:Factory 
checked in at 2023-10-18 21:26:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-PyQt6 (Old)
 and      /work/SRC/openSUSE:Factory/.python-PyQt6.new.31755 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-PyQt6"

Wed Oct 18 21:26:19 2023 rev:18 rq:1118548 version:6.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-PyQt6/python-PyQt6.changes        
2023-09-29 21:15:41.466332063 +0200
+++ /work/SRC/openSUSE:Factory/.python-PyQt6.new.31755/python-PyQt6.changes     
2023-10-18 21:26:37.954706270 +0200
@@ -1,0 +2,11 @@
+Wed Oct 18 00:34:21 UTC 2023 - llyyr <llyyr.pub...@gmail.com>
+
+- Update to 6.5.3
+  * Added support for Python 3.12 and the missing
+    QAbstractItemModel.multiData() method, as well as the missing
+    QModelRoleDataSpan class.
+- Add patch pyqt6-fix-build-with-qt-6.6.0.patch to fix build with
+  Qt 6.6.0.
+- Set CXX flag "-DQT_NO_INT128" to fix buil with Qt 6.6.0.
+
+-------------------------------------------------------------------

Old:
----
  PyQt6-6.5.2.tar.gz

New:
----
  PyQt6-6.5.3.tar.gz
  pyqt6-fix-build-with-qt-6.6.0.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-PyQt6.spec ++++++
--- /var/tmp/diff_new_pack.vqc0xd/_old  2023-10-18 21:26:38.410722789 +0200
+++ /var/tmp/diff_new_pack.vqc0xd/_new  2023-10-18 21:26:38.410722789 +0200
@@ -21,7 +21,7 @@
 %define pyqt_build_for_qt6 1
 %{?sle15_python_module_pythons}
 Name:           python-%{mname}
-Version:        6.5.2
+Version:        6.5.3
 Release:        0
 Summary:        Python bindings for Qt 6
 License:        GPL-3.0-only OR SUSE-GPL-2.0-with-FLOSS-exception OR NonFree
@@ -32,11 +32,13 @@
 Patch0:         disable-rpaths.diff
 # PATCH-FIX-OPENSUSE - install binary dbus mainloop integration in arch 
dependent directory
 Patch1:         0001-Use-a-noarch-wrapper-for-dbus-mainloop-integration.patch
-BuildRequires:  %{python_module PyQt6-sip >= 13.4}
+# PATCH-FIX-OPENSUSE - fix build with Qt 6.6.0
+Patch2:         pyqt6-fix-build-with-qt-6.6.0.patch
+BuildRequires:  %{python_module PyQt6-sip >= 13.6}
 BuildRequires:  %{python_module dbus-python-devel >= 0.8}
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module pyqt-builder >= 1.11}
-BuildRequires:  %{python_module sip-devel >= 6.5}
+BuildRequires:  %{python_module sip-devel >= 6.7.12}
 BuildRequires:  dbus-1-devel
 BuildRequires:  dos2unix
 BuildRequires:  fdupes
@@ -147,10 +149,13 @@
 dos2unix examples/multimedia*/*/*.ui
 
 %build
+
+# -DQT_NO_INT128 is required to build with Qt 6.6.0.
 %{pyqt_build -v \
     -s %{quote:--pep484-pyi \
                --confirm-license \
-               --qt-shared}}
+               --qt-shared \
+               --qmake-setting 'QMAKE_CXXFLAGS_RELEASE=%{optflags} 
-DQT_NO_INT128'}}
 
 %install
 %pyqt_install

++++++ PyQt6-6.5.2.tar.gz -> PyQt6-6.5.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/ChangeLog new/PyQt6-6.5.3/ChangeLog
--- old/PyQt6-6.5.2/ChangeLog   2023-07-22 17:08:24.134214200 +0200
+++ new/PyQt6-6.5.3/ChangeLog   2023-10-10 13:02:49.787200200 +0200
@@ -1,5 +1,62 @@
+2023-10-10  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * NEWS, qpy/QtCore/qpycore_types.cpp:
+       Removed a compiler warning message.
+       [8b5b0c663207] [6.5.3] <6.5-maint>
+
+2023-10-08  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * project.py:
+       Removed a debugging flag.
+       [686cadf4b1bc] <6.5-maint>
+
+       * PyQt6.msp, project.py:
+       Changed the default values of the findData() and findText() methods
+       of QComboBox so that they make sensible docstrings.
+       [36c3449ca18e] <6.5-maint>
+
+       * NEWS, project.py, qpy/QtCore/qpycore_types.cpp:
+       Properly fix the use of PyType_GetDict(). ABI v13.6 is now needed.
+       [a34537999cce] <6.5-maint>
+
+2023-10-07  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * NEWS, qpy/QtCore/qpycore_types.cpp:
+       Fixed the memory leak related to sipPyTypeDict() and Python v3.12.
+       [f862a6f9f3bb] <6.5-maint>
+
+2023-09-10  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * NEWS, PyQt6.msp:
+       Fixed a v6.5 regression where /PyInt/ was missng from qint8 and
+       quint8.
+       [9803964f9421] <6.5-maint>
+
+2023-09-01  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * NEWS, qpy/QtDBus/qpydbus_post_init.cpp:
+       Fixed the convertion of QDBusVariant (and others) to QVariant.
+       [ae560099c875] <6.5-maint>
+
+2023-08-29  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * NEWS, PyQt6.msp:
+       Added the /__len__/ annotation to QModelRoleDataSpan.length().
+       [1fc886013a86] <6.5-maint>
+
+2023-08-27  Phil Thompson  <p...@riverbankcomputing.com>
+
+       * NEWS, PyQt6.msp, qpy/QtCore/qpycore_qlist.sip:
+       Added the missing QAbstractItemModel.multiData() method and
+       QModelRoleDataSpan class.
+       [f0ffbea6c75e] <6.5-maint>
+
 2023-07-22  Phil Thompson  <p...@riverbankcomputing.com>
 
+       * .hgtags:
+       Added tag 6.5.2 for changeset 38c17a29338d
+       [156ab803c346] <6.5-maint>
+
        * NEWS, extras/lupdate/python_source.py:
        Fixed an exception in pylupdate.
        [38c17a29338d] [6.5.2] <6.5-maint>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/NEWS new/PyQt6-6.5.3/NEWS
--- old/PyQt6-6.5.2/NEWS        2023-07-22 17:08:24.136437000 +0200
+++ new/PyQt6-6.5.3/NEWS        2023-10-10 13:02:49.789990200 +0200
@@ -1,3 +1,9 @@
+v6.5.3 10th October 2023
+  - Added the missing QAbstractItemModel.multiData() method.
+  - Added the missing QModelRoleDataSpan class.
+  - PyQt6-sip v13.6 is now required for Python v3.12 support.
+  - Bug fixes.
+
 v6.5.2 22nd July 2023
   - Added the missing NativeGesture, Quit, EnterEditFocus and LeaveEditFocus
     members of QEventType.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/PKG-INFO new/PyQt6-6.5.3/PKG-INFO
--- old/PyQt6-6.5.2/PKG-INFO    2023-07-22 17:08:32.899154400 +0200
+++ new/PyQt6-6.5.3/PKG-INFO    2023-10-10 13:03:01.353757100 +0200
@@ -1,13 +1,13 @@
 Metadata-Version: 2.1
 Name: PyQt6
-Version: 6.5.2
+Version: 6.5.3
 Requires-Python: >=3.6.1
 Summary: Python bindings for the Qt cross platform application toolkit
 Home-Page: https://www.riverbankcomputing.com/software/pyqt/
 Author: Riverbank Computing Limited
 Author-Email: i...@riverbankcomputing.com
 License: GPL v3
-Requires-Dist: PyQt6-sip (>=13.4, <14)
+Requires-Dist: PyQt6-sip (>=13.6, <14)
 
 PyQt6 - Comprehensive Python Bindings for Qt v6
 ===============================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/project.py new/PyQt6-6.5.3/project.py
--- old/PyQt6-6.5.2/project.py  2023-07-22 17:08:24.376157800 +0200
+++ new/PyQt6-6.5.3/project.py  2023-10-10 13:02:50.097205600 +0200
@@ -28,7 +28,7 @@
 
 
 # The minimum sip module ABI version needed.
-ABI_VERSION = '13.4'
+ABI_VERSION = '13.6'
 
 
 class PyQt(PyQtProject):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/pyproject.toml 
new/PyQt6-6.5.3/pyproject.toml
--- old/PyQt6-6.5.2/pyproject.toml      2023-07-22 17:08:24.376478700 +0200
+++ new/PyQt6-6.5.3/pyproject.toml      2023-10-10 13:02:50.097662400 +0200
@@ -6,7 +6,7 @@
 # Specify the PEP 566 metadata for the project.
 [tool.sip.metadata]
 name = "PyQt6"
-version = "6.5.2"
+version = "6.5.3"
 summary = "Python bindings for the Qt cross platform application toolkit"
 home-page = "https://www.riverbankcomputing.com/software/pyqt/";
 author = "Riverbank Computing Limited"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/qpy/QtCore/qpycore_types.cpp 
new/PyQt6-6.5.3/qpy/QtCore/qpycore_types.cpp
--- old/PyQt6-6.5.2/qpy/QtCore/qpycore_types.cpp        2023-07-22 
17:08:24.169333200 +0200
+++ new/PyQt6-6.5.3/qpy/QtCore/qpycore_types.cpp        2023-10-10 
13:02:49.836214800 +0200
@@ -170,7 +170,7 @@
     // Add the properties to the meta-object.
     QMapIterator<uint, PropertyData> it(pprops);
 
-    for (int p = 0; it.hasNext(); ++p)
+    while (it.hasNext())
     {
         it.next();
 
@@ -359,10 +359,12 @@
         QList<const qpycore_pyqtSignal *> &psigs,
         QMap<uint, PropertyData> &pprops)
 {
+    int rc = 0;
     Py_ssize_t pos = 0;
     PyObject *key, *value, *dict;
 
-    dict = sipPyTypeDict(pytype);
+    if ((dict = sipPyTypeDictRef(pytype)) == NULL)
+        return -1;
 
     while (PyDict_Next(dict, &pos, &key, &value))
     {
@@ -424,7 +426,10 @@
                 // It is a property.
 
                 if (!ascii_key)
-                    return -1;
+                {
+                    rc = -1;
+                    break;
+                }
 
                 Py_INCREF(value);
 
@@ -445,7 +450,10 @@
                 // It is a signal.
 
                 if (!ascii_key)
-                    return -1;
+                {
+                    rc = -1;
+                    break;
+                }
 
                 qpycore_pyqtSignal *ps = (qpycore_pyqtSignal *)value;
 
@@ -469,7 +477,9 @@
         }
     }
 
-    return 0;
+    Py_DECREF(dict);
+
+    return rc;
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/qpy/QtDBus/qpydbus_post_init.cpp 
new/PyQt6-6.5.3/qpy/QtDBus/qpydbus_post_init.cpp
--- old/PyQt6-6.5.2/qpy/QtDBus/qpydbus_post_init.cpp    2023-07-22 
17:08:24.238863000 +0200
+++ new/PyQt6-6.5.3/qpy/QtDBus/qpydbus_post_init.cpp    2023-10-10 
13:02:49.919556100 +0200
@@ -20,6 +20,10 @@
 
 #include <Python.h>
 
+#include <QDBusObjectPath>
+#include <QDBusSignature>
+#include <QDBusVariant>
+
 #include "qpydbus_api.h"
 #include "qpydbus_chimera_helpers.h"
 
@@ -29,6 +33,11 @@
 // Perform any required initialisation.
 void qpydbus_post_init()
 {
+    // Make sure these are registered.
+    qMetaTypeId<QDBusObjectPath>();
+    qMetaTypeId<QDBusSignature>();
+    qMetaTypeId<QDBusVariant>();
+
     // Get the Chimera helper registration function.
     void (*register_from_qvariant_convertor)(FromQVariantConvertorFn);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/sip/QtCore/QtCoremod.sip 
new/PyQt6-6.5.3/sip/QtCore/QtCoremod.sip
--- old/PyQt6-6.5.2/sip/QtCore/QtCoremod.sip    2023-07-22 17:08:31.887981400 
+0200
+++ new/PyQt6-6.5.3/sip/QtCore/QtCoremod.sip    2023-10-10 13:02:59.953534400 
+0200
@@ -75,8 +75,8 @@
 const char *PYQT_VERSION_STR;
 
 %ModuleCode
-static int PYQT_VERSION = 0x060502;
-static const char *PYQT_VERSION_STR = "6.5.2";
+static int PYQT_VERSION = 0x060503;
+static const char *PYQT_VERSION_STR = "6.5.3";
 %End
 
 %Include qglobal.sip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/sip/QtCore/qabstractitemmodel.sip 
new/PyQt6-6.5.3/sip/QtCore/qabstractitemmodel.sip
--- old/PyQt6-6.5.2/sip/QtCore/qabstractitemmodel.sip   2023-07-22 
17:08:31.835343800 +0200
+++ new/PyQt6-6.5.3/sip/QtCore/qabstractitemmodel.sip   2023-10-10 
13:02:59.903983800 +0200
@@ -259,6 +259,7 @@
     typedef QFlags<QAbstractItemModel::CheckIndexOption> CheckIndexOptions;
     bool checkIndex(const QModelIndex &index, 
QAbstractItemModel::CheckIndexOptions options = 
QAbstractItemModel::CheckIndexOption::NoOption) const;
     virtual bool clearItemData(const QModelIndex &index);
+    virtual void multiData(const QModelIndex &index, QModelRoleDataSpan 
roleDataSpan) const;
 };
 
 class QAbstractTableModel : QAbstractItemModel
@@ -315,3 +316,42 @@
     void setData(const QVariant &data);
     void clearData();
 };
+
+class QModelRoleDataSpan
+{
+%TypeHeaderCode
+// The capsule destructor for a QModelRoleData array.
+static void qpycore_gc_modelroledata(PyObject *mrd_obj);
+%End
+
+%TypeCode
+// The capsule destructor for a QModelRoleData array.
+static void qpycore_gc_modelroledata(PyObject *mrd_obj)
+{
+    delete[] reinterpret_cast<QList<QModelRoleData>* 
>(PyCapsule_GetPointer(mrd_obj, NULL));
+}
+%End
+
+public:
+    QModelRoleDataSpan();
+    QModelRoleDataSpan(QModelRoleData &modelRoleData);
+    QModelRoleDataSpan(QList<QModelRoleData> modelRoleData);
+%MethodCode
+        PyObject *a0cap = PyCapsule_New(a0, NULL, qpycore_gc_modelroledata);
+        
+        if (a0cap)
+        {
+            sipSetUserObject((sipSimpleWrapper *)sipSelf, a0cap);
+            
+            sipCpp = new QModelRoleDataSpan(*a0);
+        }
+%End
+
+    qsizetype size() const;
+    qsizetype length() const /__len__/;
+    QModelRoleData *data() const;
+    QModelRoleData *begin() const;
+    QModelRoleData *end() const;
+    QModelRoleData &operator[](qsizetype index) const;
+    QVariant *dataForRole(int role) const;
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/sip/QtCore/qpycore_qlist.sip 
new/PyQt6-6.5.3/sip/QtCore/qpycore_qlist.sip
--- old/PyQt6-6.5.2/sip/QtCore/qpycore_qlist.sip        2023-07-22 
17:08:31.932235500 +0200
+++ new/PyQt6-6.5.3/sip/QtCore/qpycore_qlist.sip        2023-10-10 
13:02:59.996066000 +0200
@@ -1490,3 +1490,115 @@
     return sipGetState(sipTransferObj);
 %End
 };
+
+
+// This is an explicit QList<QModelRoleData> implementation that is identical
+// to the template above except for the /NoRelease/ annotation.  The only use
+// of this is in a QModelDataRowSpan ctor where we handle the lifetime of the
+// C++ instance returned.  An alternative would be to implement a /NoRelease/
+// argument annotation in SIP.
+%MappedType QList<QModelRoleData>
+        /NoRelease, TypeHintIn="Iterable[QModelRoleData]",
+        TypeHintOut="List[QModelRoleData]", TypeHintValue="[]"/
+{
+%TypeHeaderCode
+#include <qlist.h>
+#include <QModelRoleData>
+%End
+
+%ConvertFromTypeCode
+    PyObject *l = PyList_New(sipCpp->size());
+
+    if (!l)
+        return 0;
+
+    for (int i = 0; i < sipCpp->size(); ++i)
+    {
+        QModelRoleData *t = new QModelRoleData(sipCpp->at(i));
+        PyObject *tobj = sipConvertFromNewType(t, sipType_QModelRoleData,
+                sipTransferObj);
+
+        if (!tobj)
+        {
+            delete t;
+            Py_DECREF(l);
+
+            return 0;
+        }
+
+        PyList_SetItem(l, i, tobj);
+    }
+
+    return l;
+%End
+
+%ConvertToTypeCode
+    PyObject *iter = PyObject_GetIter(sipPy);
+
+    if (!sipIsErr)
+    {
+        PyErr_Clear();
+        Py_XDECREF(iter);
+
+        return (iter && !PyBytes_Check(sipPy) && !PyUnicode_Check(sipPy));
+    }
+
+    if (!iter)
+    {
+        *sipIsErr = 1;
+
+        return 0;
+    }
+
+    QList<QModelRoleData> *ql = new QList<QModelRoleData>;
+ 
+    for (Py_ssize_t i = 0; ; ++i)
+    {
+        PyErr_Clear();
+        PyObject *itm = PyIter_Next(iter);
+
+        if (!itm)
+        {
+            if (PyErr_Occurred())
+            {
+                delete ql;
+                Py_DECREF(iter);
+                *sipIsErr = 1;
+
+                return 0;
+            }
+
+            break;
+        }
+
+        int state;
+        QModelRoleData *t = reinterpret_cast<QModelRoleData *>(
+                sipForceConvertToType(itm, sipType_QModelRoleData,
+                        sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+        if (*sipIsErr)
+        {
+            PyErr_Format(PyExc_TypeError,
+                    "index %zd has type '%s' but 'QModelRoleData' is expected",
+                    i, sipPyTypeName(Py_TYPE(itm)));
+
+            Py_DECREF(itm);
+            delete ql;
+            Py_DECREF(iter);
+
+            return 0;
+        }
+
+        ql->append(*t);
+
+        sipReleaseType(t, sipType_QModelRoleData, state);
+        Py_DECREF(itm);
+    }
+ 
+    Py_DECREF(iter);
+
+    *sipCppPtr = ql;
+ 
+    return sipGetState(sipTransferObj);
+%End
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/sip/QtCore/qtypes.sip 
new/PyQt6-6.5.3/sip/QtCore/qtypes.sip
--- old/PyQt6-6.5.2/sip/QtCore/qtypes.sip       2023-07-22 17:08:31.828155800 
+0200
+++ new/PyQt6-6.5.3/sip/QtCore/qtypes.sip       2023-10-10 13:02:59.893588300 
+0200
@@ -33,10 +33,10 @@
 typedef unsigned long ulong;
 %End
 %If (Qt_6_5_0 -)
-typedef signed char qint8;
+typedef signed char qint8 /PyInt/;
 %End
 %If (Qt_6_5_0 -)
-typedef unsigned char quint8;
+typedef unsigned char quint8 /PyInt/;
 %End
 %If (Qt_6_5_0 -)
 typedef short qint16;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/PyQt6-6.5.2/sip/QtWidgets/qcombobox.sip 
new/PyQt6-6.5.3/sip/QtWidgets/qcombobox.sip
--- old/PyQt6-6.5.2/sip/QtWidgets/qcombobox.sip 2023-07-22 17:08:31.731340600 
+0200
+++ new/PyQt6-6.5.3/sip/QtWidgets/qcombobox.sip 2023-10-10 13:02:59.825426600 
+0200
@@ -38,18 +38,8 @@
     void setDuplicatesEnabled(bool enable);
     void setFrame(bool);
     bool hasFrame() const;
-%If (Qt_6_2_0 -)
-    int findText(const QString &text, Qt::MatchFlags flags = 
static_cast<QFlags<Qt::MatchFlag>>(Qt::MatchExactly | Qt::MatchCaseSensitive)) 
const;
-%End
-%If (- Qt_6_2_0)
     int findText(const QString &text, Qt::MatchFlags flags = 
Qt::MatchExactly|Qt::MatchCaseSensitive) const;
-%End
-%If (Qt_6_2_0 -)
-    int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags 
flags = static_cast<QFlags<Qt::MatchFlag>>(Qt::MatchExactly | 
Qt::MatchCaseSensitive)) const;
-%End
-%If (- Qt_6_2_0)
     int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags 
flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const;
-%End
 
     enum InsertPolicy
     {

++++++ pyqt6-fix-build-with-qt-6.6.0.patch ++++++
diff -ru PyQt6-6.5.2.orig/sip/QtSql/qsqlresult.sip 
PyQt6-6.5.2/sip/QtSql/qsqlresult.sip
--- PyQt6-6.5.2.orig/sip/QtSql/qsqlresult.sip   2023-10-11 16:46:02.317332289 
+0200
+++ PyQt6-6.5.2/sip/QtSql/qsqlresult.sip        2023-10-11 17:26:17.722706788 
+0200
@@ -63,7 +63,7 @@
     QSql::ParamType bindValueType(const QString &placeholder) const;
     QSql::ParamType bindValueType(int pos) const;
     int boundValueCount() const;
-    QList<QVariant> &boundValues() const;
+    QVariantList boundValues() const;
     QString executedQuery() const;
     QString boundValueName(int pos) const;
     void clear();

Reply via email to