probonopd / linuxdeployqt

Makes Linux applications self-contained by copying in the libraries and plugins that the application uses, and optionally generates an AppImage. Can be used for Qt and other applications
Other
2.21k stars 411 forks source link

Qt - Open file dialog issue #229

Open milohr opened 6 years ago

milohr commented 6 years ago

I'm getting this errors dialogs windows after creating the AppImage and launching the app open file dialog:

URL cannot be listed file:// -> Malformed URL -> URL cannot be listed file://

And then the open file dialog shows up but not folders are displayed.

If it is of any use this is the console repetitive output:

kf5.kio.core: Refilling KProtocolInfoFactory cache in the hope to find "file" kf5.kio.core: Refilling KProtocolInfoFactory cache in the hope to find "ftp" kf5.kio.core: Refilling KProtocolInfoFactory cache in the hope to find "trash" kf5.kio.core: Refilling KProtocolInfoFactory cache in the hope to find "gdrive"

This is the AppImage: https://drive.google.com/open?id=1EbLpnBKp20_Vbuw_qzgXHpO4mdmL4F7S

Right before the AppImage is created everything works just fine. I also create a new simple application with just a button and a open file dialog and the same thing happened when I created its Appimage.

For Qt this is the line I'm using to display the open file dialog: QString url = QFileDialog::getExistingDirectory(this,"Select folder...");

I'm using Qt 5.10 and this is the lines I'm using to create the AppImage ./linuxdeployqt.AppImage /home/camilo/Coding/qt5/babe/org.kde.babe.desktop -bundle-non-qt-libs -verbose=1 ./linuxdeployqt.AppImage /home/camilo/Coding/qt5/babe/org.kde.babe.desktop -appimage

It also happened with an AppImage qith Qt Quick Controls 2: https://drive.google.com/open?id=1xx3KcCSJ5NOQ2Rg_eZ6QOjy5QP7PMZjP

Except the error dialog. The open file dialog shows up but cannot see any folder being displayed

Any idea why is this happening? Let me know if you need any more information.

TheAssassin commented 6 years ago

What version of Qt are you using? How did you install it?

You might want to try to bundle the Qt binaries Stephan Binner's PPAs provide, see e.g., https://launchpad.net/~beineri/+archive/ubuntu/opt-qt593-trusty.

milohr commented 6 years ago

Heres the output with ldd of that minimal app that also presents the issue:

linux-vdso.so.1 (0x00007ffe3adfb000) libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x00007f0b129c0000) libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007f0b12200000) libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f0b11af8000) libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f0b11868000) libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f0b11648000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f0b112c0000) libm.so.6 => /usr/lib/libm.so.6 (0x00007f0b10f70000) libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f0b10d58000) libc.so.6 => /usr/lib/libc.so.6 (0x00007f0b109a0000) libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f0b10768000) libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007f0b104c8000) libz.so.1 => /usr/lib/libz.so.1 (0x00007f0b102b0000) libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007f0b10030000) libicui18n.so.60 => /usr/lib/libicui18n.so.60 (0x00007f0b0fb88000) libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x00007f0b0f7c8000) libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007f0b0f550000) libdouble-conversion.so.1 => /usr/lib/libdouble-conversion.so.1 (0x00007f0b0f340000) libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f0b0f138000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f0b0ee20000) /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f0b13420000) libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007f0b0ebe8000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f0b0e8a8000) libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f0b0e690000) libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007f0b0e3d8000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f0b0e108000) libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007f0b0ded8000) libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007f0b0dbb8000) librt.so.1 => /usr/lib/librt.so.1 (0x00007f0b0d9b0000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f0b0d788000) liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007f0b0d570000) libicudata.so.60 => /usr/lib/libicudata.so.60 (0x00007f0b0b9c8000) libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f0b0b750000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f0b0b520000) libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f0b0b310000) libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007f0b0b0f8000) libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f0b0aef0000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f0b0ace8000)

milohr commented 6 years ago

@TheAssassin I'm using Qt 5.10 and I've tried with an isolated downloaded version of qt and my system qt install and with both it fails...

probonopd commented 6 years ago

Looks like plugins/kf5/kio gets loaded. Why?

Also, likely this was compiled on a way too new system getting on Xubuntu 16.04:

me@host:~$ Downloads/Babe-QML.AppImage 
Downloads/Babe-QML.AppImage: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/.mount_Babe-Q62jskn/lib/libQt5Core.so.5)
Downloads/Babe-QML.AppImage: /lib/x86_64-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /tmp/.mount_Babe-Q62jskn/lib/libpng16.so.16)
Downloads/Babe-QML.AppImage: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /tmp/.mount_Babe-Q62jskn/lib/libsystemd.so.0)

Please follow https://github.com/probonopd/linuxdeployqt#using-linuxdeployqt-with-travis-ci and build on 14.04 (trusty) because that is currently the oldest still-supported long term support release.

Can you please, for testing, follow 1:1 the instructions on https://github.com/probonopd/linuxdeployqt#using-linuxdeployqt-with-travis-ci, using Travis CI, trusty, and the Beineri PPA for Qt. Let's see if the result will be any different.