From fc88b638ec3f2c9fb4389f08069ed31f9a67eff7 Mon Sep 17 00:00:00 2001 From: Kai Kang Date: Wed, 1 Nov 2017 09:23:41 -0400 Subject: stunnel: fix compile error when openssl disable des support When openssl disable des support with configure option 'no-des', it doesn't provide des related header file and functions. That causes stunnel compile failed. Fix it by checking macro OPENSSL_NO_DES to use openssl des related library conditionaly. Signed-off-by: Kai Kang Signed-off-by: Joe MacDonald Signed-off-by: Armin Kuster Signed-off-by: Joe MacDonald (cherry picked from commit f9a1fe6ab2dfb6a53e58fc8da3a1580e76954e5e) Signed-off-by: Armin Kuster --- .../stunnel/stunnel/fix-openssl-no-des.patch | 54 ++++++++++++++++++++++ .../recipes-support/stunnel/stunnel_5.35.bb | 4 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch diff --git a/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch new file mode 100644 index 0000000000..209b0dd409 --- /dev/null +++ b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch @@ -0,0 +1,54 @@ +Upstream-Status: Pending + +When openssl disable des support with configure option 'no-des', it doesn't +provide des related header file and functions. That causes stunnel compile +failed. Fix it by checking macro OPENSSL_NO_DES to use openssl des related +library conditionaly. + +Signed-off-by: Kai Kang +--- +diff --git a/src/common.h b/src/common.h +index f7d38b0..bf485af 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -471,7 +471,9 @@ extern char *sys_errlist[]; + #ifndef OPENSSL_NO_MD4 + #include + #endif /* !defined(OPENSSL_NO_MD4) */ ++#ifndef OPENSSL_NO_DES + #include ++#endif + #ifndef OPENSSL_NO_DH + #include + #if OPENSSL_VERSION_NUMBER<0x10100000L +diff --git a/src/protocol.c b/src/protocol.c +index 587df09..8198eb6 100644 +--- a/src/protocol.c ++++ b/src/protocol.c +@@ -66,7 +66,7 @@ NOEXPORT char *imap_server(CLI *, SERVICE_OPTIONS *, const PHASE); + NOEXPORT char *nntp_client(CLI *, SERVICE_OPTIONS *, const PHASE); + NOEXPORT char *connect_server(CLI *, SERVICE_OPTIONS *, const PHASE); + NOEXPORT char *connect_client(CLI *, SERVICE_OPTIONS *, const PHASE); +-#ifndef OPENSSL_NO_MD4 ++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES) + NOEXPORT void ntlm(CLI *, SERVICE_OPTIONS *); + NOEXPORT char *ntlm1(); + NOEXPORT char *ntlm3(char *, char *, char *, char *); +@@ -1175,7 +1175,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) { + fd_printf(c, c->remote_fd.fd, "Host: %s", opt->protocol_host); + if(opt->protocol_username && opt->protocol_password) { + if(!strcasecmp(opt->protocol_authentication, "ntlm")) { +-#ifndef OPENSSL_NO_MD4 ++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES) + ntlm(c, opt); + #else + s_log(LOG_ERR, "NTLM authentication is not available"); +@@ -1216,7 +1216,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) { + return NULL; + } + +-#ifndef OPENSSL_NO_MD4 ++#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES) + + /* + * NTLM code is based on the following documentation: diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb index efe9d9e578..ec8478d6be 100644 --- a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb +++ b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb @@ -8,7 +8,9 @@ DEPENDS = "openssl zlib tcp-wrappers" RDEPENDS_${PN} += "perl" -SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz" +SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \ + file://fix-openssl-no-des.patch \ +" SRC_URI[md5sum] = "9079f5fafbccaf88b7d92b227d78249a" SRC_URI[sha256sum] = "ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d" -- cgit 1.2.3-korg