WL#10524: Dynamic Linking of OpenSSL in MySQL Server for Windows

Affects: Server-8.0   —   Status: Complete   —   Priority: Medium

MySQL Server will move to dynamic linking of OpenSSL in 8.0.

This means that customers can choose which OpenSSL library to use with MySQL,
e.g. due to security requirements imposed by the customer organization.

Build perspective

All who builds MySQL (pushbild, internal and external developers) will get
OpenSSL either from the external System repository (if exists) or from a MySQL
provided repository (for other platforms such as Windows).

Usage perspective

MySQL users will get correct libraries either by package dependencies (where
this is supported) or they will be bundled with the MySQL distribution (for
other platforms such as Windows and Mac).

Windows specifics

When installed we put all DLL's in the same directory as the binary
(see https://blogs.msdn.microsoft.com/oldnewthing/20110620-00/?p=10393)


Executables need to be able to find libeay32.dll and ssleay32.dll at runtime.
Windows has various ways of locating DLLs, see
https://msdn.microsoft.com/en-us/library/7d83bc18.aspx. The common approach is
to store DLLs in the directory where the executable is stored.

The chosen solution should work for tarballs produced by pushbuild (e.g.
third-party-openssl-1.0.2.k) and publicly available downloads of OpenSSL (e.g.
https://slproweb.com/download/Win64OpenSSL-1_0_2k.exe)

The only visible changes to external users will be that mysql executables and
libraries are linked dynamically with OpenSSL .DLLs, and that these .DLLs will
installed together with mysql executables.