From 9757bd25516af6bbd84c1847ffef37d29e40982af0100e49954e0d173992da71 Mon Sep 17 00:00:00 2001 From: Christophe Marin Date: Tue, 5 Sep 2023 17:26:29 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/gammaray?expand=0&rev=77 --- 0001-Fix-doc-tools-detection.patch | 54 +++++++ _multibuild | 3 + gammaray-2.11.3.tar.gz | 3 - gammaray-3.0.0.tar.gz | 3 + gammaray.changes | 31 ++++ gammaray.spec | 230 +++++++++++++++++++---------- 6 files changed, 247 insertions(+), 77 deletions(-) create mode 100644 0001-Fix-doc-tools-detection.patch create mode 100644 _multibuild delete mode 100644 gammaray-2.11.3.tar.gz create mode 100644 gammaray-3.0.0.tar.gz 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/_multibuild b/_multibuild new file mode 100644 index 0000000..0467171 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + qt6 + diff --git a/gammaray-2.11.3.tar.gz b/gammaray-2.11.3.tar.gz deleted file mode 100644 index 3bd1f75..0000000 --- a/gammaray-2.11.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03d7ca7bd5eb600c9c389d0cf071960330592f1f392a783b7fec5f9eaa5df586 -size 10841865 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.changes b/gammaray.changes index f527274..c9993d7 100644 --- a/gammaray.changes +++ b/gammaray.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +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 patch: + * 0001-Fix-doc-tools-detection.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 diff --git a/gammaray.spec b/gammaray.spec index c223e69..2012cf3 100644 --- a/gammaray.spec +++ b/gammaray.spec @@ -1,7 +1,7 @@ # # spec file for package gammaray # -# Copyright (c) 2021 SUSE LLC +# 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 @@ -16,77 +16,135 @@ # -# Required for the "highly experimental" object visualizer plugin, only VTK 7.1 supported -%bcond_with vtk - -%define tarname GammaRay -Name: gammaray -Version: 2.11.3 +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "qt6" +%define qt6 1 +%define pkg_suffix -qt6 +%define qt_suffix 6 +%else +%define qt5 1 +%define qt_suffix 5 +%endif +%define rname gammaray +%define short_version 3.0 +%define soversion 3_0_0 +Name: gammaray%{?pkg_suffix} +Version: 3.0.0 Release: 0 Summary: Introspection/Debugging Tool for Qt Applications License: GPL-2.0-or-later -Group: Development/Tools/Debuggers URL: https://www.kdab.com/gammaray -Source: https://github.com/KDAB/GammaRay/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source: https://github.com/KDAB/GammaRay/releases/download/v%{version}/%{rname}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM +Patch0: 0001-Fix-doc-tools-detection.patch BuildRequires: binutils-devel -BuildRequires: cmake >= 3.4 +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: kdstatemachineeditor-devel -BuildRequires: libQt5Core-private-headers-devel >= 5.5.0 -BuildRequires: libQt5Gui-private-headers-devel >= 5.5.0 -BuildRequires: libQt5Network-private-headers-devel >= 5.5.0 BuildRequires: libdw-devel -BuildRequires: libqt5-qt3d-devel >= 5.5.0 -BuildRequires: libqt5-qtbase-doc >= 5.5.0 -BuildRequires: libqt5-qtdeclarative-private-headers-devel >= 5.5.0 -BuildRequires: libqt5-qttools >= 5.5.0 +BuildRequires: pkgconfig BuildRequires: update-desktop-files -BuildRequires: wayland-devel +BuildRequires: cmake(Qt%{qt_suffix}3DAnimation) +BuildRequires: cmake(Qt%{qt_suffix}3DExtras) +BuildRequires: cmake(Qt%{qt_suffix}3DInput) +BuildRequires: cmake(Qt%{qt_suffix}3DLogic) +BuildRequires: cmake(Qt%{qt_suffix}3DQuick) +BuildRequires: cmake(Qt%{qt_suffix}3DRender) +BuildRequires: cmake(Qt%{qt_suffix}Bluetooth) +BuildRequires: cmake(Qt%{qt_suffix}Concurrent) +BuildRequires: cmake(Qt%{qt_suffix}Core) +BuildRequires: cmake(Qt%{qt_suffix}Designer) +BuildRequires: cmake(Qt%{qt_suffix}Gui) +BuildRequires: cmake(Qt%{qt_suffix}Help) +BuildRequires: cmake(Qt%{qt_suffix}LinguistTools) +BuildRequires: cmake(Qt%{qt_suffix}Network) +BuildRequires: cmake(Qt%{qt_suffix}OpenGL) +BuildRequires: cmake(Qt%{qt_suffix}Positioning) +BuildRequires: cmake(Qt%{qt_suffix}Qml) +BuildRequires: cmake(Qt%{qt_suffix}Quick) +BuildRequires: cmake(Qt%{qt_suffix}QuickWidgets) +BuildRequires: cmake(Qt%{qt_suffix}Scxml) +BuildRequires: cmake(Qt%{qt_suffix}Svg) +BuildRequires: cmake(Qt%{qt_suffix}Test) +BuildRequires: cmake(Qt%{qt_suffix}WaylandCompositor) +BuildRequires: cmake(Qt%{qt_suffix}Widgets) +BuildRequires: pkgconfig(wayland-server) +Requires: %{name}-shared-plugins = %{version} +%if 0%{?qt5} +BuildRequires: libQt5Core-private-headers-devel +BuildRequires: libQt5Gui-private-headers-devel +BuildRequires: libQt5Widgets-private-headers-devel +BuildRequires: libqt5-qtdeclarative-private-headers-devel +BuildRequires: libqt5-qtscxml-private-headers-devel +BuildRequires: libqt5-qttools-doc +# No Qt6 support in current release +BuildRequires: cmake(KDSME) BuildRequires: cmake(KF5CoreAddons) -BuildRequires: cmake(Qt5Bluetooth) >= 5.5.0 -BuildRequires: cmake(Qt5Concurrent) >= 5.5.0 -BuildRequires: cmake(Qt5Core) >= 5.5.0 -BuildRequires: cmake(Qt5Designer) >= 5.5.0 -BuildRequires: cmake(Qt5Gui) >= 5.5.0 -BuildRequires: cmake(Qt5Network) >= 5.5.0 -BuildRequires: cmake(Qt5Positioning) >= 5.5.0 -BuildRequires: cmake(Qt5PrintSupport) >= 5.5.0 -BuildRequires: cmake(Qt5Qml) >= 5.5.0 -BuildRequires: cmake(Qt5Quick) >= 5.5.0 -BuildRequires: cmake(Qt5Script) >= 5.5.0 -BuildRequires: cmake(Qt5ScriptTools) >= 5.5.0 -BuildRequires: cmake(Qt5Svg) >= 5.5.0 -BuildRequires: cmake(Qt5Test) >= 5.5.0 -BuildRequires: cmake(Qt5WebEngineWidgets) >= 5.5.0 -BuildRequires: cmake(Qt5Widgets) >= 5.5.0 -%if %{with vtk} -BuildRequires: cmake(VTK) = 7.1.0 +BuildRequires: cmake(KF5SyntaxHighlighting) +BuildRequires: cmake(Qt5AttributionsScannerTools) +BuildRequires: cmake(Qt5Location) +BuildRequires: cmake(Qt5Script) +BuildRequires: cmake(Qt5ScriptTools) +Recommends: gammaray-qt6-shared-plugins = %{version} +%ifnarch ppc64 ppc64le s390 s390x +BuildRequires: cmake(Qt5WebEngineWidgets) +%endif +%endif +%if 0%{?qt6} +BuildRequires: qt6-core-private-devel +BuildRequires: qt6-gui-private-devel +BuildRequires: qt6-qml-private-devel +BuildRequires: qt6-quick-private-devel +BuildRequires: qt6-scxml-private-devel +BuildRequires: qt6-widgets-private-devel +%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150500 +BuildRequires: cmake(Qt6Location) +%endif +BuildRequires: cmake(Qt6ShaderTools) +BuildRequires: cmake(Qt6ToolsTools) +Recommends: gammaray-shared-plugins = %{version} +Conflicts: gammaray +%ifnarch %{ix86} %{arm} ppc64 ppc64le s390 s390x +BuildRequires: cmake(Qt6WebEngineWidgets) %endif -# Needed to build the user manual -BuildRequires: libqt5-qtdoc-devel -# Build issue with glslang 11.4.0 -# https://github.com/KDAB/GammaRay/issues/635 -%if 0%{?suse_version} <= 1500 -BuildRequires: glslang-devel %endif -BuildRequires: libqt5-qtscxml-private-headers-devel >= 5.8.0 -BuildRequires: cmake(KF5SyntaxHighlighting) >= 5.28.0 -BuildRequires: cmake(Qt5Scxml) >= 5.8.0 -BuildRequires: cmake(Qt5WaylandCompositor) >= 5.5.0 %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 + +%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 -Group: Development/Libraries/C and C++ -Requires: %{name} = %{version} +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 @@ -94,63 +152,87 @@ and debugging utilities specifically tailored for the various frameworks in Qt. Development files. %prep -%autosetup -p1 +%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/ \ - -DQDOC_EXECUTABLE=%{_libqt5_bindir}/qdoc \ - -DQHELPGEN_EXECUTABLE=%{_libqt5_bindir}/qhelpgenerator - + -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 -install -d -m 755 %{buildroot}%{_docdir}/%{name} -mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{_docdir} +%if 0%{?qt6} +%qt6_install +%endif + +# Already packaged with %%doc and %%license tags +rm -r %{buildroot}%{_datadir}/doc %suse_update_desktop_file GammaRay Development Debugger %fdupes %{buildroot} -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%ldconfig_scriptlets -n libgammaray%{?pkg_suffix}-%{soversion} +%ldconfig_scriptlets -n libgammaray-shared%{?pkg_suffix}-%{soversion} %files -%license LICENSE.* -%doc CHANGES README.txt +%doc CHANGES README.md %{_bindir}/gammaray %{_datadir}/applications/GammaRay.desktop -# scaled directories are not owned by hicolor +# Scaled directories are not owned by hicolor %dir %{_datadir}/icons/hicolor/*@*/ %dir %{_datadir}/icons/hicolor/*@*/apps/ %{_datadir}/icons/hicolor/*/apps/GammaRay.png -%{_docdir}/%{name}/ -%{_libdir}/gammaray/ -%{_libdir}/libgammaray_*-qt5*.so.* +%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.* -%{_mandir}/man1/gammaray.* -%if 0%{?suse_version} <= 1320 -%dir %{_datadir}/appdata -%endif -%{_kf5_appstreamdir}/com.kdab.GammaRay.metainfo.xml -%{_datadir}/gammaray + +%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 -%license LICENSE.* -%{_includedir}/%{name} +%{_includedir}/gammaray/ %{_libdir}/cmake/GammaRay/ -%{_libdir}/libgammaray_*-qt5*.so +%{_libdir}/libgammaray_*-qt*.so %{_libdir}/libgammaray_client.so %{_libdir}/libgammaray_kuserfeedback.so %{_libdir}/libgammaray_launcher.so %{_libdir}/libgammaray_launcher_ui.so -%{_libdir}/qt5/mkspecs/modules/qt_GammaRay*.pri +%{_libdir}/qt*/mkspecs/modules/qt_GammaRay*.pri %changelog