[pulseaudio] 02/03: Backport upstream patch for building with openssl 1.1

Felipe Sateler fsateler at moszumanska.debian.org
Fri Nov 4 23:14:43 UTC 2016


This is an automated email from the git hooks/post-receive script.

fsateler pushed a commit to branch master
in repository pulseaudio.

commit 39a0b612ec14d8004eb61d9d47a26a82e20f2274
Author: Felipe Sateler <fsateler at debian.org>
Date:   Fri Nov 4 19:06:58 2016 -0300

    Backport upstream patch for building with openssl 1.1
    
    Closes: #828515
---
 ...raop-add-compatibility-with-openssl-1.1.0.patch | 59 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 2 files changed, 60 insertions(+)

diff --git a/debian/patches/raop-add-compatibility-with-openssl-1.1.0.patch b/debian/patches/raop-add-compatibility-with-openssl-1.1.0.patch
new file mode 100644
index 0000000..365ca03
--- /dev/null
+++ b/debian/patches/raop-add-compatibility-with-openssl-1.1.0.patch
@@ -0,0 +1,59 @@
+From: Tanu Kaskinen <tanuk at iki.fi>
+Date: Fri, 4 Nov 2016 14:43:57 +0200
+Subject: raop: add compatibility with openssl 1.1.0
+
+Openssl 1.1.0 made all structs opaque, which caused a build failure in
+raop_client.c. The struct member assignments are now replaced with a
+call to RSA_set0_key().
+
+BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=96726
+
+Reviewed-by: Felipe Sateler <fsateler at debian.org>
+---
+ src/modules/raop/raop_client.c | 22 ++++++++++++++++++++--
+ 1 file changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/src/modules/raop/raop_client.c b/src/modules/raop/raop_client.c
+index 3b6c36e..864c558 100644
+--- a/src/modules/raop/raop_client.c
++++ b/src/modules/raop/raop_client.c
+@@ -68,6 +68,21 @@
+ 
+ #define RAOP_PORT 5000
+ 
++/* Openssl 1.1.0 broke compatibility. Before 1.1.0 we had to set RSA->n and
++ * RSA->e manually, but after 1.1.0 the RSA struct is opaque and we have to use
++ * RSA_set0_key(). RSA_set0_key() is a new function added in 1.1.0. We could
++ * depend on openssl 1.1.0, but it may take some time before distributions will
++ * be able to upgrade to the new openssl version. To insulate ourselves from
++ * such transition problems, let's implement RSA_set0_key() ourselves if it's
++ * not available. */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++static int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) {
++    r->n = n;
++    r->e = e;
++    return 1;
++}
++#endif
++
+ struct pa_raop_client {
+     pa_core *core;
+     char *host;
+@@ -161,12 +176,15 @@ static int rsa_encrypt(uint8_t *text, int len, uint8_t *res) {
+     uint8_t exponent[8];
+     int size;
+     RSA *rsa;
++    BIGNUM *n_bn;
++    BIGNUM *e_bn;
+ 
+     rsa = RSA_new();
+     size = pa_base64_decode(n, modules);
+-    rsa->n = BN_bin2bn(modules, size, NULL);
++    n_bn = BN_bin2bn(modules, size, NULL);
+     size = pa_base64_decode(e, exponent);
+-    rsa->e = BN_bin2bn(exponent, size, NULL);
++    e_bn = BN_bin2bn(exponent, size, NULL);
++    RSA_set0_key(rsa, n_bn, e_bn, NULL);
+ 
+     size = RSA_public_encrypt(len, text, res, rsa, RSA_PKCS1_OAEP_PADDING);
+     RSA_free(rsa);
diff --git a/debian/patches/series b/debian/patches/series
index 34bd6a9..1fe9e5d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 Fix-detection-of-online-CPUs-in-pa_ncpus.patch
+raop-add-compatibility-with-openssl-1.1.0.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-pulseaudio/pulseaudio.git



More information about the pkg-pulseaudio-devel mailing list