From a0bae155d65b5fd1ed4be98f52ec47012d39156a Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Mon, 6 May 2019 21:49:16 +0200 Subject: net-misc/vde: Fix build with >=dev-libs/openssl-1.1 Closes: https://bugs.gentoo.org/673928 Package-Manager: Portage-2.3.66, Repoman-2.3.12 Signed-off-by: Andreas Sturmlechner --- net-misc/vde/files/vde-2.3.2-openssl-1.1.patch | 104 +++++++++++++++++++++++++ net-misc/vde/vde-2.3.2-r4.ebuild | 5 ++ 2 files changed, 109 insertions(+) create mode 100644 net-misc/vde/files/vde-2.3.2-openssl-1.1.patch (limited to 'net-misc') diff --git a/net-misc/vde/files/vde-2.3.2-openssl-1.1.patch b/net-misc/vde/files/vde-2.3.2-openssl-1.1.patch new file mode 100644 index 000000000000..b490b93350f4 --- /dev/null +++ b/net-misc/vde/files/vde-2.3.2-openssl-1.1.patch @@ -0,0 +1,104 @@ +From 5f2c4c7b67617991af65798a4d177ada90f7e463 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 2 Sep 2016 19:52:49 +0000 +Subject: [PATCH] vde_cryptcab: compile against openssl 1.1.0 + +Signed-off-by: Sebastian Andrzej Siewior +--- + src/vde_cryptcab/cryptcab.c | 30 +++++++++++++++++++----------- + 1 file changed, 19 insertions(+), 11 deletions(-) + +diff --git a/src/vde_cryptcab/cryptcab.c b/src/vde_cryptcab/cryptcab.c +index c5b4474..a2780f1 100644 +--- a/src/vde_cryptcab/cryptcab.c 2011-11-23 16:41:17.000000000 +0000 ++++ b/src/vde_cryptcab/cryptcab.c 2017-03-20 22:54:20.452975075 +0000 +@@ -22,7 +22,7 @@ + exit(1); + } + +-static EVP_CIPHER_CTX ctx; ++static EVP_CIPHER_CTX *ctx; + static int ctx_initialized = 0; + static int encryption_disabled = 0; + static int nfd; +@@ -30,6 +30,10 @@ + static struct vde_open_args open_args={.port=0,.group=NULL,.mode=0700}; + static int verbose = 0; + ++#if OPENSSL_VERSION_NUMBER < 0x10100000 ++#define EVP_CIPHER_CTX_reset(x) EVP_CIPHER_CTX_cleanup(x) ++#endif ++ + void vc_printlog(int priority, const char *format, ...) + { + va_list arg; +@@ -103,19 +107,21 @@ + } + + if (!ctx_initialized) { +- EVP_CIPHER_CTX_init (&ctx); ++ ctx = EVP_CIPHER_CTX_new (); ++ if (!ctx) ++ return -1; + ctx_initialized = 1; + } + +- EVP_EncryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv); +- if (EVP_EncryptUpdate (&ctx, dst, &olen, src, len) != 1) ++ EVP_EncryptInit (ctx, EVP_bf_cbc (), p->key, p->iv); ++ if (EVP_EncryptUpdate (ctx, dst, &olen, src, len) != 1) + { + fprintf (stderr,"error in encrypt update\n"); + olen = -1; + goto cleanup; + } + +- if (EVP_EncryptFinal (&ctx, dst + olen, &tlen) != 1) ++ if (EVP_EncryptFinal (ctx, dst + olen, &tlen) != 1) + { + fprintf (stderr,"error in encrypt final\n"); + olen = -1; +@@ -124,7 +130,7 @@ + olen += tlen; + + cleanup: +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_reset(ctx); + return olen; + } + +@@ -138,19 +144,21 @@ + } + + if (!ctx_initialized) { +- EVP_CIPHER_CTX_init (&ctx); ++ ctx = EVP_CIPHER_CTX_new (); ++ if (!ctx) ++ return -1; + ctx_initialized = 1; + } + +- EVP_DecryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv); +- if (EVP_DecryptUpdate (&ctx, dst, &olen, src, len) != 1) ++ EVP_DecryptInit (ctx, EVP_bf_cbc (), p->key, p->iv); ++ if (EVP_DecryptUpdate (ctx, dst, &olen, src, len) != 1) + { + fprintf (stderr,"error in decrypt update\n"); + olen = -1; + goto cleanup; + } + +- if (EVP_DecryptFinal (&ctx, dst + olen, &tlen) != 1) ++ if (EVP_DecryptFinal (ctx, dst + olen, &tlen) != 1) + { + fprintf (stderr,"error in decrypt final\n"); + olen = -1; +@@ -159,7 +167,7 @@ + olen += tlen; + + cleanup: +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_reset (ctx); + return olen; + } + diff --git a/net-misc/vde/vde-2.3.2-r4.ebuild b/net-misc/vde/vde-2.3.2-r4.ebuild index f5df46fa334a..93a75bf2b542 100644 --- a/net-misc/vde/vde-2.3.2-r4.ebuild +++ b/net-misc/vde/vde-2.3.2-r4.ebuild @@ -39,6 +39,11 @@ pkg_setup() { use python && python-single-r1_pkg_setup } +src_prepare() { + default + has_version ">=dev-libs/openssl-1.1.0" && eapply "${FILESDIR}/${P}-openssl-1.1.patch" +} + src_configure() { filter-flags -O0 -Os econf \ -- cgit v1.2.3-65-gdbad