Dear Maintainer,
I just tried to have a look and might found something.

As far as I see ldd searches the shared objects based on the RPATH in
the executable:

        benutzer@debian:~$ ldd /usr/bin/CloudCompare | grep "not found"
                libQCC_IO_LIB.so => not found
                libQCC_DB_LIB.so => not found
                libCC_CORE_LIB.so => not found

        benutzer@debian:~$ chrpath /usr/bin/CloudCompare 
        /usr/bin/CloudCompare: RUNPATH=lib/x86_64-linux-gnu/cloudcompare


I tried to find a similar situation in another binary and found paplay:

        benutzer@debian:~$ chrpath -l /usr/bin/paplay
        /usr/bin/paplay: RUNPATH=/usr/lib/x86_64-linux-gnu/pulseaudio


So I guess this relative path in CloudCompare seems to be the issue.
This seems to be set when installed to the packaging directory [1]:

        -- Installing: /<<PKGBUILDDIR>>/debian/cloudcompare/usr/bin/CloudCompare
        -- Set runtime path of 
"/<<PKGBUILDDIR>>/debian/cloudcompare/usr/bin/CloudCompare" to 
"lib/x86_64-linux-gnu/cloudcompare"
        -- Installing: 
/<<PKGBUILDDIR>>/debian/cloudcompare/usr/share/cloudcompare/CHANGELOG.md


I found this file in which CMAKE_INSTALL_RPATH gets set:
        ./CMakeLists.txt:34:    set(CMAKE_INSTALL_RPATH 
"${CMAKE_INSTALL_LIBDIR}/cloudcompare")

As far as I see CMAKE_INSTALL_LIBDIR is given by dh_auto_configure
and therefore may be meant to be a relative path.


Therefore I searched other examples of setting CMAKE_INSTALL_RPATH
and found that a package built with following change at least
shows no longer an error in ldd.

+++ cloudcompare-2.10.1/CMakeLists.txt
-       set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}/cloudcompare")
+       set(CMAKE_INSTALL_RPATH 
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cloudcompare")


Kind regards,
Bernhard

[1] 
https://buildd.debian.org/status/fetch.php?pkg=cloudcompare&arch=amd64&ver=2.10.1-1&stamp=1547783795&raw=0
Description: Modify CMAKE_INSTALL_RPATH to have an absolute path
Author: Bernhard Übelacker <bernha...@mailbox.org>
Bug: https://github.com/CloudCompare/CloudCompare/issues/861
Bug-Debian: https://bugs.debian.org/928986
Forwarded: no
Last-Update: 2019-05-15

--- cloudcompare-2.10.1.orig/CMakeLists.txt
+++ cloudcompare-2.10.1/CMakeLists.txt
@@ -31,7 +31,7 @@ if( UNIX AND NOT APPLE )
 	if( NOT CMAKE_INSTALL_LIBDIR )
 		set( CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib CACHE PATH "CloudCompare lib dir" )
 	endif( NOT CMAKE_INSTALL_LIBDIR )
-	set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}/cloudcompare")
+	set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cloudcompare")
 endif()
 
 # CCViewer

Reply via email to