mirror of
https://github.com/beard7n/bsdports.git
synced 2026-04-10 02:21:15 +02:00
update qt to 5.15
This commit is contained in:
134
xapp/libqt5-base/Makefile
Normal file
134
xapp/libqt5-base/Makefile
Normal file
@@ -0,0 +1,134 @@
|
||||
# $FreeBSD: head/devel/qt5-qmake/Makefile 492793 2019-02-12 17:43:00Z tcberner $
|
||||
|
||||
PORTNAME= qt5-base
|
||||
DISTVERSION= ${QT5_VERSION}
|
||||
CATEGORIES= devel
|
||||
PKGNAMEPREFIX= lib
|
||||
MASTER_SITES+= http://download.qt.io/official_releases/qt/${DISTVERSION:R}/${DISTVERSION}/submodules/
|
||||
DISTNAME= qtbase-everywhere-src-${PORTVERSION}
|
||||
|
||||
|
||||
MAINTAINER= kde@FreeBSD.org
|
||||
COMMENT= Qt Makefile generator
|
||||
|
||||
LIB_DEPENDS+= libdbus.so:gnome/dbus
|
||||
|
||||
LIB_DEPENDS+= libqtfontconfig.so:xapp/libqtfontconfig
|
||||
LIB_DEPENDS+= libqtfreetype.so:xapp/libqtfreetype2
|
||||
LIB_DEPENDS+= libpcre2-16.so:text/libpcre2
|
||||
|
||||
LIB_DEPENDS+= libSM.so.6:x11/libSM
|
||||
LIB_DEPENDS+= libX11-xcb.so:x11/libX11
|
||||
LIB_DEPENDS+= libX11.so.6:x11/libX11
|
||||
|
||||
LIB_DEPENDS+= libXau.so.6:x11/libXau
|
||||
LIB_DEPENDS+= libXdamage.so:x11/libXdamage
|
||||
LIB_DEPENDS+= libXdmcp.so:x11/libXdmcp
|
||||
LIB_DEPENDS+= libXext.so:x11/libXext
|
||||
LIB_DEPENDS+= libXfixes.so:x11/libXfixes
|
||||
LIB_DEPENDS+= libICE.so:x11/libICE
|
||||
|
||||
LIB_DEPENDS+= libxkbcommon.so:x11/libxkbcommon
|
||||
|
||||
LIB_DEPENDS+= libxcb-dri2.so:x11/libxcb
|
||||
LIB_DEPENDS+= libxcb-icccm.so:x11/libxcb-util-wm
|
||||
LIB_DEPENDS+= libxcb-image.so:x11/libxcb-util-image
|
||||
LIB_DEPENDS+= libxcb-keysyms.so:x11/libxcb-util-keysyms
|
||||
LIB_DEPENDS+= libxcb-render-util.so:x11/libxcb-util-renderutil
|
||||
LIB_DEPENDS+= libxcb-util.so:x11/libxcb-util
|
||||
|
||||
|
||||
USES= compiler:c++11-lib gmake pkgconfig python:build shebangfix tar:xz ssl
|
||||
|
||||
CONFIGURE_ARGS+= -c++std c++14
|
||||
|
||||
SHEBANG_FILES+= util/harfbuzz/update-harfbuzz
|
||||
SHEBANG_FILES+= util/unicode/x11/makeencodings
|
||||
SHEBANG_FILES+= src/3rdparty/freetype/src/tools/afblue.pl
|
||||
SHEBANG_FILES+= mkspecs/features/data/mac/objc_namespace.sh
|
||||
SHEBANG_FILES+= mkspecs/features/uikit/devices.py
|
||||
SHEBANG_FILES+= mkspecs/features/uikit/device_destinations.sh
|
||||
|
||||
CFLAGS+= -I${LOCALBASE}/include
|
||||
CPPFLAGS+= -I${LOCALBASE}/include
|
||||
CXXFLAGS+= -I${LOCALBASE}/include
|
||||
LDFLAGS+= -L${LOCALBASE}/lib
|
||||
#-liconv -lssl -lcrypto
|
||||
#LDFLAGS+= -licudata -licui18n -licuio -licutest -licutu -licuuc
|
||||
|
||||
#CONFIGURE_ENV+= ICU_INCDIR="${LOCALBASE}/include"
|
||||
#CONFIGURE_ENV+= ICU_PREFIX="${LOCALBASE}"
|
||||
#CONFIGURE_ENV+= ICU_LIBS="-licui18n -licuuc -licudata"
|
||||
#OPENSSL_LIBS='-lssl -lcrypto'
|
||||
|
||||
CONFIGURE_ARGS+= -icu
|
||||
CONFIGURE_ARGS+= -no-iconv
|
||||
|
||||
CONFIGURE_ARGS+= -L "${LOCALBASE}/lib"
|
||||
CONFIGURE_ARGS+= -I "${LOCALBASE}/include"
|
||||
|
||||
|
||||
REINPLACE_ARGS= -i ""
|
||||
HAS_CONFIGURE= yes
|
||||
|
||||
CONFIGURE_ARGS+= -prefix ${PREFIX}
|
||||
CONFIGURE_ARGS+= -opensource
|
||||
CONFIGURE_ARGS+= -confirm-license
|
||||
CONFIGURE_ARGS+= -no-pch
|
||||
CONFIGURE_ARGS+= -prefix ${PREFIX}
|
||||
CONFIGURE_ARGS+= -bindir ${PREFIX}/bin
|
||||
CONFIGURE_ARGS+= -headerdir ${PREFIX}/include/Qt5
|
||||
CONFIGURE_ARGS+= -libdir ${PREFIX}/lib
|
||||
CONFIGURE_ARGS+= -plugindir ${PREFIX}/lib/Qt5/plugins
|
||||
CONFIGURE_ARGS+= -importdir ${PREFIX}/lib/Qt5/imports
|
||||
CONFIGURE_ARGS+= -datadir ${PREFIX}/share/Qt5
|
||||
CONFIGURE_ARGS+= -docdir ${PREFIX}/share/Qt5/docs
|
||||
CONFIGURE_ARGS+= -translationdir ${PREFIX}/share/Qt5/translations
|
||||
CONFIGURE_ARGS+= -sysconfdir ${PREFIX}/etc/Qt5
|
||||
|
||||
CONFIGURE_ARGS+= -nomake examples
|
||||
CONFIGURE_ARGS+= -nomake tests
|
||||
CONFIGURE_ARGS+= -archdatadir ${PREFIX}/share/Qt5
|
||||
CONFIGURE_ARGS+= -libexecdir ${PREFIX}/libexec/Qt5
|
||||
CONFIGURE_ARGS+= -qmldir ${PREFIX}/share/Qt5/qml
|
||||
CONFIGURE_ARGS+= -examplesdir ${PREFIX}/share/examples/Qt5
|
||||
CONFIGURE_ARGS+= -testsdir ${PREFIX}/share/tests/Qt5
|
||||
|
||||
CONFIGURE_ARGS+= -system-harfbuzz
|
||||
|
||||
CONFIGURE_ARGS+= -no-use-gold-linker
|
||||
CONFIGURE_ARGS+= -release -no-separate-debug-info
|
||||
CONFIGURE_ARGS+= -no-eglfs
|
||||
CONFIGURE_ARGS+= -no-evdev
|
||||
CONFIGURE_ARGS+= -no-libudev
|
||||
CONFIGURE_ARGS+= -cups
|
||||
CONFIGURE_ARGS+= -dbus
|
||||
CONFIGURE_ARGS+= -no-glib
|
||||
CONFIGURE_ARGS+= -no-gtk
|
||||
CONFIGURE_ARGS+= -no-evdev
|
||||
CONFIGURE_ARGS+= -fontconfig
|
||||
CONFIGURE_ARGS+= -system-freetype
|
||||
CONFIGURE_ARGS+= -openssl-linked
|
||||
#CONFIGURE_ARGS+= -opengl es2
|
||||
|
||||
#CONFIGURE_ARGS+= -qt-harfbuzz
|
||||
|
||||
#CONFIGURE_ARGS+= -no-xcb #-system-xcb
|
||||
CONFIGURE_ARGS+= -system-pcre
|
||||
CONFIGURE_ARGS+= -qt-libpng
|
||||
CONFIGURE_ARGS+= -gui
|
||||
#CONFIGURE_ARGS+= -qpa xcb
|
||||
|
||||
CONFIGURE_ARGS+= -sql-psql
|
||||
CONFIGURE_ARGS+= -no-sql-mysql
|
||||
CONFIGURE_ARGS+= -no-compile-examples
|
||||
|
||||
DESTDIRNAME= INSTALL_ROOT
|
||||
|
||||
post-install:
|
||||
cd ${STAGEDIR}${PREFIX} && ${FIND} . -name '*.orig' -delete
|
||||
cd ${STAGEDIR}${PREFIX}/bin && ${MV} fixqt4headers.pl fixqt4headers
|
||||
cd ${STAGEDIR}${PREFIX}/bin && ${MV} syncqt.pl syncqt
|
||||
|
||||
|
||||
.include <bsd.port.mk>
|
||||
3
xapp/libqt5-base/distinfo
Normal file
3
xapp/libqt5-base/distinfo
Normal file
@@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1598599543
|
||||
SHA256 (qtbase-everywhere-src-5.15.0.tar.xz) = 9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5
|
||||
SIZE (qtbase-everywhere-src-5.15.0.tar.xz) = 49931940
|
||||
30
xapp/libqt5-base/files/old/patch-mkspecs_common_bsd_bsd.conf
Normal file
30
xapp/libqt5-base/files/old/patch-mkspecs_common_bsd_bsd.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
--- mkspecs/common/bsd/bsd.conf.orig 2017-07-23 16:27:40 UTC
|
||||
+++ mkspecs/common/bsd/bsd.conf
|
||||
@@ -21,6 +21,27 @@ QMAKE_LIBS_X11 = -lXext -lX11 -lm
|
||||
QMAKE_LIBS_OPENGL = -lGL
|
||||
QMAKE_LIBS_THREAD =
|
||||
|
||||
+QMAKE_INCDIR_X11 = /usr/local/include
|
||||
+QMAKE_LIBDIR_X11 = /usr/local/lib
|
||||
+QMAKE_INCDIR_OPENGL = /usr/local/include
|
||||
+QMAKE_LIBDIR_OPENGL = /usr/local/lib
|
||||
+QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
|
||||
+QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
|
||||
+QMAKE_INCDIR_EGL = /usr/local/include
|
||||
+QMAKE_LIBDIR_EGL = /usr/local/lib
|
||||
+
|
||||
+QMAKE_LIBS_EGL = -lEGL
|
||||
+QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
|
||||
+QMAKE_LIBS_LIBUDEV = -ludev
|
||||
+
|
||||
+QMAKE_CFLAGS_WAYLAND =
|
||||
+QMAKE_INCDIR_WAYLAND = /usr/local/include
|
||||
+QMAKE_LIBS_WAYLAND_CLIENT = -lwayland-client
|
||||
+QMAKE_LIBS_WAYLAND_SERVER = -lwayland-server
|
||||
+QMAKE_LIBDIR_WAYLAND = /usr/local/lib
|
||||
+QMAKE_DEFINES_WAYLAND =
|
||||
+QMAKE_WAYLAND_SCANNER = wayland-scanner
|
||||
+
|
||||
QMAKE_AR = ar cqs
|
||||
QMAKE_OBJCOPY = objcopy
|
||||
QMAKE_NM = nm -P
|
||||
@@ -0,0 +1,71 @@
|
||||
--- src/network/ssl/qsslsocket_openssl11_symbols_p.h.orig 2019-10-01 07:47:24 UTC
|
||||
+++ src/network/ssl/qsslsocket_openssl11_symbols_p.h
|
||||
@@ -77,20 +77,49 @@
|
||||
|
||||
const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
|
||||
|
||||
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
|
||||
+// LibreSSL 2.7 has stack_st but not OPENSSL_STACK
|
||||
+typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */
|
||||
+// From the signature in LibreSSL
|
||||
+#define OPENSSL_INIT_SETTINGS void
|
||||
+// https://github.com/openssl/openssl/blob/master/include/openssl/x509_vfy.h#L63
|
||||
+typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
Q_AUTOTEST_EXPORT BIO *q_BIO_new(const BIO_METHOD *a);
|
||||
Q_AUTOTEST_EXPORT const BIO_METHOD *q_BIO_s_mem();
|
||||
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+#define q_DSA_bits(dsa) q_BN_num_bits((dsa)->p)
|
||||
+#else
|
||||
int q_DSA_bits(DSA *a);
|
||||
+#endif
|
||||
int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
|
||||
Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a);
|
||||
int q_EVP_PKEY_base_id(EVP_PKEY *a);
|
||||
int q_RSA_bits(RSA *a);
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+int q_sk_num(OPENSSL_STACK *a);
|
||||
+void q_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
+OPENSSL_STACK *q_sk_new_null();
|
||||
+void q_sk_push(OPENSSL_STACK *st, void *data);
|
||||
+void q_sk_free(OPENSSL_STACK *a);
|
||||
+void * q_sk_value(OPENSSL_STACK *a, int b);
|
||||
+#define q_OPENSSL_sk_num(a) q_sk_num(a)
|
||||
+#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b)
|
||||
+#define q_OPENSSL_sk_new_null() q_sk_new_null()
|
||||
+#define q_OPENSSL_sk_push(a, b) q_sk_push(a, b)
|
||||
+#define q_OPENSSL_sk_free q_sk_free
|
||||
+#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b)
|
||||
+#else
|
||||
Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
Q_AUTOTEST_EXPORT OPENSSL_STACK *q_OPENSSL_sk_new_null();
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_free(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
|
||||
+#endif
|
||||
int q_SSL_session_reused(SSL *a);
|
||||
unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
|
||||
int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
|
||||
@@ -113,12 +142,15 @@
|
||||
void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
|
||||
int q_DH_bits(DH *dh);
|
||||
|
||||
-# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
|
||||
+#define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
|
||||
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
|
||||
-
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
|
||||
+#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
|
||||
+#else
|
||||
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st)
|
||||
#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i)
|
||||
-
|
||||
+#endif
|
||||
#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
|
||||
| OPENSSL_INIT_ADD_ALL_DIGESTS \
|
||||
| OPENSSL_INIT_LOAD_CONFIG, NULL)
|
||||
33
xapp/libqt5-base/files/old/patch-src_corelib_corelib.pro
Normal file
33
xapp/libqt5-base/files/old/patch-src_corelib_corelib.pro
Normal file
@@ -0,0 +1,33 @@
|
||||
As we moved the libraries of Qt5 from /usr/local/lib to /usr/local/lib/qt5 the
|
||||
cmake files would get installed into /usr/local/lib/qt5/cmake. This however is
|
||||
not really convenient for use with other applications depending on Qt via cmake.
|
||||
|
||||
For ports we could modify cmake.mk to always append /usr/local/lib/qt5 to the
|
||||
search path. This would however still break applications outside of the ports
|
||||
tree that users want to compile via cmake. An other option would be to patch
|
||||
devel/cmake to add /usr/local/lib/qt5/cmake to the default search paths.
|
||||
|
||||
We chose the third option. To patch qmake's internal cmake generation function
|
||||
to fix up the paths so that cmake files still land in the the "correct" location
|
||||
in /usr/local/lib/cmake -- as this seemed to be the least intrusive method.
|
||||
|
||||
|
||||
--- src/corelib/corelib.pro.orig 2017-06-28 11:54:29.000000000 +0200
|
||||
+++ src/corelib/corelib.pro 2017-07-20 23:06:37.223900000 +0200
|
||||
@@ -130,7 +130,7 @@
|
||||
$$cmake_umbrella_config_version_file.output \
|
||||
$$cmake_umbrella_config_module_location_for_install.output
|
||||
|
||||
-cmake_qt5_umbrella_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5
|
||||
+cmake_qt5_umbrella_module_files.path = $$[QT_INSTALL_PREFIX]/lib/cmake/Qt5
|
||||
|
||||
QMAKE_SUBSTITUTES += \
|
||||
ctest_macros_file \
|
||||
@@ -143,6 +143,6 @@
|
||||
|
||||
ctest_qt5_module_files.files += $$ctest_macros_file.output $$cmake_extras_mkspec_dir_for_install.output
|
||||
|
||||
-ctest_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5Core
|
||||
+ctest_qt5_module_files.path = $$[QT_INSTALL_PREFIX]/lib/cmake/Qt5Core
|
||||
|
||||
INSTALLS += ctest_qt5_module_files cmake_qt5_umbrella_module_files
|
||||
@@ -0,0 +1,20 @@
|
||||
--- src/corelib/time/qtimezoneprivate_tz.cpp.orig 2019-11-01 21:30:15 UTC
|
||||
+++ src/corelib/time/qtimezoneprivate_tz.cpp
|
||||
@@ -1126,6 +1126,17 @@ QByteArray QTzTimeZonePrivate::systemTimeZoneId() cons
|
||||
}
|
||||
}
|
||||
|
||||
+ // On many FreeBSD systems, /etc/localtime is a regular file while the actual name is in /var/db/zoneinfo
|
||||
+ if (ianaId.isEmpty()) {
|
||||
+ QFile tzif(QStringLiteral("/var/db/zoneinfo"));
|
||||
+ if (tzif.open(QIODevice::ReadOnly)) {
|
||||
+ // TODO QTextStream inefficient, replace later
|
||||
+ QTextStream ts(&tzif);
|
||||
+ if (!ts.atEnd())
|
||||
+ ianaId = ts.readLine().toUtf8();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// On some Red Hat distros /etc/localtime is real file with name held in /etc/sysconfig/clock
|
||||
// in a line like ZONE="Europe/Oslo" or TIMEZONE="Europe/Oslo"
|
||||
if (ianaId.isEmpty()) {
|
||||
@@ -0,0 +1,97 @@
|
||||
--- src/network/ssl/qsslsocket_openssl_symbols_p.h.orig 2020-05-05 11:59:27 UTC
|
||||
+++ src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
@@ -72,6 +72,14 @@
|
||||
#include "qsslsocket_openssl_p.h"
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
|
||||
+# define TLS1_2_VERSION 0x0303
|
||||
+# define TLS_MAX_VERSION TLS1_2_VERSION
|
||||
+# define TLS_ANY_VERSION 0x10000
|
||||
+# define DTLS1_2_VERSION 0xFEFD
|
||||
+# define DTLS_MAX_VERSION DTLS1_2_VERSION
|
||||
+#endif
|
||||
+
|
||||
#if QT_CONFIG(ocsp)
|
||||
#include "qocsp_p.h"
|
||||
#endif
|
||||
@@ -225,22 +233,50 @@ QT_BEGIN_NAMESPACE
|
||||
// content of the header here. Later, can be better sorted/split into groups,
|
||||
// depending on the functionality.
|
||||
|
||||
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
|
||||
+// LibreSSL 2.7 has stack_st but not OPENSSL_STACK
|
||||
+typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */
|
||||
+// From the signature in LibreSSL
|
||||
+#define OPENSSL_INIT_SETTINGS void
|
||||
+// https://github.com/openssl/openssl/blob/master/include/openssl/x509_vfy.h#L63
|
||||
+typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
|
||||
+#endif
|
||||
+
|
||||
const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
|
||||
|
||||
Q_AUTOTEST_EXPORT BIO *q_BIO_new(const BIO_METHOD *a);
|
||||
Q_AUTOTEST_EXPORT const BIO_METHOD *q_BIO_s_mem();
|
||||
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+#define q_DSA_bits(dsa) q_BN_num_bits((dsa)->p)
|
||||
+#else
|
||||
int q_DSA_bits(DSA *a);
|
||||
+#endif
|
||||
int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
|
||||
Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a);
|
||||
int q_EVP_PKEY_base_id(EVP_PKEY *a);
|
||||
int q_RSA_bits(RSA *a);
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+int q_sk_num(OPENSSL_STACK *a);
|
||||
+void q_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
+OPENSSL_STACK *q_sk_new_null();
|
||||
+void q_sk_push(OPENSSL_STACK *st, void *data);
|
||||
+void q_sk_free(OPENSSL_STACK *a);
|
||||
+void * q_sk_value(OPENSSL_STACK *a, int b);
|
||||
+#define q_OPENSSL_sk_num(a) q_sk_num(a)
|
||||
+#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b)
|
||||
+#define q_OPENSSL_sk_new_null() q_sk_new_null()
|
||||
+#define q_OPENSSL_sk_push(a, b) q_sk_push(a, b)
|
||||
+#define q_OPENSSL_sk_free q_sk_free
|
||||
+#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b)
|
||||
+#else
|
||||
Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
Q_AUTOTEST_EXPORT OPENSSL_STACK *q_OPENSSL_sk_new_null();
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_free(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
|
||||
+#endif
|
||||
int q_SSL_session_reused(SSL *a);
|
||||
unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
|
||||
int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
|
||||
@@ -266,8 +302,13 @@ int q_DH_bits(DH *dh);
|
||||
# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
|
||||
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
|
||||
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
|
||||
+#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
|
||||
+#else
|
||||
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st)
|
||||
#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i)
|
||||
+#endif
|
||||
|
||||
#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
|
||||
| OPENSSL_INIT_ADD_ALL_DIGESTS \
|
||||
@@ -494,12 +535,14 @@ int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
|
||||
int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
|
||||
int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
|
||||
X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
|
||||
+#if !defined(LIBRESSL_VERSION_NUMBER)
|
||||
SSL_CONF_CTX *q_SSL_CONF_CTX_new();
|
||||
void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
|
||||
void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
|
||||
unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
|
||||
int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
|
||||
int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
|
||||
+#endif
|
||||
void q_SSL_free(SSL *a);
|
||||
STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
|
||||
const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
|
||||
@@ -0,0 +1,62 @@
|
||||
--- ./src/plugins/sqldrivers/mysql/qsql_mysql.cpp.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./src/plugins/sqldrivers/mysql/qsql_mysql.cpp 2019-03-17 19:22:28.531459000 +0200
|
||||
@@ -80,6 +80,14 @@
|
||||
// by redefining it we can regain source compatibility.
|
||||
using my_bool = decltype(mysql_stmt_bind_result(nullptr, nullptr));
|
||||
|
||||
+// MYSQL 8.0.1 no longer uses the my_bool type:
|
||||
+// https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html
|
||||
+#if (MYSQL_VERSION_ID >= 80001) && !defined(MARIADB_BASE_VERSION)
|
||||
+typedef bool mysql_bool;
|
||||
+#else
|
||||
+typedef my_bool mysql_bool;
|
||||
+#endif
|
||||
+
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QMYSQLDriverPrivate : public QSqlDriverPrivate
|
||||
@@ -238,7 +246,7 @@
|
||||
myField(0), type(QVariant::Invalid)
|
||||
{}
|
||||
char *outField;
|
||||
- my_bool nullIndicator;
|
||||
+ mysql_bool nullIndicator;
|
||||
ulong bufLength;
|
||||
MYSQL_FIELD *myField;
|
||||
QVariant::Type type;
|
||||
@@ -992,7 +1000,7 @@
|
||||
MYSQL_BIND* currBind;
|
||||
QVector<MYSQL_TIME *> timeVector;
|
||||
QVector<QByteArray> stringVector;
|
||||
- QVector<my_bool> nullVector;
|
||||
+ QVector<mysql_bool> nullVector;
|
||||
|
||||
const QVector<QVariant> values = boundValues();
|
||||
|
||||
@@ -1013,7 +1021,7 @@
|
||||
|
||||
currBind = &d->outBinds[i];
|
||||
|
||||
- nullVector[i] = static_cast<my_bool>(val.isNull());
|
||||
+ nullVector[i] = static_cast<mysql_bool>(val.isNull());
|
||||
currBind->is_null = &nullVector[i];
|
||||
currBind->length = 0;
|
||||
currBind->is_unsigned = 0;
|
||||
@@ -1110,7 +1118,7 @@
|
||||
d->rowsAffected = mysql_stmt_affected_rows(d->stmt);
|
||||
|
||||
if (isSelect()) {
|
||||
- my_bool update_max_length = true;
|
||||
+ mysql_bool update_max_length = true;
|
||||
|
||||
r = mysql_stmt_bind_result(d->stmt, d->inBinds);
|
||||
if (r != 0) {
|
||||
@@ -1321,7 +1329,7 @@
|
||||
QString sslCAPath;
|
||||
QString sslCipher;
|
||||
#if MYSQL_VERSION_ID >= 50000
|
||||
- my_bool reconnect=false;
|
||||
+ mysql_bool reconnect=false;
|
||||
uint connectTimeout = 0;
|
||||
uint readTimeout = 0;
|
||||
uint writeTimeout = 0;
|
||||
@@ -0,0 +1,74 @@
|
||||
--- src/corelib/io/io.pri.orig 2018-02-08 18:24:48 UTC
|
||||
+++ src/corelib/io/io.pri
|
||||
@@ -178,6 +178,9 @@ win32 {
|
||||
SOURCES += \
|
||||
io/qstandardpaths_unix.cpp \
|
||||
io/qstorageinfo_unix.cpp
|
||||
+ freebsd {
|
||||
+ LIBS += -lkvm -lprocstat
|
||||
+ }
|
||||
}
|
||||
|
||||
linux|if(qnx:qtConfig(inotify)) {
|
||||
--- src/corelib/io/qlockfile_unix.cpp.orig 2018-02-08 18:24:48 UTC
|
||||
+++ src/corelib/io/qlockfile_unix.cpp
|
||||
@@ -75,6 +75,8 @@
|
||||
# include <sys/sysctl.h>
|
||||
# if !defined(Q_OS_NETBSD)
|
||||
# include <sys/user.h>
|
||||
+# include <kvm.h>
|
||||
+# include <libprocstat.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -246,23 +248,44 @@ QString QLockFilePrivate::processNameByPid(qint64 pid)
|
||||
struct kinfo_proc kp;
|
||||
int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, (int)pid, sizeof(struct kinfo_proc), 1 };
|
||||
# else
|
||||
+ QString nameFromProcstat;
|
||||
+ kvm_t *kvm = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "");
|
||||
+ if (kvm) {
|
||||
+ int cnt;
|
||||
+ struct kinfo_proc *kp = kvm_getprocs(kvm, KERN_PROC_PID, getpid(), &cnt);
|
||||
+ if (kp) {
|
||||
+ struct procstat *ps = procstat_open_sysctl();
|
||||
+ char **argv = procstat_getargv(ps, kp, 0);
|
||||
+ if (argv != nullptr && argv[0] != nullptr)
|
||||
+ nameFromProcstat = QString::fromLocal8Bit(argv[0]);
|
||||
+ procstat_close(ps);
|
||||
+ }
|
||||
+ kvm_close(kvm);
|
||||
+ }
|
||||
struct kinfo_proc kp;
|
||||
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, (int)pid };
|
||||
# endif
|
||||
- size_t len = sizeof(kp);
|
||||
- u_int mib_len = sizeof(mib)/sizeof(u_int);
|
||||
+ if (nameFromProcstat.isEmpty()) {
|
||||
+ size_t len = sizeof(kp);
|
||||
+ u_int mib_len = sizeof(mib)/sizeof(u_int);
|
||||
|
||||
- if (sysctl(mib, mib_len, &kp, &len, NULL, 0) < 0)
|
||||
- return QString();
|
||||
-
|
||||
+ if (sysctl(mib, mib_len, &kp, &len, NULL, 0) < 0)
|
||||
+ return QString();
|
||||
+ }
|
||||
# if defined(Q_OS_OPENBSD) || defined(Q_OS_NETBSD)
|
||||
if (kp.p_pid != pid)
|
||||
return QString();
|
||||
QString name = QFile::decodeName(kp.p_comm);
|
||||
# else
|
||||
- if (kp.ki_pid != pid)
|
||||
+ QString name;
|
||||
+ if (!nameFromProcstat.isEmpty()) {
|
||||
+ QFileInfo fi(nameFromProcstat);
|
||||
+ name = fi.fileName();
|
||||
+ }
|
||||
+ else if (kp.ki_pid != pid)
|
||||
return QString();
|
||||
- QString name = QFile::decodeName(kp.ki_comm);
|
||||
+ else
|
||||
+ name = QFile::decodeName(kp.ki_comm);
|
||||
# endif
|
||||
return name;
|
||||
@@ -0,0 +1,28 @@
|
||||
--- src/corelib/time/qtimezoneprivate_tz.cpp.orig 2020-05-11 08:15:08 UTC
|
||||
+++ src/corelib/time/qtimezoneprivate_tz.cpp
|
||||
@@ -1153,6 +1153,25 @@ QByteArray QTzTimeZonePrivate::systemTimeZoneId() cons
|
||||
}
|
||||
}
|
||||
|
||||
+ // On some FreeBSD systems, /etc/localtime is a regular file while
|
||||
+ // the actual name is in /var/db/zoneinfo
|
||||
+ if (ianaId.isEmpty()) {
|
||||
+ QFile tzif(QStringLiteral("/var/db/zoneinfo"));
|
||||
+ if (tzif.open(QIODevice::ReadOnly)) {
|
||||
+ const int maximumTZNameLength = 256;
|
||||
+ QByteArray tzcontents( tzif.read( maximumTZNameLength ) );
|
||||
+ if (tzcontents.size() >= 2) {
|
||||
+ // Shortest TZ would be UTC, or r/z, but there's special
|
||||
+ // cases "GB" and "US"
|
||||
+ const int newlineIndex = tzcontents.indexOf('\n');
|
||||
+ if (newlineIndex < 0) // No newline in file
|
||||
+ ianaId = tzcontents;
|
||||
+ if (newlineIndex > 2) // Newline, chop it off
|
||||
+ ianaId = tzcontents.left(newlineIndex);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// Some systems (e.g. uClibc) have a default value for $TZ in /etc/TZ:
|
||||
if (ianaId.isEmpty()) {
|
||||
QFile zone(QStringLiteral("/etc/TZ"));
|
||||
@@ -0,0 +1,99 @@
|
||||
Clean up interface type and MTU detection.
|
||||
|
||||
- Introduce a class SockPuppet that handles closing the socket
|
||||
automatically, and handles different address families as well.
|
||||
- Finding MTU requires using AF_LOCAL, cribbed that detail from ifconfig.c
|
||||
- Zero out structures more diligently, initialize pointers to nullptr.
|
||||
- In particular, don't use a union of structs passed in to ioctl().
|
||||
Make them separate structs (with block scope so the compiler might
|
||||
place them on top of each other, that would be ok).
|
||||
- IFM_FDDI (still) exists in 11.2, not in 12.0
|
||||
|
||||
--- src/network/kernel/qnetworkinterface_unix.cpp.orig 2019-10-25 07:16:48 UTC
|
||||
+++ src/network/kernel/qnetworkinterface_unix.cpp
|
||||
@@ -420,13 +420,24 @@ QT_BEGIN_INCLUDE_NAMESPACE
|
||||
#endif // QT_PLATFORM_UIKIT
|
||||
QT_END_INCLUDE_NAMESPACE
|
||||
|
||||
-static int openSocket(int &socket)
|
||||
+template<int address_family> struct SockPuppet
|
||||
{
|
||||
- if (socket == -1)
|
||||
- socket = qt_safe_socket(AF_INET, SOCK_DGRAM, 0);
|
||||
- return socket;
|
||||
-}
|
||||
+ int socket{-1};
|
||||
|
||||
+ int open()
|
||||
+ {
|
||||
+ if (socket == -1)
|
||||
+ socket = qt_safe_socket(address_family, SOCK_DGRAM, 0);
|
||||
+ return socket;
|
||||
+ }
|
||||
+
|
||||
+ ~SockPuppet()
|
||||
+ {
|
||||
+ if (socket != -1)
|
||||
+ qt_safe_close(socket);
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
static QNetworkInterface::InterfaceType probeIfType(int socket, int iftype, struct ifmediareq *req)
|
||||
{
|
||||
// Determine the interface type.
|
||||
@@ -480,16 +491,9 @@ static QNetworkInterface::InterfaceType probeIfType(in
|
||||
static QList<QNetworkInterfacePrivate *> createInterfaces(ifaddrs *rawList)
|
||||
{
|
||||
QList<QNetworkInterfacePrivate *> interfaces;
|
||||
- union {
|
||||
- struct ifmediareq mediareq;
|
||||
- struct ifreq req;
|
||||
- };
|
||||
- int socket = -1;
|
||||
- memset(&mediareq, 0, sizeof(mediareq));
|
||||
|
||||
- // ensure both structs start with the name field, of size IFNAMESIZ
|
||||
- Q_STATIC_ASSERT(sizeof(mediareq.ifm_name) == sizeof(req.ifr_name));
|
||||
- Q_ASSERT(&mediareq.ifm_name == &req.ifr_name);
|
||||
+ SockPuppet<AF_INET> socket;
|
||||
+ SockPuppet<AF_LOCAL> localSocket;
|
||||
|
||||
// on NetBSD we use AF_LINK and sockaddr_dl
|
||||
// scan the list for that family
|
||||
@@ -503,14 +507,22 @@ static QList<QNetworkInterfacePrivate *> createInterfa
|
||||
iface->name = QString::fromLatin1(ptr->ifa_name);
|
||||
iface->flags = convertFlags(ptr->ifa_flags);
|
||||
iface->hardwareAddress = iface->makeHwAddress(sdl->sdl_alen, (uchar*)LLADDR(sdl));
|
||||
+ {
|
||||
+ ifmediareq req;
|
||||
+ memset(&req, 0, sizeof(req));
|
||||
+ strncpy(req.ifm_name, ptr->ifa_name, sizeof(req.ifm_name));
|
||||
+ iface->type = probeIfType(socket.open(), sdl->sdl_type, &req);
|
||||
+ }
|
||||
+ {
|
||||
+ ifreq req;
|
||||
+ memset(&req, 0, sizeof(req));
|
||||
+ strncpy(req.ifr_name, ptr->ifa_name, sizeof(req.ifr_name));
|
||||
+ req.ifr_addr.sa_family = AF_LOCAL;
|
||||
+ iface->mtu = getMtu(localSocket.open(), &req);
|
||||
+ }
|
||||
|
||||
- qstrncpy(mediareq.ifm_name, ptr->ifa_name, sizeof(mediareq.ifm_name));
|
||||
- iface->type = probeIfType(openSocket(socket), sdl->sdl_type, &mediareq);
|
||||
- iface->mtu = getMtu(socket, &req);
|
||||
}
|
||||
|
||||
- if (socket != -1)
|
||||
- qt_safe_close(socket);
|
||||
return interfaces;
|
||||
}
|
||||
|
||||
@@ -609,7 +621,7 @@ static QList<QNetworkInterfacePrivate *> interfaceList
|
||||
{
|
||||
QList<QNetworkInterfacePrivate *> interfaces;
|
||||
|
||||
- ifaddrs *interfaceListing;
|
||||
+ ifaddrs *interfaceListing = nullptr;
|
||||
if (getifaddrs(&interfaceListing) == -1) {
|
||||
// error
|
||||
return interfaces;
|
||||
@@ -0,0 +1,17 @@
|
||||
Some extra includes for us.
|
||||
|
||||
--- src/network/socket/qnet_unix_p.h.orig 2018-12-03 11:15:26 UTC
|
||||
+++ src/network/socket/qnet_unix_p.h
|
||||
@@ -71,6 +71,12 @@
|
||||
# include <resolv.h>
|
||||
#endif
|
||||
|
||||
+#if defined(Q_OS_FREEBSD)
|
||||
+# include <net/if.h>
|
||||
+# include <net/if_types.h>
|
||||
+# include <net/if_var.h>
|
||||
+#endif
|
||||
+
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
// Almost always the same. If not, specify in qplatformdefs.h.
|
||||
@@ -0,0 +1,18 @@
|
||||
--- src/network/ssl/qsslcontext_openssl.cpp.orig 2020-05-17 21:00:32 UTC
|
||||
+++ src/network/ssl/qsslcontext_openssl.cpp
|
||||
@@ -696,6 +696,7 @@ void QSslContext::applyBackendConfig(QSslContext *sslC
|
||||
}
|
||||
#endif // ocsp
|
||||
|
||||
+#if !defined(LIBRESSL_VERSION_NUMBER)
|
||||
QSharedPointer<SSL_CONF_CTX> cctx(q_SSL_CONF_CTX_new(), &q_SSL_CONF_CTX_free);
|
||||
if (cctx) {
|
||||
q_SSL_CONF_CTX_set_ssl_ctx(cctx.data(), sslContext->ctx);
|
||||
@@ -746,6 +747,7 @@ void QSslContext::applyBackendConfig(QSslContext *sslC
|
||||
sslContext->errorStr = msgErrorSettingBackendConfig(QSslSocket::tr("SSL_CONF_CTX_new() failed"));
|
||||
sslContext->errorCode = QSslError::UnspecifiedError;
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
@@ -0,0 +1,87 @@
|
||||
--- src/network/ssl/qsslsocket_openssl_symbols.cpp.orig 2020-05-05 11:59:27 UTC
|
||||
+++ src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
@@ -147,6 +147,14 @@ DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *
|
||||
DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return)
|
||||
DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return)
|
||||
DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return)
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+DEFINEFUNC(int, sk_num, OPENSSL_STACK *a, a, return -1, return)
|
||||
+DEFINEFUNC2(void, sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
|
||||
+DEFINEFUNC(OPENSSL_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
|
||||
+DEFINEFUNC2(void, sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
|
||||
+DEFINEFUNC(void, sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
|
||||
+DEFINEFUNC2(void *, sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return)
|
||||
+#else
|
||||
DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return)
|
||||
DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
|
||||
DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
|
||||
@@ -154,6 +162,7 @@ DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMY
|
||||
DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
|
||||
DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
|
||||
DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return)
|
||||
+#endif
|
||||
DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return)
|
||||
DEFINEFUNC2(unsigned long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, unsigned long op, op, return 0, return)
|
||||
#ifdef TLS1_3_VERSION
|
||||
@@ -351,12 +360,14 @@ DEFINEFUNC2(int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a
|
||||
DEFINEFUNC2(int, SSL_CTX_use_RSAPrivateKey, SSL_CTX *a, a, RSA *b, b, return -1, return)
|
||||
DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return)
|
||||
DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return nullptr, return)
|
||||
+#if !defined(LIBRESSL_VERSION_NUMBER)
|
||||
DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return nullptr, return);
|
||||
DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return);
|
||||
DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return);
|
||||
DEFINEFUNC2(unsigned int, SSL_CONF_CTX_set_flags, SSL_CONF_CTX *a, a, unsigned int b, b, return 0, return);
|
||||
DEFINEFUNC(int, SSL_CONF_CTX_finish, SSL_CONF_CTX *a, a, return 0, return);
|
||||
DEFINEFUNC3(int, SSL_CONF_cmd, SSL_CONF_CTX *a, a, const char *b, b, const char *c, c, return 0, return);
|
||||
+#endif
|
||||
DEFINEFUNC(void, SSL_free, SSL *a, a, return, DUMMYARG)
|
||||
DEFINEFUNC(STACK_OF(SSL_CIPHER) *, SSL_get_ciphers, const SSL *a, a, return nullptr, return)
|
||||
DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr, return)
|
||||
@@ -834,12 +845,21 @@ bool q_resolveOpenSslSymbols()
|
||||
RESOLVEFUNC(EVP_PKEY_up_ref)
|
||||
RESOLVEFUNC(EVP_PKEY_base_id)
|
||||
RESOLVEFUNC(RSA_bits)
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+ RESOLVEFUNC(sk_new_null)
|
||||
+ RESOLVEFUNC(sk_push)
|
||||
+ RESOLVEFUNC(sk_free)
|
||||
+ RESOLVEFUNC(sk_num)
|
||||
+ RESOLVEFUNC(sk_pop_free)
|
||||
+ RESOLVEFUNC(sk_value)
|
||||
+#else
|
||||
RESOLVEFUNC(OPENSSL_sk_new_null)
|
||||
RESOLVEFUNC(OPENSSL_sk_push)
|
||||
RESOLVEFUNC(OPENSSL_sk_free)
|
||||
RESOLVEFUNC(OPENSSL_sk_num)
|
||||
RESOLVEFUNC(OPENSSL_sk_pop_free)
|
||||
RESOLVEFUNC(OPENSSL_sk_value)
|
||||
+#endif
|
||||
RESOLVEFUNC(DH_get0_pqg)
|
||||
RESOLVEFUNC(SSL_CTX_set_options)
|
||||
|
||||
@@ -881,7 +901,9 @@ bool q_resolveOpenSslSymbols()
|
||||
|
||||
RESOLVEFUNC(SSL_SESSION_get_ticket_lifetime_hint)
|
||||
RESOLVEFUNC(DH_bits)
|
||||
+#ifndef LIBRESSL_VERSION_NUMBER
|
||||
RESOLVEFUNC(DSA_bits)
|
||||
+#endif
|
||||
|
||||
#if QT_CONFIG(dtls)
|
||||
RESOLVEFUNC(DTLSv1_listen)
|
||||
@@ -1041,12 +1063,14 @@ bool q_resolveOpenSslSymbols()
|
||||
RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
|
||||
RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
|
||||
RESOLVEFUNC(SSL_CTX_get_cert_store);
|
||||
+#if !defined(LIBRESSL_VERSION_NUMBER)
|
||||
RESOLVEFUNC(SSL_CONF_CTX_new);
|
||||
RESOLVEFUNC(SSL_CONF_CTX_free);
|
||||
RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx);
|
||||
RESOLVEFUNC(SSL_CONF_CTX_set_flags);
|
||||
RESOLVEFUNC(SSL_CONF_CTX_finish);
|
||||
RESOLVEFUNC(SSL_CONF_cmd);
|
||||
+#endif
|
||||
RESOLVEFUNC(SSL_accept)
|
||||
RESOLVEFUNC(SSL_clear)
|
||||
RESOLVEFUNC(SSL_connect)
|
||||
@@ -0,0 +1,97 @@
|
||||
--- src/network/ssl/qsslsocket_openssl_symbols_p.h.orig 2020-05-05 11:59:27 UTC
|
||||
+++ src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
@@ -72,6 +72,14 @@
|
||||
#include "qsslsocket_openssl_p.h"
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
|
||||
+# define TLS1_2_VERSION 0x0303
|
||||
+# define TLS_MAX_VERSION TLS1_2_VERSION
|
||||
+# define TLS_ANY_VERSION 0x10000
|
||||
+# define DTLS1_2_VERSION 0xFEFD
|
||||
+# define DTLS_MAX_VERSION DTLS1_2_VERSION
|
||||
+#endif
|
||||
+
|
||||
#if QT_CONFIG(ocsp)
|
||||
#include "qocsp_p.h"
|
||||
#endif
|
||||
@@ -225,22 +233,50 @@ QT_BEGIN_NAMESPACE
|
||||
// content of the header here. Later, can be better sorted/split into groups,
|
||||
// depending on the functionality.
|
||||
|
||||
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
|
||||
+// LibreSSL 2.7 has stack_st but not OPENSSL_STACK
|
||||
+typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */
|
||||
+// From the signature in LibreSSL
|
||||
+#define OPENSSL_INIT_SETTINGS void
|
||||
+// https://github.com/openssl/openssl/blob/master/include/openssl/x509_vfy.h#L63
|
||||
+typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
|
||||
+#endif
|
||||
+
|
||||
const unsigned char * q_ASN1_STRING_get0_data(const ASN1_STRING *x);
|
||||
|
||||
Q_AUTOTEST_EXPORT BIO *q_BIO_new(const BIO_METHOD *a);
|
||||
Q_AUTOTEST_EXPORT const BIO_METHOD *q_BIO_s_mem();
|
||||
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+#define q_DSA_bits(dsa) q_BN_num_bits((dsa)->p)
|
||||
+#else
|
||||
int q_DSA_bits(DSA *a);
|
||||
+#endif
|
||||
int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
|
||||
Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a);
|
||||
int q_EVP_PKEY_base_id(EVP_PKEY *a);
|
||||
int q_RSA_bits(RSA *a);
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+int q_sk_num(OPENSSL_STACK *a);
|
||||
+void q_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
+OPENSSL_STACK *q_sk_new_null();
|
||||
+void q_sk_push(OPENSSL_STACK *st, void *data);
|
||||
+void q_sk_free(OPENSSL_STACK *a);
|
||||
+void * q_sk_value(OPENSSL_STACK *a, int b);
|
||||
+#define q_OPENSSL_sk_num(a) q_sk_num(a)
|
||||
+#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b)
|
||||
+#define q_OPENSSL_sk_new_null() q_sk_new_null()
|
||||
+#define q_OPENSSL_sk_push(a, b) q_sk_push(a, b)
|
||||
+#define q_OPENSSL_sk_free q_sk_free
|
||||
+#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b)
|
||||
+#else
|
||||
Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
Q_AUTOTEST_EXPORT OPENSSL_STACK *q_OPENSSL_sk_new_null();
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_free(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
|
||||
+#endif
|
||||
int q_SSL_session_reused(SSL *a);
|
||||
unsigned long q_SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
|
||||
int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
|
||||
@@ -266,8 +302,13 @@ int q_DH_bits(DH *dh);
|
||||
# define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
|
||||
| OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
|
||||
|
||||
+#ifdef LIBRESSL_VERSION_NUMBER
|
||||
+#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
|
||||
+#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
|
||||
+#else
|
||||
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_OPENSSL_sk_num)(st)
|
||||
#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_OPENSSL_sk_value)(st, i)
|
||||
+#endif
|
||||
|
||||
#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
|
||||
| OPENSSL_INIT_ADD_ALL_DIGESTS \
|
||||
@@ -494,12 +535,14 @@ int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
|
||||
int q_SSL_CTX_use_RSAPrivateKey(SSL_CTX *a, RSA *b);
|
||||
int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
|
||||
X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
|
||||
+#if !defined(LIBRESSL_VERSION_NUMBER)
|
||||
SSL_CONF_CTX *q_SSL_CONF_CTX_new();
|
||||
void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
|
||||
void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
|
||||
unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
|
||||
int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
|
||||
int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
|
||||
+#endif
|
||||
void q_SSL_free(SSL *a);
|
||||
STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
|
||||
const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
|
||||
@@ -0,0 +1,54 @@
|
||||
Determine suitable bearer. This code is basically the same
|
||||
as the Linux code, except out ioctl()s are named differently
|
||||
and we need an AF_LOCAL socket (this detail cribbed from ifconfig.c).
|
||||
If getting the HW address succeeds, assume it's Ethernet. Tested
|
||||
with two Ethernet cards and a vlan (all of which have a MAC reported
|
||||
by ifconfig).
|
||||
|
||||
--- src/plugins/bearer/generic/qgenericengine.cpp.orig 2018-12-03 11:15:26 UTC
|
||||
+++ src/plugins/bearer/generic/qgenericengine.cpp
|
||||
@@ -82,7 +82,7 @@ using namespace ABI::Windows::Networking::Connectivity
|
||||
// needed as interface is used as parameter name in qGetInterfaceType
|
||||
#undef interface
|
||||
|
||||
-#ifdef Q_OS_LINUX
|
||||
+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <net/if.h>
|
||||
@@ -139,6 +139,23 @@ static QNetworkConfiguration::BearerType qGetInterface
|
||||
|
||||
if (result >= 0 && request.ifr_hwaddr.sa_family == ARPHRD_ETHER)
|
||||
return QNetworkConfiguration::BearerEthernet;
|
||||
+
|
||||
+#elif defined(Q_OS_FREEBSD)
|
||||
+ int sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
|
||||
+
|
||||
+ ifreq request;
|
||||
+ memset(&request, 0, sizeof(struct ifreq));
|
||||
+ strncpy(request.ifr_name, interface.toLocal8Bit().data(), sizeof(request.ifr_name) - 1);
|
||||
+ request.ifr_name[sizeof(request.ifr_name) - 1] = '\0';
|
||||
+
|
||||
+ if (sock >= 0) {
|
||||
+ int result = ioctl(sock, SIOCGHWADDR, &request);
|
||||
+ close(sock);
|
||||
+
|
||||
+ if (result >= 0)
|
||||
+ return QNetworkConfiguration::BearerEthernet;
|
||||
+ }
|
||||
+
|
||||
#elif defined(Q_OS_WINRT)
|
||||
ComPtr<INetworkInformationStatics> networkInfoStatics;
|
||||
HRESULT hr = GetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Networking_Connectivity_NetworkInformation).Get(), &networkInfoStatics);
|
||||
@@ -231,9 +248,11 @@ static QNetworkConfiguration::BearerType qGetInterface
|
||||
QGenericEngine::QGenericEngine(QObject *parent)
|
||||
: QBearerEngineImpl(parent)
|
||||
{
|
||||
+#ifndef QT_NO_NETWORKINTERFACE
|
||||
//workaround for deadlock in __cxa_guard_acquire with webkit on macos x
|
||||
//initialise the Q_GLOBAL_STATIC in same thread as the AtomicallyInitializedStatic
|
||||
(void)QNetworkInterface::interfaceFromIndex(0);
|
||||
+#endif
|
||||
}
|
||||
|
||||
QGenericEngine::~QGenericEngine()
|
||||
12
xapp/libqt5-base/files/patch-x-configure
Normal file
12
xapp/libqt5-base/files/patch-x-configure
Normal file
@@ -0,0 +1,12 @@
|
||||
--- ./configure.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./configure 2019-03-17 13:46:10.483553000 +0200
|
||||
@@ -855,7 +855,7 @@
|
||||
fi
|
||||
|
||||
if [ -n "$CFG_HOST_QT_TOOLS_PATH" ]; then
|
||||
- "$CFG_HOST_QT_TOOLS_PATH/qmake" -qtconf "$QTCONFFILE" "$relpathMangled" -- "$@"
|
||||
+ "$CFG_HOST_QT_TOOLS_PATH/qmake" -qtconf "$QTCONFFILE" "$relpathMangled" -- "$@"
|
||||
else
|
||||
- "$outpath/bin/qmake" "$relpathMangled" -- "$@"
|
||||
+ "$outpath/bin/qmake" "$relpathMangled" -- "$@"
|
||||
fi
|
||||
@@ -0,0 +1,13 @@
|
||||
--- ./mkspecs/features/create_cmake.prf.orig 2019-03-17 19:45:17.993885000 +0200
|
||||
+++ ./mkspecs/features/create_cmake.prf 2019-03-17 19:45:03.170331000 +0200
|
||||
@@ -268,8 +268,8 @@
|
||||
CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.so
|
||||
CMAKE_LIB_SONAME = lib$${CMAKE_QT_STEM}.so
|
||||
} else {
|
||||
- CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.so.$$eval(QT.$${MODULE}.VERSION)
|
||||
- CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.so.$$eval(QT.$${MODULE}.VERSION)
|
||||
+ CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.so.$$section(QT.$${MODULE}.VERSION, ., 0, 0)
|
||||
+ CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.so.$$section(QT.$${MODULE}.VERSION, ., 0, 0)
|
||||
CMAKE_LIB_SONAME = lib$${CMAKE_QT_STEM}.so.$$section(QT.$${MODULE}.VERSION, ., 0, 0)
|
||||
}
|
||||
}
|
||||
10
xapp/libqt5-base/files/patch-x-mkspecs-features-moc.prf
Normal file
10
xapp/libqt5-base/files/patch-x-mkspecs-features-moc.prf
Normal file
@@ -0,0 +1,10 @@
|
||||
--- ./mkspecs/features/moc.prf.orig 2019-03-17 13:53:11.594774000 +0200
|
||||
+++ ./mkspecs/features/moc.prf 2019-03-17 13:53:21.097822000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
#global defaults
|
||||
-qtPrepareTool(QMAKE_MOC, moc)
|
||||
+qtPrepareTool(QMAKE_MOC, moc)
|
||||
isEmpty(MOC_DIR):MOC_DIR = .
|
||||
isEmpty(QMAKE_H_MOD_MOC):QMAKE_H_MOD_MOC = moc_
|
||||
isEmpty(QMAKE_EXT_CPP_MOC):QMAKE_EXT_CPP_MOC = .moc
|
||||
8
xapp/libqt5-base/files/patch-x-mkspecs-features-uic.prf
Normal file
8
xapp/libqt5-base/files/patch-x-mkspecs-features-uic.prf
Normal file
@@ -0,0 +1,8 @@
|
||||
--- ./mkspecs/features/uic.prf.orig 2019-03-17 13:52:21.138747000 +0200
|
||||
+++ ./mkspecs/features/uic.prf 2019-03-17 13:52:45.947642000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-qtPrepareTool(QMAKE_UIC, uic, _DEP)
|
||||
+qtPrepareTool(QMAKE_UIC, uic, _DEP)
|
||||
|
||||
isEmpty(UI_DIR):UI_DIR = .
|
||||
isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_
|
||||
33
xapp/libqt5-base/files/patch-x-qmake-Makefile.unix
Normal file
33
xapp/libqt5-base/files/patch-x-qmake-Makefile.unix
Normal file
@@ -0,0 +1,33 @@
|
||||
--- ./qmake/Makefile.unix.orig 2019-03-17 13:47:22.012382000 +0200
|
||||
+++ ./qmake/Makefile.unix 2019-03-17 13:48:27.561198000 +0200
|
||||
@@ -144,14 +144,14 @@
|
||||
CXXFLAGS = $(EXTRA_CXXFLAGS) $(CONFIG_CXXFLAGS) $(CPPFLAGS)
|
||||
LFLAGS = $(EXTRA_LFLAGS) $(CONFIG_LFLAGS)
|
||||
|
||||
-first all: $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
-qmake: $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
-binary: $(BUILD_PATH)/qmake/qmake$(EXEEXT)
|
||||
+first all: $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
+qmake: $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
+binary: $(BUILD_PATH)/qmake/qmake$(EXEEXT)
|
||||
|
||||
-$(BUILD_PATH)/bin/qmake$(EXEEXT): $(OBJS) $(QOBJS) qlibraryinfo.o
|
||||
+$(BUILD_PATH)/bin/qmake$(EXEEXT): $(OBJS) $(QOBJS) qlibraryinfo.o
|
||||
$(CXX) -o "$@" $(OBJS) $(QOBJS) qlibraryinfo.o $(LFLAGS)
|
||||
|
||||
-$(BUILD_PATH)/qmake/qmake$(EXEEXT): $(OBJS) $(QOBJS) qlibraryinfo_final.o
|
||||
+$(BUILD_PATH)/qmake/qmake$(EXEEXT): $(OBJS) $(QOBJS) qlibraryinfo_final.o
|
||||
$(CXX) -o "$@" $(OBJS) $(QOBJS) qlibraryinfo_final.o $(LFLAGS)
|
||||
|
||||
Makefile: $(SOURCE_PATH)/qmake/Makefile.unix
|
||||
@@ -162,8 +162,8 @@
|
||||
|
||||
distclean:: clean
|
||||
$(RM_RF) .deps
|
||||
- $(RM_F) $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
- $(RM_F) $(BUILD_PATH)/qmake/qmake$(EXEEXT)
|
||||
+ $(RM_F) $(BUILD_PATH)/bin/qmake$(EXEEXT)
|
||||
+ $(RM_F) $(BUILD_PATH)/qmake/qmake$(EXEEXT)
|
||||
$(RM_F) Makefile
|
||||
|
||||
depend:
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ./qmake/generators/unix/unixmake.cpp.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./qmake/generators/unix/unixmake.cpp 2019-03-17 19:22:28.499343000 +0200
|
||||
@@ -597,7 +597,7 @@
|
||||
&& !project->isActiveConfig("plugin")
|
||||
&& !project->isActiveConfig("unversioned_libname")) {
|
||||
if(project->isEmpty("QMAKE_HPUX_SHLIB")) {
|
||||
- links << "$(TARGET0)" << "$(TARGET1)" << "$(TARGET2)";
|
||||
+ links << "$(TARGET0)";
|
||||
} else {
|
||||
links << "$(TARGET0)";
|
||||
}
|
||||
@@ -0,0 +1,267 @@
|
||||
--- ./qmake/generators/unix/unixmake2.cpp.orig 2020-03-27 11:49:31.000000000 +0200
|
||||
+++ ./qmake/generators/unix/unixmake2.cpp 2020-05-15 18:12:54.807060000 +0200
|
||||
@@ -260,14 +260,12 @@
|
||||
} else if(!project->isActiveConfig("staticlib") && project->values("QMAKE_APP_FLAG").isEmpty()) {
|
||||
t << "TARGETA = " << fileVar("TARGETA") << Qt::endl;
|
||||
if(!project->isEmpty("QMAKE_BUNDLE")) {
|
||||
- t << "TARGETD = " << fileVar("TARGET_x.y") << Qt::endl;
|
||||
+ t << "TARGETD = " << fileVar("TARGET_x") << Qt::endl;
|
||||
t << "TARGET0 = " << fileVar("TARGET_") << Qt::endl;
|
||||
} else if (!project->isActiveConfig("unversioned_libname")) {
|
||||
t << "TARGET0 = " << fileVar("TARGET_") << Qt::endl;
|
||||
if (project->isEmpty("QMAKE_HPUX_SHLIB")) {
|
||||
- t << "TARGETD = " << fileVar("TARGET_x.y.z") << Qt::endl;
|
||||
- t << "TARGET1 = " << fileVar("TARGET_x") << Qt::endl;
|
||||
- t << "TARGET2 = " << fileVar("TARGET_x.y") << Qt::endl;
|
||||
+ t << "TARGETD = " << fileVar("TARGET_x") << Qt::endl;
|
||||
} else {
|
||||
t << "TARGETD = " << fileVar("TARGET_x") << Qt::endl;
|
||||
}
|
||||
@@ -598,7 +596,7 @@
|
||||
t << "\n\t";
|
||||
|
||||
if (!project->isActiveConfig("unversioned_libname"))
|
||||
- t << "-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)";
|
||||
+ t << "-$(DEL_FILE) $(TARGET) $(TARGET0)";
|
||||
else
|
||||
t << "-$(DEL_FILE) $(TARGET)";
|
||||
|
||||
@@ -606,9 +604,7 @@
|
||||
|
||||
if (!project->isActiveConfig("unversioned_libname")) {
|
||||
t << "\n\t"
|
||||
- << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET0)") << "\n\t"
|
||||
- << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET1)") << "\n\t"
|
||||
- << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET2)");
|
||||
+ << varGlue("QMAKE_LN_SHLIB","-"," "," $(TARGET) $(TARGET0)");
|
||||
}
|
||||
if (!destdir.isEmpty()) {
|
||||
t << "\n\t"
|
||||
@@ -618,11 +614,7 @@
|
||||
if (!project->isActiveConfig("unversioned_libname")) {
|
||||
t << "\n\t"
|
||||
<< "-$(DEL_FILE) " << destdir << "$(TARGET0)\n\t"
|
||||
- << "-$(DEL_FILE) " << destdir << "$(TARGET1)\n\t"
|
||||
- << "-$(DEL_FILE) " << destdir << "$(TARGET2)\n\t"
|
||||
- << "-$(MOVE) $(TARGET0) " << destdir << "$(TARGET0)\n\t"
|
||||
- << "-$(MOVE) $(TARGET1) " << destdir << "$(TARGET1)\n\t"
|
||||
- << "-$(MOVE) $(TARGET2) " << destdir << "$(TARGET2)";
|
||||
+ << "-$(MOVE) $(TARGET0) " << destdir << "$(TARGET0)";
|
||||
}
|
||||
}
|
||||
if(!project->isEmpty("QMAKE_POST_LINK"))
|
||||
@@ -762,14 +754,11 @@
|
||||
ProStringList commonSedArgs;
|
||||
if (!project->values("VERSION").isEmpty()) {
|
||||
const ProString shortVersion =
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN");
|
||||
+ project->first("VER_MAJ");
|
||||
commonSedArgs << "-e \"s,@SHORT_VERSION@," << shortVersion << ",g\" ";
|
||||
commonSedArgs << "-e \"s,\\$${QMAKE_SHORT_VERSION}," << shortVersion << ",g\" ";
|
||||
const ProString fullVersion =
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN") + "." +
|
||||
- project->first("VER_PAT");
|
||||
+ project->first("VER_MAJ");
|
||||
commonSedArgs << "-e \"s,@FULL_VERSION@," << fullVersion << ",g\" ";
|
||||
commonSedArgs << "-e \"s,\\$${QMAKE_FULL_VERSION}," << fullVersion << ",g\" ";
|
||||
}
|
||||
@@ -1188,6 +1177,7 @@
|
||||
}
|
||||
if(!project->isEmpty("TARGET"))
|
||||
project->values("TARGET").first().prepend(project->first("DESTDIR"));
|
||||
+
|
||||
} else if (project->isActiveConfig("staticlib")) {
|
||||
project->values("PRL_TARGET") =
|
||||
project->values("TARGET").first().prepend(project->first("QMAKE_PREFIX_STATICLIB"));
|
||||
@@ -1216,33 +1206,42 @@
|
||||
bundle_loc + project->first("TARGET");
|
||||
project->values("TARGET_").append(target);
|
||||
if (!project->isActiveConfig("shallow_bundle")) {
|
||||
- project->values("TARGET_x.y").append(project->first("QMAKE_BUNDLE") +
|
||||
+ project->values("TARGET_x").append(project->first("QMAKE_BUNDLE") +
|
||||
"/Versions/" +
|
||||
project->first("QMAKE_FRAMEWORK_VERSION") +
|
||||
bundle_loc + project->first("TARGET"));
|
||||
} else {
|
||||
- project->values("TARGET_x.y").append(target);
|
||||
+ project->values("TARGET_x").append(target);
|
||||
}
|
||||
} else if(project->isActiveConfig("plugin")) {
|
||||
+
|
||||
QString prefix;
|
||||
+
|
||||
if(!project->isActiveConfig("no_plugin_name_prefix"))
|
||||
prefix = "lib";
|
||||
project->values("PRL_TARGET").prepend(prefix + project->first("TARGET"));
|
||||
- project->values("TARGET_x.y.z").append(prefix +
|
||||
+
|
||||
+ project->values("TARGET_x").append(prefix +
|
||||
project->first("TARGET") + "." +
|
||||
project->first("QMAKE_EXTENSION_PLUGIN"));
|
||||
- if(project->isActiveConfig("lib_version_first"))
|
||||
- project->values("TARGET_x").append(prefix + project->first("TARGET") + "." +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("QMAKE_EXTENSION_PLUGIN"));
|
||||
- else
|
||||
- project->values("TARGET_x").append(prefix + project->first("TARGET") + "." +
|
||||
- project->first("QMAKE_EXTENSION_PLUGIN") +
|
||||
- "." + project->first("VER_MAJ"));
|
||||
- project->values("TARGET") = project->values("TARGET_x.y.z");
|
||||
+
|
||||
+ //if(project->isActiveConfig("lib_version_first"))
|
||||
+ // project->values("TARGET_x").append(prefix + project->first("TARGET") + "." +
|
||||
+ // project->first("VER_MAJ") + "." +
|
||||
+ // project->first("QMAKE_EXTENSION_PLUGIN"));
|
||||
+ //else
|
||||
+ // project->values("TARGET_x").append(prefix + project->first("TARGET") + "." +
|
||||
+ // project->first("QMAKE_EXTENSION_PLUGIN") +
|
||||
+ // "." + project->first("VER_MAJ"));
|
||||
+
|
||||
+ project->values("TARGET") = project->values("TARGET_x");
|
||||
+
|
||||
+
|
||||
} else if (!project->isEmpty("QMAKE_HPUX_SHLIB")) {
|
||||
+
|
||||
project->values("PRL_TARGET").prepend("lib" + project->first("TARGET"));
|
||||
project->values("TARGET_").append("lib" + project->first("TARGET") + ".sl");
|
||||
+
|
||||
if(project->isActiveConfig("lib_version_first"))
|
||||
project->values("TARGET_x").append("lib" + project->first("VER_MAJ") + "." +
|
||||
project->first("TARGET"));
|
||||
@@ -1250,38 +1249,27 @@
|
||||
project->values("TARGET_x").append("lib" + project->first("TARGET") + "." +
|
||||
project->first("VER_MAJ"));
|
||||
project->values("TARGET") = project->values("TARGET_x");
|
||||
+
|
||||
+
|
||||
} else if (!project->isEmpty("QMAKE_AIX_SHLIB")) {
|
||||
project->values("PRL_TARGET").prepend("lib" + project->first("TARGET"));
|
||||
+
|
||||
project->values("TARGET_").append(project->first("QMAKE_PREFIX_STATICLIB") + project->first("TARGET")
|
||||
+ "." + project->first("QMAKE_EXTENSION_STATICLIB"));
|
||||
if(project->isActiveConfig("lib_version_first")) {
|
||||
+
|
||||
project->values("TARGET_x").append("lib" + project->first("TARGET") + "." +
|
||||
project->first("VER_MAJ") + "." +
|
||||
project->first("QMAKE_EXTENSION_SHLIB"));
|
||||
- project->values("TARGET_x.y").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("VER_MAJ") +
|
||||
- "." + project->first("VER_MIN") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB"));
|
||||
- project->values("TARGET_x.y.z").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN") + "." +
|
||||
- project->first("VER_PAT") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB"));
|
||||
+
|
||||
+
|
||||
} else {
|
||||
project->values("TARGET_x").append("lib" + project->first("TARGET") + "." +
|
||||
project->first("QMAKE_EXTENSION_SHLIB") +
|
||||
"." + project->first("VER_MAJ"));
|
||||
- project->values("TARGET_x.y").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB") +
|
||||
- "." + project->first("VER_MAJ") +
|
||||
- "." + project->first("VER_MIN"));
|
||||
- project->values("TARGET_x.y.z").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB") + "." +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN") + "." +
|
||||
- project->first("VER_PAT"));
|
||||
}
|
||||
- project->values("TARGET") = project->values("TARGET_x.y.z");
|
||||
+ project->values("TARGET") = project->values("TARGET_x");
|
||||
+
|
||||
} else {
|
||||
project->values("PRL_TARGET").prepend("lib" + project->first("TARGET"));
|
||||
project->values("TARGET_").append("lib" + project->first("TARGET") + "." +
|
||||
@@ -1290,49 +1278,36 @@
|
||||
project->values("TARGET_x").append("lib" + project->first("TARGET") + "." +
|
||||
project->first("VER_MAJ") + "." +
|
||||
project->first("QMAKE_EXTENSION_SHLIB"));
|
||||
- project->values("TARGET_x.y").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("VER_MAJ") +
|
||||
- "." + project->first("VER_MIN") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB"));
|
||||
- project->values("TARGET_x.y.z").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN") + "." +
|
||||
- project->first("VER_PAT") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB"));
|
||||
+
|
||||
} else {
|
||||
project->values("TARGET_x").append("lib" + project->first("TARGET") + "." +
|
||||
project->first("QMAKE_EXTENSION_SHLIB") +
|
||||
"." + project->first("VER_MAJ"));
|
||||
- project->values("TARGET_x.y").append("lib" + project->first("TARGET") + "." +
|
||||
- project->first("QMAKE_EXTENSION_SHLIB")
|
||||
- + "." + project->first("VER_MAJ") +
|
||||
- "." + project->first("VER_MIN"));
|
||||
- project->values("TARGET_x.y.z").append("lib" + project->first("TARGET") +
|
||||
- "." +
|
||||
- project->first(
|
||||
- "QMAKE_EXTENSION_SHLIB") + "." +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN") + "." +
|
||||
- project->first("VER_PAT"));
|
||||
}
|
||||
if (project->isActiveConfig("unversioned_libname"))
|
||||
project->values("TARGET") = project->values("TARGET_");
|
||||
else
|
||||
- project->values("TARGET") = project->values("TARGET_x.y.z");
|
||||
+ project->values("TARGET") = project->values("TARGET_x");
|
||||
}
|
||||
+
|
||||
if (!project->values("QMAKE_LFLAGS_SONAME").isEmpty()) {
|
||||
ProString soname;
|
||||
+
|
||||
if(project->isActiveConfig("plugin")) {
|
||||
+
|
||||
if(!project->values("TARGET").isEmpty())
|
||||
soname += project->first("TARGET");
|
||||
+
|
||||
+
|
||||
} else if(!project->isEmpty("QMAKE_BUNDLE")) {
|
||||
- soname += project->first("TARGET_x.y");
|
||||
+ soname += project->first("TARGET_x");
|
||||
} else if(project->isActiveConfig("unversioned_soname")) {
|
||||
soname = "lib" + project->first("QMAKE_ORIG_TARGET")
|
||||
+ "." + project->first("QMAKE_EXTENSION_SHLIB");
|
||||
} else if(!project->values("TARGET_x").isEmpty()) {
|
||||
soname += project->first("TARGET_x");
|
||||
}
|
||||
+
|
||||
if(!soname.isEmpty()) {
|
||||
if(project->isActiveConfig("absolute_library_soname") &&
|
||||
project->values("INSTALLS").indexOf("target") != -1 &&
|
||||
@@ -1376,17 +1351,14 @@
|
||||
if(!project->isEmpty("QMAKE_LFLAGS_COMPAT_VERSION")) {
|
||||
if(project->isEmpty("COMPAT_VERSION"))
|
||||
project->values("QMAKE_LFLAGS") += QString(project->first("QMAKE_LFLAGS_COMPAT_VERSION") +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN"));
|
||||
+ project->first("VER_MAJ"));
|
||||
else
|
||||
project->values("QMAKE_LFLAGS") += QString(project->first("QMAKE_LFLAGS_COMPAT_VERSION") +
|
||||
project->first("COMPATIBILITY_VERSION"));
|
||||
}
|
||||
if(!project->isEmpty("QMAKE_LFLAGS_VERSION")) {
|
||||
project->values("QMAKE_LFLAGS") += QString(project->first("QMAKE_LFLAGS_VERSION") +
|
||||
- project->first("VER_MAJ") + "." +
|
||||
- project->first("VER_MIN") + "." +
|
||||
- project->first("VER_PAT"));
|
||||
+ project->first("VER_MAJ"));
|
||||
}
|
||||
project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_SONAME");
|
||||
}
|
||||
@@ -1481,7 +1453,7 @@
|
||||
t << fileVar("TARGET");
|
||||
} else {
|
||||
if (project->isEmpty("QMAKE_HPUX_SHLIB"))
|
||||
- t << fileVar("TARGET_x.y.z") << ' ';
|
||||
+ t << fileVar("TARGET_x") << ' ';
|
||||
t << fileVar("TARGET_x") << ' ' << fileVar("TARGET_");
|
||||
}
|
||||
t << "'\n\n";
|
||||
11
xapp/libqt5-base/files/patch-x-src-corelib-configure.json
Normal file
11
xapp/libqt5-base/files/patch-x-src-corelib-configure.json
Normal file
@@ -0,0 +1,11 @@
|
||||
--- ./src/corelib/configure.json.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./src/corelib/configure.json 2019-03-17 19:22:28.506269000 +0200
|
||||
@@ -44,7 +44,7 @@
|
||||
},
|
||||
"headers": "glib.h",
|
||||
"sources": [
|
||||
- { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" }
|
||||
+ { "type": "pkgConfig", "args": "glib gthread" }
|
||||
]
|
||||
},
|
||||
"posix_iconv": {
|
||||
20
xapp/libqt5-base/files/patch-x-src-corelib-corelib.pro
Normal file
20
xapp/libqt5-base/files/patch-x-src-corelib-corelib.pro
Normal file
@@ -0,0 +1,20 @@
|
||||
--- ./src/corelib/corelib.pro.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./src/corelib/corelib.pro 2019-03-17 19:22:28.508051000 +0200
|
||||
@@ -133,7 +133,7 @@
|
||||
$$cmake_umbrella_config_version_file.output \
|
||||
$$cmake_umbrella_config_module_location_for_install.output
|
||||
|
||||
-cmake_qt5_umbrella_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5
|
||||
+cmake_qt5_umbrella_module_files.path = $$[QT_INSTALL_PREFIX]/lib/cmake/Qt5
|
||||
|
||||
QMAKE_SUBSTITUTES += \
|
||||
ctest_macros_file \
|
||||
@@ -146,7 +146,7 @@
|
||||
|
||||
ctest_qt5_module_files.files += $$ctest_macros_file.output $$cmake_extras_mkspec_dir_for_install.output
|
||||
|
||||
-ctest_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5Core
|
||||
+ctest_qt5_module_files.path = $$[QT_INSTALL_PREFIX]/lib/cmake/Qt5Core
|
||||
|
||||
INSTALLS += ctest_qt5_module_files cmake_qt5_umbrella_module_files
|
||||
|
||||
30
xapp/libqt5-base/files/patch-x-src-gui-configure.json
Normal file
30
xapp/libqt5-base/files/patch-x-src-gui-configure.json
Normal file
@@ -0,0 +1,30 @@
|
||||
--- ./src/gui/configure.json.orig 2019-03-06 09:59:50.000000000 +0200
|
||||
+++ ./src/gui/configure.json 2019-08-07 06:31:35.107450000 +0200
|
||||
@@ -238,10 +238,10 @@
|
||||
},
|
||||
"headers": "ft2build.h",
|
||||
"sources": [
|
||||
- { "type": "pkgConfig", "args": "freetype2" },
|
||||
- { "type": "freetype", "libs": "-lfreetype", "condition": "!config.wasm" },
|
||||
+ { "type": "pkgConfig", "args": "qtfreetype2" },
|
||||
+ { "type": "freetype", "libs": "-lqtfreetype", "condition": "!config.wasm" },
|
||||
{ "libs": "-s USE_FREETYPE=1", "condition": "config.wasm" },
|
||||
- { "libs": "-lfreetype" }
|
||||
+ { "libs": "-lqtfreetype" }
|
||||
],
|
||||
"use": [
|
||||
{ "lib": "zlib", "condition": "features.system-zlib" }
|
||||
@@ -259,10 +259,10 @@
|
||||
"FcPattern *pattern = 0;"
|
||||
]
|
||||
},
|
||||
- "headers": "fontconfig/fontconfig.h",
|
||||
+ "headers": "qtfontconfig/fontconfig/fontconfig.h",
|
||||
"sources": [
|
||||
- { "type": "pkgConfig", "args": "fontconfig" },
|
||||
- { "type": "freetype", "libs": "-lfontconfig" }
|
||||
+ { "type": "pkgConfig", "args": "qtfontconfig" },
|
||||
+ { "type": "freetype", "libs": "-lqtfontconfig" }
|
||||
],
|
||||
"use": "freetype"
|
||||
},
|
||||
@@ -0,0 +1,13 @@
|
||||
--- ./src/platformsupport/glxconvenience/qglxconvenience.cpp.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./src/platformsupport/glxconvenience/qglxconvenience.cpp 2019-03-17 19:22:28.527486000 +0200
|
||||
@@ -251,6 +251,10 @@
|
||||
if (requestedAlpha && actualAlpha != requestedAlpha)
|
||||
continue;
|
||||
|
||||
+ // avoid BGR visuals due to bugs elsewhere
|
||||
+ if ((visual->red_mask & 0x1) == 0x1)
|
||||
+ continue;
|
||||
+
|
||||
return candidate;
|
||||
}
|
||||
if (compatibleCandidate) {
|
||||
11
xapp/libqt5-base/files/patch-x-src-widgets-configure.json
Normal file
11
xapp/libqt5-base/files/patch-x-src-widgets-configure.json
Normal file
@@ -0,0 +1,11 @@
|
||||
--- ./src/widgets/configure.json.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./src/widgets/configure.json 2019-03-17 19:22:28.533401000 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
"gtk3": {
|
||||
"label": "GTK+ >= 3.6",
|
||||
"sources": [
|
||||
- { "type": "pkgConfig", "args": "gtk+-3.0 >= 3.6" }
|
||||
+ { "type": "pkgConfig", "args": "gtk+ >= 3.6" }
|
||||
]
|
||||
}
|
||||
},
|
||||
13
xapp/libqt5-base/files/patch-x-tests-tests.pro
Normal file
13
xapp/libqt5-base/files/patch-x-tests-tests.pro
Normal file
@@ -0,0 +1,13 @@
|
||||
--- ./tests/tests.pro.orig 2019-01-28 19:11:52.000000000 +0200
|
||||
+++ ./tests/tests.pro 2019-03-17 19:22:28.535049000 +0200
|
||||
@@ -2,8 +2,8 @@
|
||||
CONFIG += no_docs_target
|
||||
requires(qtHaveModule(testlib))
|
||||
|
||||
-SUBDIRS = auto
|
||||
+#SUBDIRS = auto
|
||||
|
||||
# benchmarks in debug mode is rarely sensible
|
||||
# benchmarks are not sensible for code coverage (here with tool testcocoon)
|
||||
-!uikit:!testcocoon:contains(QT_CONFIG, release): SUBDIRS += benchmarks
|
||||
+#!uikit:!testcocoon:contains(QT_CONFIG, release): SUBDIRS += benchmarks
|
||||
9
xapp/libqt5-base/pkg-descr
Normal file
9
xapp/libqt5-base/pkg-descr
Normal file
@@ -0,0 +1,9 @@
|
||||
Qt is a cross-platform application and UI framework for developers
|
||||
using C++ or QML, a CSS/JavaScript-like language.
|
||||
|
||||
With Qt, code can be reused efficiently to target multiple platforms
|
||||
with one code base. The modular C++ class library and developer tools
|
||||
easily enables developers to create applications for one platform and
|
||||
easily build and run to deploy on another platform.
|
||||
|
||||
WWW: http://qt-project.org
|
||||
3760
xapp/libqt5-base/pkg-plist
Normal file
3760
xapp/libqt5-base/pkg-plist
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user