You are not logged in.
namcap, ldd, or other tools some times miss Qt plugins required.
Is there any way to detect them without launching binary (on strace)?
This is also needed for repackaging non-free .deb, .rpm tarballs depending legacy version of libicu*.so optionally.
Last edited by oech3 (2025-04-29 07:57:20)
Offline
strace or LD_DEBUG, but not
without launching binary
, notably since the object could be loaded by some linked library and opportunistically (load everything in path /usr/lib/qt6/plugins/foo/ or so)
The "d" in "dlopen" is for "dynamically" - at runtime.
Offline
Never implemented, but
namcap-run /pathto/program
could be possible in the future?
Last edited by oech3 (2025-04-27 07:58:29)
Offline
Have you looked at https://github.com/systemd/systemd/comm … d277ece174?
Offline
https://gitlab.archlinux.org/archlinux/ … issues/271
Also
some times miss Qt plugins required
grep .note.dlopen /usr/lib/libQt6*.so
And while I'm not sure what "Qt plugins required" indicates, plugins are typically not a conclusive list, and afaict there's no path nor globbing in that spec, so how can that cover eg. reliance on https://archlinux.org/packages/extra/x8 … geformats/ ?
Hard dependency on libicuwhatever.so.xy could be covered but
repackaging non-free .deb, .rpm tarballs
will probably spoil that.
namcap-run /pathto/program
LD_DEBUG=files phototonic |& awk -F '([[:space:]]|=)' '/dynamically loaded/{print $6}'
But this will eg. also list your local style plugin and the libgl implementation drawn in by libglvnd
Offline
Thankyou. I did'nt know .note.dlopen section. But it seems recently introduced and may not used for legacy prebuild binary...
what "Qt plugins required" indicates
Automatic optdepends detection for packages.
also list your local style plugin and the libgl implementation drawn in by libglvnd
It seems surrender is an answer for me.
Offline
It seems surrender is an answer for me.
You'll dlopen "false positives" but could maintain some blacklist (LD_DEBUG w/o the awk actually tells you what dlopens the library to ballpark its relevance) but any such approach will remain a heuristic, yes. Also because to detect such dlopened object, you'll need it locally.
The only way to know what X might dlopen but you've never heard of is to check the documentation, the code or back with the devs.
Offline
The only way to know what X might dlopen but you've never heard of is to check the documentation, the code or back with the devs.
OK (not OK).
Offline