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