-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inconsistency in naming .so library for libsbig #439
Comments
I also cross compile but this was never an issue. Does this continue to build a debian package? or it aborts here? |
Yes, it does compile after symbolic link added. It actually compiles also without symbolic link but packaging does not work. I guess because dpkg-shlibdeps picks .so name from library and does not rely on naming provided by a filename. What do you use for building a debian package? It could be the case that it depends on packaging tools. EDIT: to be precise - |
Just the usual tools like debuild |
So there is no difference in tools used. I think I know why there is a difference in building this library on both sides ;)
So there are 2 packages related, namely libsbigudrv2 and libsbigudrv2-dev.
So these are obsolete packages still on your repository. Currently replaced by libsbig. libsbig debian/control file says:
I bet that libsbigudrv2 is installed automatically on your side at compilation time, as debuild check build dependencies. Even though it is obsolete now it provides missing libsbigudrv.so file. As the result libsbig builds without issues on your side. Please check if you have libsbigudrv2 installed on your system and if possible try compiling libsbig without it. |
Can be related to #24 |
I have been heavily playing with cross-compilation and Debian packaging for arm architecture on x86_64 platform to overcome Raspberry Pi resource limitations. I believe I can call it success after quite a few nights to make it running properly for all INDI components, libs and drivers. However...
I have noticed that packaging indi-sbig driver renders an error:
dpkg-shlibdeps: error: cannot find library libsbigudrv.so.1 needed by debian/indi-sbig/usr/bin/indi_sbig_ccd (ELF format: 'elf32-littlearm' abi: '0101002800000000'; RPATH: '')
After inspecting libsbig sources (indi-sbig dependens on it) I found out that .so library uses inconsistent naming:
Apparently it comes directly from binary library provided by libsbig:
Some time ago libsbigudrv2 was replaced by libsbig, mainly for naming convention of indi drivers. The content is libsbig is same though. The tricky part is that original libsbig_armhf.bin comes as a binary from SBIG SDK so it cannot be changed.
Manual solution is to link missing libsbigudrv.so.1 to libsbig.so:
ln -s /usr/lib/arm-linux-gnueabihf/libsbig.so /usr/lib/arm-linux-gnueabihf/libsbigudrv.so.1
Persistent solution should be at compile time by using cmake symlink to create symbolic link.
@knro could you confirm that? Does the issue exist while compiling on Ubuntu?
I guess that adding cmake symlink to indi-3rdparty/libsbig/CMakeLists.txt should be totally safe unless libsbigudrv.so.1 is provided by a package I'm not aware of. In any case I can prepare PR for this issue if needed.
The text was updated successfully, but these errors were encountered: