[mingw-qt5-qtbase] Initial import

Erik van Pienbroek epienbro at fedoraproject.org
Sun Jan 27 22:56:07 UTC 2013


commit f31093a22faee466cb86885612e85af06d3b7f60
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sun Jan 27 23:55:59 2013 +0100

    Initial import

 .gitignore                                         |    1 +
 mingw-qt5-qtbase.spec                              |  757 ++++++++++++++++++++
 qt-4.7.3-fix-loading-openssl.patch.in              |   35 +
 qt5-add-angle-support.patch                        |   44 ++
 ...fine-qt-needs-qmain-for-win32-g++-targets.patch |   11 +
 ...-segfault-when-platform-dll-cant-be-found.patch |   22 +
 qt5-merge-static-and-shared-library-trees.patch    |   84 +++
 qt5-use-external-angle-library.patch               |   49 ++
 sources                                            |    1 +
 9 files changed, 1004 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..e4d6f58 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/qtbase-opensource-src-5.0.0.tar.xz
diff --git a/mingw-qt5-qtbase.spec b/mingw-qt5-qtbase.spec
new file mode 100644
index 0000000..05fc35a
--- /dev/null
+++ b/mingw-qt5-qtbase.spec
@@ -0,0 +1,757 @@
+%?mingw_package_header
+
+# Override the __debug_install_post argument as this package
+# contains both native as well as cross compiled binaries
+%global __debug_install_post %%{mingw_debug_install_post}; %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%%{?buildsubdir}" %{nil}
+
+#%%global pre rc2
+
+#%%global snapshot_date 20121110
+#%%global snapshot_rev d725239c
+
+%global platform_win32 win32-g++-cross
+%global platform_win64 win32-g++-cross-x64
+
+# Helper macro to retrieve the name of the openssl library
+%global openssl_soname %(rpm -ql mingw32-openssl | grep -Eo 'libssl.*$' | grep -Eo '[0-9]+')
+
+%if 0%{?snapshot_date}
+%global source_folder qt-qtbase
+%else
+%global source_folder qtbase-opensource-src-%{version}%{?pre:-%{pre}}
+%endif
+
+Name:           mingw-qt5-qtbase
+Version:        5.0.0
+Release:        3%{?pre:.%{pre}}%{?snapshot_date:.git%{snapshot_date}.%{snapshot_rev}}%{?dist}
+Summary:        Qt5 for Windows - QtBase component
+
+License:        GPLv3 with exceptions or LGPLv2 with exceptions
+Group:          Development/Libraries
+URL:            http://www.qtsoftware.com/
+
+%if 0%{?snapshot_date}
+# To regenerate:
+# wget http://qt.gitorious.org/qt/qtbase/archive-tarball/%{snapshot_rev} -O qt5-qtbase-%{snapshot_rev}.tar.gz
+Source0:        qt5-qtbase-%{snapshot_rev}.tar.gz
+%else
+Source0:        http://releases.qt-project.org/qt5/5.0.0/submodules_tar/qtbase-opensource-src-%{version}%{?pre:-%{pre}}.tar.xz
+%endif
+
+# Special cross-compilation qmake target.
+Source1:        qmake.conf.win32
+Source2:        qmake.conf.win64
+
+# Openssl is loaded at runtime
+Patch2:         qt-4.7.3-fix-loading-openssl.patch.in
+
+# When building Qt as static library some files have a different content
+# when compared to the static library. Merge those changes manually.
+# This patch also applies some additional changes which are required to make
+# linking against the static version of Qt work without any manual fiddling
+Patch3:         qt5-merge-static-and-shared-library-trees.patch
+
+# Add support for Angle
+Patch9:         qt5-add-angle-support.patch
+
+# Make sure our external Angle package is used instead of the bundled one
+Patch10:        qt5-use-external-angle-library.patch
+
+# Prevent a segfault when no suitable platform plugin could be detected
+Patch11:        qt5-dont-segfault-when-platform-dll-cant-be-found.patch
+
+# Make sure QT_NEEDS_QMAIN is defined for our mkspecs profiles
+Patch12:        qt5-define-qt-needs-qmain-for-win32-g++-targets.patch
+
+BuildRequires:  mingw32-filesystem >= 95
+BuildRequires:  mingw32-gcc
+BuildRequires:  mingw32-gcc-c++
+BuildRequires:  mingw32-binutils
+BuildRequires:  mingw32-openssl
+BuildRequires:  mingw32-zlib
+BuildRequires:  mingw32-win-iconv
+BuildRequires:  mingw32-libjpeg-turbo
+BuildRequires:  mingw32-libpng
+BuildRequires:  mingw32-libtiff
+BuildRequires:  mingw32-sqlite
+BuildRequires:  mingw32-dbus
+BuildRequires:  mingw32-pkg-config
+BuildRequires:  mingw32-angleproject
+
+BuildRequires:  mingw64-filesystem >= 95
+BuildRequires:  mingw64-gcc
+BuildRequires:  mingw64-gcc-c++
+BuildRequires:  mingw64-binutils
+BuildRequires:  mingw64-openssl
+BuildRequires:  mingw64-zlib
+BuildRequires:  mingw64-win-iconv
+BuildRequires:  mingw64-libjpeg-turbo
+BuildRequires:  mingw64-libpng
+BuildRequires:  mingw64-libtiff
+BuildRequires:  mingw64-sqlite
+BuildRequires:  mingw64-dbus
+BuildRequires:  mingw64-pkg-config
+BuildRequires:  mingw64-angleproject
+
+BuildRequires:  zip
+BuildRequires:  dos2unix
+
+# Needed for Angle support
+BuildRequires:  flex
+BuildRequires:  bison
+
+
+%description
+This package contains the Qt software toolkit for developing
+cross-platform applications.
+
+This is the Windows version of Qt, for use in conjunction with the
+Fedora Windows cross-compiler.
+
+
+# Win32
+%package -n mingw32-qt5-qtbase
+Summary:        Qt5 for Windows - QtBase component
+# This package contains the cross-compiler setup for qmake
+Requires:       mingw32-qt5-qmake = %{version}-%{release}
+BuildArch:      noarch
+
+%description -n mingw32-qt5-qtbase
+This package contains the Qt software toolkit for developing
+cross-platform applications.
+
+This is the Windows version of Qt, for use in conjunction with the
+Fedora Windows cross-compiler.
+
+%package -n mingw32-qt5-qmake
+Summary:       Qt5 for Windows build environment
+
+%description -n mingw32-qt5-qmake
+This package contains the build environment for cross compiling
+applications with the Fedora Windows Qt Library and cross-compiler.
+
+%package -n mingw32-qt5-qtbase-devel
+Summary:       Qt5 for Windows build environment
+Requires:      mingw32-qt5-qtbase = %{version}-%{release}
+
+%description -n mingw32-qt5-qtbase-devel
+Contains the files required to get various Qt tools built
+which are part of the mingw-qt5-qttools package
+
+%package -n mingw32-qt5-qtbase-static
+Summary:       Static version of the mingw32-qt5-qtbase library
+Requires:      mingw32-qt5-qtbase = %{version}-%{release}
+BuildArch:     noarch
+
+%description -n mingw32-qt5-qtbase-static
+Static version of the mingw32-qt5 library.
+
+# Win64
+%package -n mingw64-qt5-qtbase
+Summary:        Qt5 for Windows - QtBase component
+# This package contains the cross-compiler setup for qmake
+Requires:       mingw64-qt5-qmake = %{version}-%{release}
+BuildArch:      noarch
+
+%description -n mingw64-qt5-qtbase
+This package contains the Qt software toolkit for developing
+cross-platform applications.
+
+This is the Windows version of Qt, for use in conjunction with the
+Fedora Windows cross-compiler.
+
+%package -n mingw64-qt5-qmake
+Summary:       Qt for Windows build environment
+
+%description -n mingw64-qt5-qmake
+This package contains the build environment for cross compiling
+applications with the Fedora Windows Qt Library and cross-compiler.
+
+%package -n mingw64-qt5-qtbase-devel
+Summary:       Qt5 for Windows build environment
+Requires:      mingw64-qt5-qtbase = %{version}-%{release}
+
+%description -n mingw64-qt5-qtbase-devel
+Contains the files required to get various Qt tools built
+which are part of the mingw-qt5-qttools package
+
+%package -n mingw64-qt5-qtbase-static
+Summary:       Static version of the mingw64-qt5-qtbase library
+Requires:      mingw64-qt5-qtbase = %{version}-%{release}
+BuildArch:     noarch
+
+%description -n mingw64-qt5-qtbase-static
+Static version of the mingw64-qt5-qtbase library.
+
+
+%?mingw_debug_package
+
+
+%prep
+%setup -q -n %{source_folder}
+
+# Patch 2 (openssl) needs an additional change
+# qt loads openssl libraries (ssleay32, libeay32)  at runtime, but they are called libssl-OPENSSL_SONAME
+# and libcrypto-OPENSSL_SONAME in our cross build, so qt is patched to look for them additionally
+cat %{PATCH2} | sed "s/OPENSSL_SONAME/%{openssl_soname}/" | patch -Np1
+
+%patch3 -p0
+%patch9 -p0 -b .angle
+%patch10 -p0 -b .external_angle
+%patch11 -p0 -b .platform_segv
+%patch12 -p0 -b .qt_needs_qmain
+
+# Cross-compilation qmake target.
+mkdir mkspecs/%{platform_win32}
+mkdir mkspecs/%{platform_win64}
+cp %{SOURCE1} mkspecs/%{platform_win32}/qmake.conf
+cp %{SOURCE2} mkspecs/%{platform_win64}/qmake.conf
+cp mkspecs/win32-g++/qplatformdefs.h mkspecs/%{platform_win32}
+cp mkspecs/win32-g++/qplatformdefs.h mkspecs/%{platform_win64}
+
+# Make sure the Qt5 build system uses our external ANGLE library
+rm -rf src/3rdparty/angle
+
+
+%build
+# Generic configure arguments
+qt_configure_args_generic="\
+    -optimized-qmake \
+    -verbose \
+    -opensource \
+    -fast \
+    -confirm-license \
+    -force-pkg-config \
+    -force-debug-info \
+    -audio-backend \
+    -system-zlib \
+    -system-libpng \
+    -system-libjpeg \
+    -system-sqlite \
+    -no-fontconfig \
+    -iconv \
+    -openssl \
+    -dbus-linked \
+    -no-glib \
+    -no-gtkstyle \
+    -no-icu \
+    -directwrite \
+    -release \
+    -nomake examples \
+    -make tools \
+    -make demos"
+
+qt_configure_args_win32="\
+    -prefix %{mingw32_prefix} \
+    -bindir %{mingw32_bindir} \
+    -archdatadir %{mingw32_datadir}/qt5 \
+    -datadir %{mingw32_datadir}/qt5 \
+    -docdir %{mingw32_docdir}/qt5 \
+    -examplesdir %{mingw32_datadir}/qt5/examples \
+    -headerdir %{mingw32_includedir}/qt5 \
+    -libdir %{mingw32_libdir} \
+    -plugindir %{mingw32_libdir}/qt5/plugins \
+    -sysconfdir %{mingw32_sysconfdir} \
+    -translationdir %{mingw32_datadir}/qt5/translations \
+    -xplatform %{platform_win32}"
+
+qt_configure_args_win64="\
+    -prefix %{mingw64_prefix} \
+    -bindir %{mingw64_bindir} \
+    -archdatadir %{mingw64_datadir}/qt5 \
+    -datadir %{mingw64_datadir}/qt5 \
+    -docdir %{mingw64_docdir}/qt5 \
+    -examplesdir %{mingw64_datadir}/qt5/examples \
+    -headerdir %{mingw64_includedir}/qt5 \
+    -libdir %{mingw64_libdir} \
+    -plugindir %{mingw64_libdir}/qt5/plugins \
+    -sysconfdir %{mingw64_sysconfdir} \
+    -translationdir %{mingw64_datadir}/qt5/translations \
+    -xplatform %{platform_win64}"
+
+# RPM automatically sets the environment variable PKG_CONFIG_PATH
+# to point to the native pkg-config files, but while cross compiling
+# we don't want to have this environment variable set
+unset PKG_CONFIG_PATH
+
+###############################################################################
+# Win32
+#
+# We have to build Qt two times, once for the static release build and
+# once for the shared release build
+#
+# Unfortunately Qt only supports out-of-source builds which are in ../some_folder
+rm -rf ../build_release_static_win32
+mkdir ../build_release_static_win32
+pushd ../build_release_static_win32
+../%{source_folder}/configure \
+    -static \
+    $qt_configure_args_win32 $qt_configure_args_generic
+make %{?_smp_mflags}
+popd
+
+rm -rf ../build_release_shared_win32
+mkdir ../build_release_shared_win32
+pushd ../build_release_shared_win32
+../%{source_folder}/configure \
+    -shared \
+    $qt_configure_args_win32 $qt_configure_args_generic
+make %{?_smp_mflags}
+popd
+
+###############################################################################
+# Win64
+#
+# We have to build Qt two times, once for the static release build and
+# once for the shared release build
+#
+# Unfortunately Qt only supports out-of-source builds which are in ../some_folder
+rm -rf ../build_release_static_win64
+mkdir ../build_release_static_win64
+pushd ../build_release_static_win64
+../%{source_folder}/configure \
+    -static \
+    $qt_configure_args_win64 $qt_configure_args_generic
+make %{?_smp_mflags}
+popd
+
+rm -rf ../build_release_shared_win64
+mkdir ../build_release_shared_win64
+pushd ../build_release_shared_win64
+../%{source_folder}/configure \
+    -shared \
+    $qt_configure_args_win64 $qt_configure_args_generic
+make %{?_smp_mflags}
+popd
+
+
+%install
+make install -C ../build_release_shared_win32$BUILDDIR INSTALL_ROOT=$RPM_BUILD_ROOT
+make install -C ../build_release_shared_win64$BUILDDIR INSTALL_ROOT=$RPM_BUILD_ROOT
+
+# Install the static libraries in a temporary prefix so we can merge everything together properly
+mkdir $RPM_BUILD_ROOT/static
+make install -C ../build_release_static_win32$BUILDDIR INSTALL_ROOT=$RPM_BUILD_ROOT/static
+make install -C ../build_release_static_win64$BUILDDIR INSTALL_ROOT=$RPM_BUILD_ROOT/static
+
+# The libQt5Bootstrap.a library is a native Linux library which is required to build tools
+# like lrelease and lupdate which are part of the mingw-qt5-qttools package. Therefore this
+# library needs to be placed in a separate folder in order to avoid getting native and
+# win32/win64 libraries mixed up. %%{_libdir} isn't desired for this as this can potentially
+# conflict with the native Qt5 package, so use a different folder
+mkdir %{_prefix}/%{mingw32_target}/lib/ %{_prefix}/%{mingw64_target}/lib/
+mv $RPM_BUILD_ROOT%{mingw32_libdir}/libQt5Bootstrap.a %{_prefix}/%{mingw32_target}/lib/
+mv $RPM_BUILD_ROOT%{mingw32_libdir}/libQt5Bootstrap.a %{_prefix}/%{mingw64_target}/lib/
+
+# Make sure other qmake projects can find the Qt5Bootstrap library
+echo "QMAKE_LFLAGS += -L%{_prefix}/%{mingw32_target}/lib" >> $RPM_BUILD_ROOT%{mingw32_datadir}/qt5/mkspecs/modules/qt_lib_bootstrap.pri
+echo "QMAKE_LFLAGS += -L%{_prefix}/%{mingw64_target}/lib" >> $RPM_BUILD_ROOT%{mingw64_datadir}/qt5/mkspecs/modules/qt_lib_bootstrap.pri
+
+# The pkg-config files for Qt5Bootstrap aren't interesting as this particular
+# library only contains native code and not cross-compiled code
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/pkgconfig/Qt5Bootstrap.pc
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/pkgconfig/Qt5Bootstrap.pc
+
+# Rename the .a files to .dll.a as they're actually import libraries and not static libraries
+for FN in $RPM_BUILD_ROOT%{mingw32_libdir}/*.a $RPM_BUILD_ROOT%{mingw64_libdir}/*.a ; do
+    # Ignore libqtmain*.a
+    echo $FN | grep -q qtmain && continue
+
+    FN_NEW=$(echo $FN | sed s/'.a$'/'.dll.a'/)
+    mv $FN $FN_NEW
+done
+
+# Drop the qtmain and libQt5Bootstrap static libraries from the static
+# tree as they're already part of the main tree
+rm -f $RPM_BUILD_ROOT/static/%{mingw32_libdir}/libqtmain*
+rm -f $RPM_BUILD_ROOT/static/%{mingw64_libdir}/libqtmain*
+rm -f $RPM_BUILD_ROOT/static/%{mingw32_libdir}/libQt5Bootstrap*
+rm -f $RPM_BUILD_ROOT/static/%{mingw64_libdir}/libQt5Bootstrap*
+
+# Move the static libraries from the static tree to the main tree
+mv $RPM_BUILD_ROOT/static%{mingw32_libdir}/*.a $RPM_BUILD_ROOT%{mingw32_libdir}
+mv $RPM_BUILD_ROOT/static%{mingw64_libdir}/*.a $RPM_BUILD_ROOT%{mingw64_libdir}
+
+# Clean up the static trees as we've now merged all interesting pieces
+rm -rf $RPM_BUILD_ROOT/static
+
+# Rename qtmain.a to a non-conflicting file name
+# The updated filename is already set correctly in the bundled mkspecs profiles
+mv $RPM_BUILD_ROOT%{mingw32_libdir}/libqtmain.a $RPM_BUILD_ROOT%{mingw32_libdir}/libqt5main.a
+mv $RPM_BUILD_ROOT%{mingw64_libdir}/libqtmain.a $RPM_BUILD_ROOT%{mingw64_libdir}/libqt5main.a
+
+# The .dll's are installed in both %%{mingw32_bindir} and %%{mingw32_libdir}
+# One copy of the .dll's is sufficient
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/*.dll
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/*.dll
+
+# Drop all the files which we don't need
+rm -f  $RPM_BUILD_ROOT%{mingw32_libdir}/*.prl
+rm -f  $RPM_BUILD_ROOT%{mingw64_libdir}/*.prl
+
+rm -f  $RPM_BUILD_ROOT%{mingw32_libdir}/libQt5Bootstrap.la
+rm -f  $RPM_BUILD_ROOT%{mingw64_libdir}/libQt5Bootstrap.la
+
+# Manually install qmake and other native tools so we don't depend anymore on
+# the version of the native Fedora Qt and also fix issues as illustrated at
+# http://stackoverflow.com/questions/6592931/building-for-windows-under-linux-using-qt-creator
+#
+# Also make sure the tools can be found by CMake
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{mingw32_target}/bin
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{mingw64_target}/bin
+
+for tool in qmake moc rcc uic qdbuscpp2xml qdbusxml2cpp qdoc syncqt; do
+    mv $RPM_BUILD_ROOT%{mingw32_bindir}/$tool $RPM_BUILD_ROOT%{_prefix}/%{mingw32_target}/bin/$tool-qt5
+    ln -s ../%{mingw32_target}/bin/$tool-qt5 $RPM_BUILD_ROOT%{_bindir}/%{mingw32_target}-$tool-qt5
+done
+ln -s %{mingw32_target}-qmake-qt5 $RPM_BUILD_ROOT%{_bindir}/mingw32-qmake-qt5
+
+for tool in qmake moc rcc uic qdbuscpp2xml qdbusxml2cpp qdoc syncqt ; do
+    mv $RPM_BUILD_ROOT%{mingw64_bindir}/$tool $RPM_BUILD_ROOT%{_prefix}/%{mingw64_target}/bin/$tool-qt5
+    ln -s ../%{mingw64_target}/bin/$tool-qt5 $RPM_BUILD_ROOT%{_bindir}/%{mingw64_target}-$tool-qt5
+done
+ln -s %{mingw64_target}-qmake-qt5 $RPM_BUILD_ROOT%{_bindir}/mingw64-qmake-qt5
+
+# Make sure that all Qt projects use the tools which are provided by this package
+sed -i s@'#QT_TOOL'@'QT_TOOL'@ $RPM_BUILD_ROOT%{mingw32_datadir}/qt5/mkspecs/%{platform_win32}/qmake.conf
+sed -i s@'#QT_TOOL'@'QT_TOOL'@ $RPM_BUILD_ROOT%{mingw64_datadir}/qt5/mkspecs/%{platform_win64}/qmake.conf
+
+
+# Win32
+%files -n mingw32-qt5-qtbase
+%{mingw32_bindir}/Qt5Concurrent.dll
+%{mingw32_bindir}/Qt5Core.dll
+%{mingw32_bindir}/Qt5DBus.dll
+%{mingw32_bindir}/Qt5Gui.dll
+%{mingw32_bindir}/Qt5Network.dll
+%{mingw32_bindir}/Qt5OpenGL.dll
+%{mingw32_bindir}/Qt5PrintSupport.dll
+%{mingw32_bindir}/Qt5Sql.dll
+%{mingw32_bindir}/Qt5Test.dll
+%{mingw32_bindir}/Qt5Widgets.dll
+%{mingw32_bindir}/Qt5Xml.dll
+%{mingw32_libdir}/libQt5Concurrent.dll.a
+%{mingw32_libdir}/libQt5Core.dll.a
+%{mingw32_libdir}/libQt5DBus.dll.a
+%{mingw32_libdir}/libQt5Gui.dll.a
+%{mingw32_libdir}/libQt5Network.dll.a
+%{mingw32_libdir}/libQt5OpenGL.dll.a
+%{mingw32_libdir}/libQt5PlatformSupport.dll.a
+%{mingw32_libdir}/libQt5PrintSupport.dll.a
+%{mingw32_libdir}/libQt5Sql.dll.a
+%{mingw32_libdir}/libQt5Test.dll.a
+%{mingw32_libdir}/libQt5Widgets.dll.a
+%{mingw32_libdir}/libQt5Xml.dll.a
+%{mingw32_libdir}/libqt5main.a
+%{mingw32_libdir}/pkgconfig/Qt5Concurrent.pc
+%{mingw32_libdir}/pkgconfig/Qt5Core.pc
+%{mingw32_libdir}/pkgconfig/Qt5DBus.pc
+%{mingw32_libdir}/pkgconfig/Qt5Gui.pc
+%{mingw32_libdir}/pkgconfig/Qt5Network.pc
+%{mingw32_libdir}/pkgconfig/Qt5OpenGL.pc
+%{mingw32_libdir}/pkgconfig/Qt5PlatformSupport.pc
+%{mingw32_libdir}/pkgconfig/Qt5PrintSupport.pc
+%{mingw32_libdir}/pkgconfig/Qt5Sql.pc
+%{mingw32_libdir}/pkgconfig/Qt5Test.pc
+%{mingw32_libdir}/pkgconfig/Qt5Widgets.pc
+%{mingw32_libdir}/pkgconfig/Qt5Xml.pc
+%dir %{mingw32_libdir}/qt5/
+%dir %{mingw32_libdir}/qt5/plugins
+%dir %{mingw32_libdir}/qt5/plugins/accessible
+%{mingw32_libdir}/qt5/plugins/accessible/qtaccessiblewidgets.dll
+%dir %{mingw32_libdir}/qt5/plugins/bearer
+%{mingw32_libdir}/qt5/plugins/bearer/qgenericbearer.dll
+%{mingw32_libdir}/qt5/plugins/bearer/qnativewifibearer.dll
+%dir %{mingw32_libdir}/qt5/plugins/imageformats
+%{mingw32_libdir}/qt5/plugins/imageformats/qgif.dll
+%{mingw32_libdir}/qt5/plugins/imageformats/qico.dll
+%{mingw32_libdir}/qt5/plugins/imageformats/qjpeg.dll
+%dir %{mingw32_libdir}/qt5/plugins/platforms
+%{mingw32_libdir}/qt5/plugins/platforms/qminimal.dll
+%{mingw32_libdir}/qt5/plugins/platforms/qwindows.dll
+%dir %{mingw32_libdir}/qt5/plugins/printsupport
+%{mingw32_libdir}/qt5/plugins/printsupport/windowsprintersupport.dll
+%dir %{mingw32_libdir}/qt5/plugins/sqldrivers
+%{mingw32_libdir}/qt5/plugins/sqldrivers/qsqlite.dll
+%{mingw32_libdir}/qt5/plugins/sqldrivers/qsqlodbc.dll
+%{mingw32_libdir}/cmake/Qt5Core/
+%{mingw32_libdir}/cmake/Qt5Concurrent/
+%{mingw32_libdir}/cmake/Qt5DBus/
+%{mingw32_libdir}/cmake/Qt5Gui/
+%{mingw32_libdir}/cmake/Qt5Network/
+%{mingw32_libdir}/cmake/Qt5OpenGL/
+%{mingw32_libdir}/cmake/Qt5PrintSupport/
+%{mingw32_libdir}/cmake/Qt5Sql/
+%{mingw32_libdir}/cmake/Qt5Test/
+%{mingw32_libdir}/cmake/Qt5Widgets/
+%{mingw32_libdir}/cmake/Qt5Xml/
+%dir %{mingw32_includedir}/qt5/
+%{mingw32_includedir}/qt5/QtConcurrent/
+%{mingw32_includedir}/qt5/QtCore/
+%{mingw32_includedir}/qt5/QtDBus/
+%{mingw32_includedir}/qt5/QtGui/
+%{mingw32_includedir}/qt5/QtNetwork/
+%{mingw32_includedir}/qt5/QtOpenGL/
+%{mingw32_includedir}/qt5/QtPlatformSupport/
+%{mingw32_includedir}/qt5/QtPrintSupport/
+%{mingw32_includedir}/qt5/QtSql/
+%{mingw32_includedir}/qt5/QtTest/
+%{mingw32_includedir}/qt5/QtWidgets/
+%{mingw32_includedir}/qt5/QtXml/
+%{mingw32_docdir}/qt5/
+
+%files -n mingw32-qt5-qmake
+%doc LGPL_EXCEPTION.txt LICENSE.FDL LICENSE.GPL LICENSE.LGPL LICENSE.PREVIEW.COMMERCIAL
+%{_bindir}/%{mingw32_target}-moc-qt5
+%{_bindir}/%{mingw32_target}-qdbuscpp2xml-qt5
+%{_bindir}/%{mingw32_target}-qdbusxml2cpp-qt5
+%{_bindir}/%{mingw32_target}-qdoc-qt5
+%{_bindir}/%{mingw32_target}-qmake-qt5
+%{_bindir}/%{mingw32_target}-rcc-qt5
+%{_bindir}/%{mingw32_target}-syncqt-qt5
+%{_bindir}/%{mingw32_target}-uic-qt5
+%{_bindir}/mingw32-qmake-qt5
+%{_prefix}/%{mingw32_target}/bin/moc-qt5
+%{_prefix}/%{mingw32_target}/bin/qdbuscpp2xml-qt5
+%{_prefix}/%{mingw32_target}/bin/qdbusxml2cpp-qt5
+%{_prefix}/%{mingw32_target}/bin/qdoc-qt5
+%{_prefix}/%{mingw32_target}/bin/qmake-qt5
+%{_prefix}/%{mingw32_target}/bin/rcc-qt5
+%{_prefix}/%{mingw32_target}/bin/syncqt-qt5
+%{_prefix}/%{mingw32_target}/bin/uic-qt5
+%{mingw32_datadir}/qt5/
+
+%files -n mingw32-qt5-qtbase-devel
+%{_prefix}/%{mingw64_target}/lib/libQt5Bootstrap.a
+
+%files -n mingw32-qt5-qtbase-static
+%{mingw32_libdir}/libQt5Concurrent.a
+%{mingw32_libdir}/libQt5Core.a
+%{mingw32_libdir}/libQt5DBus.a
+%{mingw32_libdir}/libQt5Gui.a
+%{mingw32_libdir}/libQt5Network.a
+%{mingw32_libdir}/libQt5OpenGL.a
+%{mingw32_libdir}/libQt5PlatformSupport.a
+%{mingw32_libdir}/libQt5PrintSupport.a
+%{mingw32_libdir}/libQt5Sql.a
+%{mingw32_libdir}/libQt5Test.a
+%{mingw32_libdir}/libQt5Widgets.a
+%{mingw32_libdir}/libQt5Xml.a
+
+# Win64
+%files -n mingw64-qt5-qtbase
+%{mingw64_bindir}/Qt5Concurrent.dll
+%{mingw64_bindir}/Qt5Core.dll
+%{mingw64_bindir}/Qt5DBus.dll
+%{mingw64_bindir}/Qt5Gui.dll
+%{mingw64_bindir}/Qt5Network.dll
+%{mingw64_bindir}/Qt5OpenGL.dll
+%{mingw64_bindir}/Qt5PrintSupport.dll
+%{mingw64_bindir}/Qt5Sql.dll
+%{mingw64_bindir}/Qt5Test.dll
+%{mingw64_bindir}/Qt5Widgets.dll
+%{mingw64_bindir}/Qt5Xml.dll
+%{mingw64_libdir}/libQt5Concurrent.dll.a
+%{mingw64_libdir}/libQt5Core.dll.a
+%{mingw64_libdir}/libQt5DBus.dll.a
+%{mingw64_libdir}/libQt5Gui.dll.a
+%{mingw64_libdir}/libQt5Network.dll.a
+%{mingw64_libdir}/libQt5OpenGL.dll.a
+%{mingw64_libdir}/libQt5PlatformSupport.dll.a
+%{mingw64_libdir}/libQt5PrintSupport.dll.a
+%{mingw64_libdir}/libQt5Sql.dll.a
+%{mingw64_libdir}/libQt5Test.dll.a
+%{mingw64_libdir}/libQt5Widgets.dll.a
+%{mingw64_libdir}/libQt5Xml.dll.a
+%{mingw64_libdir}/libqt5main.a
+%{mingw64_libdir}/pkgconfig/Qt5Concurrent.pc
+%{mingw64_libdir}/pkgconfig/Qt5Core.pc
+%{mingw64_libdir}/pkgconfig/Qt5DBus.pc
+%{mingw64_libdir}/pkgconfig/Qt5Gui.pc
+%{mingw64_libdir}/pkgconfig/Qt5Network.pc
+%{mingw64_libdir}/pkgconfig/Qt5OpenGL.pc
+%{mingw64_libdir}/pkgconfig/Qt5PlatformSupport.pc
+%{mingw64_libdir}/pkgconfig/Qt5PrintSupport.pc
+%{mingw64_libdir}/pkgconfig/Qt5Sql.pc
+%{mingw64_libdir}/pkgconfig/Qt5Test.pc
+%{mingw64_libdir}/pkgconfig/Qt5Widgets.pc
+%{mingw64_libdir}/pkgconfig/Qt5Xml.pc
+%dir %{mingw64_libdir}/qt5/
+%dir %{mingw64_libdir}/qt5/plugins
+%dir %{mingw64_libdir}/qt5/plugins/accessible
+%{mingw64_libdir}/qt5/plugins/accessible/qtaccessiblewidgets.dll
+%dir %{mingw64_libdir}/qt5/plugins/bearer
+%{mingw64_libdir}/qt5/plugins/bearer/qgenericbearer.dll
+%{mingw64_libdir}/qt5/plugins/bearer/qnativewifibearer.dll
+%dir %{mingw64_libdir}/qt5/plugins/imageformats
+%{mingw64_libdir}/qt5/plugins/imageformats/qgif.dll
+%{mingw64_libdir}/qt5/plugins/imageformats/qico.dll
+%{mingw64_libdir}/qt5/plugins/imageformats/qjpeg.dll
+%dir %{mingw64_libdir}/qt5/plugins/platforms
+%{mingw64_libdir}/qt5/plugins/platforms/qminimal.dll
+%{mingw64_libdir}/qt5/plugins/platforms/qwindows.dll
+%dir %{mingw64_libdir}/qt5/plugins/printsupport
+%{mingw64_libdir}/qt5/plugins/printsupport/windowsprintersupport.dll
+%dir %{mingw64_libdir}/qt5/plugins/sqldrivers
+%{mingw64_libdir}/qt5/plugins/sqldrivers/qsqlite.dll
+%{mingw64_libdir}/qt5/plugins/sqldrivers/qsqlodbc.dll
+%{mingw64_libdir}/cmake/Qt5Core/
+%{mingw64_libdir}/cmake/Qt5Concurrent/
+%{mingw64_libdir}/cmake/Qt5DBus/
+%{mingw64_libdir}/cmake/Qt5Gui/
+%{mingw64_libdir}/cmake/Qt5Network/
+%{mingw64_libdir}/cmake/Qt5OpenGL/
+%{mingw64_libdir}/cmake/Qt5PrintSupport/
+%{mingw64_libdir}/cmake/Qt5Sql/
+%{mingw64_libdir}/cmake/Qt5Test/
+%{mingw64_libdir}/cmake/Qt5Widgets/
+%{mingw64_libdir}/cmake/Qt5Xml/
+%dir %{mingw64_includedir}/qt5/
+%{mingw64_includedir}/qt5/QtConcurrent/
+%{mingw64_includedir}/qt5/QtCore/
+%{mingw64_includedir}/qt5/QtDBus/
+%{mingw64_includedir}/qt5/QtGui/
+%{mingw64_includedir}/qt5/QtNetwork/
+%{mingw64_includedir}/qt5/QtOpenGL/
+%{mingw64_includedir}/qt5/QtPlatformSupport/
+%{mingw64_includedir}/qt5/QtPrintSupport/
+%{mingw64_includedir}/qt5/QtSql/
+%{mingw64_includedir}/qt5/QtTest/
+%{mingw64_includedir}/qt5/QtWidgets/
+%{mingw64_includedir}/qt5/QtXml/
+
+%files -n mingw64-qt5-qmake
+%doc LGPL_EXCEPTION.txt LICENSE.FDL LICENSE.GPL LICENSE.LGPL LICENSE.PREVIEW.COMMERCIAL
+%{_bindir}/%{mingw64_target}-moc-qt5
+%{_bindir}/%{mingw64_target}-qdbuscpp2xml-qt5
+%{_bindir}/%{mingw64_target}-qdbusxml2cpp-qt5
+%{_bindir}/%{mingw64_target}-qdoc-qt5
+%{_bindir}/%{mingw64_target}-qmake-qt5
+%{_bindir}/%{mingw64_target}-rcc-qt5
+%{_bindir}/%{mingw64_target}-syncqt-qt5
+%{_bindir}/%{mingw64_target}-uic-qt5
+%{_bindir}/mingw64-qmake-qt5
+%{_prefix}/%{mingw64_target}/bin/moc-qt5
+%{_prefix}/%{mingw64_target}/bin/qdbuscpp2xml-qt5
+%{_prefix}/%{mingw64_target}/bin/qdbusxml2cpp-qt5
+%{_prefix}/%{mingw64_target}/bin/qdoc-qt5
+%{_prefix}/%{mingw64_target}/bin/qmake-qt5
+%{_prefix}/%{mingw64_target}/bin/rcc-qt5
+%{_prefix}/%{mingw64_target}/bin/syncqt-qt5
+%{_prefix}/%{mingw64_target}/bin/uic-qt5
+%{mingw64_datadir}/qt5/
+%{mingw64_docdir}/qt5/
+
+%files -n mingw64-qt5-qtbase-devel
+%{_prefix}/%{mingw64_target}/lib/libQt5Bootstrap.a
+
+%files -n mingw64-qt5-qtbase-static
+%{mingw64_libdir}/libQt5Concurrent.a
+%{mingw64_libdir}/libQt5Core.a
+%{mingw64_libdir}/libQt5DBus.a
+%{mingw64_libdir}/libQt5Gui.a
+%{mingw64_libdir}/libQt5Network.a
+%{mingw64_libdir}/libQt5OpenGL.a
+%{mingw64_libdir}/libQt5PlatformSupport.a
+%{mingw64_libdir}/libQt5PrintSupport.a
+%{mingw64_libdir}/libQt5Sql.a
+%{mingw64_libdir}/libQt5Test.a
+%{mingw64_libdir}/libQt5Widgets.a
+%{mingw64_libdir}/libQt5Xml.a
+
+
+%changelog
+* Fri Jan 11 2013 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-4
+- Moved the libQt5Bootstrap.a library (required to build tools like lrelease
+  and lupdate which are part of mingw-qt5-qttools) to separate -devel subpackages
+  as it is a native library instead of a cross-compiled one
+- Removed the pkg-config file for Qt5Bootstrap as it doesn't work as expected
+  when Qt5 is cross-compiled
+
+* Sat Dec 29 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-3
+- The define QT_NEEDS_QMAIN also needs to be set for our mkspecs profiles
+- To make linking against qt5main.a (which contains a Qt specific WinMain) work
+  binaries need to be linked with -lmingw32 -lqt5main
+- Resolves some initialisation issues
+- Don't enable ICU support as it introduces over 20MB of dependency bloat
+
+* Sat Dec 29 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-2
+- Don't segfault when no suitable platform dll could be located
+
+* Mon Dec 24 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-1
+- Update to Qt 5.0.0 Final
+- Use the qplatformdefs.h header which is included in the
+  win32-g++ mkspecs profile instead of providing our own
+- Replaced the bundled copy of the ANGLE libraries with
+  a seperate mingw-angleproject package
+
+* Thu Dec 13 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.15.rc2
+- Update to Qt 5.0.0 RC2
+- Dropped upstreamed DirectWrite patch
+
+* Fri Dec  7 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.14.rc1
+- Update to Qt 5.0.0 RC1
+- Replaced various hack with proper patches
+- Use the configure argument -archdatadir as it is used to decide
+  where the mkspecs profiles should be installed
+
+* Sat Nov 10 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.13.beta1.git20121110.d725239c
+- Update to 20121110 snapshot (rev d725239c)
+- Dropped the configure argument -qtlibinfix 5 as upstream
+  has resolved the file conflicts with Qt4 properly now
+- Added several missing flags to the mkspecs profiles
+- Dropped the pkg-config file renames as they're not needed any more
+- Dropped two obsolete patches
+
+* Sat Nov 10 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.12.beta1.git20121103.ccc4fbdf
+- Update to 20121103 snapshot (rev ccc4fbdf)
+- Use -std=c++11 instead of -std=c++0x as the latter is deprecated in gcc 4.7
+- Added DirectWrite support
+- Added Angle support
+
+* Sun Oct  7 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.11.beta1
+- Fix compilation failure of the win64 build when using c++11 mode
+
+* Sat Sep 15 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.10.beta1
+- Re-added some configure arguments as they're apparently still needed to build
+  the individual Qt components
+- Removed -ltiff from the mkspecs profiles
+- Added BR: mingw32-icu mingw64-icu
+- Fix directory ownership of %%{mingw32_datadir}/qt5/ and %%{mingw64_datadir}/qt5/
+
+* Thu Sep 13 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.9.beta1
+- Add QT_TOOL.lrelease.command to the mkspecs profiles
+- Fixed detection of mingw-icu
+- Removed some obsolete configure arguments
+
+* Wed Sep 12 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.8.beta1
+- Make sure that Qt components which are built as static library also
+  contain the version number (TARGET_VERSION_EXT) when it is set
+
+* Mon Sep 10 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.7.beta1
+- Added syncqt to the mkspecs profiles
+- Set the qtlibinfix parameter correctly to avoid needing to use other hacks
+
+* Sun Sep  9 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.6.beta1
+- Make sure that Qt is built with debugging symbols and that these
+  debugging symbols are placed in the -debuginfo subpackage
+
+* Sat Sep  8 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.5.beta1
+- Removed -javascript-jit from the configure arguments as it's only needed
+  for QtWebKit (which is provided in a seperate package)
+- Added QMAKE_DLLTOOL to the mkspecs profiles
+
+* Sat Sep  8 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.4.beta1
+- Use the lrelease tool from mingw-qt4 for now until mingw-qt5-qttools is packaged
+
+* Fri Sep  7 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.3.beta1
+- Added win32 static release and win64 static release builds
+
+* Tue Sep  4 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.2.beta1
+- Moved headers to %%{mingw32_includedir}/qt5 and %%{mingw64_includedir}/qt5
+- Renamed the pkgconfig files to avoid conflict with qt4
+
+* Tue Sep  4 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 5.0.0-0.1.beta1
+- Initial package (based on mingw-qt spec file)
+
diff --git a/qt-4.7.3-fix-loading-openssl.patch.in b/qt-4.7.3-fix-loading-openssl.patch.in
new file mode 100644
index 0000000..26fb386
--- /dev/null
+++ b/qt-4.7.3-fix-loading-openssl.patch.in
@@ -0,0 +1,35 @@
+diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
+index a4cc3c4..5e052ac 100644
+--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
++++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
+@@ -369,14 +369,27 @@ static QPair<QSystemLibrary*, QSystemLibrary*> loadOpenSslWin32()
+     if (!ssleay32->load(false)) {
+         // Cannot find ssleay32.dll
+         delete ssleay32;
+-        return pair;
++        ssleay32 = new QSystemLibrary(QLatin1String("libssl-OPENSSL_SONAME"));
++        if (!ssleay32->load(false)) {
++            // Cannot find libssl-OPENSSL_SONAME.dll
++            // in our cross-build that's the same as ssleay32.dll
++            delete ssleay32;
++            return pair;
++        }
+     }
+
+     QSystemLibrary *libeay32 = new QSystemLibrary(QLatin1String("libeay32"));
+     if (!libeay32->load(false)) {
+-        delete ssleay32;
++        // Cannot find libeay32.dll
+         delete libeay32;
+-        return pair;
++        libeay32 = new QSystemLibrary(QLatin1String("libcrypto-OPENSSL_SONAME"));
++        if (!libeay32->load(false)) {
++            // Cannot find libcrypto-OPENSSL_SONAME.dll
++            // in our cross-build that's the same as libeay32.dll
++            delete libeay32;
++            delete ssleay32;
++            return pair;
++        }
+     }
+
+     pair.first = ssleay32;
diff --git a/qt5-add-angle-support.patch b/qt5-add-angle-support.patch
new file mode 100644
index 0000000..d139292
--- /dev/null
+++ b/qt5-add-angle-support.patch
@@ -0,0 +1,44 @@
+--- configure.orig	2012-11-09 23:14:38.635414585 +0100
++++ configure	2012-11-09 23:41:48.183518371 +0100
+@@ -4606,7 +4606,7 @@
+     fi
+     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
+         if compileTest x11/opengl "OpenGL"; then
+-            CFG_OPENGL=desktop
++            CFG_OPENGL=angle
+         elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
+             CFG_OPENGL=es2
+         else
+@@ -5327,6 +5327,11 @@
+     QT_CONFIG="$QT_CONFIG opengles2"
+ fi
+ 
++if [ "$CFG_OPENGL" = "angle" ]; then
++    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES QT_OPENGL_ES_2"
++    QT_CONFIG="$QT_CONFIG opengles2 egl angle"
++fi
++
+ # build up the variables for output
+ if [ "$CFG_DEBUG" = "yes" ]; then
+     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
+@@ -6271,6 +6275,8 @@
+     echo "OpenGL support ......... yes (Desktop OpenGL)"
+ elif [ "$CFG_OPENGL" = "es2" ]; then
+     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
++elif [ "$CFG_OPENGL" = "angle" ]; then
++    echo "OpenGL support ......... yes (Angle)"
+ else
+     echo "OpenGL support ......... no"
+ fi
+--- src/plugins/platforms/windows/qwindowsglcontext.cpp.orig	2012-12-21 01:45:08.022424992 +0100
++++ src/plugins/platforms/windows/qwindowsglcontext.cpp	2012-12-21 01:52:35.773119490 +0100
+@@ -50,7 +50,9 @@
+ #include <qpa/qplatformnativeinterface.h>
+ 
+ #include <wingdi.h>
++#ifndef QT_OPENGL_ES_2
+ #include <GL/gl.h>
++#endif
+ 
+ // #define DEBUG_GL
+ 
diff --git a/qt5-define-qt-needs-qmain-for-win32-g++-targets.patch b/qt5-define-qt-needs-qmain-for-win32-g++-targets.patch
new file mode 100644
index 0000000..a6e823a
--- /dev/null
+++ b/qt5-define-qt-needs-qmain-for-win32-g++-targets.patch
@@ -0,0 +1,11 @@
+--- mkspecs/features/win32/windows.prf.orig	2012-12-29 17:56:20.109549322 +0100
++++ mkspecs/features/win32/windows.prf	2012-12-29 17:56:27.186602896 +0100
+@@ -1,7 +1,7 @@
+ CONFIG -= console
+ contains(TEMPLATE, ".*app"){
+     QMAKE_LFLAGS += $$QMAKE_LFLAGS_WINDOWS $$QMAKE_LFLAGS_EXE
+-    win32-g++:DEFINES += QT_NEEDS_QMAIN
++    win32-g++*:DEFINES += QT_NEEDS_QMAIN
+ 
+     qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) {
+         isEqual(entryLib, -lqtmain): {
diff --git a/qt5-dont-segfault-when-platform-dll-cant-be-found.patch b/qt5-dont-segfault-when-platform-dll-cant-be-found.patch
new file mode 100644
index 0000000..dffc09d
--- /dev/null
+++ b/qt5-dont-segfault-when-platform-dll-cant-be-found.patch
@@ -0,0 +1,22 @@
+--- src/gui/kernel/qguiapplication.cpp.orig	2012-12-29 01:01:02.715265186 +0100
++++ src/gui/kernel/qguiapplication.cpp	2012-12-29 01:15:50.126778220 +0100
+@@ -191,9 +191,16 @@
+             if (const QFont *font = theme->font(QPlatformTheme::SystemFont))
+                 QGuiApplicationPrivate::app_font = new QFont(*font);
+     }
+-    if (!QGuiApplicationPrivate::app_font)
+-        QGuiApplicationPrivate::app_font =
+-            new QFont(QGuiApplicationPrivate::platformIntegration()->fontDatabase()->defaultFont());
++    if (!QGuiApplicationPrivate::app_font) {
++        QPlatformIntegration *pi = QGuiApplicationPrivate::platformIntegration();
++        if (pi) {
++            QGuiApplicationPrivate::app_font = new QFont(pi->fontDatabase()->defaultFont());
++        }
++    }
++    if (!QGuiApplicationPrivate::app_font) {
++        QPlatformFontDatabase pfdb;
++        QGuiApplicationPrivate::app_font = new QFont(pfdb.defaultFont());
++    }
+ }
+ 
+ static inline void clearFontUnlocked()
diff --git a/qt5-merge-static-and-shared-library-trees.patch b/qt5-merge-static-and-shared-library-trees.patch
new file mode 100644
index 0000000..d371007
--- /dev/null
+++ b/qt5-merge-static-and-shared-library-trees.patch
@@ -0,0 +1,84 @@
+--- mkspecs/features/qt_functions.prf.orig      2012-09-05 23:30:01.612735271 +0200
++++ mkspecs/features/qt_functions.prf   2012-09-05 23:32:40.030869399 +0200
+@@ -134,6 +134,21 @@
+         }
+         $$3 += $$LINKAGE
+     }
++
++    win32:CONFIG(static) {
++        isEqual(MODULE_NAME, Qt5Core) {
++            $$3 += $$QMAKE_LIBS_CORE
++        } else:isEqual(MODULE_NAME, Qt5Widgets) {
++            $$3 += $$QMAKE_LIBS_WIDGETS
++        } else:isEqual(MODULE_NAME, Qt5Gui) {
++            $$3 += $$QMAKE_LIBS_GUI
++        } else:isEqual(MODULE_NAME, Qt5Network) {
++            $$3 += $$QMAKE_LIBS_NETWORK
++        } else:isEqual(MODULE_NAME, Qt5OpenGL) {
++            $$3 += $$QMAKE_LIBS_OPENGL
++        }
++    }
++
+     export($$3)
+     export(INCLUDEPATH)
+     export(QMAKE_FRAMEWORKPATH)
+--- mkspecs/features/default_post.prf.orig      2012-09-05 23:28:56.827501401 +0200
++++ mkspecs/features/default_post.prf   2012-09-05 23:29:31.617923080 +0200
+@@ -47,3 +50,7 @@
+ 
+ QMAKE_INCDIR += $$QMAKE_INCDIR_POST
+ QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
++
++win32:contains(CONFIG, static) {
++    QMAKE_LFLAGS += -static
++}
+--- mkspecs/features/qt.prf.orig	2012-09-07 20:35:43.711572661 +0200
++++ mkspecs/features/qt.prf	2012-09-07 20:35:48.794607868 +0200
+@@ -2,12 +2,14 @@
+ 
+ #handle defines
+ win32 {
+-   contains(QT_CONFIG, shared) {
++   contains(CONFIG, shared) {
+       # this variable is read by qmake in qmake/generators/win32/msvc_vcproj.cpp
+       # function VcprojGenerator::initDeploymentTool(), which contains some hardcoded
+       # library names (the ones that were static in Qt 4)
+       # it probably doesn't work anymore and should not be in this file
+       QMAKE_QT_DLL = 1
++   } else {
++      DEFINES += QT_STATIC
+    }
+ }
+ CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG
+--- mkspecs/features/qt_module.prf.orig	2012-12-10 21:52:11.952972639 +0100
++++ mkspecs/features/qt_module.prf	2012-12-10 21:53:48.245650527 +0100
+@@ -46,12 +46,10 @@
+     } else {
+         module_privdep =
+     }
+-    static: \
+-        module_build_type = "QT.$${MODULE}.module_config = staticlib"
+-    else:mac:contains(QT_CONFIG, qt_framework): \
++    mac:contains(QT_CONFIG, qt_framework): \
+         module_build_type = "QT.$${MODULE}.module_config = lib_bundle"
+     else: \
+-        module_build_type =
++        module_build_type = "contains(CONFIG, static):QT.$${MODULE}.module_config = staticlib"
+     !isEmpty(MODULE_CONFIG): \
+         module_config = "QT.$${MODULE}.CONFIG = $$MODULE_CONFIG"
+     else: \
+--- configure.orig	2012-12-10 23:51:02.920255366 +0100
++++ configure	2012-12-10 23:55:58.101753703 +0100
+@@ -6032,6 +6032,12 @@
+ QT_EDITION = $Edition
+ QT_CONFIG += $QT_CONFIG
+ 
++contains(CONFIG, static) {
++    QT_CONFIG += static jpeg
++    QT_CONFIG -= shared
++    QT_DEFINES += QT_STATIC
++}
++
+ #versioning
+ QT_VERSION = $QT_VERSION
+ QT_MAJOR_VERSION = $QT_MAJOR_VERSION
diff --git a/qt5-use-external-angle-library.patch b/qt5-use-external-angle-library.patch
new file mode 100644
index 0000000..94617fc
--- /dev/null
+++ b/qt5-use-external-angle-library.patch
@@ -0,0 +1,49 @@
+--- src/src.pro.orig	2012-12-16 18:00:31.803375714 +0100
++++ src/src.pro	2012-12-16 18:00:25.883273471 +0100
+@@ -72,10 +72,6 @@
+ }
+ contains(QT_CONFIG, concurrent):SUBDIRS += src_concurrent
+ !contains(QT_CONFIG, no-gui) {
+-    win32:contains(QT_CONFIG, angle) {
+-        SUBDIRS += src_angle
+-        src_gui.depends += src_angle
+-    }
+     SUBDIRS += src_gui src_platformsupport
+     src_plugins.depends += src_gui src_platformsupport
+     !contains(QT_CONFIG, no-widgets) {
+--- src/gui/gui.pro.orig	2012-12-16 18:02:25.117315949 +0100
++++ src/gui/gui.pro	2012-12-16 18:01:15.778133505 +0100
+@@ -20,6 +20,10 @@
+     LIBS_PRIVATE += -framework Cocoa
+ }
+ 
++win32:contains(QT_CONFIG, angle) {
++    LIBS_PRIVATE += -lGLESv2
++}
++
+ CONFIG += simd
+ 
+ include(accessible/accessible.pri)
+--- src/plugins/platforms/windows/windows.pro.orig	2012-12-21 19:32:52.519838959 +0100
++++ src/plugins/platforms/windows/windows.pro	2012-12-21 19:34:11.913226062 +0100
+@@ -13,6 +13,7 @@
+ !wince*:LIBS *= -lgdi32 -luser32 -lwinspool -limm32 -lwinmm  -loleaut32
+ 
+ contains(QT_CONFIG, opengl):!contains(QT_CONFIG, opengles2):LIBS *= -lopengl32
++contains(QT_CONFIG, angle):LIBS += -lGLESv2 -lEGL
+ 
+ win32-g++*: LIBS *= -luuid
+ # For the dialog helpers:
+--- src/opengl/opengl.pro.orig	2012-12-21 19:30:29.916330288 +0100
++++ src/opengl/opengl.pro	2012-12-21 19:31:01.279878067 +0100
+@@ -15,6 +15,10 @@
+ contains(QT_CONFIG, opengles2):CONFIG += opengles2
+ contains(QT_CONFIG, egl):CONFIG += egl
+ 
++win32:contains(QT_CONFIG, angle) {
++    LIBS_PRIVATE += -lGLESv2
++}
++
+ HEADERS += qgl.h \
+            qgl_p.h \
+            qglcolormap.h \
diff --git a/sources b/sources
index e69de29..32387ac 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+c29073bfc3cf6b39492a2481d982386e  qtbase-opensource-src-5.0.0.tar.xz


More information about the scm-commits mailing list