Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libqt5-qtremoteobjects for
openSUSE:Factory checked in at 2022-11-04 17:34:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtremoteobjects (Old)
and /work/SRC/openSUSE:Factory/.libqt5-qtremoteobjects.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtremoteobjects"
Fri Nov 4 17:34:10 2022 rev:23 rq:1033110 version:5.15.7+kde0
Changes:
--------
---
/work/SRC/openSUSE:Factory/libqt5-qtremoteobjects/libqt5-qtremoteobjects.changes
2022-09-29 18:12:07.083110003 +0200
+++
/work/SRC/openSUSE:Factory/.libqt5-qtremoteobjects.new.2275/libqt5-qtremoteobjects.changes
2022-11-04 17:36:08.821180986 +0100
@@ -1,0 +2,6 @@
+Thu Nov 3 08:56:18 UTC 2022 - Fabian Vogt <[email protected]>
+
+- Update to version 5.15.7+kde0, rebased upstream:
+ * Fix crash when remoting QML objects with sub-objects
+
+-------------------------------------------------------------------
Old:
----
qtremoteobjects-everywhere-src-5.15.6+kde0.obscpio
New:
----
qtremoteobjects-everywhere-src-5.15.7+kde0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt5-qtremoteobjects.spec ++++++
--- /var/tmp/diff_new_pack.DvfJuw/_old 2022-11-04 17:36:09.857186398 +0100
+++ /var/tmp/diff_new_pack.DvfJuw/_new 2022-11-04 17:36:09.861186419 +0100
@@ -19,11 +19,11 @@
%define qt5_snapshot 1
%define libname libQt5RemoteObjects5
%define base_name libqt5
-%define real_version 5.15.6
-%define so_version 5.15.6
+%define real_version 5.15.7
+%define so_version 5.15.7
%define tar_version qtremoteobjects-everywhere-src-%{version}
Name: libqt5-qtremoteobjects
-Version: 5.15.6+kde0
+Version: 5.15.7+kde0
Release: 0
Summary: Qt 5 RemoteObjects Library
License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
++++++ _service ++++++
--- /var/tmp/diff_new_pack.DvfJuw/_old 2022-11-04 17:36:09.921186732 +0100
+++ /var/tmp/diff_new_pack.DvfJuw/_new 2022-11-04 17:36:09.925186753 +0100
@@ -1,12 +1,12 @@
<services>
<service name="obs_scm" mode="disabled">
<param name="changesgenerate">enable</param>
- <param name="versionformat">5.15.6+kde@TAG_OFFSET@</param>
+ <param name="versionformat">5.15.7+kde@TAG_OFFSET@</param>
<param name="url">https://invent.kde.org/qt/qt/qtremoteobjects.git</param>
<param name="scm">git</param>
<param name="filename">qtremoteobjects-everywhere-src</param>
<param name="revision">kde/5.15</param>
- <param name="parent-tag">v5.15.6-lts-lgpl</param>
+ <param name="parent-tag">v5.15.7-lts-lgpl</param>
<param name="changesgenerate">enable</param>
</service>
<service name="set_version" mode="disabled"/>
++++++ qtremoteobjects-everywhere-src-5.15.6+kde0.obscpio ->
qtremoteobjects-everywhere-src-5.15.7+kde0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtremoteobjects-everywhere-src-5.15.6+kde0/.qmake.conf
new/qtremoteobjects-everywhere-src-5.15.7+kde0/.qmake.conf
--- old/qtremoteobjects-everywhere-src-5.15.6+kde0/.qmake.conf 2022-08-16
19:37:46.000000000 +0200
+++ new/qtremoteobjects-everywhere-src-5.15.7+kde0/.qmake.conf 2022-09-12
17:30:04.000000000 +0200
@@ -4,6 +4,6 @@
DEFINES += QT_NO_JAVA_STYLE_ITERATORS
DEFINES += QT_NO_FOREACH
-MODULE_VERSION = 5.15.6
+MODULE_VERSION = 5.15.7
QTRO_SOURCE_TREE = $$PWD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtremoteobjects-everywhere-src-5.15.6+kde0/src/remoteobjects/qremoteobjectsource.cpp
new/qtremoteobjects-everywhere-src-5.15.7+kde0/src/remoteobjects/qremoteobjectsource.cpp
---
old/qtremoteobjects-everywhere-src-5.15.6+kde0/src/remoteobjects/qremoteobjectsource.cpp
2022-08-16 19:37:46.000000000 +0200
+++
new/qtremoteobjects-everywhere-src-5.15.7+kde0/src/remoteobjects/qremoteobjectsource.cpp
2022-09-12 17:30:04.000000000 +0200
@@ -113,7 +113,10 @@
if
(QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject))
{
auto propertyMeta =
QMetaType::metaObjectForType(property.userType());
QObject *child = property.read(m_object).value<QObject *>();
- if
(propertyMeta->inherits(&QAbstractItemModel::staticMetaObject)) {
+ const QMetaObject *meta = child ? child->metaObject() :
propertyMeta;
+ if (!meta)
+ continue;
+ if (meta->inherits(&QAbstractItemModel::staticMetaObject)) {
const auto modelInfo = api->m_models.at(modelIndex++);
QAbstractItemModel *model =
qobject_cast<QAbstractItemModel *>(child);
QAbstractItemAdapterSourceAPI<QAbstractItemModel,
QAbstractItemModelSourceAdapter> *modelApi =
@@ -455,13 +458,20 @@
const int propCount = metaObject->propertyCount();
const int propOffset = metaObject->propertyOffset();
m_properties.reserve(propCount-propOffset);
- int i = 0;
- for (i = propOffset; i < propCount; ++i) {
+ QSet<int> invalidSignals;
+ for (int i = propOffset; i < propCount; ++i) {
const QMetaProperty property = metaObject->property(i);
if
(QMetaType::typeFlags(property.userType()).testFlag(QMetaType::PointerToQObject))
{
auto propertyMeta =
QMetaType::metaObjectForType(property.userType());
QObject *child = property.read(object).value<QObject *>();
- if (propertyMeta->inherits(&QAbstractItemModel::staticMetaObject))
{
+ const QMetaObject *meta = child ? child->metaObject() :
propertyMeta;
+ if (!meta) {
+ const int notifyIndex =
metaObject->property(i).notifySignalIndex();
+ if (notifyIndex != -1)
+ invalidSignals << notifyIndex;
+ continue;
+ }
+ if (meta->inherits(&QAbstractItemModel::staticMetaObject)) {
const QByteArray name =
QByteArray::fromRawData(property.name(),
qstrlen(property.name()));
const QByteArray infoName = name.toUpper() +
QByteArrayLiteral("_ROLES");
@@ -475,12 +485,15 @@
QString::fromLatin1(property.name()),
roleInfo});
} else {
- const QMetaObject *meta = child ? child->metaObject() :
propertyMeta;
QString typeName =
QtRemoteObjects::getTypeNameAndMetaobjectFromClassInfo(meta);
if (typeName.isNull()) {
- typeName = QString::fromLatin1(propertyMeta->className());
+ typeName = QString::fromLatin1(meta->className());
+ if (typeName.contains(QLatin1String("QQuick")))
+ typeName.remove(QLatin1String("QQuick"));
+ else if (int index =
typeName.indexOf(QLatin1String("_QMLTYPE_")))
+ typeName.truncate(index);
// TODO better way to ensure we have consistent typenames
between source/replicas?
- if (typeName.endsWith(QLatin1String("Source")))
+ else if (typeName.endsWith(QLatin1String("Source")))
typeName.chop(6);
}
@@ -499,11 +512,13 @@
}
const int methodCount = metaObject->methodCount();
const int methodOffset = metaObject->methodOffset();
- for (i = methodOffset; i < methodCount; ++i) {
+ for (int i = methodOffset; i < methodCount; ++i) {
const QMetaMethod mm = metaObject->method(i);
const QMetaMethod::MethodType m = mm.methodType();
if (m == QMetaMethod::Signal) {
- if (m_signals.indexOf(i) >= 0) //Already added as a property
notifier
+ if (m_signals.indexOf(i) >= 0) // Already added as a property
notifier
+ continue;
+ if (invalidSignals.contains(i)) // QObject with no metatype
continue;
m_signals << i;
} else if (m == QMetaMethod::Slot || m == QMetaMethod::Method)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtremoteobjects-everywhere-src-5.15.6+kde0/tests/auto/qml/usertypes/data/MyType.qml
new/qtremoteobjects-everywhere-src-5.15.7+kde0/tests/auto/qml/usertypes/data/MyType.qml
---
old/qtremoteobjects-everywhere-src-5.15.6+kde0/tests/auto/qml/usertypes/data/MyType.qml
1970-01-01 01:00:00.000000000 +0100
+++
new/qtremoteobjects-everywhere-src-5.15.7+kde0/tests/auto/qml/usertypes/data/MyType.qml
2022-09-12 17:30:04.000000000 +0200
@@ -0,0 +1,5 @@
+import QtQuick 2.0
+
+QtObject {
+ property int value: 39
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtremoteobjects-everywhere-src-5.15.6+kde0/tests/auto/qml/usertypes/data/composite.qml
new/qtremoteobjects-everywhere-src-5.15.7+kde0/tests/auto/qml/usertypes/data/composite.qml
---
old/qtremoteobjects-everywhere-src-5.15.6+kde0/tests/auto/qml/usertypes/data/composite.qml
1970-01-01 01:00:00.000000000 +0100
+++
new/qtremoteobjects-everywhere-src-5.15.7+kde0/tests/auto/qml/usertypes/data/composite.qml
2022-09-12 17:30:04.000000000 +0200
@@ -0,0 +1,7 @@
+import QtQuick 2.0
+
+QtObject {
+ property QtObject myTypeOk: MyType {} // this works
+ property MyType myType: MyType {} // this crashes
+ property MyType myType2 // this crashes (ensure solution works with null
object)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtremoteobjects-everywhere-src-5.15.6+kde0/tests/auto/qml/usertypes/tst_usertypes.cpp
new/qtremoteobjects-everywhere-src-5.15.7+kde0/tests/auto/qml/usertypes/tst_usertypes.cpp
---
old/qtremoteobjects-everywhere-src-5.15.6+kde0/tests/auto/qml/usertypes/tst_usertypes.cpp
2022-08-16 19:37:46.000000000 +0200
+++
new/qtremoteobjects-everywhere-src-5.15.7+kde0/tests/auto/qml/usertypes/tst_usertypes.cpp
2022-09-12 17:30:04.000000000 +0200
@@ -65,6 +65,7 @@
void watcherInQml();
void hostInQml();
void twoReplicas();
+ void remoteCompositeType();
};
tst_usertypes::tst_usertypes()
@@ -293,6 +294,17 @@
QTRY_COMPARE_WITH_TIMEOUT(obj->property("result2").value<int>(), 7, 500);
}
+void tst_usertypes::remoteCompositeType()
+{
+ QQmlEngine e;
+ QQmlComponent c(&e, SRCDIR "data/composite.qml");
+ QScopedPointer<QObject> obj(c.create());
+ QVERIFY(obj);
+
+ QRemoteObjectRegistryHost host(QUrl("local:remoteCompositeType"));
+ host.enableRemoting(obj.data(), "composite");
+}
+
QTEST_MAIN(tst_usertypes)
#include "tst_usertypes.moc"
++++++ qtremoteobjects-everywhere-src.obsinfo ++++++
--- /var/tmp/diff_new_pack.DvfJuw/_old 2022-11-04 17:36:10.209188237 +0100
+++ /var/tmp/diff_new_pack.DvfJuw/_new 2022-11-04 17:36:10.209188237 +0100
@@ -1,5 +1,5 @@
name: qtremoteobjects-everywhere-src
-version: 5.15.6+kde0
-mtime: 1660671466
-commit: aa705010da0f658b78c1155babce7091ae44529a
+version: 5.15.7+kde0
+mtime: 1662996604
+commit: 5f2a598a9134167a0da2efcbf1249fc167ae3750