Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python3-pyside6 for openSUSE:Factory checked in at 2022-02-04 21:49:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-pyside6 (Old) and /work/SRC/openSUSE:Factory/.python3-pyside6.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pyside6" Fri Feb 4 21:49:25 2022 rev:5 rq:951567 version:6.2.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python3-pyside6/python3-pyside6.changes 2021-12-10 21:53:01.706909637 +0100 +++ /work/SRC/openSUSE:Factory/.python3-pyside6.new.1898/python3-pyside6.changes 2022-02-04 21:52:46.622994564 +0100 @@ -1,0 +2,10 @@ +Thu Feb 3 15:43:44 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 6.2.3 + https://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs/changes-6.2.3 +- Add upstream patches to fix issues on big endian archs: + * 0001-Prospective-fix-for-broken-QByteArray-__msetitem__-o.patch + * 0002-Refactor-code-snippets-for-QByteArray-__msetitem__-_.patch +- Update _constraints for pyside6. + +------------------------------------------------------------------- Old: ---- pyside-setup-opensource-src-6.2.2.tar.xz New: ---- 0001-Prospective-fix-for-broken-QByteArray-__msetitem__-o.patch 0002-Refactor-code-snippets-for-QByteArray-__msetitem__-_.patch pyside-setup-opensource-src-6.2.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-pyside6.spec ++++++ --- /var/tmp/diff_new_pack.FqZ51m/_old 2022-02-04 21:52:47.086991372 +0100 +++ /var/tmp/diff_new_pack.FqZ51m/_new 2022-02-04 21:52:47.090991345 +0100 @@ -30,7 +30,7 @@ %endif # Name: python3-%{pyside_flavor} -Version: 6.2.2 +Version: 6.2.3 Release: 0 Summary: Python bindings for Qt 6 License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later) AND GPL-2.0-only AND GPL-3.0-only WITH Qt-GPL-exception-1.0 @@ -40,6 +40,9 @@ Patch0: 0001-Don-t-install-CMake-files-into-versioned-directories.patch # PATCH-FIX-OPENSUSE Patch1: 0001-Always-link-to-python-libraries.patch +# PATCH-FIX-UPSTREAM -- big endian fixes +Patch2: 0001-Prospective-fix-for-broken-QByteArray-__msetitem__-o.patch +Patch3: 0002-Refactor-code-snippets-for-QByteArray-__msetitem__-_.patch # SECTION common_dependencies BuildRequires: clang-devel BuildRequires: fdupes ++++++ 0001-Prospective-fix-for-broken-QByteArray-__msetitem__-o.patch ++++++ >From 157e35b4a71f054ec1709f1651c7a6c53fc21815 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <friedemann.kle...@qt.io> Date: Wed, 2 Feb 2022 18:07:07 +0100 Subject: [PATCH 1/2] Prospective fix for broken QByteArray::__msetitem__() on big endian architectures Remove a dubious cast from long to const char * which depends on byte order. Pick-to: 6.2 5.15 Fixes: PYSIDE-1804 Change-Id: Iee2d809d4e9362b89439b9c56a5fb18e1f91d6fd --- sources/pyside6/PySide6/glue/qtcore.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 5452e9f7f..05b4e7d2d 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -643,9 +643,10 @@ if (PyIndex_Check(_key)) { QByteArray temp; if (PyLong_Check(item)) { int overflow; - long ival = PyLong_AsLongAndOverflow(item, &overflow); - // Not suppose to bigger than 255 because only bytes, bytearray, QByteArray were accept - temp = QByteArray(reinterpret_cast<const char *>(&ival)); + const long ival = PyLong_AsLongAndOverflow(item, &overflow); + // Not supposed to be bigger than 255 because only bytes, + // bytearray, QByteArray were accepted + temp.append(char(ival)); } else { temp = %CONVERTTOCPP[QByteArray](item); } -- 2.35.1 ++++++ 0002-Refactor-code-snippets-for-QByteArray-__msetitem__-_.patch ++++++ >From 9f0b47464bc757813384de84029e25857a54cc62 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <friedemann.kle...@qt.io> Date: Wed, 2 Feb 2022 18:22:44 +0100 Subject: [PATCH 2/2] Refactor code snippets for QByteArray::__msetitem__()/__mgetitem__() Fix integer types, move variable declarations to initialization, remove superfluous variables. As a drive-by, fix spelling in the test. Pick-to: 6.2 Task-number: PYSIDE-1804 Change-Id: I7ed4e69ae850a63d7e213a31cb078aa40e597fb2 --- sources/pyside6/PySide6/glue/qtcore.cpp | 49 ++++++++----------- .../pyside6/tests/QtCore/qbytearray_test.py | 8 +-- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 05b4e7d2d..693cad35c 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -523,8 +523,7 @@ if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(des // @snippet qbytearray-mgetitem if (PyIndex_Check(_key)) { - Py_ssize_t _i; - _i = PyNumber_AsSsize_t(_key, PyExc_IndexError); + const Py_ssize_t _i = PyNumber_AsSsize_t(_key, PyExc_IndexError); if (_i < 0 || _i >= %CPPSELF.size()) { PyErr_SetString(PyExc_IndexError, "index out of bounds"); return 0; @@ -535,10 +534,9 @@ if (PyIndex_Check(_key)) { return PyBytes_FromStringAndSize(res, 1); } } else if (PySlice_Check(_key)) { - Py_ssize_t start, stop, step, slicelength, cur; - if (PySlice_GetIndicesEx(_key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) { + Py_ssize_t start, stop, step, slicelength; + if (PySlice_GetIndicesEx(_key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) return nullptr; - } QByteArray ba; if (slicelength <= 0) { @@ -547,15 +545,12 @@ if (PyIndex_Check(_key)) { Py_ssize_t max = %CPPSELF.count(); start = qBound(Py_ssize_t(0), start, max); stop = qBound(Py_ssize_t(0), stop, max); - QByteArray ba; if (start < stop) ba = %CPPSELF.mid(start, stop - start); return %CONVERTTOPYTHON[QByteArray](ba); } else { - QByteArray ba; - for (cur = start; slicelength > 0; cur += static_cast<size_t>(step), slicelength--) { + for (Py_ssize_t cur = start; slicelength > 0; cur += step, --slicelength) ba.append(%CPPSELF.at(cur)); - } return %CONVERTTOPYTHON[QByteArray](ba); } } else { @@ -591,7 +586,7 @@ if (PyIndex_Check(_key)) { PyErr_SetString(PyExc_ValueError, "bytearray must be of size 1"); return -1; } - } else if (reinterpret_cast<PyTypeObject *>(Py_TYPE(_value)) == reinterpret_cast<PyTypeObject *>(SbkPySide6_QtCoreTypes[SBK_QBYTEARRAY_IDX])) { + } else if (Py_TYPE(_value) == reinterpret_cast<PyTypeObject *>(SbkPySide6_QtCoreTypes[SBK_QBYTEARRAY_IDX])) { if (PyObject_Length(_value) != 1) { PyErr_SetString(PyExc_ValueError, "QByteArray must be of size 1"); return -1; @@ -607,26 +602,24 @@ if (PyIndex_Check(_key)) { PyObject *result = Sbk_QByteArrayFunc_insert(self, args); Py_DECREF(args); Py_XDECREF(result); - return !result ? -1 : 0; + return result != nullptr ? 0: -1; } else if (PySlice_Check(_key)) { - Py_ssize_t start, stop, step, slicelength, value_length; - if (PySlice_GetIndicesEx(_key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) { + Py_ssize_t start, stop, step, slicelength; + if (PySlice_GetIndicesEx(_key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) return -1; - } // The parameter candidates are: bytes/str, bytearray, QByteArray itself. - // Not support iterable which contains ints between 0~255 + // Not supported are iterables containing ints between 0~255 // case 1: value is nullpre, means delete the items within the range - // case 2: step is 1, means shrink or expanse + // case 2: step is 1, means shrink or expand // case 3: step is not 1, then the number of slots have to equal the number of items in _value - QByteArray ba; - if (_value == nullptr || _value == Py_None) { - ba = QByteArray(); - value_length = 0; - } else if (!(PyBytes_Check(_value) || PyByteArray_Check(_value) || reinterpret_cast<PyTypeObject *>(Py_TYPE(_value)) == reinterpret_cast<PyTypeObject *>(SbkPySide6_QtCoreTypes[SBK_QBYTEARRAY_IDX]))) { - PyErr_Format(PyExc_TypeError, "bytes, bytearray or QByteArray is required, not %.200s", Py_TYPE(_value)->tp_name); - return -1; - } else { + Py_ssize_t value_length = 0; + if (_value != nullptr && _value != Py_None) { + if (!(PyBytes_Check(_value) || PyByteArray_Check(_value) + || Py_TYPE(_value) == reinterpret_cast<PyTypeObject *>(SbkPySide6_QtCoreTypes[SBK_QBYTEARRAY_IDX]))) { + PyErr_Format(PyExc_TypeError, "bytes, bytearray or QByteArray is required, not %.200s", Py_TYPE(_value)->tp_name); + return -1; + } value_length = PyObject_Length(_value); } @@ -637,9 +630,9 @@ if (PyIndex_Check(_key)) { } if (step != 1) { - int i = start; - for (int j = 0; j < slicelength; j++) { - PyObject *item = PyObject_GetItem(_value, PyLong_FromLong(j)); + Py_ssize_t i = start; + for (Py_ssize_t j = 0; j < slicelength; ++j) { + PyObject *item = PyObject_GetItem(_value, PyLong_FromSsize_t(j)); QByteArray temp; if (PyLong_Check(item)) { int overflow; @@ -656,7 +649,7 @@ if (PyIndex_Check(_key)) { } return 0; } else { - ba = %CONVERTTOCPP[QByteArray](_value); + QByteArray ba = %CONVERTTOCPP[QByteArray](_value); %CPPSELF.replace(start, slicelength, ba); return 0; } diff --git a/sources/pyside6/tests/QtCore/qbytearray_test.py b/sources/pyside6/tests/QtCore/qbytearray_test.py index c347a6e4d..ad8dc5382 100644 --- a/sources/pyside6/tests/QtCore/qbytearray_test.py +++ b/sources/pyside6/tests/QtCore/qbytearray_test.py @@ -233,7 +233,7 @@ class QByteArraySliceAssignment(unittest.TestCase): # shrink b[2:8] = QByteArray(bytes('aaa', "UTF8")) self.assertEqual(b, bytes('01aaa89', "UTF8")) - # expanse + # expand b[2:5] = QByteArray(bytes('uvwxyz', "UTF8")) self.assertEqual(b, bytes('01uvwxyz89', "UTF8")) # Delete behavior @@ -241,7 +241,7 @@ class QByteArraySliceAssignment(unittest.TestCase): self.assertEqual(b, bytes('0189', "UTF8")) b = QByteArray(bytes('0123456789', "UTF8")) - # reverse assginment + # reverse assignment b[5:2:-1] = QByteArray(bytes('ABC', "UTF8")) self.assertEqual(b, bytes('012CBA6789', "UTF8")) # step is not 1 @@ -259,7 +259,7 @@ class QByteArraySliceAssignment(unittest.TestCase): # shrink b[2:8] = bytearray(bytes('aaa', "UTF8")) self.assertEqual(b, bytes('01aaa89', "UTF8")) - # expanse + # expand b[2:5] = bytearray(bytes('uvwxyz', "UTF8")) self.assertEqual(b, bytes('01uvwxyz89', "UTF8")) # Delete behavior @@ -267,7 +267,7 @@ class QByteArraySliceAssignment(unittest.TestCase): self.assertEqual(b, bytes('0189', "UTF8")) b = QByteArray(bytes('0123456789', "UTF8")) - # reverse assginment + # reverse assignment b[5:2:-1] = bytearray(bytes('ABC', "UTF8")) self.assertEqual(b, bytes('012CBA6789', "UTF8")) # step is not 1 -- 2.35.1 ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.FqZ51m/_old 2022-02-04 21:52:47.170990795 +0100 +++ /var/tmp/diff_new_pack.FqZ51m/_new 2022-02-04 21:52:47.174990767 +0100 @@ -9,5 +9,18 @@ </disk> </hardware> </overwrite> + <overwrite> + <conditions> + <package>python3-pyside6</package> + </conditions> + <hardware> + <disk> + <size unit="G">6</size> + </disk> + <memory> + <size unit="G">6</size> + </memory> + </hardware> + </overwrite> </constraints> ++++++ pyside-setup-opensource-src-6.2.2.tar.xz -> pyside-setup-opensource-src-6.2.3.tar.xz ++++++ /work/SRC/openSUSE:Factory/python3-pyside6/pyside-setup-opensource-src-6.2.2.tar.xz /work/SRC/openSUSE:Factory/.python3-pyside6.new.1898/pyside-setup-opensource-src-6.2.3.tar.xz differ: char 26, line 1