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);

Reply via email to