View Issue Details

IDProjectCategoryView StatusLast Update
0009851Kali LinuxKali Package Bugpublic2026-09-04 09:04
Reporterhere_is_johnny Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Summary0009851: satdump: aborts on startup: plugins lack RPATH/RUNPATH, cannot resolve libxrit_support.so
Description

Source: satdump
Version: 1.2.2+git20260527.6e4757c31+dfsg-3+b1
Severity: grave
Justification: renders package unusable

Dear Maintainer,

satdump is completely unusable as shipped: it aborts during startup on a
stock install, before reaching any subcommand.

$ satdump
[...] (C) TODOREWORK NO MORE CPP COMPOSITES!!!
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr: __pos (which is 66) > this->size() (which is 26)
Aborted

CAUSE

Seven plugins in /usr/lib/x86_64-linux-gnu/satdump/plugins/ have a DT_NEEDED
entry on libxrit_support.so (and libfirstparty_support.so), but carry no
DT_RPATH or DT_RUNPATH, and the plugin directory is not in the dynamic
loader's search path (no /etc/ld.so.conf.d entry is shipped). The provider
libraries are present in that same directory, but dlopen() cannot resolve
them:

libelektro_arktika_support.so -> libxrit_support.so
libfengyun4_support.so -> libxrit_support.so
libfirstparty_loader_support.so -> libfirstparty_support.so
libfirstparty_support.so -> libxrit_support.so
libgk2a_support.so -> libxrit_support.so
libgoes_support.so -> libxrit_support.so
libhimawari_support.so -> libxrit_support.so

$ readelf -d /usr/lib/x86_64-linux-gnu/satdump/plugins/libhimawari_support.so \
| grep -E 'NEEDED|RPATH|RUNPATH'
0x0000000000000001 (NEEDED) Shared library: [libxrit_support.so]
(no RPATH/RUNPATH entry present)

$ ls -l /usr/lib/x86_64-linux-gnu/satdump/plugins/libxrit_support.so
-rw-r--r-- 1 root root 662224 /usr/lib/.../plugins/libxrit_support.so

The real error is masked by a second (upstream) bug -- see below. Recovered
by breaking on the exception constructor under gdb:

Error loading /usr/lib/x86_64-linux-gnu/satdump/plugins/libhimawari_support.so!
Error : libxrit_support.so: cannot open shared object file:
No such file or directory

Backtrace of the abort:

0000008 satdump::satdump_exception_t::satdump_exception_t(
std::string const&, char const*, int)
0000009 ?? () from /usr/lib/x86_64-linux-gnu/libsatdump_core.so
0000010 loadPlugins(std::map<...>&) from libsatdump_core.so
0000011 satdump::initSatDump(bool) from libsatdump_core.so

WORKAROUND

LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/satdump/plugins satdump

or, persistently:

echo /usr/lib/x86_64-linux-gnu/satdump/plugins \
| sudo tee /etc/ld.so.conf.d/satdump.conf
sudo ldconfig

With either applied, all plugins resolve, satdump --help, satdump probe
and satdump-ui start normally.

SUGGESTED FIX

Link the plugins with -Wl,-rpath,'$ORIGIN' so they find their siblings
without polluting the global loader path. Shipping an ld.so.conf.d snippet
works but exposes the plugin directory system-wide, which is less desirable.

SECONDARY BUG (upstream, reported separately)

satdump::satdump_exception_t's constructor unconditionally does substr(66)
on FILE to strip the build directory prefix. Under the Debian build the
path is "./src-core/core/plugin.cpp" (26 chars), so the constructor itself
throws std::out_of_range. Any plugin-load failure therefore aborts with an
unreadable error instead of the intended diagnostic. This is what turns the
packaging issue above into a bare "terminate called" abort. Filed upstream
at https://github.com/SatDump/SatDump.

-- System Information
Debian Release: trixie/sid (via Kali kali-rolling)
Architecture: amd64
Kernel: Linux 7.1.5+kali-amd64
Versions of packages satdump depends on:
ii satdump-data 1.2.2+git20260527.6e4757c31+dfsg-3

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-09-04 09:04 here_is_johnny New Issue