mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-20 04:02:27 +00:00
lang/ruby25: Fix with ports OpenSSL and LibreSSL
PR: 229119 PR: 226852 Submitted by: Thibault Jouan <tj+freebsd_ports@a13.fr> Reported by: Piotr Kubaj <pkubaj@anongoth.pl> With hat: ruby@
This commit is contained in:
parent
814128e183
commit
64c4b0dda3
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=477249
28
lang/ruby25/files/patch-ext-openssl-extconf.rb
Normal file
28
lang/ruby25/files/patch-ext-openssl-extconf.rb
Normal file
@ -0,0 +1,28 @@
|
||||
From 75de15ddcdab6efe7faf3ca1f6b5c6e5b6ba57cc Mon Sep 17 00:00:00 2001
|
||||
From: Kazuki Yamaguchi <k@rhe.jp>
|
||||
Date: Sat, 24 Mar 2018 01:44:37 +0900
|
||||
Subject: [PATCH] extconf.rb: fix build with LibreSSL 2.7.0
|
||||
|
||||
Our compat implementation of accessor functions that were introduced in
|
||||
OpenSSL 1.1.0 conflicts with those from LibreSSL 2.7.0. Use the
|
||||
HAVE_OPAQUE_OPENSSL code path when LibreSSL 2.7 or newer is detected.
|
||||
|
||||
Fix suggested by Joel Sing.
|
||||
|
||||
Fixes: https://github.com/ruby/openssl/issues/192
|
||||
|
||||
--- ext/openssl/extconf.rb.orig
|
||||
+++ ext/openssl/extconf.rb
|
||||
@@ -157,8 +157,11 @@ def find_openssl_library
|
||||
have_func("SSL_is_server")
|
||||
|
||||
# added in 1.1.0
|
||||
+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") ||
|
||||
+ try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h")
|
||||
+ $defs.push("-DHAVE_OPAQUE_OPENSSL")
|
||||
+end
|
||||
have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API")
|
||||
-have_struct_member("SSL", "ctx", "openssl/ssl.h") || $defs.push("-DHAVE_OPAQUE_OPENSSL")
|
||||
have_func("BN_GENCB_new")
|
||||
have_func("BN_GENCB_free")
|
||||
have_func("BN_GENCB_get_arg")
|
@ -1,28 +0,0 @@
|
||||
--- ext/openssl/openssl_missing.h.orig 2018-03-22 19:37:19 UTC
|
||||
+++ ext/openssl/openssl_missing.h
|
||||
@@ -72,6 +72,9 @@ void ossl_HMAC_CTX_free(HMAC_CTX *);
|
||||
#if !defined(HAVE_X509_STORE_SET_EX_DATA)
|
||||
# define X509_STORE_set_ex_data(x, idx, data) \
|
||||
CRYPTO_set_ex_data(&(x)->ex_data, (idx), (data))
|
||||
+#endif
|
||||
+
|
||||
+#if !defined(HAVE_X509_STORE_GET_EX_NEW_INDEX)
|
||||
# define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \
|
||||
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \
|
||||
(newf), (dupf), (freef))
|
||||
@@ -145,6 +148,7 @@ void ossl_X509_REQ_get0_signature(const
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_OPAQUE_OPENSSL)
|
||||
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL
|
||||
#define IMPL_PKEY_GETTER(_type, _name) \
|
||||
static inline _type *EVP_PKEY_get0_##_type(EVP_PKEY *pkey) { \
|
||||
return pkey->pkey._name; }
|
||||
@@ -196,6 +200,7 @@ IMPL_PKEY_GETTER(EC_KEY, ec)
|
||||
#undef IMPL_PKEY_GETTER
|
||||
#undef IMPL_KEY_ACCESSOR2
|
||||
#undef IMPL_KEY_ACCESSOR3
|
||||
+#endif
|
||||
#endif /* HAVE_OPAQUE_OPENSSL */
|
||||
|
||||
#if !defined(EVP_CTRL_AEAD_GET_TAG)
|
Loading…
Reference in New Issue
Block a user