[mingw-qt: 1/2] Workaround compile failure of the activeqt pieces

Erik van Pienbroek epienbro at fedoraproject.org
Fri Apr 6 12:16:53 UTC 2012


commit 3ad635e4a49d1bd8cbea6fb7c3b6b24fb6e72729
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Fri Apr 6 14:16:00 2012 +0200

    Workaround compile failure of the activeqt pieces
    
    Workaround compile failure of the activeqt pieces (which are now enabled by
    default as of Qt 4.8.1). Thanks to the openSuSE mingw project for the patch

 mingw-qt.spec                                  |   25 +++++++++++++-
 qt-4.8.1-fix-activeqt-compilation.patch        |   43 ++++++++++++++++++++++++
 qt-merge-static-and-shared-library-trees.patch |   16 ++++----
 3 files changed, 75 insertions(+), 9 deletions(-)
---
diff --git a/mingw-qt.spec b/mingw-qt.spec
index 3826a8f..9e55b8f 100644
--- a/mingw-qt.spec
+++ b/mingw-qt.spec
@@ -58,6 +58,14 @@ Patch21:        qt-4.8.0-build-qtuitools-dynamically.patch
 # Javascript-JIT fails to link on mingw x86_64
 Patch22:        qt-fix-javascript-jit-on-mingw-x86_64.patch
 
+# As of qt 4.8.1 the qt build system tries to build a activeqt module for
+# the designer component. However, this fails to compile:
+# In file included from ../../../../../include/ActiveQt/qaxselect.h:1:0,
+#                 from /home/erik/fedora/mingw-qt/qt-everywhere-opensource-src-4.8.1/tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp:55:
+# ../../../../../include/ActiveQt/../../../qt-everywhere-opensource-src-4.8.1/src/activeqt/container/qaxselect.h:47:26: fatal error: ui_qaxselect.h: No such file or directory
+# Workaround this for now until a proper fix has been found
+Patch23:        qt-4.8.1-fix-activeqt-compilation.patch
+
 BuildRequires:  mingw32-filesystem >= 95
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-gcc-c++
@@ -187,6 +195,7 @@ Static version of the mingw64-qt library.
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
+%patch23 -p1
 
 # Patch 19 (openssl) needs an additional change
 # qt loads openssl libraries (ssleay32, libeay32)  at runtime, but they are called libssl-OPENSSL_SONAME
@@ -360,6 +369,10 @@ mkdir $RPM_BUILD_ROOT/static
 make install -C ../build_release_static_win32 INSTALL_ROOT=$RPM_BUILD_ROOT/static
 make install -C ../build_release_static_win64 INSTALL_ROOT=$RPM_BUILD_ROOT/static
 
+# Remove the ActiveQt pieces from the shared build as they aren't build as shared library so
+# it's good enough to only bundle the static libraries originating from the static build
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/libQAx* $RPM_BUILD_ROOT%{mingw64_libdir}/libQAx*
+
 # 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
@@ -670,6 +683,7 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw32_libdir}/qt4/plugins/sqldrivers/qsqlited4.dll
 %{mingw32_libdir}/qt4/plugins/sqldrivers/qsqlodbc4.dll
 %{mingw32_libdir}/qt4/plugins/sqldrivers/qsqlodbcd4.dll
+%{mingw32_includedir}/ActiveQt
 %{mingw32_includedir}/Qt/
 %{mingw32_includedir}/Qt3Support/
 %{mingw32_includedir}/QtCore/
@@ -728,6 +742,7 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw32_bindir}/xmlpatterns.exe
 %{mingw32_bindir}/xmlpatternsvalidator.exe
 %dir %{mingw32_libdir}/qt4/plugins/designer/
+%{mingw32_libdir}/qt4/plugins/designer/qaxwidget.dll
 %{mingw32_libdir}/qt4/plugins/designer/qdeclarativeview.dll
 %{mingw32_libdir}/qt4/plugins/designer/qdeclarativeviewd.dll
 %{mingw32_libdir}/qt4/plugins/designer/qt3supportwidgets.dll
@@ -736,6 +751,8 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw32_libdir}/qt4/plugins/designer/qwebviewd.dll
 
 %files -n mingw32-qt-static
+%{mingw32_libdir}/libQAxContainer4.a
+%{mingw32_libdir}/libQAxServer4.a
 %{mingw32_libdir}/libQt3Support4.a
 %{mingw32_libdir}/libQtCore4.a
 %{mingw32_libdir}/libQtDBus4.a
@@ -749,7 +766,7 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw32_libdir}/libQtSql4.a
 %{mingw32_libdir}/libQtSvg4.a
 %{mingw32_libdir}/libQtTest4.a
-#%{mingw32_libdir}/libQtWebKit4.a
+%{mingw32_libdir}/libQtWebKit4.a
 %{mingw32_libdir}/libQtXml4.a
 %{mingw32_libdir}/libQtXmlPatterns4.a
 
@@ -939,6 +956,7 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw64_libdir}/qt4/plugins/sqldrivers/qsqlited4.dll
 %{mingw64_libdir}/qt4/plugins/sqldrivers/qsqlodbc4.dll
 %{mingw64_libdir}/qt4/plugins/sqldrivers/qsqlodbcd4.dll
+%{mingw64_includedir}/ActiveQt
 %{mingw64_includedir}/Qt/
 %{mingw64_includedir}/Qt3Support/
 %{mingw64_includedir}/QtCore/
@@ -997,6 +1015,7 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw64_bindir}/xmlpatterns.exe
 %{mingw64_bindir}/xmlpatternsvalidator.exe
 %dir %{mingw64_libdir}/qt4/plugins/designer/
+%{mingw64_libdir}/qt4/plugins/designer/qaxwidget.dll
 %{mingw64_libdir}/qt4/plugins/designer/qdeclarativeview.dll
 %{mingw64_libdir}/qt4/plugins/designer/qdeclarativeviewd.dll
 %{mingw64_libdir}/qt4/plugins/designer/qt3supportwidgets.dll
@@ -1005,6 +1024,8 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 %{mingw64_libdir}/qt4/plugins/designer/qwebviewd.dll
 
 %files -n mingw64-qt-static
+%{mingw64_libdir}/libQAxContainer4.a
+%{mingw64_libdir}/libQAxServer4.a
 %{mingw64_libdir}/libQt3Support4.a
 %{mingw64_libdir}/libQtCore4.a
 %{mingw64_libdir}/libQtDBus4.a
@@ -1029,6 +1050,8 @@ sed -i s@'$${QT_LIBINFIX}d'@'d$${QT_LIBINFIX}'@ $RPM_BUILD_ROOT%{mingw64_datadir
 - Removed a patch which fixed a compile failure in kdelibs as
   upstream has resolved the issue properly in commit 71e88dd
 - Dropped upstreamed pkgconfig patches
+- Workaround compile failure of the activeqt pieces (which are now enabled by
+  default as of Qt 4.8.1). Thanks to the openSuSE mingw project for the patch
 
 * Sat Mar 10 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 4.8.0-8
 - Added win64 support
diff --git a/qt-4.8.1-fix-activeqt-compilation.patch b/qt-4.8.1-fix-activeqt-compilation.patch
new file mode 100644
index 0000000..159eba4
--- /dev/null
+++ b/qt-4.8.1-fix-activeqt-compilation.patch
@@ -0,0 +1,43 @@
+diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp
+index f5c495a..123e40f 100644
+--- a/src/activeqt/control/qaxserverbase.cpp
++++ b/src/activeqt/control/qaxserverbase.cpp
+@@ -4037,12 +4037,10 @@ HRESULT WINAPI QAxServerBase::SetColorScheme(LOGPALETTE*)
+ }
+ 
+ 
+-#ifdef QT_DLL // avoid conflict with symbol in static lib
+ bool qt_sendSpontaneousEvent(QObject *o, QEvent *e)
+ {
+     return QCoreApplication::sendSpontaneousEvent(o, e);
+ }
+-#endif
+ 
+ /*
+     Tries to set the size of the control.
+diff --git a/tools/activeqt/testcon/testcon.pro b/tools/activeqt/testcon/testcon.pro
+index 89f8067..696be2e 100644
+--- a/tools/activeqt/testcon/testcon.pro
++++ b/tools/activeqt/testcon/testcon.pro
+@@ -7,6 +7,8 @@ CONFIG	+= qaxserver qaxserver_no_postlink qaxcontainer
+ INCLUDEPATH += $$QT_SOURCE_TREE/tools/activeqt/container/debug \
+     $$QT_SOURCE_TREE/tools/activeqt/container/release \
+     $$QT_BUILD_TREE/src/activeqt/container \
++    $$QT_BUILD_TREE/src/activeqt/container/.uic/release-shared \
++    $$QT_BUILD_TREE/src/activeqt/container/.uic/debug-shared \
+ 
+ SOURCES	 = main.cpp docuwindow.cpp mainwindow.cpp invokemethod.cpp changeproperties.cpp ambientproperties.cpp controlinfo.cpp
+ HEADERS	 = docuwindow.h mainwindow.h invokemethod.h changeproperties.h ambientproperties.h controlinfo.h
+diff --git a/tools/designer/src/plugins/activeqt/activeqt.pro b/tools/designer/src/plugins/activeqt/activeqt.pro
+index f58df8a..5d9bdd4 100644
+--- a/tools/designer/src/plugins/activeqt/activeqt.pro
++++ b/tools/designer/src/plugins/activeqt/activeqt.pro
+@@ -10,6 +10,8 @@ build_all:!build_pass {
+ 
+ INCLUDEPATH += $$QT_SOURCE_TREE/src/activeqt/shared/ \
+                $$QT_BUILD_TREE/src/activeqt/container \
++	       $$QT_BUILD_TREE/src/activeqt/container/.uic/release-shared \
++	       $$QT_BUILD_TREE/src/activeqt/container/.uic/debug-shared \
+                ../../lib/uilib
+ 
+ # Input
diff --git a/qt-merge-static-and-shared-library-trees.patch b/qt-merge-static-and-shared-library-trees.patch
index c757293..b63b3bb 100644
--- a/qt-merge-static-and-shared-library-trees.patch
+++ b/qt-merge-static-and-shared-library-trees.patch
@@ -100,15 +100,15 @@
  CONFIG +=  def_files_disabled exceptions rtti no_mocdepend release stl qt_no_framework
  QT_ARCH = windows
  QT_EDITION = OpenSource
--QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl xmlpatterns multimedia audio-backend svg script scripttools declarative release
+-QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
 +contains(CONFIG, static) {
-+   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg jpeg mng system-png png gif system-tiff tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl xmlpatterns multimedia audio-backend svg script scripttools declarative release
++   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg jpeg mng system-png png gif system-tiff tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
 +} else {
-+   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl xmlpatterns multimedia audio-backend svg script scripttools declarative release
++   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
 +}
  
  #versioning
- QT_VERSION = 4.8.0
+ QT_VERSION = 4.8.1
 --- usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf.orig	2011-12-26 02:29:56.365208473 +0100
 +++ usr/i686-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf	2011-12-26 02:31:03.650208601 +0100
 @@ -6,6 +6,10 @@
@@ -224,15 +224,15 @@
  CONFIG +=  def_files_disabled exceptions rtti no_mocdepend release stl qt_no_framework
  QT_ARCH = windows
  QT_EDITION = OpenSource
--QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl xmlpatterns multimedia audio-backend svg script scripttools declarative release
+-QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
 +contains(CONFIG, static) {
-+   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg jpeg mng system-png png gif system-tiff tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl xmlpatterns multimedia audio-backend svg script scripttools declarative release
++   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg jpeg mng system-png png gif system-tiff tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
 +} else {
-+   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl xmlpatterns multimedia audio-backend svg script scripttools declarative release
++   QT_CONFIG +=  minimal-config small-config medium-config large-config full-config qt3support accessibility opengl reduce_exports ipv6 getaddrinfo system-jpeg system-png png system-tiff no-freetype system-zlib gnu-libiconv dbus dbus-linked openssl concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
 +}
  
  #versioning
- QT_VERSION = 4.8.0
+ QT_VERSION = 4.8.1
 --- usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf.orig	2011-12-26 02:29:56.365208473 +0100
 +++ usr/x86_64-w64-mingw32/sys-root/mingw/share/qt4/mkspecs/features/win32/default_post.prf	2011-12-26 02:31:03.650208601 +0100
 @@ -6,6 +6,10 @@


More information about the scm-commits mailing list