qt5base-lts/config.tests/unix
Richard J. Moore cfbe03a6e0 QSslSocket: OpenSSL 1.1 backend
This patch-set implements a new QSslSocket backend based on OpenSSL 1.1.

1. General.

The code in this patch was organized to achieve these (somewhat contradicting)
objectives:
- keep the new code free of #if-ery, as far as possible;
- make it easy to clean away dead code when we're eventually able to retire
  out-dated OpenSSL versions;
- reduce the amount of code duplication.

If changes in some file/component were insignificant (~5 one-liners per file),
we still use pp-checks like: #if QT_CONFIG(opensslv11) ... #else ... #endif -
the logic is simple and it's still easy to clean the code if we remove the legacy
back-end. Where it saved #if-ery, we also introduced 'forward-compatible'
macros implementing equivalents of 1.1 functions using older OpenSSL.

In case some class contains a lot of version-specific ifdefs (particularly where
nested #if-ery was complex) we choose to split code into: "pre11" h/cpp files,
"shared" h/cpp files (they preserve their original names, e.g qsslsocket_openssl.cpp)
and "11" h/cpp files. If in future we remove the legacy back-end, "pre11" should be
removed; "shared" and "11" parts - merged.

2. Configuration.

We introduced a new feature 'opensslv11' which complements the pre-existing
'openssl' and 'openssl-linked' features. The 'opensslv11' feature is enabled
by a simple test which either compiles successfully or ends in a compilation
error, depending on a value of the OPENSSL_VERSION_NUMBER constant. If the
feature was enabled, we also append an additional compilation flag
-DOPENSSL_API_COMPAT=0x10100000L to make sure our new code does not contain
deprecated structures, function calls, macro-invocations from OpenSSL < 1.1.

Change-Id: I2064efbe9685def5d2bb2233a66f7581954fb74a
Reviewed-by: André Klitzing <aklitzing@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-07-04 18:03:59 +00:00
..
clock-gettime rework detection and use of clock_gettime()/librt 2017-06-17 06:48:04 +00:00
clock-monotonic rework detection and use of clock_gettime()/librt 2017-06-17 06:48:04 +00:00
cloexec Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-29 10:10:22 +02:00
cups rewrite library handling in configure 2016-08-18 17:09:52 +00:00
cxx11_random QRandomGenerator: don't internally rely on QT_HAS_INCLUDE 2017-06-20 16:37:35 +00:00
db2 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
dbus rewrite library handling in configure 2016-08-18 17:09:52 +00:00
dlopen config.tests: Replace LGPL21 with LGPL license header 2017-03-03 07:26:50 +00:00
doubleconversion rewrite library handling in configure 2016-08-18 17:09:52 +00:00
evdev Add evdev support for FreeBSD 2016-10-06 15:50:44 +00:00
eventfd Update the Intel copyright year 2016-01-21 22:44:16 +00:00
fontconfig fix freetype/fontconfig configure system 2016-10-04 20:20:39 +00:00
freetype fix freetype/fontconfig configure system 2016-10-04 20:20:39 +00:00
futimens QFileDevice/QFileInfo: Add fileTime() and setFileTime() 2017-04-27 18:44:15 +00:00
futimes QFileDevice/QFileInfo: Add fileTime() and setFileTime() 2017-04-27 18:44:15 +00:00
futimesat QFileDevice/QFileInfo: Add fileTime() and setFileTime() 2017-04-27 18:44:15 +00:00
getaddrinfo rewrite library handling in configure 2016-08-18 17:09:52 +00:00
getentropy QRandomGenerator: use getentropy on Linux & OpenBSD 2017-06-30 21:19:10 +00:00
getifaddrs rewrite library handling in configure 2016-08-18 17:09:52 +00:00
glib Updated license headers 2016-01-15 12:25:24 +00:00
gnu-libiconv rewrite library handling in configure 2016-08-18 17:09:52 +00:00
harfbuzz rewrite library handling in configure 2016-08-18 17:09:52 +00:00
ibase rewrite library handling in configure 2016-08-18 17:09:52 +00:00
iconv Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
icu rewrite library handling in configure 2016-08-18 17:09:52 +00:00
inotify Updated license headers 2016-01-15 12:25:24 +00:00
ipc_posix Updated license headers 2016-01-15 12:25:24 +00:00
ipc_sysv Updated license headers 2016-01-15 12:25:24 +00:00
ipv6ifname rewrite library handling in configure 2016-08-18 17:09:52 +00:00
journald rewrite library handling in configure 2016-08-18 17:09:52 +00:00
lgmon rewrite library handling in configure 2016-08-18 17:09:52 +00:00
libinput rewrite library handling in configure 2016-08-18 17:09:52 +00:00
libinput_axis_api Migrate libinput support away from QT_LIBRARY_VERSION 2016-10-10 16:59:26 +00:00
libjpeg Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-21 11:57:52 +02:00
libpng rewrite library handling in configure 2016-08-18 17:09:52 +00:00
libudev rewrite library handling in configure 2016-08-18 17:09:52 +00:00
mremap Updated license headers 2016-01-15 12:25:24 +00:00
mtdev rewrite library handling in configure 2016-08-18 17:09:52 +00:00
mysql rewrite library handling in configure 2016-08-18 17:09:52 +00:00
objcopy Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
oci rewrite library handling in configure 2016-08-18 17:09:52 +00:00
odbc rewrite library handling in configure 2016-08-18 17:09:52 +00:00
opengldesktop Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00
opengles2 Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00
opengles3 Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00
opengles31 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
opengles32 Add support for OpenGL ES 3.2 in QOpenGLExtraFunctions 2017-06-30 18:12:58 +00:00
openssl Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-06 09:04:55 +02:00
openssl11 QSslSocket: OpenSSL 1.1 backend 2017-07-04 18:03:59 +00:00
openvg Enable support for OpenVG 2016-11-17 15:00:00 +00:00
pcre2 PCRE2: fix the configure test 2017-03-28 07:09:01 +00:00
poll Updated license headers 2016-01-15 12:25:24 +00:00
pollts Updated license headers 2016-01-15 12:25:24 +00:00
posix_fallocate Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-29 10:10:22 +02:00
ppoll Updated license headers 2016-01-15 12:25:24 +00:00
pps rewrite library handling in configure 2016-08-18 17:09:52 +00:00
psql rewrite library handling in configure 2016-08-18 17:09:52 +00:00
qqnx_imf rewrite library handling in configure 2016-08-18 17:09:52 +00:00
reduce_exports get rid of test type 'shell' 2016-08-12 22:04:50 +00:00
reduce_relocs get rid of test type 'shell' 2016-08-12 22:04:50 +00:00
sctp rewrite library handling in configure 2016-08-18 17:09:52 +00:00
slog2 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
sqlite Merge remote-tracking branch 'origin/5.6' into 5.7 2016-06-29 10:10:22 +02:00
sqlite2 rewrite library handling in configure 2016-08-18 17:09:52 +00:00
stack-protector Enable stack-protector-strong for QNX 7.0.0 2017-06-13 14:01:24 +00:00
stl Updated license headers 2016-01-15 12:25:24 +00:00
sun-libiconv Disable app_bundle and lib_bundle when running configure tests 2013-07-16 13:44:18 +02:00
sys_auxv QRandomGenerator: don't internally rely on QT_HAS_INCLUDE 2017-06-20 16:37:35 +00:00
syslog Updated license headers 2016-01-15 12:25:24 +00:00
tds rewrite library handling in configure 2016-08-18 17:09:52 +00:00
tslib rewrite library handling in configure 2016-08-18 17:09:52 +00:00
xkbcommon Updated license headers 2016-01-15 12:25:24 +00:00
zlib rewrite library handling in configure 2016-08-18 17:09:52 +00:00
which.test Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00