bind: add patch to build with libressl 2.3

+105 -1
+3 -1
pkgs/servers/dns/bind/default.nix
··· 10 10 sha256 = "1w4gp4hdkb452nmz91l413d1rx89isl2l6wv8kpbdd2afpc3phws"; 11 11 }; 12 12 13 - patchPhase = '' 13 + postPatchPhase = '' 14 14 sed -i 's/^\t.*run/\t/' Makefile.in 15 15 ''; 16 + 17 + patches = [ ./libressl.patch ]; 16 18 17 19 buildInputs = [ openssl libtool perl libxml2 ]; 18 20
+102
pkgs/servers/dns/bind/libressl.patch
··· 1 + $OpenBSD: patch-lib_dns_openssl_link_c,v 1.1 2015/09/16 15:28:16 sthen Exp $ 2 + --- a/lib/dns/openssl_link.c Wed Sep 16 14:01:23 2015 3 + +++ b/lib/dns/openssl_link.c Wed Sep 16 14:01:46 2015 4 + @@ -88,7 +88,7 @@ entropy_getpseudo(unsigned char *buf, int num) { 5 + return (result == ISC_R_SUCCESS ? 1 : -1); 6 + } 7 + 8 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 9 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 10 + static void 11 + entropy_add(const void *buf, int num, double entropy) { 12 + /* 13 + @@ -121,7 +121,7 @@ lock_callback(int mode, int type, const char *file, in 14 + UNLOCK(&locks[type]); 15 + } 16 + 17 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 18 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 19 + static unsigned long 20 + id_callback(void) { 21 + return ((unsigned long)isc_thread_self()); 22 + @@ -187,7 +187,7 @@ dst__openssl_init(const char *engine) { 23 + if (result != ISC_R_SUCCESS) 24 + goto cleanup_mutexalloc; 25 + CRYPTO_set_locking_callback(lock_callback); 26 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 27 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 28 + CRYPTO_set_id_callback(id_callback); 29 + #endif 30 + 31 + @@ -287,7 +287,7 @@ dst__openssl_destroy(void) { 32 + CRYPTO_cleanup_all_ex_data(); 33 + #endif 34 + ERR_clear_error(); 35 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 36 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 37 + ERR_remove_state(0); 38 + #endif 39 + ERR_free_strings(); 40 + --- a/lib/dns/dst_openssl.h Wed Sep 16 14:00:47 2015 41 + +++ b/lib/dns/dst_openssl.h Wed Sep 16 14:02:42 2015 42 + @@ -36,7 +36,7 @@ 43 + #define USE_ENGINE 1 44 + #endif 45 + 46 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 47 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 48 + /* 49 + * These are new in OpenSSL 1.1.0. BN_GENCB _cb needs to be declared in 50 + * the function like this before the BN_GENCB_new call: 51 + --- a/lib/dns/openssldh_link.c Wed Sep 16 14:01:23 2015 52 + +++ b/lib/dns/openssldh_link.c Wed Sep 16 14:02:06 2015 53 + @@ -173,7 +173,7 @@ openssldh_generate(dst_key_t *key, int generator, void 54 + DH *dh = NULL; 55 + #if OPENSSL_VERSION_NUMBER > 0x00908000L 56 + BN_GENCB *cb; 57 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 58 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 59 + BN_GENCB _cb; 60 + #endif 61 + union { 62 + @@ -210,7 +210,7 @@ openssldh_generate(dst_key_t *key, int generator, void 63 + if (dh == NULL) 64 + return (dst__openssl_toresult(ISC_R_NOMEMORY)); 65 + cb = BN_GENCB_new(); 66 + -#if OPENSSL_VERSION_NUMBER >= 0x10100000L 67 + +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) 68 + if (cb == NULL) { 69 + DH_free(dh); 70 + return (dst__openssl_toresult(ISC_R_NOMEMORY)); 71 + --- a/lib/dns/openssldsa_link.c Wed Sep 16 14:01:23 2015 72 + +++ b/lib/dns/openssldsa_link.c Wed Sep 16 14:02:22 2015 73 + @@ -359,7 +359,7 @@ openssldsa_generate(dst_key_t *key, int unused, void ( 74 + isc_result_t result; 75 + #if OPENSSL_VERSION_NUMBER > 0x00908000L 76 + BN_GENCB *cb; 77 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 78 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 79 + BN_GENCB _cb; 80 + #endif 81 + union { 82 + @@ -383,7 +383,7 @@ openssldsa_generate(dst_key_t *key, int unused, void ( 83 + if (dsa == NULL) 84 + return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); 85 + cb = BN_GENCB_new(); 86 + -#if OPENSSL_VERSION_NUMBER >= 0x10100000L 87 + +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) 88 + if (cb == NULL) { 89 + DSA_free(dsa); 90 + return (dst__openssl_toresult(DST_R_OPENSSLFAILURE)); 91 + $OpenBSD: patch-lib_dns_opensslrsa_link_c,v 1.1 2015/09/16 15:28:16 sthen Exp $ 92 + --- a/lib/dns/opensslrsa_link.c Wed Sep 16 14:01:23 2015 93 + +++ b/lib/dns/opensslrsa_link.c Wed Sep 16 14:02:31 2015 94 + @@ -771,7 +771,7 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*ca 95 + } u; 96 + RSA *rsa = RSA_new(); 97 + BIGNUM *e = BN_new(); 98 + -#if OPENSSL_VERSION_NUMBER < 0x10100000L 99 + +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) 100 + BN_GENCB _cb; 101 + #endif 102 + BN_GENCB *cb = BN_GENCB_new();