Christophe Marin 2024-11-20 12:12:23 +00:00 committed by Git OBS Bridge
commit b6c3ad133e
20 changed files with 1848 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,62 @@
From f7bf40db5cd70972ca0597d096ca67c5a0b2a7b9 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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<QHeaderView *>(sender()));
+ auto headerView = qobject_cast<QHeaderView *>(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

View File

@ -0,0 +1,27 @@
From 9674e01aa787e2168b9b983dec14db9df875986b Mon Sep 17 00:00:00 2001
From: Matt Aber <matt.aber@kdab.com>
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

View File

@ -0,0 +1,50 @@
From 6b46413d04579cb2159a77b01e83bca148899626 Mon Sep 17 00:00:00 2001
From: David Faure <david.faure@kdab.com>
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<QAbstractItemModel *>(child.internalPointer());
Q_ASSERT(model);
if (m_models.contains(model))
--
2.44.0

100
0001-Fix-Qt-6.6-build.patch Normal file
View File

@ -0,0 +1,100 @@
From 9978a0a7c4f4d122477f4f14755e55196365d8ce Mon Sep 17 00:00:00 2001
From: Waqar Ahmed <waqar.ahmed@kdab.com>
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 <QFile>
#include <QObject>
#include <private/qobject_p.h>
+#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
+#include <private/qcoreevent_p.h>
+#endif
#include <QSortFilterProxyModel>
#include <QStringList>
#include <QThread>
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

View File

@ -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<QDeferredDeleteEvent *, QEvent>
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 <type_traits>
+#include <QtGlobal>
+// Needed for QDeferredDeleteEvent after Qt 6.7
+#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
+#include <private/qcoreevent_p.h>
+#endif
namespace GammaRay {
@@ -27,6 +32,14 @@ Out DynamicCast(In *in)
return dynamic_cast<Out>(in);
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
+template<>
+inline QDeferredDeleteEvent *DynamicCast<QDeferredDeleteEvent *, QEvent>(QEvent *in)
+{
+ return static_cast<QDeferredDeleteEvent *>(in);
+}
+#endif
+
///@cond internal
template<typename Out>
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

View File

@ -0,0 +1,54 @@
From 426daf709be68710adcf7d43ef196ecd5ad0c01f Mon Sep 17 00:00:00 2001
From: Christophe Marin <christophe@krop.fr>
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

View File

@ -0,0 +1,60 @@
From 3dc92d2ede1897b1eadc0e8e1e664e2a9b88017d Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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<GammaRay::ToolInfo>::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

View File

@ -0,0 +1,42 @@
From 14c13f437e1957e36db4c0f3bd22e25e711e20d2 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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<qptrdiff>(child.internalId()) == -1)
+ if (!child.isValid())
+ return {};
+ if (static_cast<qintptr>(child.internalId()) == -1)
return SuperClass::parent(child);
return SuperClass::index(child.internalId(), 0, QModelIndex());
}
--
2.44.0

View File

@ -0,0 +1,31 @@
From ad1d799d213ef4a0364cce2e3b19ec2c378f9173 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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

View File

@ -0,0 +1,48 @@
From 91200e5e1cb8fa700cfd0546e2515a7995cce441 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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<int, QVariant> SingleColumnObjectProxyModel::itemData(const QModelIndex &proxyIndex) const
+{
+ QMap<int, QVariant> 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<int, QVariant> itemData(const QModelIndex &proxyIndex) const override;
};
}
--
2.44.0

View File

@ -0,0 +1,120 @@
From 19b2fcddc0013e3fc628acfc1997edc7337aa525 Mon Sep 17 00:00:00 2001
From: Milian Wolff <milian.wolff@kdab.com>
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 <kde/krecursivefilterproxymodel.h>
#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

19
_constraints Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<constraints>
<hardware>
<memory>
<size unit="G">4</size>
</memory>
</hardware>
<overwrite>
<conditions>
<arch>ppc64le</arch>
<arch>s390x</arch>
</conditions>
<hardware>
<memory>
<size unit="G">5</size>
</memory>
</hardware>
</overwrite>
</constraints>

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<flavor>qt6</flavor>
</multibuild>

3
gammaray-3.0.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:acd27dbbcbdf73fed497e0b5d6c477f2e11b59c48499752602677037dcd64ba5
size 11037590

3
gammaray-3.1.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:93b52d5318374896621e1d8b5dd03379c53e0458b1633b539d18737fe8c300cf
size 62728353

18
gammaray-gles.patch Normal file
View File

@ -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 <QImage>
#include <QOpenGLContext>
#include <QOpenGLFunctions>
+#if !QT_CONFIG(opengles2)
#include <QOpenGLFunctions_2_0>
+#endif
#include <QPainter>
#include <QQuickWindow>
#include <QSGTexture>

690
gammaray.changes Normal file
View File

@ -0,0 +1,690 @@
-------------------------------------------------------------------
Wed Nov 20 12:12:19 UTC 2024 - Christophe Marin <christophe@krop.fr>
- Stop using the %suse_update_desktop_file macro
-------------------------------------------------------------------
Mon Oct 28 08:43:13 UTC 2024 - Christophe Marin <christophe@krop.fr>
- Add a _constraints file to fix oom issues when building gammaray
-------------------------------------------------------------------
Wed Aug 28 13:21:45 UTC 2024 - Christophe Marin <christophe@krop.fr>
- 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 <christophe@krop.fr>
- 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 <fabian@ritter-vogt.de>
- Add dependency for the matching shared libraries
-------------------------------------------------------------------
Tue Sep 5 09:16:28 UTC 2023 - Christophe Marin <christophe@krop.fr>
- 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 <fabian@ritter-vogt.de>
- Drop Fix_icons_installation.patch and package scaled icons
-------------------------------------------------------------------
Wed Oct 20 18:24:58 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Fix build by fixing the %files section for renamed/removed files
-------------------------------------------------------------------
Wed Oct 20 17:49:05 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- 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 <christophe@krop.fr>
- Remove the duplicate category from the desktop file.
-------------------------------------------------------------------
Tue Jun 8 08:36:40 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
- 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 <jgwang@suse.com>
- 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 <fvogt@suse.com>
- 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 <fvogt@suse.com>
- 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 <christophe@krop.fr>
- Add upstream patch:
* 0001-Fix-build-with-Qt-5.15.patch
-------------------------------------------------------------------
Sat Dec 7 09:53:39 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr>
- Add 0001-Fix-build-against-Qt-5.14.patch
-------------------------------------------------------------------
Tue Oct 29 20:48:53 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <christophe@krop.fr>
- Disable LTO.
-------------------------------------------------------------------
Sat Jul 6 11:36:25 UTC 2019 - Wolfgang Bauer <wbauer@tmo.at>
- 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 <wbauer@tmo.at>
- 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 <christophe@krop.fr>
- 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 <christophe@krop.fr>
- Add fix-build-with-qt-5.13.patch
-------------------------------------------------------------------
Tue Apr 2 13:26:04 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr>
- 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 <christophe@krop.fr>
- 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

248
gammaray.spec Normal file
View File

@ -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