v2-0001-Define-OPENSSL_API_COMPAT-PG11.patch
text/x-diff
Filename: v2-0001-Define-OPENSSL_API_COMPAT-PG11.patch
Type: text/x-diff
Part: 0
Patch
Format: format-patch
Series: patch v2-0001
Subject: Define OPENSSL_API_COMPAT
| File | + | − |
|---|---|---|
| configure | 5 | 1 |
| configure.in | 3 | 0 |
| src/include/pg_config.h.in | 4 | 0 |
| src/include/pg_config.h.win32 | 4 | 0 |
| src/tools/msvc/Solution.pm | 9 | 1 |
From 469d8c07cfcf22245b59cfe4573a70ea1720b8c1 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Sun, 19 Jul 2020 12:14:42 +0200
Subject: [PATCH v2] Define OPENSSL_API_COMPAT
This avoids deprecation warnings from newer OpenSSL versions (3.0.0 in
particular).
Discussion: https://www.postgresql.org/message-id/flat/FEF81714-D479-4512-839B-C769D2605F8A%40yesql.se
---
src/include/pg_config.h.in | 4 ++++
src/include/pg_config.h.win32 | 4 ++++
configure | 6 +++++-
configure.in | 3 +++
src/tools/msvc/Solution.pm | 10 +++++++++-
5 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 912132dbc5..157b504ea6 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -778,6 +778,10 @@
/* Define bytes to use libc memset(). */
#undef MEMSET_LOOP_LIMIT
+/* Define to the OpenSSL API version in use. This avoids deprecation warnings
+ from newer OpenSSL versions. */
+#undef OPENSSL_API_COMPAT
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32
index 9510b98216..7fa151f41b 100644
--- a/src/include/pg_config.h.win32
+++ b/src/include/pg_config.h.win32
@@ -628,6 +628,10 @@
/* Define bytes to use libc memset(). */
#define MEMSET_LOOP_LIMIT 1024
+/* Define to the OpenSSL API version in use. This avoids deprecation warnings
+ from newer OpenSSL versions. */
+#define OPENSSL_API_COMPAT 0x00908000L
+
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
diff --git a/configure b/configure
index 1577cf7ad3..dae02c8687 100755
--- a/configure
+++ b/configure
@@ -12063,7 +12063,11 @@ fi
fi
if test "$with_openssl" = yes ; then
- if test "$PORTNAME" != "win32"; then
+ # Minimum required OpenSSL version is 0.9.8
+
+$as_echo "#define OPENSSL_API_COMPAT 0x00908000L" >>confdefs.h
+
+ if test "$PORTNAME" != "win32"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_new_ex_data in -lcrypto" >&5
$as_echo_n "checking for CRYPTO_new_ex_data in -lcrypto... " >&6; }
if ${ac_cv_lib_crypto_CRYPTO_new_ex_data+:} false; then :
diff --git a/configure.in b/configure.in
index 0b44e2119f..29de083fe8 100644
--- a/configure.in
+++ b/configure.in
@@ -1269,6 +1269,9 @@ fi
if test "$with_openssl" = yes ; then
dnl Order matters!
+ # Minimum required OpenSSL version is 0.9.8
+ AC_DEFINE(OPENSSL_API_COMPAT, [0x00908000L],
+ [Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.])
if test "$PORTNAME" != "win32"; then
AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 984d63f5d7..c823655ed9 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -151,6 +151,8 @@ sub GenerateFiles
{
my $self = shift;
my $bits = $self->{platform} eq 'Win32' ? 32 : 64;
+ my $openssl_api_compat;
+ my $ac_define_openssl_api_compat_found = 0;
# Parse configure.in to get version numbers
open(my $c, '<', "configure.in")
@@ -167,10 +169,15 @@ sub GenerateFiles
$self->{numver} = sprintf("%d%04d", $1, $2 ? $2 : 0);
$self->{majorver} = sprintf("%d", $1);
}
+ elsif (/\bAC_DEFINE\(OPENSSL_API_COMPAT, \[([0-9xL]+)\]/)
+ {
+ $ac_define_openssl_api_compat_found = 1;
+ $openssl_api_compat = $1;
+ }
}
close($c);
confess "Unable to parse configure.in for all variables!"
- if ($self->{strver} eq '' || $self->{numver} eq '');
+ if ($self->{strver} eq '' || $self->{numver} eq '' || $ac_define_openssl_api_compat_found == 0);
if (IsNewer("src/include/pg_config_os.h", "src/include/port/win32.h"))
{
@@ -254,6 +261,7 @@ sub GenerateFiles
if ($self->{options}->{openssl})
{
print $o "#define USE_OPENSSL 1\n";
+ print $o "#define OPENSSL_API_COMPAT $openssl_api_compat\n";
my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion();
--
2.40.1