summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/ebook.scm1
-rw-r--r--gnu/packages/patches/calibre-msgpack-compat.patch18
3 files changed, 20 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index dd0169a969..8328165e17 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -776,6 +776,7 @@ dist_patch_DATA = \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
%D%/packages/patches/bluez-CVE-2020-0556.patch \
%D%/packages/patches/byobu-writable-status.patch \
+ %D%/packages/patches/calibre-msgpack-compat.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-bs4.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 5ac0fb1533..37be173949 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -104,6 +104,7 @@
(delete-file "resources/calibre-portable.sh")
#t))
(patches (search-patches "calibre-no-updates-dialog.patch"
+ "calibre-msgpack-compat.patch"
"calibre-remove-test-bs4.patch" ; TODO: fix test.
"calibre-remove-test-sqlite.patch" ; TODO: fix test.
"calibre-remove-test-unrar.patch"))))
diff --git a/gnu/packages/patches/calibre-msgpack-compat.patch b/gnu/packages/patches/calibre-msgpack-compat.patch
new file mode 100644
index 0000000000..9920103bea
--- /dev/null
+++ b/gnu/packages/patches/calibre-msgpack-compat.patch
@@ -0,0 +1,18 @@
+Fix deserialization with msgpack 1.0.
+
+Patch copied from upstream source repository:
+https://github.com/kovidgoyal/calibre/commit/0ff41ac64994ec11b7859fc004c94d08769e3af3
+
+diff --git a/src/calibre/utils/serialize.py b/src/calibre/utils/serialize.py
+index f5d560c468..c35ae53849 100644
+--- a/src/calibre/utils/serialize.py
++++ b/src/calibre/utils/serialize.py
+@@ -110,7 +110,7 @@ def msgpack_decoder(code, data):
+ def msgpack_loads(dump, use_list=True):
+ # use_list controls whether msgpack arrays are unpacked as lists or tuples
+ import msgpack
+- return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list)
++ return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list, strict_map_key=False)
+
+
+ def json_loads(data):