Package Details: hotspot 1:1.5.1-4

Git Clone URL: https://aur.archlinux.org/hotspot.git (read-only, click to copy)
Package Base: hotspot
Description: The Linux perf GUI for performance analysis
Upstream URL: https://github.com/KDAB/hotspot
Keywords: gui kdab perf performance profile profiling
Licenses: GPL-2.0-only
Submitter: Horus
Maintainer: Rubo
Last Packager: Rubo
Votes: 29
Popularity: 0.111058
First Submitted: 2017-09-30 13:49 (UTC)
Last Updated: 2025-05-30 10:29 (UTC)

Latest Comments

1 2 3 4 Next › Last »

Rubo commented on 2025-05-30 10:33 (UTC) (edited on 2025-05-30 10:33 (UTC) by Rubo)

@jholmer fixed, thanks.

@rmeno12 there is the flag to build it with Qt 6. I enabled it just because Qt 5 has reached the end of its life, and Qt 6 seems to work well.

rmeno12 commented on 2025-05-28 13:52 (UTC)

Am also getting the same build error. I noticed that the upstream repo claims to support Qt5 not Qt6: see here and here. Is there a reason this version builds against Qt6?

jholmer commented on 2025-05-23 22:43 (UTC)

This package currently seems to be failing to build:

[ 78%] Linking CXX executable ../libexec/hotspot-perfparser
/home/soichiro/.cache/paru/clone/hotspot/src/hotspot/src/models/timelinedelegate.cpp: In member function ‘virtual void TimeLineDelegate::paint(QPainter*, const QStyleOptionViewItem&, const QModelIndex&) const’:
/home/soichiro/.cache/paru/clone/hotspot/src/hotspot/src/models/timelinedelegate.cpp:197:26: error: call of overloaded ‘setBrush(<brace-enclosed initializer list>)’ is ambiguous
  197 |         painter->setBrush({});
      |         ~~~~~~~~~~~~~~~~~^~~~
/home/soichiro/.cache/paru/clone/hotspot/src/hotspot/src/models/timelinedelegate.cpp:197:26: note: there are 4 candidates
In file included from /usr/include/qt6/QtGui/QPainter:1,
                 from /home/soichiro/.cache/paru/clone/hotspot/src/hotspot/src/models/timelinedelegate.cpp:15:
/usr/include/qt6/QtGui/qpainter.h:157:10: note: candidate 1: ‘void QPainter::setBrush(const QBrush&)’
  157 |     void setBrush(const QBrush &brush);
      |          ^~~~~~~~
/usr/include/qt6/QtGui/qpainter.h:158:10: note: candidate 2: ‘void QPainter::setBrush(Qt::BrushStyle)’
  158 |     void setBrush(Qt::BrushStyle style);
      |          ^~~~~~~~
/usr/include/qt6/QtGui/qpainter.h:159:10: note: candidate 3: ‘void QPainter::setBrush(QColor)’
  159 |     void setBrush(QColor color);
      |          ^~~~~~~~
/usr/include/qt6/QtGui/qpainter.h:160:10: note: candidate 4: ‘void QPainter::setBrush(Qt::GlobalColor)’
  160 |     void setBrush(Qt::GlobalColor color) { setBrush(QColor(color)); }
      |          ^~~~~~~~
make[2]: *** [src/models/CMakeFiles/models.dir/build.make:366: src/models/CMakeFiles/models.dir/timelinedelegate.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 78%] Built target dump_perf_data
make[1]: *** [CMakeFiles/Makefile2:2300: src/models/CMakeFiles/models.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 78%] Built target hotspot-perfparser
make: *** [Makefile:146: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
error: failed to build 'hotspot-1:1.5.1-3': 

Rubo commented on 2024-11-19 10:20 (UTC) (edited on 2024-11-19 10:21 (UTC) by Rubo)

@krumelmonster it works with both qcustomplot and qcustomplot-qt6, as qcustomplot provides the header file needed here. I updated the PKGBUILD, thanks.

I also moved kgraphviewer from optdepends to depends, as it's not a runtime dependency, so you would have to rebuild the package to use it. Let me know if you want me to move it back to optdepends.

krumelmonster commented on 2024-11-18 20:19 (UTC) (edited on 2024-11-18 20:20 (UTC) by krumelmonster)

@Rubo odd. qcustomplot-qt6 gives me libqcustomplot-qt6.so.2.1.1 and that has the symbol:

$ nm --demangle --dynamic --defined-only --extern-only  /usr/lib/libqcustomplot-qt6.so.2.1.1 | grep QCPAxisTicker::generate
000000000008bde0 T QCPAxisTicker::generate(QCPRange const&, QLocale const&, QChar, int, QList<double>&, QList<double>*, QList<QString>*)

Rubo commented on 2024-11-18 20:02 (UTC)

@krumelmonstern I, on the other hand, get your errors on a clean chroot precisely when I add qcustomplot-qt6 to depends.

krumelmonster commented on 2024-09-25 12:47 (UTC)

Just confirming that installing qcustomplot-qt6 fixed these linker errors so it should be added to depends:

/usr/bin/ld: /tmp/ccxFfXJB.ltrans9.ltrans.o:(.data.rel.ro+0xc18): undefined reference to QCPAxisTicker::generate(QCPRange const&, QLocale const&, QChar, int, QList<double>&, QList<double>*, QList<QString>*)' /usr/bin/ld: /tmp/ccxFfXJB.ltrans9.ltrans.o:(.data.rel.ro+0xc40): undefined reference toQCPAxisTicker::createSubTickVector(int, QList<double> const&)' /usr/bin/ld: /tmp/ccxFfXJB.ltrans9.ltrans.o:(.data.rel.ro+0xc48): undefined reference to QCPAxisTicker::createLabelVector(QList<double> const&, QLocale const&, QChar, int)' /usr/bin/ld: /tmp/ccxFfXJB.ltrans16.ltrans.o: in functionFrequencyPage::FrequencyPage(PerfParser, QWidget)::{lambda()#2}::operator()() const': /usr/src/debug/hotspot/hotspot/src/frequencypage.cpp:136:(.text+0x2c96): undefined reference to `QCPGraph::setData(QList<double> const&, QList<double> const&, bool)' collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/hotspot.dir/build.make:671: bin/hotspot] Error 1 make[1]: *** [CMakeFiles/Makefile2:1774: src/CMakeFiles/hotspot.dir/all] Error 2 make: *** [Makefile:146: all] Error 2

horror-proton commented on 2024-06-03 06:38 (UTC)

The link error can be fixed by adding qcustomplot-qt6 to depends, as cmake/FindQCustomPlot.cmake is able to find both qcustomplot{-qt6,} correctly, while libqcustomplot.so provided by extra/qcustomplot is a qt5 library.

VorpalWay commented on 2024-05-13 20:24 (UTC) (edited on 2024-05-13 20:25 (UTC) by VorpalWay)

Hi, I think the version number broke, since it went backwards to 1.5.0 from 20240412. After manually building it (aurutils did not pick up that a newer version was available) and adding it to my custom repo pacman -Syu will not upgrade it:

:: Starting full system upgrade...
warning: hotspot: local (20240412-1) is newer than custom (1.5.0-2)

The correct solution to this is to increase the epoch value. From the man page:

       epoch
           Used to force the package to be seen as newer than any previous versions with a lower epoch, even if the version number would normally not trigger such an upgrade. This value is
           required to be a positive integer; the default value if left unspecified is 0. This is useful when the version numbering scheme of a package changes (or is alphanumeric), breaking
           normal version comparison logic. See pacman(8) for more information on version comparisons.

Martchus commented on 2024-04-30 14:37 (UTC) (edited on 2024-04-30 14:44 (UTC) by Martchus)

But kgraphviewer and rustc-demangle probably still need to be present at build time; otherwise the build system will likely not enable those features and installing the packages later will not help with that. So kgraphviewer and rustc-demangle should probably be present under makedepends as well. (That's also why e.g. the official qt6-base package lists e.g. gtk3 under optdepends and under makedepends, see https://gitlab.archlinux.org/archlinux/packaging/packages/qt6-base/-/blob/main/PKGBUILD.)

And of course it should also be checked whether the resulting build can actually work without those libraries present.

Note that also the epoch should have been bumped after changing the version to 1.5.0.