Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian....@packages.debian.org
Usertags: pu

Hi,

libimobiledevice in Buster has some issue with devices running iOS 13+.
Backup using idevicebackup2 never finishes, apparently because of some
behavior change in newer iOS version.

With coordination with upstream
(https://github.com/libimobiledevice/libimobiledevice/issues/848) a
small fix was identified.

Would it be possible to upload a fixed package to Buster at some point?
The fix is not yet in sid (a previous package is waiting in NEW, I'll
upload a package fix soon) so it's more a pre-approval.

The debdiff is attached for review.

Thanks in advance,
-- 
Yves-Alexis

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (450, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.2.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8), 
LANGUAGE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Differences in libimobiledevice between 1.2.1~git20181030.92c5462-1 and 
1.2.1~git20181030.92c5462-2
diff -Nru libimobiledevice-1.2.1~git20181030.92c5462/debian/changelog 
libimobiledevice-1.2.1~git20181030.92c5462/debian/changelog
--- libimobiledevice-1.2.1~git20181030.92c5462/debian/changelog 2019-01-08 
16:24:55.000000000 +0100
+++ libimobiledevice-1.2.1~git20181030.92c5462/debian/changelog 2019-09-29 
17:14:37.000000000 +0200
@@ -1,3 +1,10 @@
+libimobiledevice (1.2.1~git20181030.92c5462-2) UNRELEASED; urgency=medium
+
+  * d/patches: properly handle partial SSL writes
+  * d/gbp.conf: follow buster branch
+
+ -- Yves-Alexis Perez <cor...@debian.org>  Sun, 29 Sep 2019 17:14:37 +0200
+
 libimobiledevice (1.2.1~git20181030.92c5462-1) unstable; urgency=medium
 
   * New upstream snapshot
diff -Nru libimobiledevice-1.2.1~git20181030.92c5462/debian/gbp.conf 
libimobiledevice-1.2.1~git20181030.92c5462/debian/gbp.conf
--- libimobiledevice-1.2.1~git20181030.92c5462/debian/gbp.conf  2019-01-08 
16:24:55.000000000 +0100
+++ libimobiledevice-1.2.1~git20181030.92c5462/debian/gbp.conf  2019-09-29 
17:14:37.000000000 +0200
@@ -1,5 +1,5 @@
 [DEFAULT]
-debian-branch = debian/master
+debian-branch = debian/buster
 upstream-branch = upstream/master
 pristine-tar = True
 
diff -Nru 
libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/0003-idevice-properly-handle-partial-SSL-writes.patch
 
libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/0003-idevice-properly-handle-partial-SSL-writes.patch
--- 
libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/0003-idevice-properly-handle-partial-SSL-writes.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/0003-idevice-properly-handle-partial-SSL-writes.patch
     2019-09-29 17:14:37.000000000 +0200
@@ -0,0 +1,46 @@
+From: Nikias Bassen <nik...@gmx.li>
+Date: Sun, 29 Sep 2019 17:10:46 +0200
+Subject: idevice: properly handle partial SSL writes
+
+---
+ src/idevice.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/src/idevice.c b/src/idevice.c
+index cb9bb5c..dd47e67 100644
+--- a/src/idevice.c
++++ b/src/idevice.c
+@@ -366,18 +366,25 @@ LIBIMOBILEDEVICE_API idevice_error_t 
idevice_connection_send(idevice_connection_
+       }
+ 
+       if (connection->ssl_data) {
++              uint32_t sent = 0;
++              while (sent < len) {
+ #ifdef HAVE_OPENSSL
+-              int sent = SSL_write(connection->ssl_data->session, (const 
void*)data, (int)len);
+-              debug_info("SSL_write %d, sent %d", len, sent);
++                      int s = SSL_write(connection->ssl_data->session, (const 
void*)(data+sent), (int)(len-sent));
+ #else
+-              ssize_t sent = 
gnutls_record_send(connection->ssl_data->session, (void*)data, (size_t)len);
++                      ssize_t s = 
gnutls_record_send(connection->ssl_data->session, (void*)(data+sent), 
(size_t)(len-sent));
+ #endif
+-              if ((uint32_t)sent == (uint32_t)len) {
+-                      *sent_bytes = sent;
+-                      return IDEVICE_E_SUCCESS;
++                      if (s < 0) {
++                              break;
++                      }
++                      sent += s;
+               }
+-              *sent_bytes = 0;
+-              return IDEVICE_E_SSL_ERROR;
++              debug_info("SSL_write %d, sent %d", len, sent);
++              if (sent < len) {
++                      *sent_bytes = 0;
++                      return IDEVICE_E_SSL_ERROR;
++              }
++              *sent_bytes = sent;
++              return IDEVICE_E_SUCCESS;
+       }
+       return internal_connection_send(connection, data, len, sent_bytes);
+ }
diff -Nru libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/series 
libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/series
--- libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/series    
2019-01-08 16:24:55.000000000 +0100
+++ libimobiledevice-1.2.1~git20181030.92c5462/debian/patches/series    
2019-09-29 17:14:37.000000000 +0200
@@ -1,2 +1,3 @@
 0001-Drop-obsolete-m4-macros.patch
 0002-Use-_LIBS-instead-of-_LDFLAGS-for-cython-link.patch
+0003-idevice-properly-handle-partial-SSL-writes.patch

Reply via email to