From e09621ff57f6965d30cc2d6b5045f93906d656a0 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 10 Feb 2016 18:51:15 +0100 Subject: [PATCH] Make it possible to get ENGINESDIR info from OpenSSL_versions Have apps/openssl display the result along with OPENSSLDIR As part of this, add ENGINESDIR in util/mk1mf.pl Reviewed-by: Rich Salz --- apps/version.c | 7 +++++++ crypto/cversion.c | 7 +++++++ doc/apps/version.pod | 5 +++++ doc/crypto/OPENSSL_VERSION_NUMBER.pod | 5 +++++ include/openssl/crypto.h | 1 + util/mk1mf.pl | 4 ++++ 6 files changed, 29 insertions(+) diff --git a/apps/version.c b/apps/version.c index 073aa93939..84929a5efc 100644 --- a/apps/version.c +++ b/apps/version.c @@ -141,6 +141,7 @@ OPTIONS version_options[] = { {"a", OPT_A, '-', "Show all data"}, {"b", OPT_B, '-', "Show build date"}, {"d", OPT_D, '-', "Show configuration directory"}, + {"e", OPT_D, '-', "Show engines directory"}, {"f", OPT_F, '-', "Show compiler flags used"}, {"o", OPT_O, '-', "Show some internal datatype options"}, {"p", OPT_P, '-', "Show target build platform"}, @@ -152,6 +153,7 @@ int version_main(int argc, char **argv) { int ret = 1, dirty = 0; int cflags = 0, version = 0, date = 0, options = 0, platform = 0, dir = 0; + int engdir = 0; char *prog; OPTION_CHOICE o; @@ -172,6 +174,9 @@ int version_main(int argc, char **argv) case OPT_D: dirty = dir = 1; break; + case OPT_E: + dirty = engdir = 1; + break; case OPT_F: dirty = cflags = 1; break; @@ -228,6 +233,8 @@ int version_main(int argc, char **argv) printf("%s\n", OpenSSL_version(OPENSSL_CFLAGS)); if (dir) printf("%s\n", OpenSSL_version(OPENSSL_DIR)); + if (engdir) + printf("%s\n", OpenSSL_version(OPENSSL_ENGINES_DIR)); ret = 0; end: return (ret); diff --git a/crypto/cversion.c b/crypto/cversion.c index 5405e5c842..a13ccf429f 100644 --- a/crypto/cversion.c +++ b/crypto/cversion.c @@ -100,6 +100,13 @@ const char *OpenSSL_version(int t) return "OPENSSLDIR: \"" OPENSSLDIR "\""; #else return "OPENSSLDIR: N/A"; +#endif + } + if (t == OPENSSL_ENGINES_DIR) { +#ifdef ENGINESDIR + return "ENGINESDIR: \"" ENGINESDIR "\""; +#else + return "ENGINESDIR: N/A"; #endif } return ("not available"); diff --git a/doc/apps/version.pod b/doc/apps/version.pod index 8ab51dda0c..01f6d2a026 100644 --- a/doc/apps/version.pod +++ b/doc/apps/version.pod @@ -15,6 +15,7 @@ B [B<-f>] [B<-p>] [B<-d>] +[B<-e>] =head1 DESCRIPTION @@ -56,6 +57,10 @@ platform setting. OPENSSLDIR setting. +=item B<-e> + +ENGINESDIR setting. + =back =head1 NOTES diff --git a/doc/crypto/OPENSSL_VERSION_NUMBER.pod b/doc/crypto/OPENSSL_VERSION_NUMBER.pod index fc16536ba9..d87d7197e5 100644 --- a/doc/crypto/OPENSSL_VERSION_NUMBER.pod +++ b/doc/crypto/OPENSSL_VERSION_NUMBER.pod @@ -77,6 +77,11 @@ if available or "platform: information not available" otherwise. The "OPENSSLDIR" setting of the library build in the form "OPENSSLDIR: "..."" if available or "OPENSSLDIR: N/A" otherwise. +=item OPENSSL_ENGINES_DIR + +The "ENGINESDIR" setting of the library build in the form "ENGINESDIR: "..."" +if available or "ENGINESDIR: N/A" otherwise. + =back For an unknown B, the text "not available" is returned. diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index d761a97f7f..4199466d66 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -362,6 +362,7 @@ const char *OpenSSL_version(int type); # define OPENSSL_BUILT_ON 2 # define OPENSSL_PLATFORM 3 # define OPENSSL_DIR 4 +# define OPENSSL_ENGINES_DIR 5 int OPENSSL_issetugid(void); diff --git a/util/mk1mf.pl b/util/mk1mf.pl index 1e72b9003b..e79733d710 100755 --- a/util/mk1mf.pl +++ b/util/mk1mf.pl @@ -11,6 +11,7 @@ use Cwd; $INSTALLTOP="/usr/local"; $OPENSSLDIR="/usr/local/ssl"; +$ENGINESDIR="/usr/local/lib/engines"; $OPTIONS=""; $ssl_version=""; $banner="\t\@echo Building OpenSSL"; @@ -47,6 +48,7 @@ my %mf_import = ( OPTIONS => \$OPTIONS, INSTALLTOP => \$INSTALLTOP, OPENSSLDIR => \$OPENSSLDIR, + ENGINESDIR => \$ENGINESDIR, PLATFORM => \$mf_platform, CC => \$mf_cc, CFLAG => \$mf_cflag, @@ -636,6 +638,7 @@ $defs .= $preamble if defined $preamble; $defs.= <<"EOF"; INSTALLTOP=$INSTALLTOP OPENSSLDIR=$OPENSSLDIR +ENGINESDIR=$ENGINESDIR # Set your compiler options PLATFORM=$platform @@ -770,6 +773,7 @@ install: all \$(MKDIR) \"\$(INSTALLTOP)${o}include\" \$(MKDIR) \"\$(INSTALLTOP)${o}include${o}openssl\" \$(MKDIR) \"\$(INSTALLTOP)${o}lib\" + \$(MKDIR) \"\$(INSTALLTOP)${o}lib${o}engines\" $extra_install clean: -- 2.25.1