Hello community, here is the log from the commit of package libmesode for openSUSE:Factory checked in at 2017-12-05 01:30:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmesode (Old) and /work/SRC/openSUSE:Factory/.libmesode.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmesode" Tue Dec 5 01:30:28 2017 rev:2 rq:548077 version:0.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libmesode/libmesode.changes 2016-11-24 21:21:55.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libmesode.new/libmesode.changes 2017-12-05 01:30:28.604778370 +0100 @@ -1,0 +2,9 @@ +Mon Dec 4 12:53:40 UTC 2017 - mvet...@suse.com + +- Add libmesode-0.9.1-openssl-1.1.patch: + Fix build with openssl 1.1. + Taken from commits: + * 5ab52edb943985fc3943b33d9a6be1b23045a052 + * b91872cf7e7ed4d2443ab5c622f4cdb395d64dbe + +------------------------------------------------------------------- New: ---- libmesode-0.9.1-openssl-1.1.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmesode.spec ++++++ --- /var/tmp/diff_new_pack.7OuUe9/_old 2017-12-05 01:30:29.704738409 +0100 +++ /var/tmp/diff_new_pack.7OuUe9/_new 2017-12-05 01:30:29.704738409 +0100 @@ -1,7 +1,7 @@ # # spec file for package libmesode # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,15 +25,16 @@ Group: Development/Libraries/C and C++ Url: https://github.com/boothj5/libmesode Source0: https://github.com/boothj5/%{name}/archive/%{version}.tar.gz +Patch0: libmesode-0.9.1-openssl-1.1.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc +BuildRequires: libexpat-devel >= 2.0.0 BuildRequires: libopenssl-devel BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: make BuildRequires: pkg-config -BuildRequires: libexpat-devel >= 2.0.0 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -62,6 +63,7 @@ %prep %setup -q +%patch0 -p1 %build mkdir m4 ++++++ libmesode-0.9.1-openssl-1.1.patch ++++++ >From 5ab52edb943985fc3943b33d9a6be1b23045a052 Mon Sep 17 00:00:00 2001 From: Jelle van der Waa <je...@vdwaa.nl> Date: Wed, 15 Mar 2017 20:25:53 +0100 Subject: [PATCH] Fix build with OpenSSL 1.1.x OpenSSL 1.1.x made many structs opaque and helpers are required to access members of struct. TX509_PUBKEY_get0_param returns 1 for succes and 0 on failure, this has not been handled yet by this patch. --- src/tls_openssl.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/tls_openssl.c b/src/tls_openssl.c index 3118adc..89e2643 100644 --- a/src/tls_openssl.c +++ b/src/tls_openssl.c @@ -168,7 +168,15 @@ static struct _tlscert_t *_x509_to_tlscert(xmpp_ctx_t *ctx, X509 *cert) } tlscert->keyalg = NULL; +#if OPENSSL_VERSION_NUMBER < 0x10100000L int alg_nid = OBJ_obj2nid(cert->cert_info->key->algor->algorithm); +#else + X509_PUBKEY *pubkey = X509_get_X509_PUBKEY(cert); + ASN1_OBJECT *ppkalg; + // FIXME: handle 0 on error. + X509_PUBKEY_get0_param(&ppkalg, NULL, NULL, NULL, NULL); + int alg_nid = OBJ_obj2nid(ppkalg); +#endif if (alg_nid != NID_undef) { const char* keyalg = OBJ_nid2ln(alg_nid); if (keyalg) { @@ -177,7 +185,13 @@ static struct _tlscert_t *_x509_to_tlscert(xmpp_ctx_t *ctx, X509 *cert) } tlscert->sigalg = NULL; +#if OPENSSL_VERSION_NUMBER < 0x10100000L alg_nid = OBJ_obj2nid(cert->sig_alg->algorithm); +#else + const X509_ALGOR *palg; + X509_get0_signature(NULL, &palg, cert); + alg_nid = OBJ_obj2nid(palg->algorithm); +#endif if (alg_nid != NID_undef) { const char* sigalg = OBJ_nid2ln(alg_nid); if (sigalg) { >From b91872cf7e7ed4d2443ab5c622f4cdb395d64dbe Mon Sep 17 00:00:00 2001 From: James Booth <boot...@gmail.com> Date: Fri, 24 Mar 2017 00:21:21 +0000 Subject: [PATCH] Fix getting SSL public key algorithm --- src/tls_openssl.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/tls_openssl.c b/src/tls_openssl.c index 6c93a4f..94e4c2b 100644 --- a/src/tls_openssl.c +++ b/src/tls_openssl.c @@ -169,15 +169,17 @@ static struct _tlscert_t *_x509_to_tlscert(xmpp_ctx_t *ctx, X509 *cert) tlscert->keyalg = NULL; #if OPENSSL_VERSION_NUMBER < 0x10100000L - int alg_nid = OBJ_obj2nid(cert->cert_info->key->algor->algorithm); + int alg_nid = OBJ_obj2nid(cert->cert_info->key->algor->algorithm); #else - X509_PUBKEY *pubkey = X509_get_X509_PUBKEY(cert); - ASN1_OBJECT *ppkalg; - // FIXME: handle 0 on error. - X509_PUBKEY_get0_param(&ppkalg, NULL, NULL, NULL, NULL); - int alg_nid = OBJ_obj2nid(ppkalg); + X509_PUBKEY *pubkey = X509_get_X509_PUBKEY(cert); + ASN1_OBJECT *ppkalg = NULL; + int alg_nid = NID_undef; + res = X509_PUBKEY_get0_param(&ppkalg, NULL, NULL, NULL, pubkey); + if (res) { + alg_nid = OBJ_obj2nid(ppkalg); + } #endif - if (alg_nid != NID_undef) { + if (alg_nid != NID_undef) { const char* keyalg = OBJ_nid2ln(alg_nid); if (keyalg) { tlscert->keyalg = xmpp_strdup(ctx, keyalg); @@ -186,13 +188,13 @@ static struct _tlscert_t *_x509_to_tlscert(xmpp_ctx_t *ctx, X509 *cert) tlscert->sigalg = NULL; #if OPENSSL_VERSION_NUMBER < 0x10100000L - alg_nid = OBJ_obj2nid(cert->sig_alg->algorithm); + alg_nid = OBJ_obj2nid(cert->sig_alg->algorithm); #else - const X509_ALGOR *palg; - X509_get0_signature(NULL, &palg, cert); - alg_nid = OBJ_obj2nid(palg->algorithm); + const X509_ALGOR *palg; + X509_get0_signature(NULL, &palg, cert); + alg_nid = OBJ_obj2nid(palg->algorithm); #endif - if (alg_nid != NID_undef) { + if (alg_nid != NID_undef) { const char* sigalg = OBJ_nid2ln(alg_nid); if (sigalg) { tlscert->sigalg = xmpp_strdup(ctx, sigalg);