Hi,
Summary of Changes:
According to the postgresql-17 requirements
https://www.postgresql.org/docs/17/install-requirements.htmlthe minimum required version of openssl is 1.0.2.
In that version, the naming convention on windows is still ssleay32.[lib|dll] and
libeay32.[lib|dll] instead of libssl.[lib|dll] and libcrypto.[lib|dll].
It changed in version 1.1.0
https://github.com/openssl/openssl/issues/10332#issuecomment-549027653Thus there is a bug in meson.build as it only supports libssl.lib and libcrypto.lib,
hence a simple patch that fixes the issue and supports both conventions.
I also submitted a pull request on GitHub, which can be found here:
https://github.com/postgres/postgres/pull/188There are two simple changes in the meson.build file.
Reason for Changes:
Add support for the old naming libs convention on windows (ssleay32.lib and libeay32.lib).
Testing:
The patch has been tested against postgres-17 and openssl v1.0.2 in our environment on various platforms (lnx, win, ...)
Patch:
diff --git a/meson.build b/meson.build
index 451c3f6d85..50fa6d865b 100644
--- a/meson.build
+++ b/meson.build
@@ -1337,12 +1337,12 @@ if sslopt in ['auto', 'openssl']
# via library + headers
if not ssl.found()
- ssl_lib = cc.find_library('ssl',
+ ssl_lib = cc.find_library(['ssl', 'ssleay32'],
dirs: test_lib_d,
header_include_directories: postgres_inc,
has_headers: ['openssl/ssl.h', 'openssl/err.h'],
required: openssl_required)
- crypto_lib = cc.find_library('crypto',
+ crypto_lib = cc.find_library(['crypto', 'libeay32'],
dirs: test_lib_d,
required: openssl_required)
if ssl_lib.found() and crypto_lib.found()
kind regards,
ds