Bug #96739 improve support for "system" openssl on windows
Submitted: 4 Sep 2019 8:57 Modified: 30 Sep 2019 17:21
Reporter: Tor Didriksen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:8.0.19 OS:Any
Assigned to: CPU Architecture:Any

[4 Sep 2019 8:57] Tor Didriksen
Description:
"system" OpenSSL on Windows is supported if an external OpenSSL package is installed.
The obvious place to install it is C:/Program Files/OpenSSL-Win64
This however, currently does not work, the whitespace creates problems.

How to repeat:
Install to C:/Program Files/OpenSSL-Win64
cmake --build . --config debug --target mysqladmin
...
...
...
LINK : fatal error LNK1181: cannot open 'C:\Program' [C:\ade\8.0-review\libmysql\mysqlclient.vcxproj]

The problem is the transitive dependency on OpenSSL libs from our mysys library. In mysqlclient.vcxproj we see:

    <Lib>
      <AdditionalOptions>%(AdditionalOptions) /machine:x64 C:/Program Files/OpenSSL-Win64/lib/libssl.lib C:/Program Files/OpenSSL-Win64/lib/libcrypto.lib</AdditionalOptions>
    </Lib>

Suggested fix:
Copy the libs to a place without any whitespace, i.e. the build directory, and link with the copied files instead.
[30 Sep 2019 17:21] Paul DuBois
Posted by developer:
 
Fixed in 8.0.19.

On Windows, the -DWITH_SSL=system option did not work if the path
name leading to the system OpenSSL libraries contained a space. This
is now handled. Also, -DWITH_SSL=yes is treated like
-DWITH_SSL=system, as on other platforms.