summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTroy Engel2019-03-31 17:51:34 -0500
committerTroy Engel2019-03-31 17:51:34 -0500
commitf0eb172fdd95dee1893a48d6157ba56c7f573f6f (patch)
tree4d06faf32a761db1ff885625f0b927ee7d8cda07
parent76b5cf1f7df7dbc3a5c0ed9a4049e907b682b7f6 (diff)
downloadaur-f0eb172fdd95dee1893a48d6157ba56c7f573f6f.tar.gz
first attempt at new Qt based kernelshark
-rw-r--r--.SRCINFO19
-rw-r--r--PKGBUILD63
2 files changed, 71 insertions, 11 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 13a034eb116f..c7f8db6151be 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,18 +1,27 @@
pkgbase = trace-cmd-git
pkgdesc = user-space front-end command-line tool for Ftrace, inclduing the GUI interface application kernelshark as well as trace-graph and trace-view.
- pkgver = 2.7.r118.gde3d274
+ pkgver = 2.7.r358.g5276e83
pkgrel = 1
url = http://git.kernel.org/?p=linux/kernel/git/rostedt/trace-cmd.git
arch = x86_64
arch = aarch64
license = GPL2
+ makedepends = python
makedepends = git
- makedepends = pygtk
- makedepends = swig
makedepends = docbook-xsl
makedepends = asciidoc
- depends = python2
- depends = gtk2
+ makedepends = extra-cmake-modules
+ makedepends = doxygen
+ makedepends = freeglut
+ makedepends = glu
+ makedepends = qt5-base
+ makedepends = json-c
+ makedepends = libxmu
+ makedepends = swig
+ optdepends = python: for the python plugins
+ optdepends = qt5-base: for the kernelshark GUI
+ optdepends = freeglut: for the kernelshark GUI
+ optdepends = glu: for the kernelshark GUI
provides = trace-cmd
conflicts = trace-cmd
source = git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
diff --git a/PKGBUILD b/PKGBUILD
index 6e584cd2b916..8c073c3ddf87 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,14 +3,18 @@
# Maintainer: Netanel Shine <netanel at archlinux.org.il>
pkgname=trace-cmd-git
-pkgver=2.7.r118.gde3d274
+pkgver=2.7.r358.g5276e83
pkgrel=1
pkgdesc="user-space front-end command-line tool for Ftrace, inclduing the GUI interface application kernelshark as well as trace-graph and trace-view."
arch=('x86_64' 'aarch64')
url="http://git.kernel.org/?p=linux/kernel/git/rostedt/trace-cmd.git"
license=('GPL2')
-depends=('python2' 'gtk2')
-makedepends=('git' 'pygtk' 'swig' 'docbook-xsl' 'asciidoc')
+makedepends=('python' 'git' 'docbook-xsl' 'asciidoc' 'extra-cmake-modules'
+ 'doxygen' 'freeglut' 'glu' 'qt5-base' 'json-c' 'libxmu' 'swig')
+optdepends=('python: for the python plugins'
+ 'qt5-base: for the kernelshark GUI'
+ 'freeglut: for the kernelshark GUI'
+ 'glu: for the kernelshark GUI')
provides=("trace-cmd")
conflicts=("trace-cmd")
source=("git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git")
@@ -19,21 +23,68 @@ sha1sums=("SKIP")
pkgver() {
cd "$srcdir/trace-cmd"
- git describe --long | sed -r 's/^trace.cmd.v//; s/([^-]*-g)/r\1/;s/-/./g'
+ # kernelshark tags are internal to the project, skip them
+ # kernelshark.v0.9.8.r77.g5276e83 -> (trace-cmd) 2.7.r358.g5276e83
+ git describe --long --exclude "kernelshark*" | \
+ sed -r 's/^trace.cmd.v//; s/([^-]*-g)/r\1/;s/-/./g'
}
prepare() {
cd "$srcdir/trace-cmd"
+
+ ## fixes for getting kernelshark installed correctly to /usr
+
+ # pass down $prefix to cmake
+ sed -i.cip 's|bin/cmake|bin/cmake -DCMAKE_INSTALL_PREFIX=\$(prefix) -DCMAKE_BUILD_TYPE=Release|g' \
+ Makefile
+ cd kernel-shark
+
+ # replace hard-coded /usr/local with /usr all over the place
+ for filep in org.freedesktop.kshark-record.policy build/ks.desktop.cmake \
+ src/CMakeLists.txt src/plugins/CMakeLists.txt ./CMakeLists.txt; do
+ sed -i.ul 's|usr/local|usr|g' "${filep}"
+ done
+
+ # KS_DIR is the random local build directory, relocate it to /usr
+ sed -i.ks 's|@KS_DIR@|/usr/share/kernelshark|g' build/ks.desktop.cmake
+ sed -i.ks 's|@KS_DIR@|/usr|g' build/deff.h.cmake
+ sed -i.tb 's|@TRACECMD_BIN_DIR@|/usr/bin|g' build/deff.h.cmake
+
+ # this ends up hard-coded to the build directory
+ sed -i.ksc 's|KS_CONF_DIR "\${KS_DIR}|KS_CONF_DIR "/tmp|g' CMakeLists.txt
+
+ # the gcc/g++ debug flag is enabled even when _DEBUG=0
+ sed -i.dbg 's/-Wall -g/-Wall/g' CMakeLists.txt
+
+ # this source is hard-coded to KS_DIR/lib/plugin-*
+ sed -i.plg 's|lib/plugin|lib/kshark/plugin|g' src/KsUtils.cpp
+
+ # these try to use KS_DIR for open/close of files
+ for kfile in src/KsMainWindow.cpp src/KsCaptureDialog.cpp; do
+ sed -i.hm 's/KS_DIR/QDir::homePath()/g' "${kfile}"
+ done
+
+ # KS_CONF_DIR was set above to /tmp for the Makefiles, this is to use
+ # the user's home directory inside the code itself for saving and
+ # restoring their "lastsession.json" file
+ sed -i.ksd 's|KS_CONF_DIR;|QDir::homePath()+"/.ksconf";QDir dir(file);if (!dir.exists()) dir.mkpath(".");|g' src/KsMainWindow.cpp
}
build() {
cd "$srcdir/trace-cmd"
- make PYTHON_VERS=python2 all gui doc
+ # pkg-config --cflags --libs $PYTHON_VERS
+ make PYTHON_VERS=python3 prefix="/usr" DESTDIR="$pkgdir" all doc gui
}
package() {
cd "${srcdir}/trace-cmd"
- make PYTHON_VERS=python2 prefix="/usr" DESTDIR="$pkgdir" install install_gui install_doc
+ # pkg-config --cflags --libs $PYTHON_VERS
+ make PYTHON_VERS=python3 prefix="/usr" DESTDIR="$pkgdir" \
+ install install_doc install_gui
+
+ # referenced in the .desktop file
+ install -Dm0644 "${srcdir}/trace-cmd/kernel-shark/icons/ksharkicon.png" \
+ "${pkgdir}/usr/share/kernelshark/icons/ksharkicon.png"
}