AIIX / Mycroft-Ai-QtApplication

Qt5 Frontend for Mycroft Ai
27 stars 9 forks source link

Missing libpng16.so.16 and others #4

Closed probonopd closed 7 years ago

probonopd commented 7 years ago

On ubuntu-16.04-desktop-amd64.iso I get:

$ /home/me/Downloads/mycroft-qtapplication.AppImage 
/home/me/Downloads/mycroft-qtapplication.AppImage: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory

Please bundle libpng16.so.16 inside the AppImage and please test it on a Ubuntu Live CD.

probonopd commented 7 years ago

Similar for libssl.so.10, libcrypto.so.10, libicui18n.so.57, libicuuc.so.57, libicudata.so.57, libpcre16.so.0. As a general rule, all libraries should be bundled except the ones listed in https://github.com/probonopd/AppImages/blob/master/excludelist.

probonopd commented 7 years ago

How was the AppImage made? Using linuxdeployqt?

AIIX commented 7 years ago

I am using the python version of linux deploy qt: https://github.com/Larpon/linuxdeployqt.py. but it seems to complete leave out the external libs and plugins.

Using this linuxdeployqt i end up with a ton of errors building on fedora.

Running: ./linuxdeployqt-continuous-x86_64.AppImage build-mycroft-qtapplication-Desktop-Debug/mycroft-qtapplication -appimage -bundle-non-qt-libs -qmldir=/usr/lib64/qt5/ -verbose=3

Log: checking whether "/home/Aix/build-mycroft-qtapplication-Desktop-Debug/lib/libnsl.so.1" has an rpath set Log: patchelf --print-rpath "/home/Aix/build-mycroft-qtapplication-Desktop-Debug/lib/libnsl.so.1"

ERROR: ldd outputline: "libpulsecommon-10.0.so => not found" (this one gets moving forward using export path method mentioned here: https://github.com/probonopd/linuxdeployqt/issues/52)

ERROR: Error reading rpath with patchelf "libnsl.so" : "cannot find section .dynamic\n" ERROR: Error reading rpath with patchelf "libnsl.so" : ""

probonopd commented 7 years ago

Please copy libpulsecommon to a place where ldd can find it, not into a subdirecory of the libs directory. Then please retry with the latest linuxdeployqt, possibly the other issue has been fixed in the meantime. https://github.com/probonopd/linuxdeployqt/issues/61

AIIX commented 7 years ago

libpulsecommon error seems to be solved bringing it over to /usr/lib64/ out of the sub dir on the latest release but the libnsl.so does not seem to be solved. I am on the latest release of linuxdeployqt on fedora. I am not sure if this error seems to be a fedora only thing. I am going to try building this against kubuntu 16.10 or 16.04.

AIIX commented 7 years ago

I've gotten past those errors and can generate an appimage on ubuntu using linuxdeployqt. But the app image fails to work. linuxdeployqt completely ignores copying over qml/Qtwebsocket and manually copying over the websocket libs and rebuilding the appimage ends up with the following error:

qrc:/main.qml:5 plugin cannot be loaded for module "Qt.WebSockets": Cannot load library /tmp/.mount_Kf4BZV/qml/QtWebSockets/libdeclarative_qmlwebsockets.so: (libQt5WebSockets.so.5: cannot open shared object file: No such file or directory)

libQt5WebSockets.so.5 is present in my /lib folder and libQt5WebSockets.so.5 is present in my /qml/QtWebSockets/ i've additionally tried even moving over /qml into /lib/qt5/ that too doesn't seem to affect this error.

probonopd commented 7 years ago

Experiment with -qmldir=path_to_where_qt_websockets_lives -qmldir=path_to_sourcecode.

AIIX commented 7 years ago

Manually adding the paths to websocket and re compiling seems to have fixed the issue, tested on 16.04 live image it seems to also work just fine. Qt still fails to include websockets . Released on the rest of desktops.