You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
elf-inspector only supports returning absolute paths for DWARF files. For Manylinux wheels like OpenCV, it is not clear where each dependency is used from.
elf-inspector lists the ld-linux-x86-64.so.2 and libc.so.6 dependencies for OpenCV, while it does not for bc, although ldd states that both are linking to them.
bc links against libtinfo.so.6 according to ldd, but elf-inspector does not list it.
Is there an easy way to resolve these discrepancies and get rid of the limits of the current approach? At the moment, it seems like ldd is more reliable for this use case, but maybe I am just missing something important here.
The text was updated successfully, but these errors were encountered:
@stefan6419846 Thanks for the detailed report. The code calls pyelftools at the moment and we are likely filtering out too much or not collecting the correct details. This would be the first place to look. Beyond this we could look into using lief as an alternative, but this is a bit more involved as this is native code.
As proposed by @pombredanne in stefan6419846/license_tools@71cea6c#r136933876, I just had a deeper look at
elf-inspector
to replace plainldd
calls. I have to admit that I am no ELF expert.I used two examples to check how both approaches behave in comparison:
/usr/bin/bc
:Some old OpenCV build I found on my hard drive (https://files.pythonhosted.org/packages/67/50/665a503167396ad347957bea0bd8d5c08c865030b2d1565ff06eba613780/opencv_python-4.5.5.64-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl, running
unzip
beforehand):My observations:
ld-linux-x86-64.so.2
andlibc.so.6
dependencies for OpenCV, while it does not for bc, althoughldd
states that both are linking to them.libtinfo.so.6
according toldd
, but elf-inspector does not list it.Is there an easy way to resolve these discrepancies and get rid of the limits of the current approach? At the moment, it seems like
ldd
is more reliable for this use case, but maybe I am just missing something important here.The text was updated successfully, but these errors were encountered: