[Bug 858084] Review Request: mingw-qt5-qtwebkit - Qt5 for Windows - QtWebKit component

bugzilla at redhat.com bugzilla at redhat.com
Fri May 17 14:23:22 UTC 2013


Product: Fedora
https://bugzilla.redhat.com/show_bug.cgi?id=858084

--- Comment #4 from Erik van Pienbroek <erik-fedora at vanpienbroek.nl> ---
Hi Rex,

Thanks for the info about mt19937ar.c. I'll add the Provides tag you mentioned.

Regarding ANGLE: The 'ANGLE project' library is a Windows-specific library
which allows using the OpenGL ES 2.0 (GLESv2) API on Windows environments
(there is no native support for GLESv2 on Windows at the moment). This is done
by translating GLESv2 API calls to DirectX 9 API calls.

It is correct that the qtwebkit source tarball contains a bundled copy of the
'ANGLE project' library. As it is a Windows-specific library it shouldn't be
used when compiling qtwebkit for Linux. Whether to manually remove all bundled
ANGLE pieces during %prep in the native qt5-qtwebkit package is a choice I
leave up to you.

Side-note: multiple other packages also contain a bundled version of the ANGLE
libraries in their source tarballs. Basically everything which is based on
webkit, thus also webkitgtk and chromium. The qt5-qtbase source tarball also
contains a bundled copy of the ANGLE libraries.

Regarding the use of ANGLE in this package: Initially I've tried to get ANGLE
un-bundled from both qt5-qtbase and qt5-qtwebkit. For qt5-qtbase I managed to
get it un-bundled successfully (which resulted in the mingw-angleproject
package). Unfortunately un-bundling ANGLE from the qt5-qtwebkit package turned
out to be much harder than expected. 

The main problem is that the ANGLE libraries are forked multiple times. Right
now I'm aware of 4 separate sources which each have their own version of ANGLE:
* Upstream ANGLE project: http://code.google.com/p/angleproject/
* qt5-qtbase: http://qt.gitorious.org/qt/qtbase/trees/dev/src/3rdparty/angle
* qt5-qtwebkit:
http://qt.gitorious.org/qt/qtwebkit/trees/dev/Source/ThirdParty/ANGLE
* webkit/webkitgtk:
http://trac.webkit.org/browser/trunk/Source/ThirdParty/ANGLE

This has resulted in the fact that the ANGLE library as used by qt5-qtwebkit
has a different set of functions and features than the upstream version of
ANGLE.

Another major issue is that qt5-qtwebkit relies on internal symbols which are
only visible when ANGLE is built as a static library.
Normally ANGLE is always built as a static library. We had to do some major
hacking to get a proper shared library built in the mingw-angleproject package.
When trying to link qt5-qtwebkit against the shared library from this
mingw-angleproject package this results in build failures due to unresolved
symbols.

I've already spent multiple days trying to get the ANGLE pieces properly
un-bundled from qt5-qtwebkit (as can be seen by patch 3 in the
mingw-qt5-qtwebkit spec file), but
eventually I gave up.. So therefore we're using the bundled copy of ANGLE in
the mingw-qt5-qtwebkit package for now. The .spec file also contains various
comments about this subject

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=JiNWjwElMv&a=cc_unsubscribe


More information about the mingw mailing list