From b6c3ad133e718e3798da7572800dc152277050c9c71e8e3d964050593fa922f8 Mon Sep 17 00:00:00 2001 From: Christophe Marin Date: Wed, 20 Nov 2024 12:12:23 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/gammaray?expand=0&rev=96 --- .gitattributes | 23 + .gitignore | 1 + ...-more-QAbstractItemModelTester-fixes.patch | 62 ++ 0001-Enable-building-with-Qt-6.7.patch | 27 + ...detected-by-QAbstractItemModelTester.patch | 50 ++ 0001-Fix-Qt-6.6-build.patch | 100 +++ ...-for-after-QDeferredDeleteEvent-expo.patch | 246 +++++++ 0001-Fix-doc-tools-detection.patch | 54 ++ ...ings-about-references-to-temporaries.patch | 60 ++ ...n-ObjectEnumModel-found-by-QAbstract.patch | 42 ++ ...odel-don-t-nest-row-insertion-remova.patch | 31 + ...lassnames-in-Graphics-Scenes-or-Styl.patch | 48 ++ ...e-filtering-in-ObjectIdsFilterProxyM.patch | 120 +++ _constraints | 19 + _multibuild | 3 + gammaray-3.0.0.tar.gz | 3 + gammaray-3.1.0.tar.gz | 3 + gammaray-gles.patch | 18 + gammaray.changes | 690 ++++++++++++++++++ gammaray.spec | 248 +++++++ 20 files changed, 1848 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-2-more-QAbstractItemModelTester-fixes.patch create mode 100644 0001-Enable-building-with-Qt-6.7.patch create mode 100644 0001-Fix-3-bugs-detected-by-QAbstractItemModelTester.patch create mode 100644 0001-Fix-Qt-6.6-build.patch create mode 100644 0001-Fix-build-on-6.7-for-after-QDeferredDeleteEvent-expo.patch create mode 100644 0001-Fix-doc-tools-detection.patch create mode 100644 0001-Fix-gcc-13-warnings-about-references-to-temporaries.patch create mode 100644 0001-Fix-two-issues-in-ObjectEnumModel-found-by-QAbstract.patch create mode 100644 0001-QuickSceneGraphModel-don-t-nest-row-insertion-remova.patch create mode 100644 0001-Repair-lack-of-classnames-in-Graphics-Scenes-or-Styl.patch create mode 100644 0001-Unbreak-recursive-filtering-in-ObjectIdsFilterProxyM.patch create mode 100644 _constraints create mode 100644 _multibuild create mode 100644 gammaray-3.0.0.tar.gz create mode 100644 gammaray-3.1.0.tar.gz create mode 100644 gammaray-gles.patch create mode 100644 gammaray.changes create mode 100644 gammaray.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-2-more-QAbstractItemModelTester-fixes.patch b/0001-2-more-QAbstractItemModelTester-fixes.patch new file mode 100644 index 0000000..42202cf --- /dev/null +++ b/0001-2-more-QAbstractItemModelTester-fixes.patch @@ -0,0 +1,62 @@ +From f7bf40db5cd70972ca0597d096ca67c5a0b2a7b9 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Fri, 10 Nov 2023 11:29:43 +0100 +Subject: [PATCH] 2 more QAbstractItemModelTester fixes + +- RemoteModel: parent(invalid) should be invalid +- Delay restoring the QHeaderView until fully finishing the current + change + +Otherwise we got a "ChangeInFlight" assert because QHeaderView +ends up calling QSFPM::sort() which emits layoutAboutToBeChanged, +but the model tester hasn't seen the columnsInserted signal yet, +when QHeaderView got it first. + +(cherry picked from commit 048b0493bd4e21f0d55bdd78468bd1cdaa016131) +--- + client/remotemodel.cpp | 4 +++- + ui/uistatemanager.cpp | 6 +++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/client/remotemodel.cpp b/client/remotemodel.cpp +index dc51a8366..9e0ff3ba9 100644 +--- a/client/remotemodel.cpp ++++ b/client/remotemodel.cpp +@@ -136,6 +136,8 @@ QModelIndex RemoteModel::index(int row, int column, const QModelIndex &parent) c + + QModelIndex RemoteModel::parent(const QModelIndex &index) const + { ++ if (!index.isValid()) ++ return {}; + Node *currentNode = nodeForIndex(index); + Q_ASSERT(currentNode); + if (currentNode == m_root || currentNode->parent == m_root) +@@ -158,7 +160,7 @@ int RemoteModel::rowCount(const QModelIndex &index) const + if (node->columnCount < 0) // not yet requested vs. in the middle of insertion + requestRowColumnCount(index); + } +- return qMax(0, node->rowCount); // if requestRowColumnCount is synchronoous, ie. changes rowCount (as in simple unit test), returning 0 above would cause ModelTest to see inconsistent data ++ return qMax(0, node->rowCount); // if requestRowColumnCount is synchronous, ie. changes rowCount (as in simple unit test), returning 0 above would cause ModelTest to see inconsistent data + } + + int RemoteModel::columnCount(const QModelIndex &index) const +diff --git a/ui/uistatemanager.cpp b/ui/uistatemanager.cpp +index 07c12ae91..988b6b18e 100644 +--- a/ui/uistatemanager.cpp ++++ b/ui/uistatemanager.cpp +@@ -555,7 +555,11 @@ void UIStateManager::saveHeaderState(QHeaderView *header) + + void UIStateManager::headerSectionCountChanged() + { +- restoreHeaderState(qobject_cast(sender())); ++ auto headerView = qobject_cast(sender()); ++ // Delay the call to restoreHeaderState to avoid multiple changes in flight at the QAIM level ++ // E.g. we might be here because of columnsInserted() (which just finished, but not all receivers were told yet) ++ // and restoring will sort() the model, which will emit layoutChanged(). Separate the two so QAbstractItemModelTester doesn't abort. ++ QMetaObject::invokeMethod(this, "restoreHeaderState", Qt::QueuedConnection, Q_ARG(QHeaderView *, headerView)); + } + + void UIStateManager::widgetResized(QWidget *widget) +-- +2.44.0 + diff --git a/0001-Enable-building-with-Qt-6.7.patch b/0001-Enable-building-with-Qt-6.7.patch new file mode 100644 index 0000000..ee551eb --- /dev/null +++ b/0001-Enable-building-with-Qt-6.7.patch @@ -0,0 +1,27 @@ +From 9674e01aa787e2168b9b983dec14db9df875986b Mon Sep 17 00:00:00 2001 +From: Matt Aber +Date: Mon, 5 Feb 2024 14:41:24 -0500 +Subject: [PATCH] Enable building with Qt 6.7 + +(packager note: merged with upstream commit 45e025e3329d3be691ce80796315eb62dae60c66) +--- + core/metaobjectrepository.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/core/metaobjectrepository.cpp b/core/metaobjectrepository.cpp +index bf4f4a5..5ae11c0 100644 +--- a/core/metaobjectrepository.cpp ++++ b/core/metaobjectrepository.cpp +@@ -135,7 +135,9 @@ void MetaObjectRepository::initQObjectTypes() + MO_ADD_PROPERTY_RO(QDateTime, isNull); + MO_ADD_PROPERTY_RO(QDateTime, isValid); + MO_ADD_PROPERTY_RO(QDateTime, offsetFromUtc); ++#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) + MO_ADD_PROPERTY(QDateTime, timeZone, setTimeZone); ++#endif + + MO_ADD_METAOBJECT0(QTimeZone); + MO_ADD_PROPERTY_RO(QTimeZone, comment); +-- +2.44.0 + diff --git a/0001-Fix-3-bugs-detected-by-QAbstractItemModelTester.patch b/0001-Fix-3-bugs-detected-by-QAbstractItemModelTester.patch new file mode 100644 index 0000000..d668c83 --- /dev/null +++ b/0001-Fix-3-bugs-detected-by-QAbstractItemModelTester.patch @@ -0,0 +1,50 @@ +From 6b46413d04579cb2159a77b01e83bca148899626 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Thu, 9 Nov 2023 20:13:28 +0100 +Subject: [PATCH] Fix 3 bugs detected by QAbstractItemModelTester + +(cherry picked from commit cc9af5742ef075d1f7dd633751b80154073ea23f) +--- + core/paintbuffermodel.cpp | 4 ++-- + plugins/modelinspector/modelmodel.cpp | 3 +++ + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/core/paintbuffermodel.cpp b/core/paintbuffermodel.cpp +index 096d40d3f..7bfa5826b 100644 +--- a/core/paintbuffermodel.cpp ++++ b/core/paintbuffermodel.cpp +@@ -423,7 +423,7 @@ int PaintBufferModel::columnCount(const QModelIndex &parent) const + + int PaintBufferModel::rowCount(const QModelIndex &parent) const + { +- if (!m_privateBuffer) ++ if (!m_privateBuffer || parent.column() > 0) + return 0; + if (parent.isValid()) { + const auto cmd = m_privateBuffer->commands.at(parent.row()); +@@ -441,7 +441,7 @@ QModelIndex PaintBufferModel::index(int row, int column, const QModelIndex &pare + + QModelIndex PaintBufferModel::parent(const QModelIndex &child) const + { +- if (child.internalId() == TopLevelId) ++ if (!child.isValid() || child.internalId() == TopLevelId) + return {}; + return createIndex(child.internalId(), 0, TopLevelId); + } +diff --git a/plugins/modelinspector/modelmodel.cpp b/plugins/modelinspector/modelmodel.cpp +index 55fa7647a..40319cb57 100644 +--- a/plugins/modelinspector/modelmodel.cpp ++++ b/plugins/modelinspector/modelmodel.cpp +@@ -48,6 +48,9 @@ int ModelModel::rowCount(const QModelIndex &parent) const + + QModelIndex ModelModel::parent(const QModelIndex &child) const + { ++ if (!child.isValid()) ++ return {}; ++ + QAbstractItemModel *model = static_cast(child.internalPointer()); + Q_ASSERT(model); + if (m_models.contains(model)) +-- +2.44.0 + diff --git a/0001-Fix-Qt-6.6-build.patch b/0001-Fix-Qt-6.6-build.patch new file mode 100644 index 0000000..01f28fb --- /dev/null +++ b/0001-Fix-Qt-6.6-build.patch @@ -0,0 +1,100 @@ +From 9978a0a7c4f4d122477f4f14755e55196365d8ce Mon Sep 17 00:00:00 2001 +From: Waqar Ahmed +Date: Thu, 7 Sep 2023 13:23:47 +0500 +Subject: [PATCH] Fix Qt 6.6+ build + +Fixes #827 +--- + common/propertysyncer.cpp | 3 ++- + core/metaobjectrepository.cpp | 3 +++ + core/probesettings.cpp | 6 ++++-- + core/qmetapropertyadaptor.cpp | 3 ++- + ui/propertybinder.cpp | 6 ++++-- + 5 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/common/propertysyncer.cpp b/common/propertysyncer.cpp +index 1e06c2002..c31a95010 100644 +--- a/common/propertysyncer.cpp ++++ b/common/propertysyncer.cpp +@@ -53,7 +53,8 @@ void PropertySyncer::addObject(Protocol::ObjectAddress addr, QObject *obj) + const auto prop = obj->metaObject()->property(i); + if (!prop.hasNotifySignal()) + continue; +- connect(obj, QByteArray("2") + prop.notifySignal().methodSignature(), this, SLOT(propertyChanged())); ++ const QByteArray ba = QByteArray("2") + prop.notifySignal().methodSignature(); ++ connect(obj, ba, this, SLOT(propertyChanged())); + } + + connect(obj, &QObject::destroyed, this, &PropertySyncer::objectDestroyed); +diff --git a/core/metaobjectrepository.cpp b/core/metaobjectrepository.cpp +index 8b108b6cc..bf4f4a578 100644 +--- a/core/metaobjectrepository.cpp ++++ b/core/metaobjectrepository.cpp +@@ -24,6 +24,9 @@ + #include + #include + #include ++#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) ++#include ++#endif + #include + #include + #include +diff --git a/core/probesettings.cpp b/core/probesettings.cpp +index 067e18a44..646c35a65 100644 +--- a/core/probesettings.cpp ++++ b/core/probesettings.cpp +@@ -225,8 +225,10 @@ static QVariant getPackageMetaData(const QString &key, const QVariant &defaultVa + QVariant ProbeSettings::value(const QString &key, const QVariant &defaultValue) + { + QByteArray v = s_probeSettings()->settings.value(key.toUtf8()); +- if (v.isEmpty()) +- v = qgetenv("GAMMARAY_" + key.toLocal8Bit()); ++ if (v.isEmpty()) { ++ const QByteArray cstr = "GAMMARAY_" + key.toLocal8Bit(); ++ v = qgetenv(cstr); ++ } + + #ifdef QT_ANDROIDEXTRAS_LIB + if (v.isEmpty()) { +diff --git a/core/qmetapropertyadaptor.cpp b/core/qmetapropertyadaptor.cpp +index ab93c4ffa..9a36a2196 100644 +--- a/core/qmetapropertyadaptor.cpp ++++ b/core/qmetapropertyadaptor.cpp +@@ -44,7 +44,8 @@ void QMetaPropertyAdaptor::doSetObject(const ObjectInstance &oi) + const QMetaProperty prop = mo->property(i); + if (!PropertyFilters::matches(propertyMetaData(i))) { + if (oi.type() == ObjectInstance::QtObject && oi.qtObject() && prop.hasNotifySignal()) { +- connect(oi.qtObject(), QByteArray("2") + prop.notifySignal().methodSignature(), this, SLOT(propertyUpdated())); ++ const QByteArray sig = QByteArray("2") + prop.notifySignal().methodSignature(); ++ connect(oi.qtObject(), sig, this, SLOT(propertyUpdated())); + m_notifyToRowMap.insert(prop.notifySignalIndex(), m_rowToPropertyIndex.size()); + } + m_rowToPropertyIndex.push_back(i); +diff --git a/ui/propertybinder.cpp b/ui/propertybinder.cpp +index a0ac7dbb9..5be3e881d 100644 +--- a/ui/propertybinder.cpp ++++ b/ui/propertybinder.cpp +@@ -56,7 +56,8 @@ void PropertyBinder::add(const char *sourceProp, const char *destProp) + b.sourceProperty = m_source->metaObject()->property(sourceIndex); + Q_ASSERT(b.sourceProperty.isValid()); + Q_ASSERT(b.sourceProperty.hasNotifySignal()); +- connect(m_source, QByteArray("2") + b.sourceProperty.notifySignal().methodSignature(), this, SLOT(syncSourceToDestination())); ++ const QByteArray sig1 = QByteArray("2") + b.sourceProperty.notifySignal().methodSignature(); ++ connect(m_source, sig1, this, SLOT(syncSourceToDestination())); + + const auto destIndex = m_destination->metaObject()->indexOfProperty(destProp); + b.destinationProperty = m_destination->metaObject()->property(destIndex); +@@ -69,7 +70,8 @@ void PropertyBinder::add(const char *sourceProp, const char *destProp) + if (!b.destinationProperty.hasNotifySignal() || !b.sourceProperty.isWritable()) + return; + +- connect(m_destination, QByteArray("2") + b.destinationProperty.notifySignal().methodSignature(), this, SLOT(syncDestinationToSource())); ++ const QByteArray sig2 = QByteArray("2") + b.destinationProperty.notifySignal().methodSignature(); ++ connect(m_destination, sig2, this, SLOT(syncDestinationToSource())); + } + + void PropertyBinder::syncSourceToDestination() +-- +2.44.0 + diff --git a/0001-Fix-build-on-6.7-for-after-QDeferredDeleteEvent-expo.patch b/0001-Fix-build-on-6.7-for-after-QDeferredDeleteEvent-expo.patch new file mode 100644 index 0000000..cd40c60 --- /dev/null +++ b/0001-Fix-build-on-6.7-for-after-QDeferredDeleteEvent-expo.patch @@ -0,0 +1,246 @@ +From 8baa121ea1a2af0ffd81c6b2514b7e7d80d06cd5 Mon Sep 17 00:00:00 2001 +From: Matt <144846910+mattkdab@users.noreply.github.com> +Date: Tue, 26 Mar 2024 12:55:26 -0400 +Subject: [PATCH] Fix build on 6.7 for after QDeferredDeleteEvent export + reversion (#957) + +In the next 6.7 release, this reversion will be done: +https://codereview.qt-project.org/c/qt/qtbase/+/544223 +which will break building GammaRay against 6.7 +Use static_cast in an explicit specialization +GammaRay::DynamicCast +to avoid missing typeinfo errors from linker + +* Fix build on 6.7 for after QDeferredDeleteEvent export reversion + +* [pre-commit.ci] auto fixes from pre-commit.com hooks + +for more information, see https://pre-commit.ci + +* Followup #957: Remove unneeded include + +* Followup #957: check qt version before including qcoreevent_p + +* Followup #957: QtGlobal for version check + +* Followup #957: qt5 ci fix: include metatypedecl in metaprop + +* Followup #957: GuiPrivate -> CorePrivate, comment + +Requested by @redstrate + +* [pre-commit.ci] auto fixes from pre-commit.com hooks + +for more information, see https://pre-commit.ci + +* Followup #957: Remove now-unneeded additions + +Caught by Waqar in his review. + +--------- + +Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> +--- + core/typetraits.h | 13 +++++++++++++ + plugins/actioninspector/CMakeLists.txt | 8 +++++++- + plugins/bluetooth/CMakeLists.txt | 2 +- + plugins/openglsupport/CMakeLists.txt | 2 +- + plugins/positioning/CMakeLists.txt | 2 +- + plugins/qt3dinspector/CMakeLists.txt | 1 + + plugins/quickwidgetsupport/CMakeLists.txt | 2 +- + plugins/sceneinspector/CMakeLists.txt | 1 + + plugins/textdocumentinspector/CMakeLists.txt | 2 +- + plugins/widgetinspector/CMakeLists.txt | 1 + + plugins/wlcompositorinspector/CMakeLists.txt | 1 + + tests/CMakeLists.txt | 8 ++++++-- + 12 files changed, 35 insertions(+), 8 deletions(-) + +diff --git a/core/typetraits.h b/core/typetraits.h +index 20397af..4195e99 100644 +--- a/core/typetraits.h ++++ b/core/typetraits.h +@@ -15,6 +15,11 @@ + #define GAMMARAY_TYPETRAITS_H + + #include ++#include ++// Needed for QDeferredDeleteEvent after Qt 6.7 ++#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) ++#include ++#endif + + namespace GammaRay { + +@@ -27,6 +32,14 @@ Out DynamicCast(In *in) + return dynamic_cast(in); + } + ++#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) ++template<> ++inline QDeferredDeleteEvent *DynamicCast(QEvent *in) ++{ ++ return static_cast(in); ++} ++#endif ++ + ///@cond internal + template + Out DynamicCast(void *) +diff --git a/plugins/actioninspector/CMakeLists.txt b/plugins/actioninspector/CMakeLists.txt +index 134c3d4..87ceeef 100644 +--- a/plugins/actioninspector/CMakeLists.txt ++++ b/plugins/actioninspector/CMakeLists.txt +@@ -18,7 +18,13 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + ${gammaray_actioninspector_plugin_srcs} + ) + +- target_link_libraries(gammaray_actioninspector_plugin Qt::Gui Qt::Widgets gammaray_core) ++ target_link_libraries( ++ gammaray_actioninspector_plugin ++ Qt::Gui ++ Qt::CorePrivate ++ Qt::Widgets ++ gammaray_core ++ ) + endif() + + # ui part +diff --git a/plugins/bluetooth/CMakeLists.txt b/plugins/bluetooth/CMakeLists.txt +index a5c2392..951000e 100644 +--- a/plugins/bluetooth/CMakeLists.txt ++++ b/plugins/bluetooth/CMakeLists.txt +@@ -15,6 +15,6 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + SOURCES + bluetooth.cpp + ) +- target_link_libraries(gammaray_bluetooth gammaray_core Qt::Bluetooth) ++ target_link_libraries(gammaray_bluetooth gammaray_core Qt::Bluetooth Qt::CorePrivate) + set_target_properties(gammaray_bluetooth PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) + endif() +diff --git a/plugins/openglsupport/CMakeLists.txt b/plugins/openglsupport/CMakeLists.txt +index e5614be..f610a46 100644 +--- a/plugins/openglsupport/CMakeLists.txt ++++ b/plugins/openglsupport/CMakeLists.txt +@@ -15,7 +15,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + SOURCES + openglsupport.cpp + ) +- target_link_libraries(gammaray_openglsupport gammaray_core Qt::Gui) ++ target_link_libraries(gammaray_openglsupport gammaray_core Qt::Gui Qt::CorePrivate) + if(TARGET Qt6::OpenGL) + target_link_libraries(gammaray_openglsupport Qt6::OpenGL) + endif() +diff --git a/plugins/positioning/CMakeLists.txt b/plugins/positioning/CMakeLists.txt +index e19616a..8ea8bdd 100644 +--- a/plugins/positioning/CMakeLists.txt ++++ b/plugins/positioning/CMakeLists.txt +@@ -16,7 +16,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + SOURCES + ${gammaray_positioning_srcs} + ) +- target_link_libraries(gammaray_positioning gammaray_core Qt::Positioning) ++ target_link_libraries(gammaray_positioning gammaray_core Qt::Positioning Qt::CorePrivate) + set_target_properties(gammaray_positioning PROPERTIES DISABLE_PRECOMPILE_HEADERS ON) + + # proxy geo position info source factory +diff --git a/plugins/qt3dinspector/CMakeLists.txt b/plugins/qt3dinspector/CMakeLists.txt +index ab514d9..31bed03 100644 +--- a/plugins/qt3dinspector/CMakeLists.txt ++++ b/plugins/qt3dinspector/CMakeLists.txt +@@ -33,6 +33,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + gammaray_kitemmodels + Qt::3DInput + Qt::3DRender ++ Qt::CorePrivate + ) + if(TARGET Qt::3DAnimation) + target_link_libraries(gammaray_3dinspector Qt::3DAnimation) +diff --git a/plugins/quickwidgetsupport/CMakeLists.txt b/plugins/quickwidgetsupport/CMakeLists.txt +index 99b1211..1dcbc19 100644 +--- a/plugins/quickwidgetsupport/CMakeLists.txt ++++ b/plugins/quickwidgetsupport/CMakeLists.txt +@@ -16,5 +16,5 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + SOURCES + ${gammaray_quickwidgetsupport_srcs} + ) +- target_link_libraries(gammaray_quickwidgetsupport gammaray_core Qt::QuickWidgets) ++ target_link_libraries(gammaray_quickwidgetsupport gammaray_core Qt::QuickWidgets Qt::CorePrivate) + endif() +diff --git a/plugins/sceneinspector/CMakeLists.txt b/plugins/sceneinspector/CMakeLists.txt +index 8ebbfd8..2de614b 100644 +--- a/plugins/sceneinspector/CMakeLists.txt ++++ b/plugins/sceneinspector/CMakeLists.txt +@@ -23,6 +23,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + target_link_libraries( + gammaray_sceneinspector_plugin + Qt::Gui ++ Qt::CorePrivate + Qt::Widgets + gammaray_kitemmodels + gammaray_core +diff --git a/plugins/textdocumentinspector/CMakeLists.txt b/plugins/textdocumentinspector/CMakeLists.txt +index 1e5f3a9..655f351 100644 +--- a/plugins/textdocumentinspector/CMakeLists.txt ++++ b/plugins/textdocumentinspector/CMakeLists.txt +@@ -17,7 +17,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + ${gammaray_textdocumentinspector_srcs} + ) + target_link_libraries(gammaray_textdocumentinspector gammaray_core) +- target_link_libraries(gammaray_textdocumentinspector Qt::Gui) ++ target_link_libraries(gammaray_textdocumentinspector Qt::Gui Qt::CorePrivate) + endif() + + # ui plugin +diff --git a/plugins/widgetinspector/CMakeLists.txt b/plugins/widgetinspector/CMakeLists.txt +index 18b2897..019aa5d 100644 +--- a/plugins/widgetinspector/CMakeLists.txt ++++ b/plugins/widgetinspector/CMakeLists.txt +@@ -30,6 +30,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + target_link_libraries( + gammaray_widgetinspector_plugin + Qt::Gui ++ Qt::CorePrivate + Qt::Widgets + gammaray_kitemmodels + gammaray_core +diff --git a/plugins/wlcompositorinspector/CMakeLists.txt b/plugins/wlcompositorinspector/CMakeLists.txt +index 9d8c0e5..144d23b 100644 +--- a/plugins/wlcompositorinspector/CMakeLists.txt ++++ b/plugins/wlcompositorinspector/CMakeLists.txt +@@ -31,6 +31,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD) + gammaray_core + gammaray_kitemmodels + Qt::WaylandCompositor ++ Qt::CorePrivate + Wayland::Server + ) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 6057ffd..608b585 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -231,7 +231,7 @@ target_link_libraries( + + gammaray_add_test(metaobjecttest metaobjecttest.cpp) + target_link_libraries( +- metaobjecttest gammaray_core ++ metaobjecttest Qt::CorePrivate gammaray_core + ) + + if(NOT GAMMARAY_CLIENT_ONLY_BUILD) +@@ -257,7 +257,11 @@ target_link_libraries( + + gammaray_add_test(propertyadaptortest propertyadaptortest.cpp) + target_link_libraries( +- propertyadaptortest gammaray_core Qt::Gui gammaray_shared_test_data ++ propertyadaptortest ++ gammaray_core ++ Qt::Gui ++ Qt::CorePrivate ++ gammaray_shared_test_data + ) + + if(HAVE_QT_WIDGETS) +-- +2.44.0 + diff --git a/0001-Fix-doc-tools-detection.patch b/0001-Fix-doc-tools-detection.patch new file mode 100644 index 0000000..157a7b0 --- /dev/null +++ b/0001-Fix-doc-tools-detection.patch @@ -0,0 +1,54 @@ +From 426daf709be68710adcf7d43ef196ecd5ad0c01f Mon Sep 17 00:00:00 2001 +From: Christophe Marin +Date: Tue, 5 Sep 2023 12:17:31 +0200 +Subject: [PATCH] Fix doc tools detection + +- Fix QT_VERSION_MAJOR casing +- qhelpgenerator and qtattributionscanner are not installed in Qt binaries dir in +recent Qt6 releases. + +Fixes #830 +--- + docs/CMakeLists.txt | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt +index 20c663211..14e969ecb 100644 +--- a/docs/CMakeLists.txt ++++ b/docs/CMakeLists.txt +@@ -8,11 +8,11 @@ + # + + # qdoc toolchain +-find_package(Qt${Qt_VERSION_MAJOR} NO_MODULE QUIET OPTIONAL_COMPONENTS Help) +-if(Qt_VERSION_MAJOR EQUAL 5) +- find_package(Qt${Qt_VERSION_MAJOR} NO_MODULE QUIET OPTIONAL_COMPONENTS AttributionsScannerTools) +-elseif(Qt_VERSION_MAJOR GREATER_EQUAL 6) +- find_package(Qt${Qt_VERSION_MAJOR} NO_MODULE QUIET OPTIONAL_COMPONENTS ToolsTools) ++find_package(Qt${QT_VERSION_MAJOR} NO_MODULE QUIET OPTIONAL_COMPONENTS Help) ++if(QT_VERSION_MAJOR EQUAL 5) ++ find_package(Qt${QT_VERSION_MAJOR} NO_MODULE QUIET OPTIONAL_COMPONENTS AttributionsScannerTools) ++elseif(QT_VERSION_MAJOR GREATER_EQUAL 6) ++ find_package(Qt${QT_VERSION_MAJOR} NO_MODULE QUIET OPTIONAL_COMPONENTS ToolsTools) + endif() + + if(TARGET Qt::qdoc) +@@ -25,13 +25,13 @@ if(TARGET Qt::qhelpgenerator) + # Required for Doxygen + get_target_property(QHELPGEN_EXECUTABLE Qt::qhelpgenerator IMPORTED_LOCATION) + else() +- find_program(QHELPGEN_EXECUTABLE qhelpgenerator HINTS ${QT_INSTALL_BINS}) ++ find_program(QHELPGEN_EXECUTABLE qhelpgenerator HINTS ${QT_INSTALL_BINS} ${QT_INSTALL_LIBEXECS}) + endif() + + if(TARGET Qt::qtattributionsscanner) + set(QTATTRIBUTIONSSCANNER_EXECUTABLE Qt::qtattributionsscanner) + else() +- find_program(QTATTRIBUTIONSSCANNER_EXECUTABLE qtattributionsscanner HINTS ${QT_INSTALL_BINS}) ++ find_program(QTATTRIBUTIONSSCANNER_EXECUTABLE qtattributionsscanner HINTS ${QT_INSTALL_BINS} ${QT_INSTALL_LIBEXECS}) + endif() + + if(NOT DEFINED QDOC_TEMPLATE_DIR) +-- +2.42.0 + diff --git a/0001-Fix-gcc-13-warnings-about-references-to-temporaries.patch b/0001-Fix-gcc-13-warnings-about-references-to-temporaries.patch new file mode 100644 index 0000000..e344b98 --- /dev/null +++ b/0001-Fix-gcc-13-warnings-about-references-to-temporaries.patch @@ -0,0 +1,60 @@ +From 3dc92d2ede1897b1eadc0e8e1e664e2a9b88017d Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Wed, 8 Nov 2023 22:42:33 +0100 +Subject: [PATCH] Fix gcc-13 warnings about references to temporaries +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +ui/clienttoolmodel.cpp:42:21: warning: possibly dangling reference to a temporary [-Wdangling-reference] + 42 | const ToolInfo &tool = m_toolManager->tools().at(index.row()); + | ^~~~ +ui/clienttoolmodel.cpp:42:53: note: the temporary was destroyed at the end of the full expression +‘GammaRay::ClientToolManager::tools() const().QList::at(((qsizetype)(& index)->QModelIndex::row()))’ + +(cherry picked from commit 4ecfa803c01ed3621a43a276b01480fd523c4134) +--- + plugins/network/networkinterfacemodel.cpp | 4 ++-- + ui/clienttoolmodel.cpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/plugins/network/networkinterfacemodel.cpp b/plugins/network/networkinterfacemodel.cpp +index d2d9f712f..79bbce08e 100644 +--- a/plugins/network/networkinterfacemodel.cpp ++++ b/plugins/network/networkinterfacemodel.cpp +@@ -80,8 +80,8 @@ QVariant NetworkInterfaceModel::data(const QModelIndex &index, int role) const + return MetaEnum::flagsToString(iface.flags(), interface_flag_table); + } + } else if (index.column() == 0) { +- const auto &iface = m_interfaces.at(index.internalId()); +- const auto &addr = iface.addressEntries().at(index.row()); ++ const auto iface = m_interfaces.at(index.internalId()); ++ const auto addr = iface.addressEntries().at(index.row()); + return QString(addr.ip().toString() + QLatin1Char('/') + addr.netmask().toString()); + } + } +diff --git a/ui/clienttoolmodel.cpp b/ui/clienttoolmodel.cpp +index aa3b24ce0..9fe85d8e7 100644 +--- a/ui/clienttoolmodel.cpp ++++ b/ui/clienttoolmodel.cpp +@@ -39,7 +39,7 @@ QVariant ClientToolModel::data(const QModelIndex &index, int role) const + if (!index.isValid()) + return QVariant(); + +- const ToolInfo &tool = m_toolManager->tools().at(index.row()); ++ const ToolInfo tool = m_toolManager->tools().at(index.row()); + switch (role) { + case Qt::DisplayRole: + return tool.name(); +@@ -89,7 +89,7 @@ Qt::ItemFlags ClientToolModel::flags(const QModelIndex &index) const + if (!index.isValid()) + return flags; + +- const auto &tool = m_toolManager->tools().at(index.row()); ++ const auto tool = m_toolManager->tools().at(index.row()); + if (!tool.isEnabled() || (!tool.remotingSupported() && Endpoint::instance()->isRemoteClient())) + flags &= ~(Qt::ItemIsEnabled | Qt::ItemIsSelectable); + return flags; +-- +2.44.0 + diff --git a/0001-Fix-two-issues-in-ObjectEnumModel-found-by-QAbstract.patch b/0001-Fix-two-issues-in-ObjectEnumModel-found-by-QAbstract.patch new file mode 100644 index 0000000..8f60a22 --- /dev/null +++ b/0001-Fix-two-issues-in-ObjectEnumModel-found-by-QAbstract.patch @@ -0,0 +1,42 @@ +From 14c13f437e1957e36db4c0f3bd22e25e711e20d2 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Thu, 9 Nov 2023 00:52:24 +0100 +Subject: [PATCH] Fix two issues in ObjectEnumModel, found by + QAbstractItemModelTester + +- only column 0 has children +- parent(invalid index) should be invalid index + +(cherry picked from commit 13abaef3b2bf7f31ff35dc16ce7820dc4ba5a8a9) +--- + core/objectenummodel.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/core/objectenummodel.cpp b/core/objectenummodel.cpp +index f52288ed1..4e764ff1c 100644 +--- a/core/objectenummodel.cpp ++++ b/core/objectenummodel.cpp +@@ -33,7 +33,7 @@ int ObjectEnumModel::rowCount(const QModelIndex &parent) const + { + if (!parent.isValid()) + return SuperClass::rowCount(parent); +- if (parent.parent().isValid()) ++ if (parent.parent().isValid() || parent.column() > 0) + return 0; + const QMetaEnum e = m_metaObject->enumerator(parent.row()); + return e.keyCount(); +@@ -93,8 +93,9 @@ QModelIndex GammaRay::ObjectEnumModel::index(int row, int column, const QModelIn + + QModelIndex GammaRay::ObjectEnumModel::parent(const QModelIndex &child) const + { +- // note: Qt4 doesn't have qintptr +- if (static_cast(child.internalId()) == -1) ++ if (!child.isValid()) ++ return {}; ++ if (static_cast(child.internalId()) == -1) + return SuperClass::parent(child); + return SuperClass::index(child.internalId(), 0, QModelIndex()); + } +-- +2.44.0 + diff --git a/0001-QuickSceneGraphModel-don-t-nest-row-insertion-remova.patch b/0001-QuickSceneGraphModel-don-t-nest-row-insertion-remova.patch new file mode 100644 index 0000000..9c99213 --- /dev/null +++ b/0001-QuickSceneGraphModel-don-t-nest-row-insertion-remova.patch @@ -0,0 +1,31 @@ +From ad1d799d213ef4a0364cce2e3b19ec2c378f9173 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Thu, 9 Nov 2023 00:49:23 +0100 +Subject: [PATCH] QuickSceneGraphModel: don't nest row insertion/removal + signals + +Fixes #826 + +(cherry picked from commit 73049a9d15c629a012eb4826c37d5ced59d13621) +--- + plugins/quickinspector/quickscenegraphmodel.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/quickinspector/quickscenegraphmodel.cpp b/plugins/quickinspector/quickscenegraphmodel.cpp +index f9989e851..438f04585 100644 +--- a/plugins/quickinspector/quickscenegraphmodel.cpp ++++ b/plugins/quickinspector/quickscenegraphmodel.cpp +@@ -257,9 +257,9 @@ void QuickSceneGraphModel::populateFromNode(QSGNode *node, bool emitSignals) + beginInsertRows(myIndex, idx, idx); + m_childParentMap[*j] = node; + i = childList.insert(i, *j); +- populateFromNode(*j, false); + if (emitSignals) + endInsertRows(); ++ populateFromNode(*j, false); + } + ++i; + ++j; +-- +2.44.0 + diff --git a/0001-Repair-lack-of-classnames-in-Graphics-Scenes-or-Styl.patch b/0001-Repair-lack-of-classnames-in-Graphics-Scenes-or-Styl.patch new file mode 100644 index 0000000..a8ebdd4 --- /dev/null +++ b/0001-Repair-lack-of-classnames-in-Graphics-Scenes-or-Styl.patch @@ -0,0 +1,48 @@ +From 91200e5e1cb8fa700cfd0546e2515a7995cce441 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Wed, 8 Nov 2023 11:54:09 +0100 +Subject: [PATCH] Repair lack of classnames in "Graphics Scenes" or "Styles" + combobox + +Since Qt 6.3, QAbstractProxyModel::itemData() no longer calls data() +but calls into the source model. So we need to reimplement it in order +to use our data() reimplementation. + +(cherry picked from commit 06a89419845e74534a42dffaa0f0c7cd99a1694c) +--- + core/singlecolumnobjectproxymodel.cpp | 8 ++++++++ + core/singlecolumnobjectproxymodel.h | 2 ++ + 2 files changed, 10 insertions(+) + +diff --git a/core/singlecolumnobjectproxymodel.cpp b/core/singlecolumnobjectproxymodel.cpp +index 05150ac..1aa8255 100644 +--- a/core/singlecolumnobjectproxymodel.cpp ++++ b/core/singlecolumnobjectproxymodel.cpp +@@ -38,3 +38,11 @@ QVariant SingleColumnObjectProxyModel::data(const QModelIndex &proxyIndex, int r + + return QIdentityProxyModel::data(proxyIndex, role); + } ++ ++QMap SingleColumnObjectProxyModel::itemData(const QModelIndex &proxyIndex) const ++{ ++ QMap map = QIdentityProxyModel::itemData(proxyIndex); ++ map[Qt::DisplayRole] = data(proxyIndex); ++ return map; ++} ++ +diff --git a/core/singlecolumnobjectproxymodel.h b/core/singlecolumnobjectproxymodel.h +index 6dac2e0..ca25a47 100644 +--- a/core/singlecolumnobjectproxymodel.h ++++ b/core/singlecolumnobjectproxymodel.h +@@ -52,6 +52,8 @@ public: + * QVariant() if some anamoly occurs. + */ + QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const override; ++ ++ QMap itemData(const QModelIndex &proxyIndex) const override; + }; + } + +-- +2.44.0 + diff --git a/0001-Unbreak-recursive-filtering-in-ObjectIdsFilterProxyM.patch b/0001-Unbreak-recursive-filtering-in-ObjectIdsFilterProxyM.patch new file mode 100644 index 0000000..c2f2d98 --- /dev/null +++ b/0001-Unbreak-recursive-filtering-in-ObjectIdsFilterProxyM.patch @@ -0,0 +1,120 @@ +From 19b2fcddc0013e3fc628acfc1997edc7337aa525 Mon Sep 17 00:00:00 2001 +From: Milian Wolff +Date: Mon, 4 Dec 2023 15:11:55 +0100 +Subject: [PATCH] Unbreak recursive filtering in ObjectIdsFilterProxyModel and + more + +The code tried to be compatible with older Qt and newer but failed +to do so correctly. When a model only implemented `acceptRow` then +that was never called by newer Qt. + +Instead, enforce all models to override `acceptRow` and prevent them +from overriding `filterAcceptsRow` - instead add the dance there to +make the code compatible to the old KRecursiveFilterProxyModel. + +This unbreaks the "ctrl+shift+click" picker dialog to not show all +objects but really only those that are visible at the given position. + +(cherry picked from commit 4e5205c228769ddb6b5a0fc84280aa05783b70f8) +--- + common/recursiveproxymodelbase.cpp | 9 +++++++++ + common/recursiveproxymodelbase.h | 14 ++++++-------- + core/tools/resourcebrowser/resourcefiltermodel.cpp | 4 ++-- + core/tools/resourcebrowser/resourcefiltermodel.h | 2 +- + 4 files changed, 18 insertions(+), 11 deletions(-) + +diff --git a/common/recursiveproxymodelbase.cpp b/common/recursiveproxymodelbase.cpp +index 0ce52a168..c29cb30eb 100644 +--- a/common/recursiveproxymodelbase.cpp ++++ b/common/recursiveproxymodelbase.cpp +@@ -12,7 +12,16 @@ + */ + #include "recursiveproxymodelbase.h" + ++#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) + bool RecursiveProxyModelBase::acceptRow(int sourceRow, const QModelIndex &sourceParent) const + { ++ // delegate to base class + return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent); + } ++#endif ++ ++bool RecursiveProxyModelBase::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const ++{ ++ // delegate to acceptRow ++ return acceptRow(sourceRow, sourceParent); ++} +diff --git a/common/recursiveproxymodelbase.h b/common/recursiveproxymodelbase.h +index 82cc66dd7..cb716f081 100644 +--- a/common/recursiveproxymodelbase.h ++++ b/common/recursiveproxymodelbase.h +@@ -22,7 +22,7 @@ + * NOTE: This class can be removed once we raise our minimum Qt version to 5.10 or above + */ + +-#if QT_VERSION < QT_VERSION_CHECK(6, 6, 0) ++#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + #include + #define GAMMARAY_PROXY_BASE_CLASS KRecursiveFilterProxyModel + #else +@@ -30,12 +30,7 @@ + #define GAMMARAY_PROXY_BASE_CLASS QSortFilterProxyModel + #endif + +-class GAMMARAY_COMMON_EXPORT RecursiveProxyModelBase : public +-#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) +- KRecursiveFilterProxyModel +-#else +- QSortFilterProxyModel +-#endif ++class GAMMARAY_COMMON_EXPORT RecursiveProxyModelBase : public GAMMARAY_PROXY_BASE_CLASS + { + public: + #if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) +@@ -46,8 +41,11 @@ public: + { + setRecursiveFilteringEnabled(true); + } +-#endif + + virtual bool acceptRow(int sourceRow, const QModelIndex &sourceParent) const; ++#endif ++ ++ // compat: always override acceptRow in subclasses ++ bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const final; + }; + #endif +diff --git a/core/tools/resourcebrowser/resourcefiltermodel.cpp b/core/tools/resourcebrowser/resourcefiltermodel.cpp +index 7e1ad8e55..cad4a5394 100644 +--- a/core/tools/resourcebrowser/resourcefiltermodel.cpp ++++ b/core/tools/resourcebrowser/resourcefiltermodel.cpp +@@ -24,11 +24,11 @@ ResourceFilterModel::ResourceFilterModel(QObject *parent) + { + } + +-bool ResourceFilterModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const ++bool ResourceFilterModel::acceptRow(int source_row, const QModelIndex &source_parent) const + { + const QModelIndex index = sourceModel()->index(source_row, 0, source_parent); + const QString path = index.data(ResourceModel::FilePathRole).toString(); + if (path == QLatin1String(":/gammaray") || path.startsWith(QLatin1String(":/gammaray/"))) + return false; +- return RecursiveProxyModelBase::filterAcceptsRow(source_row, source_parent); ++ return RecursiveProxyModelBase::acceptRow(source_row, source_parent); + } +diff --git a/core/tools/resourcebrowser/resourcefiltermodel.h b/core/tools/resourcebrowser/resourcefiltermodel.h +index 2e9d8c430..5bdbeedf0 100644 +--- a/core/tools/resourcebrowser/resourcefiltermodel.h ++++ b/core/tools/resourcebrowser/resourcefiltermodel.h +@@ -22,7 +22,7 @@ class ResourceFilterModel : public RecursiveProxyModelBase + Q_OBJECT + public: + explicit ResourceFilterModel(QObject *parent = nullptr); +- bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; ++ bool acceptRow(int source_row, const QModelIndex &source_parent) const override; + }; + } + +-- +2.44.0 + diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..437df64 --- /dev/null +++ b/_constraints @@ -0,0 +1,19 @@ + + + + + 4 + + + + + ppc64le + s390x + + + + 5 + + + + diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..0467171 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + qt6 + diff --git a/gammaray-3.0.0.tar.gz b/gammaray-3.0.0.tar.gz new file mode 100644 index 0000000..f59176e --- /dev/null +++ b/gammaray-3.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acd27dbbcbdf73fed497e0b5d6c477f2e11b59c48499752602677037dcd64ba5 +size 11037590 diff --git a/gammaray-3.1.0.tar.gz b/gammaray-3.1.0.tar.gz new file mode 100644 index 0000000..92c89e0 --- /dev/null +++ b/gammaray-3.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93b52d5318374896621e1d8b5dd03379c53e0458b1633b539d18737fe8c300cf +size 62728353 diff --git a/gammaray-gles.patch b/gammaray-gles.patch new file mode 100644 index 0000000..2866eb2 --- /dev/null +++ b/gammaray-gles.patch @@ -0,0 +1,18 @@ +QOpenGLFunctions_2_0 doesn't exist if Qt was built with opengles enabled. + +Ref: https://github.com/KDAB/GammaRay/issues/829 + +diff --git a/plugins/quickinspector/textureextension/qsgtexturegrabber.cpp b/plugins/quickinspector/textureextension/qsgtexturegrabber.cpp +index 120bb400d..f8d187ceb 100644 +--- a/plugins/quickinspector/textureextension/qsgtexturegrabber.cpp ++++ b/plugins/quickinspector/textureextension/qsgtexturegrabber.cpp +@@ -17,7 +17,9 @@ + #include + #include + #include ++#if !QT_CONFIG(opengles2) + #include ++#endif + #include + #include + #include diff --git a/gammaray.changes b/gammaray.changes new file mode 100644 index 0000000..b163305 --- /dev/null +++ b/gammaray.changes @@ -0,0 +1,690 @@ +------------------------------------------------------------------- +Wed Nov 20 12:12:19 UTC 2024 - Christophe Marin + +- Stop using the %suse_update_desktop_file macro + +------------------------------------------------------------------- +Mon Oct 28 08:43:13 UTC 2024 - Christophe Marin + +- Add a _constraints file to fix oom issues when building gammaray + +------------------------------------------------------------------- +Wed Aug 28 13:21:45 UTC 2024 - Christophe Marin + +- Update to 3.1.0 + * Qt5 versions less than 5.15 are no longer supported + * Qt6 versions less that 6.3 are no longer supported + * Qt IVI is no longer supported + * Fix inspection of graphics scenes with nested items + * Fix QQuickWidget support for Qt6 + * Support 3rdparty submodules for KDStateMachineEditor (with graphviz) + * Support inspection of QSplitter properties + * Support introspection of Qt PySide apps + * Show more font properties in the font browser, and allow searching for fonts + * Show all timezone name variants in the timezone browser + * Make probe settings configurable via AndroidManifest.xml +- Drop patches, now upstream: + * 001-Fix-doc-tools-detection.patch + * gammaray-gles.patch + * 0001-Fix-Qt-6.6-build.patch + * 0001-Repair-lack-of-classnames-in-Graphics-Scenes-or-Styl.patch + * 0001-QuickSceneGraphModel-don-t-nest-row-insertion-remova.patch + * 0001-Fix-gcc-13-warnings-about-references-to-temporaries.patch + * 0001-Fix-3-bugs-detected-by-QAbstractItemModelTester.patch + * 0001-Fix-two-issues-in-ObjectEnumModel-found-by-QAbstract.patch + * 0001-2-more-QAbstractItemModelTester-fixes.patch + * 0001-Unbreak-recursive-filtering-in-ObjectIdsFilterProxyM.patch + * 0001-Enable-building-with-Qt-6.7.patch + * 0001-Fix-build-on-6.7-for-after-QDeferredDeleteEvent-expo.patch + +------------------------------------------------------------------- +Sat Apr 6 20:20:59 UTC 2024 - Christophe Marin + +- Add upstream changes: + * 0001-Fix-doc-tools-detection.patch + * 0001-Fix-Qt-6.6-build.patch + * 0001-Repair-lack-of-classnames-in-Graphics-Scenes-or-Styl.patch + * 0001-QuickSceneGraphModel-don-t-nest-row-insertion-remova.patch + * 0001-Fix-gcc-13-warnings-about-references-to-temporaries.patch + * 0001-Fix-3-bugs-detected-by-QAbstractItemModelTester.patch + * 0001-Fix-two-issues-in-ObjectEnumModel-found-by-QAbstract.patch + * 0001-2-more-QAbstractItemModelTester-fixes.patch + * 0001-Unbreak-recursive-filtering-in-ObjectIdsFilterProxyM.patch + * 0001-Enable-building-with-Qt-6.7.patch + * 0001-Fix-build-on-6.7-for-after-QDeferredDeleteEvent-expo.patch + +------------------------------------------------------------------- +Sat Nov 25 23:06:34 UTC 2023 - Fabian Vogt + +- Add dependency for the matching shared libraries + +------------------------------------------------------------------- +Tue Sep 5 09:16:28 UTC 2023 - Christophe Marin + +- Update to 3.0.0 + * Port to Qt6. + * Network operations now optionally allow capturing HTTP + response body. + * Objects can now be favorited via context menu. A favorited + object appears in a separate item view above the main itemview + * Add support for modifying QMargins in properties + * Allow zooming with mouse wheel in Signals view + * Filtering for an object now automatically expands the tree + and selects the object + * Fix a crash when an object is re-parented + * Improved performance of signals view + * Improved performance when target application triggers massive + object destructions/constructions + * Remove the KDAB commercial license. + * Remove the 3D Widget Inspector View. + * Remove the experimental VTK-based Object Visualizer. + * Update 3rdparty/backward-cpp to version 1.6. + * Update 3rdparty/lz4 to version 1.9.4. + * Update 3rdparty/StackWalker. + * Increase CMake requirement to version 3.16.0. +- Add patches: + * 0001-Fix-doc-tools-detection.patch + * gammaray-gles.patch +- Add a Qt6 flavor +- Move plugins to a -shared subpackage. + gammaray-shared and gammaray-qt6-shared can be coinstalled and + allow debugging Qt5 or Qt6 applications. + +------------------------------------------------------------------- +Tue Dec 28 12:52:59 UTC 2021 - Fabian Vogt + +- Drop Fix_icons_installation.patch and package scaled icons + +------------------------------------------------------------------- +Wed Oct 20 18:24:58 UTC 2021 - Antonio Larrosa + +- Fix build by fixing the %files section for renamed/removed files + +------------------------------------------------------------------- +Wed Oct 20 17:49:05 UTC 2021 - Antonio Larrosa + +- Update to version 2.11.3 + * Increase CMake requirement to version 3.4.0 (reflecting reality). + * Update 3rdparty/StackWalker. + * Update 3rdparty/backward-cpp. + * Don't fail self-test for lldb version 10.x. + * Support for CMAKE_SYSTEM_PROCESSOR amd64. + * Fix crash when editing the margins property of a QtCharts/ChartView. + * Fix crash when attaching to an ASAN-enabled application. + * Register stream operators for Qt::CaseSensitivity. + * Clean some runtime, compile , CMake warnings, etc. + +------------------------------------------------------------------- +Thu Aug 5 05:53:36 UTC 2021 - Christophe Giboudeaux + +- Remove the duplicate category from the desktop file. + +------------------------------------------------------------------- +Tue Jun 8 08:36:40 UTC 2021 - Christophe Giboudeaux + +- Don't build gammaray with glslang on Tumbleweed. + The glslang 11.4.0 update broke the build. + +------------------------------------------------------------------- +Mon Dec 28 02:50:33 UTC 2020 - Wang Jun + +- Update to version 2.11.2 + * Prefer picking QtQuick items in fully visible parent-child chains. + * Fix deadlock with Qt 5.15 on high DPI screens. + * Fix QtQuick detection on older macOS versions. + * Support for Qt 5.15. +- Drop patches, now upstream: + * 0001-Fix-build-with-Qt-5.15.patch + * fix-build-with-qt-5.15-again.patch + +------------------------------------------------------------------- +Tue Jun 2 09:58:03 UTC 2020 - Fabian Vogt + +- Add another patch to fix build against Qt 5.15: + * fix-build-with-qt-5.15-again.patch + +------------------------------------------------------------------- +Thu May 7 07:32:15 UTC 2020 - Fabian Vogt + +- Update to 2.11.1: + * Add OpenGL ES2 fallback for the Qt3D geometry inspector. + * Fix assert on empty text document selections. + * Fix side-effects of using the widget layout overlay on a QSplitter. + * Fix merging of events in the event monitor. + * Fix event order in the event monitor. + * Add event propagation detection for QtQuick pointer events. + * Fix compilation with QT_NO_OPENGL and QT_NO_SSL. + * Adapt QtQuick software renderer inspector to changes in Qt 5.14. + * Fix Android support with Qt 5.14. + * Fix memory leak in event recording when Qt Quick remote view is active. + * Fix possible crash during probe destruction. + * Fix crash due to signal spy changes in Qt 5.14. + * Fix possible crash in the outbound connections view. +- Drop patches, now upstream: + * 0001-Fix-build-against-Qt-5.14.patch + +------------------------------------------------------------------- +Fri Apr 3 09:15:56 UTC 2020 - Christophe Giboudeaux + +- Add upstream patch: + * 0001-Fix-build-with-Qt-5.15.patch + +------------------------------------------------------------------- +Sat Dec 7 09:53:39 UTC 2019 - Christophe Giboudeaux + +- Add 0001-Fix-build-against-Qt-5.14.patch + +------------------------------------------------------------------- +Tue Oct 29 20:48:53 UTC 2019 - Stefan Brüns + +- Wrap VTK BuildRequires with bcond, only used for an experimental, + optional plugin. As only VTK 7.1 (TW and Leap 15.x have 8.2/8.1) + is supported the plugin was already disabled during configure. +- Remove graphviz-devel BuildRequires, not needed. + +------------------------------------------------------------------- +Wed Jul 10 09:19:54 UTC 2019 - Christophe Giboudeaux + +- Disable LTO. + +------------------------------------------------------------------- +Sat Jul 6 11:36:25 UTC 2019 - Wolfgang Bauer + +- Update to 2.11.0: + * Drop support for Qt 4 and Qt <= 5.4. + * Drop support for MSVC 2010 and MSVC 2012, as well as GCC < 4.8. + * Add support for more QtNetwork properties. + * Add new network operations monitoring tool. + * Fix inspection of QJson types. + * Add thread affinity check to the problem reporter. + * Add new event monitoring tool. + * Initial forward compatibility with Qt6 build system. + * Improved performance of the Qt Quick 2 inspector and the signal + monitor. +- Drop patches merged upstream: + * fix-build-with-qt-5.13.patch + * 0001-Make-sure-the-defined-variables-are-relative-before-.patch + * Adapt-to-Qt-5.13-changes-for-attached-property-handling.patch + * Adapt-to-attached-property-changes-in-Qt-5.12.4.patch +- Cleanup specfile: remove conditionals for no longer supported + distributions + +------------------------------------------------------------------- +Mon Jun 17 20:05:15 UTC 2019 - Wolfgang Bauer + +- Add upstream patches to fix build with Qt 5.12.4 and 5.13: + * Adapt-to-Qt-5.13-changes-for-attached-property-handling.patch + * Adapt-to-attached-property-changes-in-Qt-5.12.4.patch + +------------------------------------------------------------------- +Tue May 14 11:52:44 UTC 2019 - Christophe Giboudeaux + +- Add 0001-Make-sure-the-defined-variables-are-relative-before-.patch + to fix runtime issues. + +------------------------------------------------------------------- +Wed Apr 10 18:04:06 UTC 2019 - Christophe Giboudeaux + +- Add fix-build-with-qt-5.13.patch + +------------------------------------------------------------------- +Tue Apr 2 13:26:04 UTC 2019 - Christophe Giboudeaux + +- Remove the vtk-tcl dependency. + +------------------------------------------------------------------- +Thu Feb 28 21:01:00 UTC 2019 - wbauer@tmo.at + +- Update to 2.10.0: + * Increase CMake requirement to version 3.1 on all platforms. + * Add object navigation to the paint analyzer. + * Reduce network load by moving more property model features to + the client side. + * Port object hierarchy visualizer plugin to Qt 5. + * Add new system information plugin, which supersedes the + standard paths plugin. + * Use application palette rather than style palette in the style + inspector. + * Improve gdb injector performance. + * Reduce performance impact of the widget paint analyzer in + Windows debug builds. + * Improve Qt Quick item picking in case of zero-sized parent + elements. + * Provide access to QAbstractItemModel role name mapping. + * Add QtPositioning plugin allowing to monitor and simulate geo + localization. + * Add NMEA geo localization playback. + * Add support for generic functor property accessors. + * Add property access for mime data and clipboard types. + * Add infrastructure to override generic property access, such as + Qt Quick anchor properties. + * Add custom property access for Qt Quick anchors properties to + no longer trigger their on-demand creation. + * Add generic problem reporter infrastructure, and port some + existing checks to it. +- Drop patches merged upstream: + * fix-build-qt-5.12.patch + * fix-build-qt-5.12-again.patch + +------------------------------------------------------------------- +Wed Nov 14 10:37:36 UTC 2018 - Christophe Giboudeaux + +- Remove unneeded build dependencies. + +------------------------------------------------------------------- +Fri Oct 5 08:01:34 UTC 2018 - fabian@ritter-vogt.de + +- Add patches to fix build against Qt 5.12: + * fix-build-qt-5.12.patch + * fix-build-qt-5.12-again.patch + +------------------------------------------------------------------- +Thu Oct 4 12:19:52 UTC 2018 - fabian@ritter-vogt.de + +- Update to 2.9.1: + * Fix crash in in-process mode with networking disabled. + * Fix compilation with Qt 5.12. + * Update Android toolchain file. + * Allow to disable QtScript dependency. + * Fix crash on zero-sized paint operations. + * Fix plugin deployment on Android. + * Fix crash in Qt Quick inspector when encountering invalid bounding rects. + * Fix activating the Qt3D plugin when attaching to a Qt3D application at runtime. + * Fix out-of-bounds framebuffer read in Qt Quick remote view for some non-integer scaling factors. +- Use %license + +------------------------------------------------------------------- +Fri Feb 9 12:04:59 UTC 2018 - alarrosa@suse.com + +- Update to 2.9.0: + * Improve Qt Quick Controls 2 tracer coloring. + * Fix issues with QSG diagnostic render modes in combination with QQuickWidget. + * Improve input validation in the connect dialog. + * Fix Qt Quick remote view on targets without GL_BGRA support. + * Add texture and texture atlas inspection for QSGMaterial using objects. + * Only read and send the actually visible screen content in the Qt Quick remote view. + * Support dynamic shaders in the QSGMaterial shader view. + * Show vertex and fragment uniforms for shader effects in the QSGMaterial tab. + * Fix crashes during changing/restoring QSG diagnostic render modes. + * Batch row/column count requests for better remote model performance. + * Drop support for CMake 2.8, at least 3.0 is required now. + * Improved performance in the Qt Quick inspector. + * Add support for QSGRenderNode. + * Consider compiler version as part of the probe ABI on Windows. + * Fix multithreading issues in the timer inspector. + * Add search line to timer inspector. + * Add screenshot support in Qt Quick inspector. + * Improve item picking support in Qt Quick inspector. + * Add texture waste indicator to texture inspection tab. + * Add color picker for remote views. + * Add object navigation and source navigation to the timer inspector. + * Add support for cross-architecture injection on Windows. + * Add support for editing enum/flag properties not registered with the Qt meta object system. + * Add network configuration view. + * Improved indication that a target process is being inspected by GammaRay. + * Add widget tab focus chain visualization. + * Fix re-attaching to a target application on Windows. + * Add QML binding inspector (requires Qt 5.10 or newer). + * Add support for QtWebEngine to the web inspector tool. + * Improved argument inspection in the QPainter analyzer. + * Support paint analysis with the Qt Quick software renderer (requires Qt 5.9.3 or newer). + * Improved Qt Quick anchor property display. + * Fix property editing of gadget value types. + * Fix interaction issues in string type property editor. + * Add action to slow down Qt Quick animation timers. + * Add support for visualizing clip areas in the Qt Quick software renderer. + * Clear Qt Quick target overlay on GammaRay client disconnect. + * Add automatic down-cast support to GammaRay metatype system. + * Add QObject creation stack trace view. + * Add source code navigation to the message browser stack trace view. + * Add stack trace view for painter operations in the paint analyzer view. + * Fix rpath support in probe ABI detection on macOS. + * Fix user manual access on macOS. + * Add profiling support to the paint analyzer. + * Use relative RPATHs on Linux, to make installations fully relocatable. + * Add mouse wheel zoom in the Qt 3D geometry inspector. + * Improve performance of the Qt Quick scene graph model. + * Improve editing of boolean properties. + * Add diagnostic shading modes to the Qt 3D geometry inspector. + * Support vertex picking in the Qt 3D geometry inspector. + * Support Qt 3D painted textures in the paint analyzer. + * Fix Qt 3D buffer decoding for tightly packed attributes. + * Fix server-side decoration state going out-of-sync in the Qt Quick inspector. + * Fix crash when validating dynamic meta objects. + * Fix support of namespaced and semi-qualified enums/flags. + +- Update to 2.8.2: + * Fix high-dpi icon installation. + * Fix documentation build with spaces in the path. + * Fix build of the QtIvi inspector with Qt 5.10. + * Fix detection of libdl. + * Fix incomplete installation of multi-probe builds on second make install run. + * Fix build issues in some Windows and cross-compilation setups. + * Fix widget export action plugin loading on Windows. + +- Rebase Fix_icons_installation.patch + +------------------------------------------------------------------- +Wed Nov 1 18:47:50 UTC 2017 - christophe@krop.fr + +- Update to 2.8.1: + + * Fix compilation with interestingly packaged qmllint on Ubuntu. + * Fix error handling in LLDB injector when LLDB scripting support is not available. + * Fix tree view corruption when searching. + * Fix linking with backward-cpp in BFD mode using a static libbdf. + * Fix assert when launching a Windows target using a Qt debug build. + * Fix crash during attaching on Windows. + * Fix build with MSVC2010 and Qt4.8. + * Fix attach dialog not seeing 32bit processes on 64bit Windows systems. + * Add support for Qt 5.9.2. +- Add Fix_icons_installation.patch. + +------------------------------------------------------------------- +Sat Jun 17 10:30:15 UTC 2017 - fabian@ritter-vogt.de + +- Update to 2.8.0: + * Fix possible deadlock in WinDLL injector. + * Add code navigation for C++-created objects (Linux-only, requires a debug build). + * Add legend for the QtQuick inspector overlay. + * Add QtQuickControls2 layout support in the QtQuick inspector. + * Add layouting grid overlay to the QtQuick inspector. + * Add support for non-QtIviProperty properties in QtIvi modules. + * Improved QtQuick2 remote view performance. + * Basic support for the QtQuick2 software renderer. + * Add QtQuick Control 2 tracing support. + * ... and much more than can fit here. See the changelog for details: + https://github.com/KDAB/GammaRay/releases/tag/v2.8.0 + +------------------------------------------------------------------- +Fri Feb 17 16:09:45 UTC 2017 - alarrosa@suse.com + +- Update to 2.7.0: + * Improved enum and flag editor in the property view. + * Add style hint view to style inspector. + * Fix runtime QSG visualization mode switching for newer Qt versions. + * Initial support for statically compiling GammaRay into a target. + * Support for QtWayland 5.8. + * Add object navigation for the translation inspector. + * Automatically re-scan meta types to captures types registered later. + * Improved Wayland log and timeline view. + * Add object navigation for Wayland clients. + * Show alive object statistics in the meta object browser. + * Add Qt3D geometry inspector (requires Qt >= 5.7 and Qt3D) + * Allow to hide inactive tools. + * Fix handling of partially out-of-view QQuickItems in the QQ2 inspector. + * Improve error handling in the GDB injector. + * Fix QML support not being activated when attaching to a QtQuick application at runtime. + * Fix widget layout overlay for nested QLayouts. + * Fix crash on client disconnect. + * Syntax highlighting and code folding for textual content (requires KF5::SyntaxHighlighting) + * Add 3D widget layout visualization. + * Allow to hide non-visible elements in the full-depth picking dialog. + * Add QtIvi inspection tool (requires Qt5IviCore) + * Fix QSG geometry inspector not showing geometry correctly on first selection. + * Build both release and debug probes by default when using MSVC. + * Add more editor defaults for code navigation on Linux. + * Add QtSCXML support to the state machine debugger (requires Qt >= 5.8). + * Show QtQuick overlays also in the target application. + * Avoid leaking GammaRay translated strings into the translation inspector. + * Fix launching targets on macOS >= 10.9. +- When building for at least Leap 42.2, BuildRequire glslang-devel + which is an optional package +- When building for Factory, BuildRequire cmake(KF5yntaxHighlighting) + which is an optional package + +------------------------------------------------------------------- +Sun Jan 29 19:21:49 UTC 2017 - jengelh@inai.de + +- Directly call ldconfig as scriptlet + +------------------------------------------------------------------- +Thu Oct 27 14:40:21 UTC 2016 - alarrosa@suse.com + +- Update to 2.6.0: + * Reworked tool view handling, enabling deeper IDE integration of individual tools. + * Merged model and selection model inspector. + * Fixed crash when quickly changing selection in model inspector. + * Add QMetaObject validation, identifying common problems with signal/slot declarations. + * Support object navigation to and from the model and text document inspectors as well as the signal plotter. + * Visualize model selections. + * Allow to inspect model content also for disabled cells. + * Show model cell flags in model inspector. + * Fix sorting in object method view. + * Fix handling of source model changes for proxy and selection models. + * Add in-app picking for selection models and actions. + * Extended the user manual with example problems diagnosed with GammaRay. + * Allow to rescan the meta type database. + * Add object navigation from the meta type view to the meta object browser. + * Show registered comparison and stream operators in the meta type browser. + * Add object navigation support to the action and timer inspectors. + * Visualize enabled state in the action inspector too. + * Support editing of nested properties of value types. + * Fix various enum/flag display issues in the property view. + * Fix AArch64 detection on ELF platforms. + * Support ABI detection on systems without ldd. + * Add Wayland compositor inspector. + * Add advanced element picking mode for widget and Qt Quick inspectors. + * Fix crash when encountering an empty translation context. + * Extend user manual content. + * Fix a number of memory leaks. + * Fix crash when selecting a dangling top-level layout in the widget inspector. + * Fix missing standard icon types in style inspector for some Qt versions. + * Fix table layout in style inspector. + * Fix invalid memory access in palette model. + * Fix selecting entries in the resource browser. + +------------------------------------------------------------------- +Sat Oct 22 13:04:21 UTC 2016 - hrvoje.senjan@gmail.com + +- Bump Qt BuildRequires to 5.2.0 + +------------------------------------------------------------------- +Fri Jul 1 16:51:56 UTC 2016 - toddrme2178@gmail.com + +- Make Group tag consistent with other packages. + +------------------------------------------------------------------- +Sat Jul 11 16:39:36 UTC 2015 - hrvoje.senjan@gmail.com + +- Update to 2.3.0: + * Add QtBluetooth support. + * Support local sockets next to TCP for connecting to the probe. + * Change probe plugin loading to be compatible with Android .apk + restrictions. + * Don't generate backtraces for GammaRay-caused qWarnings. + * Also show properties defined in a meta object in the meta + object browser. + * Add non-QObject meta object found via QMetaType to the meta + object browser (finds Q_GADGETs with Qt 5.5). + * Performance improvements in object tracking, remote model, + property view, signal spy and several other places. + * Ongoing refactoring work to enable embedding the + GammaRay client and launcher components into other + host applications. + * Add copy backtrace feature in the message browser. + * Improved UI-less build option for embedded targets. + * Fix various crashes, including when interacting with + QOpenGLContext, QDBusAdapter, QML ListModels or Qt containers + containing types that cannot be serialized. + * Make paint analyzing also work with Qt 5.5 despite the necessary + functionality being removed in Qt. + * Add support for static properties in the property view. + * Qt 5.5 compatibility. + * Initial support for QNX 6.6. + * Improved QtQuick2 in-app item picking. + * Fixed/improved tracking of object reparenting in the + object tree model. + * Fix widget layout overlay widget leaking into + object/widget tree. + * Optional compression support for the client/server communication, + speeds up debugging over slow USB connections. + * Fix initial selection in the model browser having no effect. + +------------------------------------------------------------------- +Thu Apr 9 01:30:16 UTC 2015 - hrvoje.senjan@gmail.com + +- Update to 2.2.1: + * Fix spawning a large number of threads in the process list. + * Add GAMMARAY_BUILD_UI build option to only build the non-UI + parts, useful for embedded targets. + * Add workaround for QSortFilterProxyModel regression introduced + in qtbase commit bec1854cc0. + * Follow kdstatemachineeditor KDSME API changes. + * Use the preload injector by default on Mac for Qt >= 5.4. + * Fix probe ABI detection on Mac bundles. + * Fix asserts caused by icon loading in + QCoreApplication-only targets. + * Fix crash when target deletes a signal sender in a slot. + - Changes since 2.2.0: + * New translation inspector plug-in. + * New signal monitor and object lifetime plotter plug-in. + * Support displaying of QQmlListProperty contents. + * Expose signal/slot spy callback API to plug-ins. + * Improved state machine visualization using KDSME. + * Support for QQmlTimer in the timertop plug-in. + * Support exporting of QResource data. + * Improved QSGMaterial viewer. + * Various performance improvements for the QtQuick2 + remote preview. + * Improved Qt 5.4 compatibility. + * Fix handling of large images in the resource browser. + * Support for manually emitting signals, and improved + method display. + - Changes since 2.1.2: + * Fix crash when selecting the scene graph root node. + * Fix two asserts in Qt 5.4 when dealing with connections + to slot objects. + * Fix build with Vivante OpenGL ES2 stack. + * Build fixes for Android. + * Fix build issues with Qt5.4 and Clang. + * Fix minor compiler warnings and Coverity Scan issues. + - Changes since 2.1.1: + * Fix invoking non-slot methods with arguments. + * Fix QtQuick2 preview not showing any content with + Qt 5.2 or older. + * Fix crash when encountering tooltips in Qt5 targets. + * Fix deadlock in object list model. + * Fix QGraphicsView scene selection in in-process mode. + * Fix debug message handler for Qt5. + * A missing relocatable startup hook is + no longer fatal with Qt 5.4. + * Fix Qt 5.4 compatibility of the QtQuick2 preview. + - Changes since 2.1.0: + * Aggregated property view combining static, dynamic and + non-QObject property views. + * Qt5Qml/Qt5Quick support + (see http://github.com/KDAB/GammaRay/wiki/QtQuick2-Support-Status) + * Probe ABI auto-detection on Linux, Mac and Windows. + * Support to navigate to objects that are property values. + * Plug-ins can now add specialized tabs to the property view. + * Support adding and deleting dynamic QObject properties. + * Support for "hidden" plug-ins, i.e. plug-ins that only + provide type support but no own tool view. + * Support KF5 in the KJob tracker plug-in. + * Support for Qt 5.4 object creation/destruction callbacks. + * Improved connection view, and support for viewing + connections in Qt5 applications. + - Changes since 2.0.2: + * Restore compatibility with Qt4.7 + * Avoid leaking shared-memory in case of crashes of gammaray-client + * Fix various crashes + * Fix various crashes with heavily multithreaded debuggees + * Fix unnecessary value limits in property editor for + QPointF, QSizeF, etc + * Improve property editor value loading performance + - Changes since 2.0.1: + * LLDB injector (enables Mac OSX 10.9 support) + * Fix various cases where client and server states get out of sync + - Changes since 2.0.0: + * Out-of-process UI + * Remote Debugging + * Multi-probe support + * Probe usable on targets without QtWidget available + * Fix preload check on MIPS/MIPSel (issue #63) + * Support for displaying arguments of monitored signals +- Drop libQtWebKit-devel and libkde4-devel BuildRequires +- Added pkgconfig(Qt5Concurrent), pkgconfig(Qt5Core), + pkgconfig(Qt5Designer), pkgconfig(Qt5Gui), pkgconfig(Qt5Network), + pkgconfig(Qt5PrintSupport), pkgconfig(Qt5Qml) >= 5.1.0, + pkgconfig(Qt5Quick), pkgconfig(Qt5Script), + pgconfig(Qt5ScriptTools), pkgconfig(Qt5Svg), pkgconfig(Qt5Test), + pkgconfig(Qt5WebKitWidgets), pkgconfig(Qt5Widgets), + libQt5Core-private-headers-devel, libQt5Gui-private-headers-devel, + libQt5Network-private-headers-devel and + libqt5-qtdeclarative-private-headers-devel BuildRequires +- Enable devel subpackage + +------------------------------------------------------------------- +Sat Dec 7 13:25:08 UTC 2013 - cgiboudeaux@gmx.com + +- Update to 1.3.2: + * Support more Qt5-specific data types + * Fix crash on some QtQuick2 applicaitons + * Support VTK6 + * Fix crash in selection model inspector + * Fix probe re-injections + +------------------------------------------------------------------- +Mon Aug 5 17:35:43 UTC 2013 - hrvoje.senjan@gmail.com + +- enable CMAKE_SKIP_INSTALL_RPATH option so RPATH is ommited from + install tree + +------------------------------------------------------------------- +Sun Jul 21 19:10:32 UTC 2013 - hrvoje.senjan@gmail.com + +- Update to 1.3.1: +- Changes since 1.3.0: + * Fix state machine viewer on Windows + * Fix crash in model cell viewer + * Fix crash in meta object browser caused by deleted dynamic + meta objects + * Improve performance of the mime type browser + * Improvements in the state machine viewer image export + * Compile fixes for some Qt5 configurations +- Changes since 1.2.0: + * New KJob tracker plugin (requires KDE4) + * Qt5 support + * New Meta Object Browser tool + * New QStandardPaths and QMimeTypeDatabase browsers (Qt5 only) +- Changes since 1.1.1: + * Published API for writing your own plugin + * New QStyle inspector + * New QAction inspector with shortcut conflict finder + * New QPalette editor + * QWidget paint operation introspection using QPaintBuffer + (requires private headers) +- Dropped gammaray-gcc47.patch, not needed +- Added libkde4-devel, python-devel, graphviz-devel and libxml2-devel + BuildRequires +- Added qvtk.diff, so variable is used, instead of hardcoded QVTK +- Adjust license format + +------------------------------------------------------------------- +Tue Nov 20 17:23:54 UTC 2012 - nico.kruber@gmail.com + +- Fix the SLES build (%make_install is not expanded on SLES) + +------------------------------------------------------------------- +Tue May 15 09:31:35 UTC 2012 - idonmez@suse.com + +- Fix compilation with gcc 4.7 + +------------------------------------------------------------------- +Mon Mar 19 12:05:14 UTC 2012 - toddrme2178@gmail.com + +- Update to version 1.1.0 +- Added vtk dependencies for viewing source structure +- Cleaned up spec file formatting + +------------------------------------------------------------------- +Thu Nov 3 09:03:32 UTC 2011 - idonmez@suse.com + +- Fix build on openSUSE 11.4 and lower + +------------------------------------------------------------------- +Sun Oct 30 21:25:49 UTC 2011 - wstephenson@suse.com + +- Initial version 1.0.50 + diff --git a/gammaray.spec b/gammaray.spec new file mode 100644 index 0000000..57f9a7a --- /dev/null +++ b/gammaray.spec @@ -0,0 +1,248 @@ +# +# spec file for package gammaray +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "qt6" +%define qt6 1 +%define pkg_suffix -qt6 +%define qt_suffix 6 +%define qt_min_version 6.3 +%else +%define qt5 1 +%define qt_suffix 5 +%define qt_min_version 5.15 +%endif +%define rname gammaray +%define short_version 3.1 +%define soversion 3_1_0 +Name: gammaray%{?pkg_suffix} +Version: 3.1.0 +Release: 0 +Summary: Introspection/Debugging Tool for Qt Applications +License: GPL-2.0-or-later +URL: https://www.kdab.com/gammaray +Source: https://github.com/KDAB/GammaRay/releases/download/v%{version}/%{rname}-%{version}.tar.gz +BuildRequires: binutils-devel +BuildRequires: cmake >= 3.16.0 +BuildRequires: doxygen +BuildRequires: fdupes +BuildRequires: graphviz-gnome +# include this so the icon folders don't need to be owned by the package +BuildRequires: hicolor-icon-theme +BuildRequires: libdw-devel +BuildRequires: pkgconfig +BuildRequires: cmake(Qt%{qt_suffix}3DAnimation) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}3DExtras) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}3DInput) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}3DLogic) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}3DQuick) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}3DRender) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Bluetooth) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Concurrent) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Core) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Designer) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Gui) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Help) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}LinguistTools) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Network) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}OpenGL) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Positioning) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Qml) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Quick) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}QuickWidgets) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Scxml) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Svg) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Test) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}WaylandCompositor) >= %{qt_min_version} +BuildRequires: cmake(Qt%{qt_suffix}Widgets) >= %{qt_min_version} +BuildRequires: pkgconfig(wayland-server) +Requires: %{name}-shared-plugins = %{version} +%if 0%{?qt5} +BuildRequires: libQt5Core-private-headers-devel >= %{qt_min_version} +BuildRequires: libQt5Gui-private-headers-devel >= %{qt_min_version} +BuildRequires: libQt5Widgets-private-headers-devel >= %{qt_min_version} +BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{qt_min_version} +BuildRequires: libqt5-qtscxml-private-headers-devel >= %{qt_min_version} +BuildRequires: libqt5-qttools-doc >= %{qt_min_version} +# No Qt6 support in current release +BuildRequires: cmake(KDSME) +BuildRequires: cmake(KF5CoreAddons) +BuildRequires: cmake(KF5SyntaxHighlighting) +BuildRequires: cmake(Qt5AttributionsScannerTools) >= %{qt_min_version} +BuildRequires: cmake(Qt5Location) >= %{qt_min_version} +BuildRequires: cmake(Qt5Script) >= %{qt_min_version} +BuildRequires: cmake(Qt5ScriptTools) >= %{qt_min_version} +Recommends: gammaray-qt6-shared-plugins = %{version} +%ifnarch ppc64 ppc64le s390 s390x +BuildRequires: cmake(Qt5WebEngineWidgets) >= %{qt_min_version} +%endif +%endif +%if 0%{?qt6} +%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150600 +BuildRequires: cmake(KF6CoreAddons) +BuildRequires: cmake(KF6SyntaxHighlighting) +%endif +BuildRequires: qt6-core-private-devel >= %{qt_min_version} +BuildRequires: qt6-gui-private-devel >= %{qt_min_version} +BuildRequires: qt6-qml-private-devel >= %{qt_min_version} +BuildRequires: qt6-quick-private-devel >= %{qt_min_version} +# Needed to build the statemachine examples +BuildRequires: qt6-scxml-imports >= %{qt_min_version} +BuildRequires: qt6-scxml-private-devel >= %{qt_min_version} +BuildRequires: qt6-statemachine-private-devel >= %{qt_min_version} +BuildRequires: qt6-widgets-private-devel >= %{qt_min_version} +%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150500 +BuildRequires: cmake(Qt6Location) >= %{qt_min_version} +%endif +BuildRequires: cmake(Qt6ShaderTools) >= %{qt_min_version} +BuildRequires: cmake(Qt6StateMachine) >= %{qt_min_version} +BuildRequires: cmake(Qt6ToolsTools) >= %{qt_min_version} +Recommends: gammaray-shared-plugins = %{version} +Conflicts: gammaray +%ifnarch %{ix86} %{arm} ppc64 ppc64le s390 s390x +BuildRequires: cmake(Qt6WebEngineWidgets) >= %{qt_min_version} +%endif +%endif +# Pull in the correct set of shared libraries (Qt5/Qt6) +Requires: libgammaray%{?pkg_suffix}-%{soversion} >= %{version} + +%description +Gamma Ray is a comprehensive collection of high level introspection +and debugging utilities specifically tailored for the various +frameworks in Qt. + +%package shared-plugins +Summary: Shared plugins and libraries +Requires: (gammaray = %{version} or gammaray-qt6 = %{version}) + +%description shared-plugins +This package ships libraries and plugins built with a different Qt version. +There are required in order to inspect executables built with different +Qt versions. + +%package -n libgammaray%{?pkg_suffix}-%{soversion} +Summary: Gammaray libraries +%if 0%{?qt6} +Conflicts: libgammaray-%{soversion} +%endif + +%description -n libgammaray%{?pkg_suffix}-%{soversion} +Gammaray libraries. + +%package -n libgammaray-shared%{?pkg_suffix}-%{soversion} +Summary: Shared Gammaray libraries used by either gammaray or gammaray-qt6 + +%description -n libgammaray-shared%{?pkg_suffix}-%{soversion} +This package provides libraries required by %{name}-shared-plugins + +%package devel +Summary: Introspection/Debugging Tool for Qt Applications +Requires: libgammaray%{?pkg_suffix}-%{soversion} +Requires: libgammaray-shared%{?pkg_suffix}-%{soversion} +%if 0%{?qt6} +Conflicts: gammaray-devel +%endif + +%description devel +Gamma Ray is a comprehensive collection of high level introspection +and debugging utilities specifically tailored for the various +frameworks in Qt. Development files. + +%prep +%autosetup -p1 -n %{rname}-%{version} + +%build +%define _lto_cflags %{nil} +%if 0%{?qt5} +%cmake \ + -DQT_VERSION_MAJOR=5 \ + -DECM_MKSPECS_INSTALL_DIR=%{_libdir}/qt5/mkspecs/modules \ + -DQCH_INSTALL_DIR=%{_datadir}/gammaray +%cmake_build +%endif + +%if 0%{?qt6} +%cmake_qt6 \ + -DQT_VERSION_MAJOR=6 \ + -DECM_MKSPECS_INSTALL_DIR=%{_qt6_mkspecsdir}/modules \ + -DQCH_INSTALL_DIR=%{_datadir}/gammaray \ + -DQDOC_INDEX_DIR=%{_qt6_docdir} +%qt6_build +%endif + +%install +%if 0%{?qt5} +%cmake_install +%endif + +%if 0%{?qt6} +%qt6_install +%endif + +# Already packaged with %%doc and %%license tags +rm -r %{buildroot}%{_datadir}/doc + +%fdupes %{buildroot} + +%ldconfig_scriptlets -n libgammaray%{?pkg_suffix}-%{soversion} +%ldconfig_scriptlets -n libgammaray-shared%{?pkg_suffix}-%{soversion} + +%files +%doc CHANGES README.md +%{_bindir}/gammaray +%{_datadir}/applications/GammaRay.desktop +# Scaled directories are not owned by hicolor +%dir %{_datadir}/icons/hicolor/*@*/ +%dir %{_datadir}/icons/hicolor/*@*/apps/ +%{_datadir}/icons/hicolor/*/apps/GammaRay.png +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/_gammaray +%dir %{_libdir}/gammaray +%{_libdir}/gammaray/libexec/ +%{_mandir}/man1/gammaray.1%{?ext_man} +%{_datadir}/metainfo/com.kdab.GammaRay.metainfo.xml +%{_datadir}/gammaray/ + +%files -n libgammaray%{?pkg_suffix}-%{soversion} +%license LICENSES/* +%{_libdir}/libgammaray_client.so.* +%{_libdir}/libgammaray_kuserfeedback.so.* +%{_libdir}/libgammaray_launcher.so.* +%{_libdir}/libgammaray_launcher_ui.so.* + +%files -n libgammaray-shared%{?pkg_suffix}-%{soversion} +%{_libdir}/libgammaray_*-qt*.so.* + +# Shared libraries and plugins to load e.g. Qt 5 executables if gammaray was +# built with Qt 6 +%files shared-plugins +%dir %{_libdir}/gammaray +%{_libdir}/gammaray/%{short_version}/ + +%files devel +%{_includedir}/gammaray/ +%{_libdir}/cmake/GammaRay/ +%{_libdir}/libgammaray_*-qt*.so +%{_libdir}/libgammaray_client.so +%{_libdir}/libgammaray_kuserfeedback.so +%{_libdir}/libgammaray_launcher.so +%{_libdir}/libgammaray_launcher_ui.so +%{_libdir}/qt*/mkspecs/modules/qt_GammaRay*.pri + +%changelog