linuxdeployqt icon indicating copy to clipboard operation
linuxdeployqt copied to clipboard

appImage references to library outside appImage

Open JvanKatwijk opened this issue 2 years ago • 4 comments

I got a comment on the following issue The most recent qt-dab appImage uses (a.o) the libcurl library. The appImage is built on an Ubuntu 16 system and uses a libcurl-4 version. It seems that - on starting the appImage - the appImage has a preference to look for libraries outside the appImage, The comment was that mounting the appImage failed since the appImage could not link to a libcurl3 library, while on the user's system a libcurl4 library was available.

It turned out that while loading the appImage an attempt was made to bind to the libcurl library on the user's system, Now the libcurl - contained in the appImage - from the Ubuntu 16 system turns out - despite the name libcurl.so.4 - to be a curl 3 library, while the libcurl on the user's system is a libcurl4 system.

Seeing that the error message on starting the appImage reads that the libcurl3 was not found, led to the conclusion that apparently the appImage load order is "user system first, libraries enclosed in the appImage second"

JvanKatwijk avatar Jan 25 '22 19:01 JvanKatwijk

Can you please post a link to the affected AppImage?

probonopd avatar Jan 25 '22 20:01 probonopd

https://www.dropbox.com/s/4euwm7jb5z127go/Qt_DAB-x86_64-4.3.AppImage?dl=0

Op di 25 jan. 2022 om 21:27 schreef probonopd @.***>:

Can you link the affected AppImage?

— Reply to this email directly, view it on GitHub https://github.com/probonopd/linuxdeployqt/issues/525#issuecomment-1021579007, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCPHQBLKAXC7MM466NIZZ3UX4BRLANCNFSM5MZD3SEQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

-- Jan van Katwijk

JvanKatwijk avatar Jan 26 '22 09:01 JvanKatwijk

additional: The quy with the issue looked into the appimage and noted:

"Yes, because the RUNPATH setting in the ELF binary has a lower preference as LD_LIBRARY_PATH"

Op wo 26 jan. 2022 om 10:25 schreef jan van katwijk @.***

:

https://www.dropbox.com/s/4euwm7jb5z127go/Qt_DAB-x86_64-4.3.AppImage?dl=0

Op di 25 jan. 2022 om 21:27 schreef probonopd @.***>:

Can you link the affected AppImage?

— Reply to this email directly, view it on GitHub https://github.com/probonopd/linuxdeployqt/issues/525#issuecomment-1021579007, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCPHQBLKAXC7MM466NIZZ3UX4BRLANCNFSM5MZD3SEQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

-- Jan van Katwijk

-- Jan van Katwijk

JvanKatwijk avatar Jan 26 '22 13:01 JvanKatwijk

So the AppImage is bundling a private copy of usr/lib/libcurl.so.4. Since no LD_LIBRARY_PATH is exported in AppRun, the library should be loaded from $ORIGIN/../lib relative to usr/bin/ where qt-dab lives. Looks correct to me.

Maybe the user has set LD_LIBRARY_PATH on his system? What happens if he runs

unset LD_LIBRARY_PATH
./Qt_DAB-x86_64-4.3.AppImage

?

probonopd avatar Jan 28 '22 18:01 probonopd