Package Details: plotjuggler 3.16.0-2

Git Clone URL: https://aur.archlinux.org/plotjuggler.git (read-only, click to copy)
Package Base: plotjuggler
Description: The Time Series Visualization Tool that you deserve. Without ROS dependencies.
Upstream URL: https://github.com/facontidavide/PlotJuggler
Licenses: MPL-2.0
Submitter: joajfreitas
Maintainer: joajfreitas (SammysHP)
Last Packager: SammysHP
Votes: 6
Popularity: 0.028194
First Submitted: 2021-03-14 18:16 (UTC)
Last Updated: 2026-03-10 20:54 (UTC)

Latest Comments

1 2 3 4 Next › Last »

hatred commented on 2026-02-24 08:52 (UTC)

You are welcome! Thanks for quick response & maintaining :)

SammysHP commented on 2026-02-24 08:46 (UTC)

Great, thanks for testing it! I'll push an updated PKGBUILD later today.

hatred commented on 2026-02-24 08:45 (UTC)

@SammysHP yeh... my mistake. Previous build artifacts was used. Rebuild from scratch nm shows like this:

$ nm libplotjuggler_base.a                               

mocs_compilation.cpp.o:
         U _ZdlPvm
00000000 T _ZN10PlotLegend11qt_metacallEN11QMetaObject4CallEiPPv
00000000 T _ZN10PlotLegend11qt_metacastEPKc
00000000 D _ZN10PlotLegend16staticMetaObjectE
00000000 T _ZN10PlotLegend18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv

Plugin successfully linking and loading now. Originally linking was always success but loading was failed.

So, your solution works and provides more compact .a files.

SammysHP commented on 2026-02-24 08:28 (UTC)

@hatred Was that on a clean build? Because I get this when using fat-lto-objects:

$ nm libplotjuggler_base.a

mocs_compilation.cpp.o:
                 U _GLOBAL_OFFSET_TABLE_
0000000000000000 r .LC0
                 U qt_version_tag
                 U __stack_chk_fail
                 U strcmp
                 U _ZdlPvm
0000000000000280 r _ZL23qt_meta_data_PlotLegend
0000000000000000 r _ZL23qt_meta_data_PlotPanner
...

hatred commented on 2026-02-24 07:49 (UTC)

@SammysHP I tried: it does not work. Static libraries (libplotjuggler_base.a, libplotjuggler_qwt.a) still stripped.

nm output like this:

$ nm libplotjuggler_base.a 

mocs_compilation.cpp.o:
0000000000000001 C __gnu_lto_slim

plotdata.cpp.o:
0000000000000001 C __gnu_lto_slim

SammysHP commented on 2026-02-15 16:17 (UTC)

@hatred The cause of this issue is LTO.

When LTO is enabled, (mostly) only LTO sections are written to static libraries. Unfortunately all LTO sections are stripped from static libraries by makepkg and you can't disable this behavior.

I guess the recommended way to work around this issue is to include "fat" LTO code in the object files (instead of disabling entirely with options=(!lto)). Can you try this change?

diff --git a/PKGBUILD b/PKGBUILD
index 5544979..c18e011 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -35,6 +35,7 @@ source=(

 build() {
     cd "PlotJuggler-${pkgver}"
+    CXXFLAGS+=" -ffat-lto-objects"
     cmake -S . -B build -DCMAKE_INSTALL_PREFIX="/usr"
     make -C build
 }

SammysHP commented on 2026-02-13 17:12 (UTC)

@hatred Indeed, the default stripping makes the static libraries useless. I'll see what I can do. makepkg has a wrapper around strip and I'd like to avoid calling strip directly. Maybe there's a way to control the behavior or exclude files (only found STRIP_STATIC so far, but unfortunately strip doesn't have an option to make it a noop).

hatred commented on 2026-02-13 00:59 (UTC)

Currently system settings for makepkg enables strict option by default. Thank breaks .a libraries shipped with PlotJuggler for external plugin development (I develop one), this patch helps me:

diff --git a/PKGBUILD b/PKGBUILD
index 5544979..7c042e7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -28,6 +28,7 @@ makedepends=(
     'cmake'
     'clang'
 )
+options=(!strip)

 source=(
     "${pkgname}-${pkgver}.tar.gz"::"https://github.com/facontidavide/PlotJuggler/archive/${pkgver}.tar.gz"
@@ -42,6 +43,8 @@ build() {
 package() {
     cd "PlotJuggler-${pkgver}/build"
     make DESTDIR="${pkgdir}" install
+    strip --strip-unneeded ${pkgdir}/usr/bin/*
+    strip --strip-unneeded ${pkgdir}/usr/lib/plotjuggler/plugins/*
 }

 sha256sums=('0570a06975079c4ade46f77894091bf9b7d2ecd09c01669c5fc6394d135d24b2')

SammysHP commented on 2025-12-20 18:30 (UTC)

Meanwhile PlotJuggler is at 3.14.4 and the PKGBUILD should be cleaned up a little bit as well. If you want, you can add me as a (co-)maintainer and I'll take care of the updates.

# Maintainer: João Freitas <joaj.freitas at gmail dot com>
# Contributor: Sven Karsten Greiner <sven@sammyshp.de>

pkgname=plotjuggler
pkgver=3.14.4
pkgrel=1
pkgdesc="The Time Series Visualization Tool that you deserve. Without ROS dependencies."
arch=('x86_64')
url="https://github.com/facontidavide/PlotJuggler"
license=('MPL-2.0')
depends=(
    'arrow'
    'binutils'
    'fmt'
    'lua'
    'mosquitto'
    'nlohmann-json'
    'protobuf'
    'qt5-base'
    'qt5-multimedia'
    'qt5-svg'
    'qt5-websockets'
    'qt5-x11extras'
    'zeromq'
)
makedepends=(
    'cmake'
    'clang'
)
source=("${pkgname}-${pkgver}.tar.gz"::"https://github.com/facontidavide/PlotJuggler/archive/${pkgver}.tar.gz")
sha256sums=('f78b77e50fb078d658f436745b67c86f3910e4361b126676bdf383d79058de20')

build() {
    cd "PlotJuggler-${pkgver}"
    cmake -S . -B build \
        -DCMAKE_INSTALL_PREFIX="/usr"
    make -C build
}

package() {
    cd "PlotJuggler-${pkgver}/build"
    make DESTDIR="${pkgdir}" install
}

SammysHP commented on 2025-09-29 18:47 (UTC)

Upstream fixed the install rules for statically linked libraries. Some dependencies are explicitly downloaded via CPM, but not installed in the system anymore.

I removed the previous cleanup and unnecessary dependencies from the PKGBUILD.

diff --git a/PKGBUILD b/PKGBUILD
index 93d9093..2ba7fed 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@

 pkgname=plotjuggler
 pkgver='3.13.0'
-pkgrel=1
+pkgrel=2
 pkgdesc="The Time Series Visualization Tool that you deserve. Without ROS dependencies."
 arch=('x86_64')
 url="https://github.com/facontidavide/PlotJuggler"
@@ -13,7 +13,6 @@ depends=(
     'binutils'
     'fmt'
     'lua'
-    'lz4'
     'mosquitto'
     'nlohmann-json'
     'protobuf'
@@ -23,14 +22,6 @@ depends=(
     'qt5-websockets'
     'qt5-x11extras'
     'zeromq'
-    'zstd'
-    # 'fastcdr'     (only in AUR)
-    # 'data_tamer'  (not found)
-    # 'kissfft-git' (only in AUR)
-    # 'libdwarf'    (not sufficient)
-    # 'mcap_vendor' (not found)
-    # 'qtav'        (only in AUR, deprecated)
-    # 'zcm'         (not found)
 )

 makedepends=(
@@ -53,18 +44,6 @@ build() {
 package() {
     cd "PlotJuggler-${pkgver}/build"
     make DESTDIR="${pkgdir}" install
-
-    # fastcdr should not be installed,
-    # but CPM installs dependencies automatically
-    rm -rf "${pkgdir}/usr/include/fastcdr"
-    rm -rf "${pkgdir}/usr/lib/cmake/fastcdr"
-    rm -f "${pkgdir}/usr/lib/libfastcdr.a"
-    rm -rf "${pkgdir}/usr/share/fastcdr"
-    rm -f ${pkgdir}/usr/include/zdict.h
-    rm -f ${pkgdir}/usr/include/zstd.h
-    rm -f ${pkgdir}/usr/include/zstd_errors.h
-    rm -rf ${pkgdir}/usr/lib/cmake/zstd
-    rm -f ${pkgdir}/usr/lib/pkgconfig/libzstd.pc
 }

 sha256sums=('47113709de7d6253e042d651982b11410265890ea2df4f56059f6cbf17641e90')