summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/ebook.scm3
-rw-r--r--gnu/packages/patches/calibre-fix-zeroconf.patch38
3 files changed, 41 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 5a8d140cea..1614c789cf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -916,6 +916,7 @@ dist_patch_DATA = \
%D%/packages/patches/cabal-install-ghc8.10.patch \
%D%/packages/patches/cairo-CVE-2018-19876.patch \
%D%/packages/patches/cairo-CVE-2020-35492.patch \
+ %D%/packages/patches/calibre-fix-zeroconf.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 03671ee902..207bbfcdaf 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -145,7 +145,8 @@ with Microsoft Compiled HTML (CHM) files")
(delete-file "resources/calibre-portable.bat")
(delete-file "resources/calibre-portable.sh")
#t))
- (patches (search-patches "calibre-no-updates-dialog.patch"
+ (patches (search-patches "calibre-fix-zeroconf.patch"
+ "calibre-no-updates-dialog.patch"
"calibre-remove-test-sqlite.patch" ; TODO: fix test.
"calibre-remove-test-unrar.patch"))))
(build-system python-build-system)
diff --git a/gnu/packages/patches/calibre-fix-zeroconf.patch b/gnu/packages/patches/calibre-fix-zeroconf.patch
new file mode 100644
index 0000000000..d7d0f18667
--- /dev/null
+++ b/gnu/packages/patches/calibre-fix-zeroconf.patch
@@ -0,0 +1,38 @@
+Fix a build failure when upgrading zeroconf from 0.28.8 to 0.38.1:
+
+https://issues.guix.gnu.org/53247
+
+Patch copied from Gentoo:
+
+https://bugs.gentoo.org/800233#c5
+
+diff --color -Naru a/src/calibre/devices/smart_device_app/driver.py b/src/calibre/devices/smart_device_app/driver.py
+--- a/src/calibre/devices/smart_device_app/driver.py 2021-08-08 08:32:03.104016444 +0200
++++ b/src/calibre/devices/smart_device_app/driver.py 2021-08-08 08:33:30.699018403 +0200
+@@ -2040,13 +2040,6 @@
+ # Function to monkeypatch zeroconf to remove the 15 character name length restriction.
+ # Copied from https://github.com/jstasiak/python-zeroconf version 0.28.1
+
+-
+-from zeroconf import (BadTypeInNameException, _HAS_A_TO_Z,
+- _HAS_ONLY_A_TO_Z_NUM_HYPHEN_UNDERSCORE,
+- _HAS_ASCII_CONTROL_CHARS,
+- _HAS_ONLY_A_TO_Z_NUM_HYPHEN)
+-
+-
+ def service_type_name(type_: str, *, allow_underscores: bool = False) -> str:
+ """
+ Validate a fully qualified service name, instance or subtype. [rfc6763]
+@@ -2087,6 +2080,12 @@
+ :param type_: Type, SubType or service name to validate
+ :return: fully qualified service name (eg: _http._tcp.local.)
+ """
++
++ from zeroconf import (BadTypeInNameException, _HAS_A_TO_Z,
++ _HAS_ONLY_A_TO_Z_NUM_HYPHEN_UNDERSCORE,
++ _HAS_ASCII_CONTROL_CHARS,
++ _HAS_ONLY_A_TO_Z_NUM_HYPHEN)
++
+ if not (type_.endswith('._tcp.local.') or type_.endswith('._udp.local.')):
+ raise BadTypeInNameException("Type '%s' must end with '._tcp.local.' or '._udp.local.'" % type_)
+