package/qt5/qt5base: build Qt 5.6 with LibreSSL if present
authorJames Grant <jamesg@zaltys.org>
Sun, 3 Mar 2019 05:51:03 +0000 (18:51 +1300)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 4 Mar 2019 19:22:57 +0000 (20:22 +0100)
LibreSSL build is successful with shared linkage, but not default dlopen().

Also adds patch for successful compilation by using -fpermissive.

Signed-off-by: James Grant <jamesg@zaltys.org>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/qt5/qt5base/5.6.3/0003-libressl-add-fpermissive-gcc-flag-to-allow-compilati.patch [new file with mode: 0644]
package/qt5/qt5base/qt5base.mk

diff --git a/package/qt5/qt5base/5.6.3/0003-libressl-add-fpermissive-gcc-flag-to-allow-compilati.patch b/package/qt5/qt5base/5.6.3/0003-libressl-add-fpermissive-gcc-flag-to-allow-compilati.patch
new file mode 100644 (file)
index 0000000..c8fc426
--- /dev/null
@@ -0,0 +1,29 @@
+From 62588f2d8267c67c2337004e83e80695280db9eb Mon Sep 17 00:00:00 2001
+From: James Grant <jamesg@zaltys.org>
+Date: Sun, 3 Mar 2019 17:29:29 +1300
+Subject: [PATCH 1/1] libressl - add -fpermissive gcc flag to allow
+ compilation.
+
+Workaround for 'const BIO_METHOD *' vs. 'BIO_METHOD *' changes to BIO_new() and BIO_s_mem() function signatures.
+
+Signed-off-by: James Grant <jamesg@zaltys.org>
+---
+ src/network/ssl/ssl.pri | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
+index 29c47cd7..f0aad448 100644
+--- a/src/network/ssl/ssl.pri
++++ b/src/network/ssl/ssl.pri
+@@ -77,7 +77,7 @@ android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp
+         LIBS_PRIVATE += $$OPENSSL_LIBS_RELEASE
+     }
+-    QMAKE_CXXFLAGS += $$OPENSSL_CFLAGS
++    QMAKE_CXXFLAGS += $$OPENSSL_CFLAGS -fpermissive
+     LIBS_PRIVATE += $$OPENSSL_LIBS
+     win32: LIBS_PRIVATE += -lcrypt32
+ }
+-- 
+2.18.1
+
index a5ce583327ce2667779711ffc24da161879595c6..e7f6e658f1b34bc25250c788135c70c0f9d883e0 100644 (file)
@@ -190,7 +190,9 @@ endif
 
 ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
 # No OpenSSL 1.1.x support in Qt 5.6.x
-QT5BASE_CONFIGURE_OPTS += -no-openssl
+# LibreSSL works with shared linkage only and -fpermissive patch
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_LIBRESSL),-openssl-linked,-no-openssl)
+QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_LIBRESSL),openssl)
 else
 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)
 QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_OPENSSL),openssl)