[mingw32-qt/f16] Update to 4.8.1 and make QSSL work (RHBZ #813064)
Erik van Pienbroek
epienbro at fedoraproject.org
Tue May 1 15:05:18 UTC 2012
commit e6ead3885f8f722b6c6529552a3c94ea6e42a9e9
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date: Thu Apr 19 18:56:38 2012 +0200
Update to 4.8.1 and make QSSL work (RHBZ #813064)
.gitignore | 1 +
mingw32-qt.spec | 57 +++++++++++++++++++++++++++++++++++-
qt-4.7.3-fix-loading-openssl.patch | 35 ++++++++++++++++++++++
sources | 2 +-
4 files changed, 93 insertions(+), 2 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index ed919ef..667e2f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/qt-everywhere-opensource-src-4.7.4.tar.gz
/qt-everywhere-opensource-src-4.8.0-rc1.tar.gz
/qt-everywhere-opensource-src-4.8.0.tar.gz
+/qt-everywhere-opensource-src-4.8.1.tar.gz
diff --git a/mingw32-qt.spec b/mingw32-qt.spec
index ce071f0..29e7c48 100644
--- a/mingw32-qt.spec
+++ b/mingw32-qt.spec
@@ -6,8 +6,11 @@
%global platform win32-g++-cross
+# Helper macro to retrieve the name of the openssl library
+%global openssl_soname %(rpm -ql mingw32-openssl | grep -Eo 'libssl.*$' | grep -Eo '[0-9]+')
+
Name: mingw32-qt
-Version: 4.8.0
+Version: 4.8.1
Release: 1%{?pre}%{?dist}
Summary: Qt for Windows
@@ -27,6 +30,9 @@ Patch10: mingw32-qt-4.8.0-no-webkit-tests.patch
# The debug build tries to link against libdbus-1d which doesn't exist
Patch15: qt-dbus-dont-link-to-dbus-1d.patch
+# Openssl is loaded at runtime
+Patch19: qt-4.7.3-fix-loading-openssl.patch
+
BuildArch: noarch
BuildRequires: mingw32-filesystem >= 68
@@ -65,6 +71,12 @@ Fedora Windows cross-compiler.
%patch10 -p1 -b .no_webkit_tests
%patch15 -p0
+%patch19 -p1
+
+# Patch 19 (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
+sed -i "s/OPENSSL_SONAME/%{openssl_soname}/" src/network/ssl/qsslsocket_openssl_symbols.cpp
# Cross-compilation qmake target.
mkdir mkspecs/%{platform}
@@ -205,6 +217,10 @@ rm -rf $RPM_BUILD_ROOT%{_mingw32_prefix}/imports
%{_mingw32_bindir}/QtTestd4.dll
%{_mingw32_bindir}/QtWebKit4.dll
%{_mingw32_bindir}/QtWebKitd4.dll
+%{_mingw32_libdir}/libQAxContainer.a
+%{_mingw32_libdir}/libQAxContainerd.a
+%{_mingw32_libdir}/libQAxServer.a
+%{_mingw32_libdir}/libQAxServerd.a
%{_mingw32_libdir}/libQt3Support4.a
%{_mingw32_libdir}/libQt3Supportd4.a
%{_mingw32_libdir}/libQtCore4.a
@@ -298,6 +314,41 @@ rm -rf $RPM_BUILD_ROOT%{_mingw32_prefix}/imports
%{_mingw32_libdir}/qt4/plugins/sqldrivers/qsqlited4.dll
%{_mingw32_libdir}/qt4/plugins/sqldrivers/qsqlodbc4.dll
%{_mingw32_libdir}/qt4/plugins/sqldrivers/qsqlodbcd4.dll
+%{_mingw32_libdir}/pkgconfig/Qt3Support.pc
+%{_mingw32_libdir}/pkgconfig/Qt3Supportd.pc
+%{_mingw32_libdir}/pkgconfig/QtCore.pc
+%{_mingw32_libdir}/pkgconfig/QtCored.pc
+%{_mingw32_libdir}/pkgconfig/QtDBus.pc
+%{_mingw32_libdir}/pkgconfig/QtDBusd.pc
+%{_mingw32_libdir}/pkgconfig/QtDeclarative.pc
+%{_mingw32_libdir}/pkgconfig/QtDeclaratived.pc
+%{_mingw32_libdir}/pkgconfig/QtGui.pc
+%{_mingw32_libdir}/pkgconfig/QtGuid.pc
+%{_mingw32_libdir}/pkgconfig/QtMultimedia.pc
+%{_mingw32_libdir}/pkgconfig/QtMultimediad.pc
+%{_mingw32_libdir}/pkgconfig/QtNetwork.pc
+%{_mingw32_libdir}/pkgconfig/QtNetworkd.pc
+%{_mingw32_libdir}/pkgconfig/QtOpenGL.pc
+%{_mingw32_libdir}/pkgconfig/QtOpenGLd.pc
+%{_mingw32_libdir}/pkgconfig/QtScript.pc
+%{_mingw32_libdir}/pkgconfig/QtScriptTools.pc
+%{_mingw32_libdir}/pkgconfig/QtScriptToolsd.pc
+%{_mingw32_libdir}/pkgconfig/QtScriptd.pc
+%{_mingw32_libdir}/pkgconfig/QtSql.pc
+%{_mingw32_libdir}/pkgconfig/QtSqld.pc
+%{_mingw32_libdir}/pkgconfig/QtSvg.pc
+%{_mingw32_libdir}/pkgconfig/QtSvgd.pc
+%{_mingw32_libdir}/pkgconfig/QtTest.pc
+%{_mingw32_libdir}/pkgconfig/QtTestd.pc
+%{_mingw32_libdir}/pkgconfig/QtWebKit.pc
+%{_mingw32_libdir}/pkgconfig/QtWebKitd.pc
+%{_mingw32_libdir}/pkgconfig/QtXml.pc
+%{_mingw32_libdir}/pkgconfig/QtXmlPatterns.pc
+%{_mingw32_libdir}/pkgconfig/QtXmlPatternsd.pc
+%{_mingw32_libdir}/pkgconfig/QtXmld.pc
+%{_mingw32_libdir}/pkgconfig/qtmain.pc
+%{_mingw32_libdir}/pkgconfig/qtmaind.pc
+%{_mingw32_includedir}/ActiveQt/
%{_mingw32_includedir}/Qt/
%{_mingw32_includedir}/Qt3Support/
%{_mingw32_includedir}/QtCore/
@@ -319,6 +370,10 @@ rm -rf $RPM_BUILD_ROOT%{_mingw32_prefix}/imports
%changelog
+* Mon Apr 16 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 4.8.1-1
+- Update to 4.8.1
+- Make QSSL work (patch from Dominik Schmidt, RHBZ #813064)
+
* Wed Dec 21 2011 Erik van Pienbroek <epienbro at fedoraproject.org> - 4.8.0-1
- Update to 4.8.0
diff --git a/qt-4.7.3-fix-loading-openssl.patch b/qt-4.7.3-fix-loading-openssl.patch
new file mode 100644
index 0000000..26fb386
--- /dev/null
+++ b/qt-4.7.3-fix-loading-openssl.patch
@@ -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/sources b/sources
index fd3c0a4..d0aea56 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-e8a5fdbeba2927c948d9f477a6abe904 qt-everywhere-opensource-src-4.8.0.tar.gz
+7960ba8e18ca31f0c6e4895a312f92ff qt-everywhere-opensource-src-4.8.1.tar.gz
More information about the scm-commits
mailing list