net-nds/openldap: Add libressl patch to 2.4.47, also fix warnings

Forward patches the libressl patch from 2.4.45-r1, also adds a patch
that silences implicit definition warnings.

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
This commit is contained in:
Patrick McLean
2019-02-21 11:47:25 -08:00
committed by Patrick McLean
parent d6f0382709
commit 2d676affba
3 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
diff --git a/libraries/libldap/tls_o.c b/libraries/libldap/tls_o.c
index b0277dfe9..8a3f47a74 100644
--- a/libraries/libldap/tls_o.c
+++ b/libraries/libldap/tls_o.c
@@ -50,7 +50,7 @@
#include <ssl.h>
#endif
-#if OPENSSL_VERSION_NUMBER >= 0x10100000
+#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
#define ASN1_STRING_data(x) ASN1_STRING_get0_data(x)
#endif
@@ -200,7 +200,7 @@ tlso_init( void )
(void) tlso_seed_PRNG( lo->ldo_tls_randfile );
#endif
-#if OPENSSL_VERSION_NUMBER < 0x10100000
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_digests();
@@ -252,7 +252,7 @@ static void
tlso_ctx_ref( tls_ctx *ctx )
{
tlso_ctx *c = (tlso_ctx *)ctx;
-#if OPENSSL_VERSION_NUMBER < 0x10100000
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
#define SSL_CTX_up_ref(ctx) CRYPTO_add( &(ctx->references), 1, CRYPTO_LOCK_SSL_CTX )
#endif
SSL_CTX_up_ref( c );
@@ -511,7 +511,7 @@ tlso_session_my_dn( tls_session *sess, struct berval *der_dn )
if (!x) return LDAP_INVALID_CREDENTIALS;
xn = X509_get_subject_name(x);
-#if OPENSSL_VERSION_NUMBER < 0x10100000
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
der_dn->bv_len = i2d_X509_NAME( xn, NULL );
der_dn->bv_val = xn->bytes->data;
#else
@@ -547,7 +547,7 @@ tlso_session_peer_dn( tls_session *sess, struct berval *der_dn )
return LDAP_INVALID_CREDENTIALS;
xn = X509_get_subject_name(x);
-#if OPENSSL_VERSION_NUMBER < 0x10100000
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
der_dn->bv_len = i2d_X509_NAME( xn, NULL );
der_dn->bv_val = xn->bytes->data;
#else
@@ -768,7 +768,7 @@ struct tls_data {
Sockbuf_IO_Desc *sbiod;
};
-#if OPENSSL_VERSION_NUMBER < 0x10100000
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
#define BIO_set_init(b, x) b->init = x
#define BIO_set_data(b, x) b->ptr = x
#define BIO_clear_flags(b, x) b->flags &= ~(x)

View File

@@ -0,0 +1,41 @@
diff --git a/include/ldap.h b/include/ldap.h
index c245651c2..7f14f1051 100644
--- a/include/ldap.h
+++ b/include/ldap.h
@@ -2041,6 +2041,10 @@ LDAP_F( int )
ldap_is_ldapi_url LDAP_P((
LDAP_CONST char *url ));
+LDAP_F( int )
+ldap_is_ldapc_url LDAP_P((
+ LDAP_CONST char *url ));
+
LDAP_F( int )
ldap_url_parse LDAP_P((
LDAP_CONST char *url,
diff --git a/include/ldap_int_thread.h b/include/ldap_int_thread.h
index e2dd8a942..bbc07c845 100644
--- a/include/ldap_int_thread.h
+++ b/include/ldap_int_thread.h
@@ -33,7 +33,7 @@ LDAP_END_DECL
* definitions for POSIX Threads *
* *
**********************************/
-
+#define __USE_UNIX98
#include <pthread.h>
#ifdef HAVE_SCHED_H
#include <sched.h>
diff --git a/libraries/libldap/tls2.c b/libraries/libldap/tls2.c
index d25c190ea..639f598e7 100644
--- a/libraries/libldap/tls2.c
+++ b/libraries/libldap/tls2.c
@@ -76,6 +76,8 @@ static oid_name oids[] = {
#ifdef HAVE_TLS
+int ldap_pvt_tls_check_hostname( LDAP *ld, void *s, const char *name_in );
+
void
ldap_pvt_tls_ctx_free ( void *c )
{

View File

@@ -162,6 +162,12 @@ PATCHES=(
# unbundle lmdb
"${FILESDIR}"/${PN}-2.4.42-mdb-unbundle.patch
# bug #622464
"${FILESDIR}"/${PN}-2.4.47-libressl.patch
# fix some compiler warnings
"${FILESDIR}"/${PN}-2.4.47-warnings.patch
)
openldap_filecount() {