GNU bug report logs - #50029
[PATCH] adb, use openssl 1.1

Previous Next

Package: guix-patches;

Reported by: Giovanni Biscuolo <g <at> xelera.eu>

Date: Thu, 12 Aug 2021 17:06:02 UTC

Severity: normal

Tags: patch

Done: Leo Famulari <leo <at> famulari.name>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50029 in the body.
You can then email your comments to 50029 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#50029; Package guix-patches. (Thu, 12 Aug 2021 17:06:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Giovanni Biscuolo <g <at> xelera.eu>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 12 Aug 2021 17:06:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Giovanni Biscuolo <g <at> xelera.eu>
To: guix-patches <at> gnu.org
Subject: [PATCH] adb, use openssl 1.1
Date: Thu, 12 Aug 2021 19:04:42 +0200
[Message part 1 (text/plain, inline)]
Hello maintainers,

As promised in [bug#49859] I was able to assemble a patch for adb to use
openssl 1.1 instead of the old and unsopported openssl 1.0.

[0001-gnu-adb-Make-compatible-with-openssl-1.1.patch (text/x-diff, inline)]
From f0c275121a74d7c20b4383e3bb65d6c27ad7a0e7 Mon Sep 17 00:00:00 2001
From: Giovanni Biscuolo <g <at> xelera.eu>
Date: Thu, 12 Aug 2021 18:09:02 +0200
Subject: [PATCH] gnu: adb: Make compatible with openssl 1.1

OpenSSL version 1.1 brought some API changes which broke the build here, fix
that by accessing rsa->n (and e) directly, using RSA_get0_key instead.

Patch from: https://sources.debian.org/data/main/a/android-platform-system-core/1%3A7.0.0%2Br33-1/debian/patches/adb_libssl_11.diff

* gnu/local.mk (dist_patch_DATA): Add adb-libssl_11-compat.patch

* gnu/packages/android.scm: (android-platform-system-core) Add
adb-libssl_11-compat.patch; (adb) Use openssl as input

* gnu/packages/patches/adb-libssl_11-compat.patch: New file
---
 gnu/local.mk                                  |  1 +
 gnu/packages/android.scm                      |  3 +-
 .../patches/adb-libssl_11-compat.patch        | 35 +++++++++++++++++++
 3 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/adb-libssl_11-compat.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 32ac19d20e..ba6b7732c4 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -806,6 +806,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/abseil-cpp-fix-gtest.patch		\
   %D%/packages/patches/abseil-cpp-fix-strerror_test.patch	\
   %D%/packages/patches/adb-add-libraries.patch			\
+  %D%/packages/patches/adb-libssl_11-compat.patch		\
   %D%/packages/patches/aegis-constness-error.patch         	\
   %D%/packages/patches/aegis-perl-tempdir1.patch           	\
   %D%/packages/patches/aegis-perl-tempdir2.patch           	\
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index eb538f6540..43cd9b72f9 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -148,6 +148,7 @@ use their packages mostly unmodified in our Android NDK build system.")
                      "libutils-remove-damaging-includes.patch"
                      "libutils-add-includes.patch"
                      "adb-add-libraries.patch"
+                     "adb-libssl_11-compat.patch"
                      "libziparchive-add-includes.patch"))))
 
 (define (android-platform-system-extras version)
@@ -388,7 +389,7 @@ various Android core host applications.")
      `(("android-libbase" ,android-libbase)
        ("android-libcutils" ,android-libcutils)
        ("android-liblog" ,android-liblog)
-       ("openssl" ,openssl-1.0)))
+       ("openssl" ,openssl)))
     (home-page "https://developer.android.com/studio/command-line/adb.html")
     (synopsis "Android Debug Bridge")
     (description
diff --git a/gnu/packages/patches/adb-libssl_11-compat.patch b/gnu/packages/patches/adb-libssl_11-compat.patch
new file mode 100644
index 0000000000..9affe58b5d
--- /dev/null
+++ b/gnu/packages/patches/adb-libssl_11-compat.patch
@@ -0,0 +1,35 @@
+This patch is taken from Debian
+URL: https://sources.debian.org/data/main/a/android-platform-system-core/1%3A7.0.0%2Br33-1/debian/patches/adb_libssl_11.diff
+Description: adb: Make compatible with openssl 1.1
+ OpenSSL version 1.1 brought some API changes which broke the build here,
+ fix that by accessing rsa->n (and e) directly, using RSA_get0_key instead.
+Author: Chirayu Desai <chirayudesai1 <at> gmail.com
+Last-Update: 2016-11-10
+--- a/adb/adb_auth_host.cpp
++++ b/adb/adb_auth_host.cpp
+@@ -71,6 +71,7 @@
+     BIGNUM* rem = BN_new();
+     BIGNUM* n = BN_new();
+     BIGNUM* n0inv = BN_new();
++    BIGNUM* e = BN_new();
+ 
+     if (RSA_size(rsa) != RSANUMBYTES) {
+         ret = 0;
+@@ -78,7 +79,7 @@
+     }
+ 
+     BN_set_bit(r32, 32);
+-    BN_copy(n, rsa->n);
++    RSA_get0_key(rsa, &n, &e, NULL);
+     BN_set_bit(r, RSANUMWORDS * 32);
+     BN_mod_sqr(rr, r, n, ctx);
+     BN_div(NULL, rem, n, r32, ctx);
+@@ -92,7 +93,7 @@
+         BN_div(n, rem, n, r32, ctx);
+         pkey->n[i] = BN_get_word(rem);
+     }
+-    pkey->exponent = BN_get_word(rsa->e);
++    pkey->exponent = BN_get_word(e);
+ 
+ out:
+     BN_free(n0inv);
-- 
2.32.0

[Message part 3 (text/plain, inline)]
As described in the patch, I got the patch from Debian [1] and
fortunately it applies as-is! (I'm not able to asses the code but I'm
pretty sure Debian maintener did it for me).

I was able to build and install the package and tested it by connecting
to my Android phone with adb via wi-fi: is this a viable test to check
if the patch is OK?

Happy hacking! Gio'


[1] https://sources.debian.org/data/main/a/android-platform-system-core/1%3A7.0.0%2Br33-1/debian/patches/adb_libssl_11.diff

-- 
Giovanni Biscuolo

Xelera IT Infrastructures
[signature.asc (application/pgp-signature, inline)]

Added indication that bug 50029 blocks46602 Request was from "Leo Famulari" <leo <at> famulari.name> to control <at> debbugs.gnu.org. (Sun, 15 Aug 2021 17:44:01 GMT) Full text and rfc822 format available.

Reply sent to Leo Famulari <leo <at> famulari.name>:
You have taken responsibility. (Sun, 15 Aug 2021 22:10:01 GMT) Full text and rfc822 format available.

Notification sent to Giovanni Biscuolo <g <at> xelera.eu>:
bug acknowledged by developer. (Sun, 15 Aug 2021 22:10:01 GMT) Full text and rfc822 format available.

Message #12 received at 50029-done <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Giovanni Biscuolo <g <at> xelera.eu>
Cc: 50029-done <at> debbugs.gnu.org
Subject: Re: [bug#50029] [PATCH] adb, use openssl 1.1
Date: Sun, 15 Aug 2021 18:09:03 -0400
On Thu, Aug 12, 2021 at 07:04:42PM +0200, Giovanni Biscuolo wrote:
> Hello maintainers,
> 
> As promised in [bug#49859] I was able to assemble a patch for adb to use
> openssl 1.1 instead of the old and unsopported openssl 1.0.

Awesome!

> From f0c275121a74d7c20b4383e3bb65d6c27ad7a0e7 Mon Sep 17 00:00:00 2001
> From: Giovanni Biscuolo <g <at> xelera.eu>
> Date: Thu, 12 Aug 2021 18:09:02 +0200
> Subject: [PATCH] gnu: adb: Make compatible with openssl 1.1
> 
> OpenSSL version 1.1 brought some API changes which broke the build here, fix
> that by accessing rsa->n (and e) directly, using RSA_get0_key instead.
> 
> Patch from: https://sources.debian.org/data/main/a/android-platform-system-core/1%3A7.0.0%2Br33-1/debian/patches/adb_libssl_11.diff
> 
> * gnu/local.mk (dist_patch_DATA): Add adb-libssl_11-compat.patch
> 
> * gnu/packages/android.scm: (android-platform-system-core) Add
> adb-libssl_11-compat.patch; (adb) Use openssl as input
> 
> * gnu/packages/patches/adb-libssl_11-compat.patch: New file

I cleaned up the commit message and renamed the patch to
adb-libssl_11-compatibility.patch and pushed as
05effbbfc2fc6223aafacf8a3cb2b2d970b6bb66




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 13 Sep 2021 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 278 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.