diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/ebook.scm | 51 | ||||
-rw-r--r-- | gnu/packages/patches/calibre-msgpack-compat.patch | 18 | ||||
-rw-r--r-- | gnu/packages/patches/calibre-remove-test-bs4.patch | 34 |
3 files changed, 43 insertions, 60 deletions
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 4243c71673..d290b19f5f 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -46,6 +46,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages javascript) #:use-module (gnu packages libusb) + #:use-module (gnu packages libreoffice) #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -82,7 +83,7 @@ (define-public calibre (package (name "calibre") - (version "3.42.0") + (version "4.18.0") (source (origin (method url-fetch) @@ -91,13 +92,18 @@ version ".tar.xz")) (sha256 (base32 - "0ymdhws3cb44p3fb24vln1wx6s7qnb8rr241jvm6qbj5rnp984dm")) - ;; Unbundle python2-odfpy. - ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html + "0w9pcfvskjh4v00vjw3i6hzrafy863pgsmmqdx4lffip3p856brw")) (modules '((guix build utils))) (snippet '(begin + ;; Unbundle python2-odfpy. (delete-file-recursively "src/odf") + ;; Disable test that attempts to load it. + (substitute* "setup/test.py" + ((".*SRC, 'odf'.*") + "")) + + ;; Remove unneeded resources. (delete-file "resources/viewer.js") (delete-file "resources/viewer.html") (delete-file "resources/mozilla-ca-certs.pem") @@ -105,8 +111,6 @@ (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")))) (build-system python-build-system) @@ -115,12 +119,13 @@ ("qtbase" ,qtbase) ; for qmake ("python2-flake8" ,python2-flake8) ("xdg-utils" ,xdg-utils))) - ;; Beautifulsoup3 is bundled but obsolete and not packaged, so just leave it bundled. (inputs `(("chmlib" ,chmlib) ("fontconfig" ,fontconfig) ("font-liberation" ,font-liberation) ("glib" ,glib) + ("hunspell" ,hunspell) + ("hyphen" ,hyphen) ("icu4c" ,icu4c) ("js-mathjax" ,js-mathjax) ("libmtp" ,libmtp) @@ -132,6 +137,7 @@ ("poppler" ,poppler) ("python" ,python-2) ("python2-apsw" ,python2-apsw) + ("python2-beautifulsoup4" ,python2-beautifulsoup4) ("python2-chardet" ,python2-chardet) ("python2-cssselect" ,python2-cssselect) ("python2-css-parser" ,python2-css-parser) @@ -153,9 +159,11 @@ ("python2-pillow" ,python2-pillow) ("python2-psutil" ,python2-psutil) ("python2-pygments" ,python2-pygments) + ("python2-pyqtwebengine" ,python2-pyqtwebengine) ("python2-pyqt" ,python2-pyqt) ("python2-sip" ,python2-sip) ("python2-regex" ,python2-regex) + ("qtwebengine" ,qtwebengine) ("sqlite" ,sqlite))) (arguments `(#:python ,python-2 @@ -170,6 +178,18 @@ ;; We can't use the uninstaller in Guix. Don't build it. (("self\\.create_uninstaller()") "")) #t)) + (add-after 'patch-source-shebangs 'patch-more-shebangs + (lambda _ + ;; Patch various inline shebangs. + (substitute* '("src/calibre/gui2/preferences/tweaks.py" + "src/calibre/gui2/dialogs/custom_recipes.py" + "setup/install.py" + "setup/linux-installer.sh") + (("#!/usr/bin/env python") + (string-append "#!" (which "python"))) + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + #t)) (add-after 'unpack 'dont-load-remote-icons (lambda _ (substitute* "setup/plugins_mirror.py" @@ -180,9 +200,12 @@ (lambda* (#:key inputs outputs #:allow-other-keys) (let ((podofo (assoc-ref inputs "podofo")) (pyqt (assoc-ref inputs "python2-pyqt")) + (python-sip (assoc-ref inputs "python2-sip")) (out (assoc-ref outputs "out"))) (substitute* "setup/build_environment.py" - (("sys.prefix") (string-append "'" pyqt "'"))) + (("= get_sip_dir\\(\\)") + (string-append "= '" pyqt "/share/sip'"))) + (substitute* "src/calibre/ebooks/pdf/pdftohtml.py" (("PDFTOHTML = 'pdftohtml'") (string-append "PDFTOHTML = \"" (assoc-ref inputs "poppler") @@ -195,6 +218,18 @@ (substitute* "src/calibre/linux.py" (("'~/.local/share'") "''")) + ;; 'python setup.py rapydscript' uses QtWebEngine, which + ;; needs to create temporary files in $HOME. + (setenv "HOME" "/tmp") + + ;; XXX: QtWebEngine will fail if no fonts are available. This + ;; can likely be removed when fontconfig has been patched to + ;; include TrueType fonts by default. + (symlink (string-append (assoc-ref inputs "font-liberation") + "/share/fonts") + "/tmp/.fonts") + + (setenv "SIP_BIN" (string-append python-sip "/bin/sip")) (setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo")) (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib")) ;; This informs the tests we are a continuous integration diff --git a/gnu/packages/patches/calibre-msgpack-compat.patch b/gnu/packages/patches/calibre-msgpack-compat.patch deleted file mode 100644 index 9920103bea..0000000000 --- a/gnu/packages/patches/calibre-msgpack-compat.patch +++ /dev/null @@ -1,18 +0,0 @@ -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): diff --git a/gnu/packages/patches/calibre-remove-test-bs4.patch b/gnu/packages/patches/calibre-remove-test-bs4.patch deleted file mode 100644 index 77dd45d329..0000000000 --- a/gnu/packages/patches/calibre-remove-test-bs4.patch +++ /dev/null @@ -1,34 +0,0 @@ -In my efforts to fix all Calibre tests, this test would always complain about -backports.functools_lru_cache not existing even after I packaged and added -python2-soupsieve as an input and confirmed it was in the -PYTHONPATH. Currently Calibre does not actually use it for anything other than -testing it's there, so I assume they will start using it in future Calibre -versions. - -From 2738dd42caebe55326c76922a12ba8740bdb22e7 Mon Sep 17 00:00:00 2001 -From: Brendan Tildesley <mail@brendan.scot> -Date: Sat, 27 Apr 2019 00:42:39 +1000 -Subject: [PATCH] Remove test_bs4 - ---- - src/calibre/test_build.py | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py -index 73f1172e8c..07bdffd3e5 100644 ---- a/src/calibre/test_build.py -+++ b/src/calibre/test_build.py -@@ -73,10 +73,6 @@ class BuildTest(unittest.TestCase): - from html5_parser import parse - parse('<p>xxx') - -- def test_bs4(self): -- import soupsieve, bs4 -- del soupsieve, bs4 -- - def test_zeroconf(self): - if ispy3: - import zeroconf as z, ifaddr --- -2.21.0 - |