diff options
| author | Armin Kuster <akuster808@gmail.com> | 2015-06-01 16:12:26 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-06-23 11:46:57 +0100 |
| commit | 914278ef656c254426a8a853d337fe7b83478117 (patch) | |
| tree | 4cf7594b52c7739c2508679cfa9643388c5bc2c2 | |
| parent | 553305eee83f5291f9f9d30253a0be47d1d1fb49 (diff) | |
| download | poky-914278ef656c254426a8a853d337fe7b83478117.tar.gz | |
neon: fix compat issues with gnutls 4.3
(From OE-Core rev: 0ea7c00ef2b7ef0362947cbb6b994edc13b72ce2)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-support/neon/neon/gnutls_4.3_fixup.patch | 68 | ||||
| -rw-r--r-- | meta/recipes-support/neon/neon_0.30.1.bb | 3 |
2 files changed, 70 insertions, 1 deletions
diff --git a/meta/recipes-support/neon/neon/gnutls_4.3_fixup.patch b/meta/recipes-support/neon/neon/gnutls_4.3_fixup.patch new file mode 100644 index 0000000000..a76560ac8a --- /dev/null +++ b/meta/recipes-support/neon/neon/gnutls_4.3_fixup.patch | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | replace deprecated GnuTLS functions with newer ones if available | ||
| 2 | |||
| 3 | Upstream Status: Pending | ||
| 4 | |||
| 5 | Signed-off-by: Armin Kuster <akuster808@gmail.com> | ||
| 6 | |||
| 7 | Index: neon-0.30.1/macros/neon.m4 | ||
| 8 | =================================================================== | ||
| 9 | --- neon-0.30.1.orig/macros/neon.m4 | ||
| 10 | +++ neon-0.30.1/macros/neon.m4 | ||
| 11 | @@ -987,6 +987,10 @@ gnutls) | ||
| 12 | gnutls_certificate_get_x509_cas \ | ||
| 13 | gnutls_x509_crt_sign2]) | ||
| 14 | |||
| 15 | + # gnutls 4.3 check | ||
| 16 | + AC_CHECK_LIB(gnutls, gnutls_global_init) | ||
| 17 | + AC_CHECK_FUNCS(gnutls_certificate_set_retrieve_function,,) | ||
| 18 | + | ||
| 19 | # fail if gnutls_x509_crt_sign2 is not found (it was introduced in 1.2.0, which is required) | ||
| 20 | if test x${ac_cv_func_gnutls_x509_crt_sign2} != xyes; then | ||
| 21 | AC_MSG_ERROR([GnuTLS version predates gnutls_x509_crt_sign2, newer version required (at least 1.2.0)]) | ||
| 22 | Index: neon-0.30.1/src/ne_gnutls.c | ||
| 23 | =================================================================== | ||
| 24 | --- neon-0.30.1.orig/src/ne_gnutls.c | ||
| 25 | +++ neon-0.30.1/src/ne_gnutls.c | ||
| 26 | @@ -553,7 +553,13 @@ dup_error: | ||
| 27 | static int provide_client_cert(gnutls_session_t session, | ||
| 28 | const gnutls_datum_t *req_ca_rdn, int nreqs, | ||
| 29 | const gnutls_pk_algorithm_t *sign_algos, | ||
| 30 | - int sign_algos_length, gnutls_retr_st *st) | ||
| 31 | + int sign_algos_length, | ||
| 32 | +#if HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION | ||
| 33 | + gnutls_retr2_st* st | ||
| 34 | +#else | ||
| 35 | + gnutls_retr_st *st | ||
| 36 | +#endif | ||
| 37 | + ) | ||
| 38 | { | ||
| 39 | ne_session *sess = gnutls_session_get_ptr(session); | ||
| 40 | |||
| 41 | @@ -617,8 +623,11 @@ static int provide_client_cert(gnutls_se | ||
| 42 | #endif | ||
| 43 | ) { | ||
| 44 | NE_DEBUG(NE_DBG_SSL, "Supplying client certificate.\n"); | ||
| 45 | - | ||
| 46 | +#if HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION | ||
| 47 | + st->cert_type = type; | ||
| 48 | +#else | ||
| 49 | st->type = type; | ||
| 50 | +#endif | ||
| 51 | st->ncerts = 1; | ||
| 52 | st->cert.x509 = &sess->client_cert->cert.subject; | ||
| 53 | st->key.x509 = sess->client_cert->pkey; | ||
| 54 | @@ -649,8 +658,14 @@ ne_ssl_context *ne_ssl_context_create(in | ||
| 55 | ne_ssl_context *ctx = ne_calloc(sizeof *ctx); | ||
| 56 | gnutls_certificate_allocate_credentials(&ctx->cred); | ||
| 57 | if (flags == NE_SSL_CTX_CLIENT) { | ||
| 58 | + | ||
| 59 | +#if HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION | ||
| 60 | + gnutls_certificate_set_retrieve_function(ctx->cred, | ||
| 61 | + provide_client_cert); | ||
| 62 | +#else | ||
| 63 | gnutls_certificate_client_set_retrieve_function(ctx->cred, | ||
| 64 | provide_client_cert); | ||
| 65 | +#endif | ||
| 66 | } | ||
| 67 | gnutls_certificate_set_verify_flags(ctx->cred, | ||
| 68 | GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT); | ||
diff --git a/meta/recipes-support/neon/neon_0.30.1.bb b/meta/recipes-support/neon/neon_0.30.1.bb index fd170bc0cb..0244314a63 100644 --- a/meta/recipes-support/neon/neon_0.30.1.bb +++ b/meta/recipes-support/neon/neon_0.30.1.bb | |||
| @@ -10,7 +10,8 @@ DEPENDS_class-native = "zlib-native libxml2-native expat-native gnutls-native" | |||
| 10 | BBCLASSEXTEND = "native" | 10 | BBCLASSEXTEND = "native" |
| 11 | 11 | ||
| 12 | SRC_URI = "http://www.webdav.org/${BPN}/${BPN}-${PV}.tar.gz \ | 12 | SRC_URI = "http://www.webdav.org/${BPN}/${BPN}-${PV}.tar.gz \ |
| 13 | file://pkgconfig.patch" | 13 | file://pkgconfig.patch \ |
| 14 | file://gnutls_4.3_fixup.patch" | ||
| 14 | SRC_URI[md5sum] = "231adebe5c2f78fded3e3df6e958878e" | 15 | SRC_URI[md5sum] = "231adebe5c2f78fded3e3df6e958878e" |
| 15 | SRC_URI[sha256sum] = "00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd" | 16 | SRC_URI[sha256sum] = "00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd" |
| 16 | 17 | ||
