diff options
author | Michael Paquier <michael@paquier.xyz> | 2021-02-01 19:19:44 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2021-02-01 19:19:44 +0900 |
commit | fe61df7f82aa6e0879476146dbe1da9c89b4946b (patch) | |
tree | d1c7ca42a5f3739bb9e221f8c0130a805267ef30 /src | |
parent | 7c5d57caed4d8af705d0cc3131d0d8ed72b7a41d (diff) | |
download | postgresql-fe61df7f82aa6e0879476146dbe1da9c89b4946b.tar.gz postgresql-fe61df7f82aa6e0879476146dbe1da9c89b4946b.zip |
Introduce --with-ssl={openssl} as a configure option
This is a replacement for the existing --with-openssl, extending the
logic to make easier the addition of new SSL libraries. The grammar is
chosen to be similar to --with-uuid, where multiple values can be
chosen, with "openssl" as the only supported value for now.
The original switch, --with-openssl, is kept for compatibility.
Author: Daniel Gustafsson, Michael Paquier
Reviewed-by: Jacob Champion
Discussion: https://postgr.es/m/FAB21FC8-0F62-434F-AA78-6BD9336D630A@yesql.se
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.global.in | 2 | ||||
-rw-r--r-- | src/backend/libpq/Makefile | 2 | ||||
-rw-r--r-- | src/backend/libpq/hba.c | 2 | ||||
-rw-r--r-- | src/common/Makefile | 2 | ||||
-rw-r--r-- | src/include/pg_config.h.in | 2 | ||||
-rw-r--r-- | src/interfaces/libpq/Makefile | 9 | ||||
-rw-r--r-- | src/test/Makefile | 2 | ||||
-rw-r--r-- | src/test/modules/Makefile | 2 | ||||
-rw-r--r-- | src/test/modules/ssl_passphrase_callback/Makefile | 2 | ||||
-rw-r--r-- | src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl | 4 | ||||
-rw-r--r-- | src/test/ssl/Makefile | 2 | ||||
-rw-r--r-- | src/test/ssl/t/001_ssltests.pl | 6 | ||||
-rw-r--r-- | src/test/ssl/t/002_scram.pl | 4 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 2 | ||||
-rw-r--r-- | src/tools/msvc/config_default.pl | 2 |
15 files changed, 25 insertions, 20 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 9a1688c97cb..74b3a6acd29 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -183,7 +183,7 @@ with_icu = @with_icu@ with_perl = @with_perl@ with_python = @with_python@ with_tcl = @with_tcl@ -with_openssl = @with_openssl@ +with_ssl = @with_ssl@ with_readline = @with_readline@ with_selinux = @with_selinux@ with_systemd = @with_systemd@ diff --git a/src/backend/libpq/Makefile b/src/backend/libpq/Makefile index efc5ef760aa..8d1d16b0fc5 100644 --- a/src/backend/libpq/Makefile +++ b/src/backend/libpq/Makefile @@ -28,7 +28,7 @@ OBJS = \ pqmq.o \ pqsignal.o -ifeq ($(with_openssl),yes) +ifeq ($(with_ssl),openssl) OBJS += be-secure-openssl.o endif diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index 371dccb852f..20bf1461cef 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -1041,7 +1041,7 @@ parse_hba_line(TokenizedLine *tok_line, int elevel) ereport(elevel, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("hostssl record cannot match because SSL is not supported by this build"), - errhint("Compile with --with-openssl to use SSL connections."), + errhint("Compile with --with-ssl=openssl to use SSL connections."), errcontext("line %d of configuration file \"%s\"", line_num, HbaFileName))); *err_msg = "hostssl record cannot match because SSL is not supported by this build"; diff --git a/src/common/Makefile b/src/common/Makefile index 1a1d0d3406c..5422579a6a2 100644 --- a/src/common/Makefile +++ b/src/common/Makefile @@ -80,7 +80,7 @@ OBJS_COMMON = \ wait_error.o \ wchar.o -ifeq ($(with_openssl),yes) +ifeq ($(with_ssl),openssl) OBJS_COMMON += \ protocol_openssl.o \ cryptohash_openssl.o diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index f4d9f3b408d..55cab4d2bf3 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -899,7 +899,7 @@ /* Define to select named POSIX semaphores. */ #undef USE_NAMED_POSIX_SEMAPHORES -/* Define to build with OpenSSL support. (--with-openssl) */ +/* Define to build with OpenSSL support. (--with-ssl=openssl) */ #undef USE_OPENSSL /* Define to 1 to build with PAM support. (--with-pam) */ diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index c4fde3f93dd..f74677eaf9b 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -45,9 +45,14 @@ OBJS = \ pqexpbuffer.o \ fe-auth.o -ifeq ($(with_openssl),yes) +# File shared across all SSL implementations supported. +ifneq ($(with_ssl),no) +OBJS += \ + fe-secure-common.o +endif + +ifeq ($(with_ssl),openssl) OBJS += \ - fe-secure-common.o \ fe-secure-openssl.o endif diff --git a/src/test/Makefile b/src/test/Makefile index ab1ef9a4753..f7859c2fd5e 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -28,7 +28,7 @@ ifneq (,$(filter ldap,$(PG_TEST_EXTRA))) SUBDIRS += ldap endif endif -ifeq ($(with_openssl),yes) +ifeq ($(with_ssl),openssl) ifneq (,$(filter ssl,$(PG_TEST_EXTRA))) SUBDIRS += ssl endif diff --git a/src/test/modules/Makefile b/src/test/modules/Makefile index 59921b46cf3..5391f461a25 100644 --- a/src/test/modules/Makefile +++ b/src/test/modules/Makefile @@ -28,7 +28,7 @@ SUBDIRS = \ unsafe_tests \ worker_spi -ifeq ($(with_openssl),yes) +ifeq ($(with_ssl),openssl) SUBDIRS += ssl_passphrase_callback else ALWAYS_SUBDIRS += ssl_passphrase_callback diff --git a/src/test/modules/ssl_passphrase_callback/Makefile b/src/test/modules/ssl_passphrase_callback/Makefile index f81265c2963..a34d7ea46a3 100644 --- a/src/test/modules/ssl_passphrase_callback/Makefile +++ b/src/test/modules/ssl_passphrase_callback/Makefile @@ -1,6 +1,6 @@ # ssl_passphrase_callback Makefile -export with_openssl +export with_ssl MODULE_big = ssl_passphrase_func OBJS = ssl_passphrase_func.o $(WIN32RES) diff --git a/src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl b/src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl index dbc084f870e..a2bed5336c0 100644 --- a/src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl +++ b/src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl @@ -7,9 +7,9 @@ use TestLib; use Test::More; use PostgresNode; -unless (($ENV{with_openssl} || 'no') eq 'yes') +unless ($ENV{with_ssl} eq 'openssl') { - plan skip_all => 'SSL not supported by this build'; + plan skip_all => 'OpenSSL not supported by this build'; } my $clearpass = "FooBaR1"; diff --git a/src/test/ssl/Makefile b/src/test/ssl/Makefile index 93335b1ea25..d545382eea2 100644 --- a/src/test/ssl/Makefile +++ b/src/test/ssl/Makefile @@ -13,7 +13,7 @@ subdir = src/test/ssl top_builddir = ../../.. include $(top_builddir)/src/Makefile.global -export with_openssl +export with_ssl CERTIFICATES := server_ca server-cn-and-alt-names \ server-cn-only server-single-alt-name server-multiple-alt-names \ diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl index fd2727b5684..7928de4e7c2 100644 --- a/src/test/ssl/t/001_ssltests.pl +++ b/src/test/ssl/t/001_ssltests.pl @@ -11,13 +11,13 @@ use lib $FindBin::RealBin; use SSLServer; -if ($ENV{with_openssl} eq 'yes') +if ($ENV{with_ssl} ne 'openssl') { - plan tests => 93; + plan skip_all => 'OpenSSL not supported by this build'; } else { - plan skip_all => 'SSL not supported by this build'; + plan tests => 93; } #### Some configuration diff --git a/src/test/ssl/t/002_scram.pl b/src/test/ssl/t/002_scram.pl index a088f71a1aa..410b9e910d9 100644 --- a/src/test/ssl/t/002_scram.pl +++ b/src/test/ssl/t/002_scram.pl @@ -13,9 +13,9 @@ use lib $FindBin::RealBin; use SSLServer; -if ($ENV{with_openssl} ne 'yes') +if ($ENV{with_ssl} ne 'openssl') { - plan skip_all => 'SSL not supported by this build'; + plan skip_all => 'OpenSSL not supported by this build'; } # This is the hostname used to connect to the server. diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 2f28de0355a..1c0c92fcd2c 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -1156,7 +1156,7 @@ sub GetFakeConfigure $cfg .= ' --with-ldap' if ($self->{options}->{ldap}); $cfg .= ' --without-zlib' unless ($self->{options}->{zlib}); $cfg .= ' --with-extra-version' if ($self->{options}->{extraver}); - $cfg .= ' --with-openssl' if ($self->{options}->{openssl}); + $cfg .= ' --with-ssl=openssl' if ($self->{options}->{openssl}); $cfg .= ' --with-uuid' if ($self->{options}->{uuid}); $cfg .= ' --with-libxml' if ($self->{options}->{xml}); $cfg .= ' --with-libxslt' if ($self->{options}->{xslt}); diff --git a/src/tools/msvc/config_default.pl b/src/tools/msvc/config_default.pl index 2ef2cfc4e99..5395e211eb2 100644 --- a/src/tools/msvc/config_default.pl +++ b/src/tools/msvc/config_default.pl @@ -16,7 +16,7 @@ our $config = { tcl => undef, # --with-tcl=<path> perl => undef, # --with-perl=<path> python => undef, # --with-python=<path> - openssl => undef, # --with-openssl=<path> + openssl => undef, # --with-ssl=openssl with <path> uuid => undef, # --with-uuid=<path> xml => undef, # --with-libxml=<path> xslt => undef, # --with-libxslt=<path> |