Bug 1073166 - Qt5WebKit.dll, Qt5WebKitWidgets.dll missing for mingw32 and mingw64
Summary: Qt5WebKit.dll, Qt5WebKitWidgets.dll missing for mingw32 and mingw64
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: mingw-qt5-qtwebkit
Version: 19
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Erik van Pienbroek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-05 23:26 UTC by tsteven4
Modified: 2014-03-17 03:56 UTC (History)
1 user (show)

Fixed In Version: mingw-qt5-qtwebkit-5.2.1-2.fc20
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-03-17 03:51:56 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description tsteven4 2014-03-05 23:26:29 UTC
Description of problem:
Qt5WebKit and Qt5WebKitWidgets are not available for the mingw32 and mingw64 cross compile environments.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. yum whatprovides "*/Qt5Web*.dll"
2.
3.

Actual results:
No matches found

Expected results:
list of packages that provide Qt5WebKit.dll and Qt5WebKitWidgets.dll for mingw32 and mingw64.

Additional info:

Comment 1 Erik van Pienbroek 2014-03-05 23:51:02 UTC
You're probably using an outdated test version of this package as the mingw-qt5-qtwebkit package isn't built in Fedora yet (it was waiting on some other package reviews to be completed first). I'll check whether all build dependencies are fulfilled in Fedora now and build the package for all Fedora releases asap

Comment 2 Fedora Update System 2014-03-06 17:35:39 UTC
mingw-qt5-qtwebkit-5.2.1-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/mingw-qt5-qtwebkit-5.2.1-2.fc19

Comment 3 Fedora Update System 2014-03-06 17:36:35 UTC
mingw-qt5-qtwebkit-5.2.1-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/mingw-qt5-qtwebkit-5.2.1-2.fc20

Comment 4 Fedora Update System 2014-03-07 06:25:31 UTC
mingw-qt5-qtwebkit-5.2.1-2.fc19 has been pushed to the Fedora 19 testing repository.

Comment 5 tsteven4 2014-03-08 14:58:47 UTC
the package doesn't seem to have made it to fedora 19 updates-testing:
$ yum --enablerepo updates-testing list "mingw-qt*"
Loaded plugins: langpacks, refresh-packagekit
Error: No matching Packages to list

Comment 6 Erik van Pienbroek 2014-03-08 15:25:58 UTC
Perhaps your mirror isn't updated yet.
Another possibility would be that the RPM you currently have installed is newer than the one being pushed to updates-testing. What version of the mingw32-qt5-qtwebkit RPM do you have installed? (rpm -qi mingw32-qt5-qtwebkit)

Comment 7 tsteven4 2014-03-08 15:35:00 UTC
I assumed 33 hours would be enough to get it to the mirrors, but maybe not.
I don't have any mingw version of qtwebkit installed: 
$ rpm -qi mingw32-qt5-qtwebkit
package mingw32-qt5-qtwebkit is not installed
$ yum list installed  "mingw*webkit*"
Loaded plugins: langpacks, refresh-packagekit
Error: No matching Packages to list

Comment 8 Erik van Pienbroek 2014-03-08 17:03:17 UTC
I see, in that case it is correct that a 'yum update' doesn't show anything. It's a new package which you need to install. By running 'yum install mingw32-qt5-qtwebkit' the package should get installed and the dll's you mentioned earlier should also become available

Comment 9 tsteven4 2014-03-08 17:57:35 UTC
I had to get lucky and get a good mirror, then I got mingw32-qt5-qtwebkit installed.  But my app fails.  It is possible it is a deployment problem.  I then build the qt 5.2.1 qtwebkitwidgets fancybrowser example.  It fails the same way.
The error is a popup:
Microsoft Visual C++ Runtime Library
This application has requested the Runtime to terminate it in an
unusual way.
Please contact the application's support team for more information.

A native build of the fancybrowser example works.

Comment 10 tsteven4 2014-03-08 18:46:42 UTC
There is an Event ID 1000 record, Application Error:

Faulting application name: fancybrowser.exe, version: 0.0.0.0, time stamp: 0x531b5728
Faulting module name: Qt5Core.dll, version: 5.2.1.0, time stamp: 0x52f6c59e
Exception code: 0x40000015
Fault offset: 0x0000eaf5
Faulting process id: 0x1508
Faulting application start time: 0x01cf3af9ad692738
Faulting application path: C:\Users\***\Documents\Shared\wheel\fancybrowser.exe
Faulting module path: C:\Users\***\Documents\Shared\wheel\Qt5Core.dll
Report Id: f52e8a04-a6ec-11e3-af4b-080027009084

Comment 11 Erik van Pienbroek 2014-03-08 19:30:21 UTC
It's hard to tell what might be going on here without more information, for example the version of Windows which you're using. If you're familiar with gdb then I would recommend you to try to generate a stack trace.

Regarding deployment: for Qt5 applications to work you also need to create a folder on your Windows environment called 'platforms' (relative to the path where you've put the executable and other Qt5 libraries) and have it contain the file /usr/i686-w64-mingw32/sys-root/mingw/lib/qt5/plugins/platforms/qwindows.dll

For testing purposes you can also try to run one of the qt5 executables on your Windows environment which can be found in /usr/i686-w64-mingw32/sys-root/mingw/bin. This way you can find out whether it is a qtwebkit specific issue or a generic qt5 one.

Comment 12 tsteven4 2014-03-08 20:02:51 UTC
I was able to build, deploy and run the qtwebkitwidget scroller wheel example, so the crash appears to be specific to some unidentified issue.

The target is windows 7 Home Premium SP1.

Perhaps I need some d3dcompiler_*.dll which isn't available, see http://qt-project.org/doc/qt-5/windows-deployment.html.  The other ticket mentioned ANGLE.

I got a bit out of gdb:
Starting program: C:\Users\***\Documents\Shared\wheel\fancybrowser.exe fancybrowser.exe
[New Thread 7584.0x1da4]
warning: Cannot mix incompatible Qt library (version 0x50200) with this library (version 0x50201)

warning: Invalid parameter passed to C runtime function.

warning: Invalid parameter passed to C runtime function.

[Inferior 1 (process 7584) exited with code 03]

It sounds like there is some issue with 5.2.0 and 5.2.1.  Qt has never been installed on the target.  I copied all the dlls from /usr/i686-w63-mingw32/sys-root/bin to the folder with the deployed application.

Comment 13 Erik van Pienbroek 2014-03-08 20:19:03 UTC
For hardware acceleration features to work you also need to redistribute d3dcompiler_43.dll (which is part of the DirectX/Windows SDK)

In the gdb output there's an odd warning:
  warning: Cannot mix incompatible Qt library (version 0x50200) with this library 
All mingw qt5 packages which are in Fedora 19 should already be at version 5.2.1.

Comment 14 tsteven4 2014-03-08 21:26:10 UTC
mingw32-qt5-qtwebkit has a dependency on mingw32-qt5-qt3d.  The latest version of mingw32-qt5-qt3d is 5.0.0-0.10.git20130923.7433868.fc19.  This contains
Qt53D.dll, Qt53DQuick.dll.  Both of these show version 5.2.0.0 in windows explorer after being copied to the target system.

Comment 15 tsteven4 2014-03-09 23:27:46 UTC
The failure of the fancybrowser sample is in QtWebKit, specifically QWebView::load().  mainwindow.cpp:64 is reached without error, line 65 is not.

$ ./gdb.exe fancybrowser.exe
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-w64-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from C:\Users\strabert\Documents\Shared\wheel\fancybrowser.exe...done.
(gdb) list mainwindow.cpp:60
55          jQuery = file.readAll();
56          jQuery.append("\nvar qt = { 'jQuery': jQuery.noConflict(true) };");
57          file.close();
58      //! [1]
59
60          QNetworkProxyFactory::setUseSystemConfiguration(true);
61
62      //! [2]
63          view = new QWebView(this);
64          view->load(url);
(gdb)
65          connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation()));
66          connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle()));
67          connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));
68          connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool)));
69
70          locationEdit = new QLineEdit(this);
71          locationEdit->setSizePolicy(QSizePolicy::Expanding, locationEdit->sizePolicy().verticalPolicy());
72          connect(locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation()));
73
74          QToolBar *toolBar = addToolBar(tr("Navigation"));
(gdb) break 64
Breakpoint 1 at 0x401ad5: file mainwindow.cpp, line 64.
(gdb) break 65
Breakpoint 2 at 0x401afa: file mainwindow.cpp, line 65.
(gdb) run
Starting program: C:\Users\strabert\Documents\Shared\wheel\fancybrowser.exe
[New Thread 5528.0x205c]

Breakpoint 1, MainWindow::MainWindow (this=0x48d2f08, url=...)
    at mainwindow.cpp:64
64          view->load(url);
(gdb) warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5WebKitWidgets.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll.debug
cont
Continuing.
[Inferior 1 (process 5528) exited with code 03]
(gdb) warning: Cannot mix incompatible Qt library (version 0x50200) with this library (version 0x50201)

warning: Invalid parameter passed to C runtime function.

warning: Invalid parameter passed to C runtime function.

Comment 16 tsteven4 2014-03-10 13:01:11 UTC
I was able to get a backtrace of the incompatible Qt library warning:

$ ./gdb.exe fancybrowser.exe
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-w64-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from C:\Users\strabert\Documents\Shared\wheel\fancybrowser.exe...done.
(gdb) break mainwindow.cpp:64
Breakpoint 1 at 0x401ad5: file mainwindow.cpp, line 64.
(gdb) run
Starting program: C:\Users\strabert\Documents\Shared\wheel\fancybrowser.exe
[New Thread 2996.0x15c0]

Breakpoint 1, MainWindow::MainWindow (this=0x4982f08, url=...)
    at mainwindow.cpp:64
64          view->load(url);
(gdb) warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5Core.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5Gui.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5Network.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5WebKitWidgets.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5Sensors.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5Sql.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5OpenGL.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5Widgets.dll.debug
warning: section .gnu_debuglink not found in C:\Users\strabert\Documents\Shared\wheel\Qt5PrintSupport.dll.debug
break OutputDebugStringA
Breakpoint 2 at 0x74d43488 (2 locations)
(gdb) cont
Continuing.

Breakpoint 2, 0x74d43488 in OutputDebugStringA ()
   from C:\Windows\syswow64\KernelBase.dll
(gdb) bt
#0  0x74d43488 in OutputDebugStringA ()
   from C:\Windows\syswow64\KernelBase.dll
#1  0x74d437dd in OutputDebugStringW ()
   from C:\Windows\syswow64\KernelBase.dll
#2  0x667511e7 in qDefaultMessageHandler (type=<optimized out>, context=...,
    buf=...)
    at /builddir/build/BUILD/qtbase-opensource-src-5.2.1/src/corelib/global/qlogging.cpp:898
#3  0x6674dfe0 in qt_message_print (msgType=msgType@entry=QtFatalMsg,
    context=..., message=...)
    at /builddir/build/BUILD/qtbase-opensource-src-5.2.1/src/corelib/global/qlogging.cpp:948
#4  0x6674e410 in qt_message (msgType=msgType@entry=QtFatalMsg, context=...,
    msg=msg@entry=0x66aa553c <types+2396> "Cannot mix incompatible Qt library (version 0x%x) with this library (version 0x%x)", ap=<optimized out>,
    ap@entry=0x28fa38 "", buf=...)
    at /builddir/build/BUILD/qtbase-opensource-src-5.2.1/src/corelib/global/qlogging.cpp:245
#5  0x6674eaf0 in QMessageLogger::fatal (this=this@entry=0x28fa4c,
    msg=msg@entry=0x66aa553c <types+2396> "Cannot mix incompatible Qt library (version 0x%x) with this library (version 0x%x)")
    at /builddir/build/BUILD/qtbase-opensource-src-5.2.1/src/corelib/global/qlogging.cpp:381
#6  0x66910f74 in QObjectPrivate::QObjectPrivate (this=<optimized out>,
    version=328192)
    at /builddir/build/BUILD/qtbase-opensource-src-5.2.1/src/corelib/kernel/qobject.cpp:204
#7  0x70f4e9fb in QSensorPrivate (this=0x498e940)
    at /builddir/build/BUILD/qtsensors-opensource-src-5.2.1/src/sensors/qsensor_p.h:87
#8  QRotationSensorPrivate (this=0x498e940)
    at /builddir/build/BUILD/qtsensors-opensource-src-5.2.1/src/sensors/qrotationsensor_p.h:79
#9  QRotationSensor::QRotationSensor (this=0x498e920, parent=0x0)
    at /builddir/build/BUILD/qtsensors-opensource-src-5.2.1/src/sensors/qrotationsensor.cpp:209
#10 0x01942984 in WebCore::DeviceOrientationProviderQt::DeviceOrientationProviderQt () from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll
#11 0x01942b29 in WebCore::DeviceOrientationClientQt::setController ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll
#12 0x00fa3cee in WebCore::DeviceOrientationController::DeviceOrientationController () from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll
#13 0x00fa3d2d in WebCore::DeviceOrientationController::create ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll
#14 0x00ff9be3 in WebCore::provideDeviceOrientationTo ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll
#15 0x00e15efc in QWebPageAdapter::initializeWebCorePage ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKit.dll
#16 0x683480d0 in QWebPagePrivate::QWebPagePrivate ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKitWidgets.dll
#17 0x6834a688 in QWebPage::QWebPage ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKitWidgets.dll
#18 0x683505b8 in QWebView::page ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKitWidgets.dll
#19 0x683505ef in QWebView::load ()
   from C:\Users\strabert\Documents\Shared\wheel\Qt5WebKitWidgets.dll
#20 0x00401af7 in MainWindow::MainWindow (this=0x4982f08, url=...)
    at mainwindow.cpp:64
#21 0x00401720 in qMain (argc=1, argv=0x397018) at main.cpp:52
#22 0x004051e9 in WinMain@16 ()
#23 0x004061dd in main ()

Comment 17 Erik van Pienbroek 2014-03-10 13:49:14 UTC
Thanks for the backtrace.
It sounds like the warning which was noticed in gdb about mixing Qt library versions is the cause of the crash you've observed.

I just took a look at the build logs of some of the Qt5 f19 packages and noticed that some packages were built against mingw-qt5-qtbase 5.2.0 (instead of 5.2.1). Apparently this causes runtime issues. I'll rebuild some of the Qt5 packages to see whether it helps resolving this issue.

Comment 18 tsteven4 2014-03-15 01:39:20 UTC
I have verified that rebuilding mingw-qt5-qtsensors to pick up the 5.2.1 includes will resolve the issue with fancybrowser and my application.  I think there are multiple other mingw*-qt5-* packages that also picked up the wrong (5.2.0) includes.

Comment 19 Fedora Update System 2014-03-17 03:51:56 UTC
mingw-qt5-qtwebkit-5.2.1-2.fc19 has been pushed to the Fedora 19 stable repository.

Comment 20 Fedora Update System 2014-03-17 03:56:52 UTC
mingw-qt5-qtwebkit-5.2.1-2.fc20 has been pushed to the Fedora 20 stable repository.


Note You need to log in before you can comment on or make changes to this bug.