Bug 83588
| Summary: | [Qt] [WK2] MiniBrowser fails on startup because of FilePicker | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Andras Becsi <abecsi> |
| Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | dinu.jacob, hausmann, jturcotte, kbalazs, ossy, tmpsantos |
| Priority: | P3 | Keywords: | Qt |
| Version: | 528+ (Nightly build) | ||
| Hardware: | All | ||
| OS: | Linux | ||
Andras Becsi
When launching MiniBrowser the I get the following error:
qrc:/qml/BrowserWindow.qml:316:34: Type FilePicker unavailable
qrc:/qml/FilePicker.qml:22:1: plugin cannot be loaded for module "Qt.labs.folderlistmodel": Unknown error
QObject::connect: Cannot connect (null)::pageTitleChanged(QString) to BrowserWindow::setWindowTitle(QString)
QObject::connect: Cannot connect (null)::newWindow(QString) to BrowserWindow::newWindow(QString)
Although the pluging seems to be in place in $QTDIR/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so
ldd $QTDIR/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so
linux-vdso.so.1 => (0x00007fffe19ff000)
libQtQuick1.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtQuick1.so.5 (0x00007f34270ba000)
libQtSql.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtSql.so.5 (0x00007f3426dc3000)
libQtXmlPatterns.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtXmlPatterns.so.5 (0x00007f34268ee000)
libQtWidgets.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtWidgets.so.5 (0x00007f3425e32000)
libQtScript.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtScript.so.5 (0x00007f3425805000)
libQtNetwork.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtNetwork.so.5 (0x00007f342544d000)
libQtGui.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtGui.so.5 (0x00007f3424cd0000)
libQtCore.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtCore.so.5 (0x00007f34245ba000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f3424277000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f342405b000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f3423d57000)
libm.so.6 => /lib/libm.so.6 (0x00007f3423a61000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f342384c000)
libc.so.6 => /lib/libc.so.6 (0x00007f34234ab000)
librt.so.1 => /lib/librt.so.1 (0x00007f34232a2000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f342308f000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f3422d54000)
libpcre16.so.0 => /usr/lib/libpcre16.so.0 (0x00007f3422b01000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f34228fc000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f34226f7000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f3422402000)
/lib/ld-linux-x86-64.so.2 (0x00007f34279ce000)
libnvidia-tls.so.295.33 => /usr/lib/libnvidia-tls.so.295.33 (0x00007f34221fe000)
libnvidia-glcore.so.295.33 => /usr/lib/libnvidia-glcore.so.295.33 (0x00007f341fedb000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f341fcbc000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f341fa62000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f341f85d000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f341f657000)
This code was introduced in http://trac.webkit.org/changeset/111012.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Dinu Jacob
There is a folder with the same name under qtquick1/src/imports. It seems that the folderlistmodel lib that you have corresponds to the qquick1 (It should be the one from qtdeclarative/src/imports). What gets installed depends on the order in which QtQuick1 and QtQml components are installed. Installing the QtQml component again will fix it.
The permanent fix to avoid depending on the order would be to have a different name for each of these plugins. Simon, is there any other solution?
Andras Becsi
(In reply to comment #1)
> There is a folder with the same name under qtquick1/src/imports. It seems that the folderlistmodel lib that you have corresponds to the qquick1 (It should be the one from qtdeclarative/src/imports). What gets installed depends on the order in which QtQuick1 and QtQml components are installed. Installing the QtQml component again will fix it.
>
> The permanent fix to avoid depending on the order would be to have a different name for each of these plugins. Simon, is there any other solution?
Indeed it looks like building qtquick1 overwrites the qtquick2 folderlistmodel plugin.
Since I do not use make install, but a shadow build, the solution for me was to clean $QTDIR/imports/Qt/labs/folderlistmodel and run make in the qtdeclarative shadow directory again which automatically copies the plugin to QTDIR.
Since there is no separate QtQml module the order of build dependencies is always qtdeclarative, qtquick1, thus until this is not fixed in Qt qtquick1 will always overwrite the needed qtquick2 plugin, and the described workaround is needed.
Balazs Kelemen
> Since there is no separate QtQml module the order of build dependencies is always qtdeclarative, qtquick1, thus until this is not fixed in Qt qtquick1 will always overwrite the needed qtquick2 plugin, and the described workaround is needed.
I don't think that's true. You can build qtquick1 first and qtdeclarative after.
Thiago Marcos P. Santos
People already reported the same issue at Qt bugtracker:
https://bugreports.qt-project.org/browse/QTBUG-25191
Please vote. :)
Andras Becsi
The issue has been fixed in the qtquick1 module.