git: 9910461e799b - main - devel/hotspot: New port: Perf GUI for performance analysis (needs mock 'perf' command)

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Wed, 11 Jan 2023 20:08:47 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9910461e799b8968fe72055183c76c9e7a053de8

commit 9910461e799b8968fe72055183c76c9e7a053de8
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-11 15:44:11 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-11 20:08:44 +0000

    devel/hotspot: New port: Perf GUI for performance analysis (needs mock 'perf' command)
---
 devel/Makefile                                     |  1 +
 devel/hotspot/Makefile                             | 34 ++++++++++++++++++++++
 devel/hotspot/distinfo                             |  7 +++++
 .../files/patch-cmake_FindQCustomPlot.cmake        | 11 +++++++
 devel/hotspot/pkg-descr                            |  4 +++
 devel/hotspot/pkg-message                          | 10 +++++++
 devel/hotspot/pkg-plist                            | 16 ++++++++++
 7 files changed, 83 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index fedee2639975..9c7bc9091d74 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -942,6 +942,7 @@
     SUBDIR += horde-content
     SUBDIR += horde-timeobjects
     SUBDIR += horde-whups
+    SUBDIR += hotspot
     SUBDIR += hp48cc
     SUBDIR += hp48xgcc
     SUBDIR += hpx
diff --git a/devel/hotspot/Makefile b/devel/hotspot/Makefile
new file mode 100644
index 000000000000..ffffd5b9569c
--- /dev/null
+++ b/devel/hotspot/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	hotspot
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.4.1
+CATEGORIES=	devel
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Perf GUI for performance analysis (needs mock 'perf' command)
+WWW=		https://github.com/KDAB/hotspot
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/LICENSE.GPL.txt
+
+BUILD_DEPENDS=	${LOCALBASE}/lib/librustc_demangle.a:devel/rustc-demangle
+LIB_DEPENDS=	libdw.so:devel/elfutils \
+		libQCustomPlot-qt5.so:graphics/qcustomplot-qt5 \
+		libkddockwidgets.so:x11-toolkits/kddockwidgets \
+		libzstd.so:archivers/zstd
+
+USES=		cmake desktop-file-utils qt:5 kde:5 pkgconfig xorg
+USE_KDE=	ecm \
+		archive auth bookmarks codecs completion config configwidgets coreaddons i18n iconthemes \
+		itemmodels itemviews jobwidgets kio notifications parts service solid sonnet syntaxhighlighting \
+		textwidgets threadweaver widgetsaddons windowsystem xmlgui
+USE_QT=		concurrent core dbus gui network svg widgets x11extras xml buildtools:build qmake:build
+USE_XORG=	x11
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	KDAB
+GH_TUPLE=	KDAB:perfparser:d84473c:perfparser/3rdparty/perfparser \
+		KDAB:PrefixTickLabels:1d56145:PrefixTickLabels/3rdparty/PrefixTickLabels
+
+CMAKE_ARGS=	-DCMAKE_MODULE_PATH=${LOCALBASE}/share/ECM/find-modules
+
+.include <bsd.port.mk>
diff --git a/devel/hotspot/distinfo b/devel/hotspot/distinfo
new file mode 100644
index 000000000000..4bac38e4a78c
--- /dev/null
+++ b/devel/hotspot/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1673460439
+SHA256 (KDAB-hotspot-v1.4.1_GH0.tar.gz) = a6796d78a6ccdb0eee8aa695f874ab029654432cbdf6987e51c21b3549899d75
+SIZE (KDAB-hotspot-v1.4.1_GH0.tar.gz) = 3097651
+SHA256 (KDAB-perfparser-d84473c_GH0.tar.gz) = 90c8f69c78f03c3ccb27e6b8cdede6ea4f060e19288e01e57f10605298f89727
+SIZE (KDAB-perfparser-d84473c_GH0.tar.gz) = 2404216
+SHA256 (KDAB-PrefixTickLabels-1d56145_GH0.tar.gz) = 95d4b5057ab3581551f7623e7a0bf46bca7d790d56482da35e8450360f04e346
+SIZE (KDAB-PrefixTickLabels-1d56145_GH0.tar.gz) = 21423
diff --git a/devel/hotspot/files/patch-cmake_FindQCustomPlot.cmake b/devel/hotspot/files/patch-cmake_FindQCustomPlot.cmake
new file mode 100644
index 000000000000..af718e130363
--- /dev/null
+++ b/devel/hotspot/files/patch-cmake_FindQCustomPlot.cmake
@@ -0,0 +1,11 @@
+--- cmake/FindQCustomPlot.cmake.orig	2022-12-21 10:52:32 UTC
++++ cmake/FindQCustomPlot.cmake
+@@ -32,7 +32,7 @@
+ 
+ 
+ find_library(QCustomPlot_LIBRARY
+-    NAMES qcustomplot qcustomplot-qt5
++    NAMES QCustomPlot-qt5
+ )
+ set(QCustomPlot_LIBRARIES "${QCustomPlot_LIBRARY}")
+ 
diff --git a/devel/hotspot/pkg-descr b/devel/hotspot/pkg-descr
new file mode 100644
index 000000000000..2248fd9c4001
--- /dev/null
+++ b/devel/hotspot/pkg-descr
@@ -0,0 +1,4 @@
+The hotspot project is an effort to create a standalone GUI for performance
+data. The first goal is to provide a UI like KCachegrind around Linux perf.
+In the future various other performance data formats are planned to be
+supported.
diff --git a/devel/hotspot/pkg-message b/devel/hotspot/pkg-message
new file mode 100644
index 000000000000..fb80bc87f6e4
--- /dev/null
+++ b/devel/hotspot/pkg-message
@@ -0,0 +1,10 @@
+[
+{ type: install
+  message: <<EOM
+Currently hotspot can only be useful if the mock 'perf' command is
+provided that would present performance data in perf format.
+
+This is probably not hard at a basic level.
+EOM
+}
+]
diff --git a/devel/hotspot/pkg-plist b/devel/hotspot/pkg-plist
new file mode 100644
index 000000000000..a0449b40a760
--- /dev/null
+++ b/devel/hotspot/pkg-plist
@@ -0,0 +1,16 @@
+bin/hotspot
+lib/libexec/elevate_perf_privileges.sh
+lib/libexec/hotspot-perfparser
+lib/libexec/kauth/hotspot-auth-helper
+share/applications/com.kdab.hotspot.desktop
+share/dbus-1/system-services/com.kdab.hotspot.perf.service
+share/dbus-1/system.d/com.kdab.hotspot.perf.conf
+share/icons/hicolor/128x128/apps/hotspot.png
+share/icons/hicolor/16x16/apps/hotspot.png
+share/icons/hicolor/22x22/apps/hotspot.png
+share/icons/hicolor/32x32/apps/hotspot.png
+share/icons/hicolor/48x48/apps/hotspot.png
+share/icons/hicolor/64x64/apps/hotspot.png
+share/knotifications5/hotspot.notifyrc
+share/metainfo/com.kdab.Hotspot.appdata.xml
+share/polkit-1/actions/com.kdab.hotspot.perf.policy