commit:     e2488d93b0267444a7e14c52da34e31ec0b97e18
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  9 20:46:19 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Feb  9 20:50:24 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e2488d93

app-text/calibre: kobo py3 fix for bug 708742

Closes: https://bugs.gentoo.org/708742
Package-Manager: Portage-2.3.88, Repoman-2.3.20
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 ...e-4.10.1-r1.ebuild => calibre-4.10.1-r2.ebuild} |  3 +-
 ...bre-4.9.1-r1.ebuild => calibre-4.9.1-r2.ebuild} |  3 +-
 ...Ignore-TypeError-sorting-collections-kobo.patch | 63 ++++++++++++++++++++++
 3 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/app-text/calibre/calibre-4.10.1-r1.ebuild 
b/app-text/calibre/calibre-4.10.1-r2.ebuild
similarity index 98%
rename from app-text/calibre/calibre-4.10.1-r1.ebuild
rename to app-text/calibre/calibre-4.10.1-r2.ebuild
index 87653101234..2004b89741d 100644
--- a/app-text/calibre/calibre-4.10.1-r1.ebuild
+++ b/app-text/calibre/calibre-4.10.1-r2.ebuild
@@ -121,7 +121,8 @@ src_prepare() {
        # disable_plugins: walking sec-hole, wait for upstream to use GHNS 
interface
        eapply \
                "${FILESDIR}/${PN}-2.9.0-no_updates_dialog.patch" \
-               "${FILESDIR}/${PN}-disable_plugins.patch"
+               "${FILESDIR}/${PN}-disable_plugins.patch" \
+               
"${FILESDIR}/${PN}-4.9.1-py3-Ignore-TypeError-sorting-collections-kobo.patch"
 
        eapply_user
 

diff --git a/app-text/calibre/calibre-4.9.1-r1.ebuild 
b/app-text/calibre/calibre-4.9.1-r2.ebuild
similarity index 98%
rename from app-text/calibre/calibre-4.9.1-r1.ebuild
rename to app-text/calibre/calibre-4.9.1-r2.ebuild
index 10509962f2e..3718b23741e 100644
--- a/app-text/calibre/calibre-4.9.1-r1.ebuild
+++ b/app-text/calibre/calibre-4.9.1-r2.ebuild
@@ -121,7 +121,8 @@ src_prepare() {
        # disable_plugins: walking sec-hole, wait for upstream to use GHNS 
interface
        eapply \
                "${FILESDIR}/${PN}-2.9.0-no_updates_dialog.patch" \
-               "${FILESDIR}/${PN}-disable_plugins.patch"
+               "${FILESDIR}/${PN}-disable_plugins.patch" \
+               
"${FILESDIR}/${PN}-4.9.1-py3-Ignore-TypeError-sorting-collections-kobo.patch"
 
        eapply_user
 

diff --git 
a/app-text/calibre/files/calibre-4.9.1-py3-Ignore-TypeError-sorting-collections-kobo.patch
 
b/app-text/calibre/files/calibre-4.9.1-py3-Ignore-TypeError-sorting-collections-kobo.patch
new file mode 100644
index 00000000000..fb55e0025b7
--- /dev/null
+++ 
b/app-text/calibre/files/calibre-4.9.1-py3-Ignore-TypeError-sorting-collections-kobo.patch
@@ -0,0 +1,63 @@
+From 6f947d88d323bb08bb6e076d442662aa281fe197 Mon Sep 17 00:00:00 2001
+From: Zac Medico <[email protected]>
+Date: Sun, 9 Feb 2020 12:16:04 -0800
+Subject: [PATCH] py3: Ignore TypeError when sorting device collections for
+ kobo driver
+
+https://github.com/kovidgoyal/calibre/pull/1098
+
+Use the same approach as the usbms driver when cmp raises a
+TypeError (see a8deb4b1f8dfb768a32b95b1540be32d5d6e871e).
+
+This should suppress the following error which was reported for
+python3 and not python2:
+
+Traceback (most recent call last):
+  File "/usr/lib64/calibre/calibre/gui2/device.py", line 90, in run
+    self.result = self.func(*self.args, **self.kwargs)
+  File "/usr/lib64/calibre/calibre/gui2/device.py", line 543, in 
_sync_booklists
+    self.device.sync_booklists(booklists, end_session=False)
+  File "/usr/lib64/calibre/calibre/devices/kobo/driver.py", line 970, in 
sync_booklists
+    self.update_device_database_collections(blist, collections, oncard)
+  File "/usr/lib64/calibre/calibre/devices/kobo/driver.py", line 2398, in 
update_device_database_collections
+    collections = booklists.get_collections(collections_attributes) if 
bookshelf_attribute else None
+  File "/usr/lib64/calibre/calibre/devices/kobo/books.py", line 314, in 
get_collections
+    books = sorted(itervalues(lpaths), key=cmp_to_key(none_cmp))
+  File "/usr/lib64/calibre/calibre/devices/kobo/books.py", line 307, in 
none_cmp
+    c = cmp(x, y)
+  File "/usr/lib64/calibre/polyglot/builtins.py", line 106, in cmp
+    return (a > b) - (a < b)
+TypeError: '>' not supported between instances of 'float' and 'str'
+
+See: https://bugs.gentoo.org/708742
+---
+ src/calibre/devices/kobo/books.py | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/calibre/devices/kobo/books.py 
b/src/calibre/devices/kobo/books.py
+index f725751d00..fc1dee6b7e 100644
+--- a/src/calibre/devices/kobo/books.py
++++ b/src/calibre/devices/kobo/books.py
+@@ -304,11 +304,17 @@ class KTCollectionsBookList(CollectionsBookList):
+                 return -1
+             if isinstance(x, string_or_bytes) and isinstance(y, 
string_or_bytes):
+                 x, y = sort_key(force_unicode(x)), sort_key(force_unicode(y))
+-            c = cmp(x, y)
++            try:
++                c = cmp(x, y)
++            except TypeError:
++                c = 0
+             if c != 0:
+                 return c
+             # same as above -- no sort_key needed here
+-            return cmp(xx[2], yy[2])
++            try:
++                return cmp(xx[2], yy[2])
++            except TypeError:
++                return 0
+ 
+         for category, lpaths in iteritems(collections):
+             books = sorted(itervalues(lpaths), key=cmp_to_key(none_cmp))
+-- 
+2.24.1
+

Reply via email to