summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/calibre/PKGBUILD33
-rw-r--r--libre/calibre/libre.patch385
2 files changed, 216 insertions, 202 deletions
diff --git a/libre/calibre/PKGBUILD b/libre/calibre/PKGBUILD
index 96e96370c..4b3c72685 100644
--- a/libre/calibre/PKGBUILD
+++ b/libre/calibre/PKGBUILD
@@ -15,8 +15,8 @@
# - removed decrompession engine for rar archives
pkgname=calibre
-pkgver=3.33.1
-pkgrel=2
+pkgver=3.39.1
+pkgrel=1
pkgrel+=.par1
pkgdesc="Ebook management application"
pkgdesc+=", without nonfree decompression engine for RAR archives"
@@ -24,8 +24,8 @@ arch=('x86_64')
arch+=('i686' 'armv7h')
url="https://calibre-ebook.com/"
license=('GPL3')
-depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-dukpy'
- 'python2-mechanize' 'podofo' 'libwmf' 'jxrlib'
+depends=('python2-six' 'python2-dateutil' 'python2-css-parser' 'python2-dukpy'
+ 'python2-mechanize' 'podofo' 'libwmf' 'jxrlib' 'mathjax'
'chmlib' 'python2-lxml' 'libusbx' 'python2-html5-parser'
'python2-pillow' 'shared-mime-info' 'python2-dnspython' 'python2-msgpack'
'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp' 'python2-dbus'
@@ -39,17 +39,14 @@ optdepends=('ipython2: to use calibre-debug'
source=("https://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz"
"https://calibre-ebook.com/signatures/${pkgname}-${pkgver}.tar.xz.sig"
'libre.patch')
-sha256sums=('92bc940ac01e888058a5baa171dda8c75e9993dd419b58df3a11e3e55e3875ac'
+sha256sums=('50bb56ca9455464495c646688722cb07199ed74a3a2eb3dc4f3b3e609be68121'
'SKIP'
- '2f0d351ea3345fad6952ca15af1bbec5d88ed5b048303f4de960d5a8833868b6')
+ '2990c382bcfaa36e3162261eed9acae7e905b75471bcdd75930ddd9a33173f6c')
validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal (New longer key) <kovid@kovidgoyal.net>
-prepare() {
+prepare(){
cd "${pkgname}-${pkgver}"
- # Remove unneeded files
- rm -rf resources/${pkgname}-portable.*
-
# fix freedom issues
rm -v imgsrc/mimetypes/rar.svg
rm -v src/calibre/ebooks/metadata/rar.py
@@ -64,6 +61,17 @@ prepare() {
-e "s/'ctc-posml'/'text' not in mt and 'pdf' not in mt and 'xhtml'/" \
-e "s/^Name=calibre/Name=Calibre/g" \
-i src/calibre/linux.py
+
+ cd resources
+
+ # Remove unneeded files
+ rm ${pkgname}-portable.* mozilla-ca-certs.pem
+
+ # tarball cache from calibre 4.x
+ rm editor.js viewer.{js,html}
+
+ # use system mathjax
+ rm -r mathjax
}
build() {
@@ -71,6 +79,8 @@ build() {
LANG='en_US.UTF-8' python2 setup.py build
LANG='en_US.UTF-8' python2 setup.py gui
+ LANG='en_US.UTF-8' python2 setup.py mathjax --path-to-mathjax /usr/share/mathjax --system-mathjax
+ LANG='en_US.UTF-8' python2 setup.py rapydscript
}
check() {
@@ -96,6 +106,9 @@ package() {
cp -a man-pages/ "${pkgdir}/usr/share/man"
+ # not needed at runtime
+ rm -r "${pkgdir}"/usr/share/calibre/rapydscript/
+
# Compiling bytecode FS#33392
# This is kind of ugly but removes traces of the build root.
while read -rd '' _file; do
diff --git a/libre/calibre/libre.patch b/libre/calibre/libre.patch
index 006d60214..6f2709f36 100644
--- a/libre/calibre/libre.patch
+++ b/libre/calibre/libre.patch
@@ -1,7 +1,7 @@
-diff -r -u calibre-3.33.1.orig/manual/conversion.rst calibre-3.33.1/manual/conversion.rst
---- calibre-3.33.1.orig/manual/conversion.rst 2018-11-02 18:00:30.919968752 +0000
-+++ calibre-3.33.1/manual/conversion.rst 2018-11-02 17:55:09.626637724 +0000
-@@ -747,7 +747,7 @@
+diff -rupN calibre-3.39.1/manual/conversion.rst calibre-3.39.1.new/manual/conversion.rst
+--- calibre-3.39.1/manual/conversion.rst 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/manual/conversion.rst 2019-02-26 11:40:36.546704530 +0100
+@@ -747,7 +747,7 @@ output ranging anywhere from decent to u
Comic book collections
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -10,10 +10,10 @@ diff -r -u calibre-3.33.1.orig/manual/conversion.rst calibre-3.33.1/manual/conve
.cbc file must contain a simple text file called comics.txt, encoded in UTF-8. The comics.txt file must contain
a list of the comics files inside the .cbc file, in the form filename:title, as shown below::
-diff -r -u calibre-3.33.1.orig/manual/faq.rst calibre-3.33.1/manual/faq.rst
---- calibre-3.33.1.orig/manual/faq.rst 2018-11-02 18:00:30.919968752 +0000
-+++ calibre-3.33.1/manual/faq.rst 2018-11-02 17:55:09.946637723 +0000
-@@ -18,7 +18,7 @@
+diff -rupN calibre-3.39.1/manual/faq.rst calibre-3.39.1.new/manual/faq.rst
+--- calibre-3.39.1/manual/faq.rst 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/manual/faq.rst 2019-02-26 11:40:36.546704530 +0100
+@@ -18,7 +18,7 @@ What formats does calibre support conver
calibre supports the conversion of many input formats to many output formats.
It can convert every input format in the following list, to every output format.
@@ -22,10 +22,10 @@ diff -r -u calibre-3.33.1.orig/manual/faq.rst calibre-3.33.1/manual/faq.rst
*Output Formats:* AZW3, EPUB, DOCX, FB2, HTMLZ, OEB, LIT, LRF, MOBI, PDB, PMLZ, RB, PDF, RTF, SNB, TCR, TXT, TXTZ, ZIP
-diff -r -u calibre-3.33.1.orig/manual/gui.rst calibre-3.33.1/manual/gui.rst
---- calibre-3.33.1.orig/manual/gui.rst 2018-11-02 18:00:30.919968752 +0000
-+++ calibre-3.33.1/manual/gui.rst 2018-11-02 17:55:10.363304387 +0000
-@@ -51,7 +51,7 @@
+diff -rupN calibre-3.39.1/manual/gui.rst calibre-3.39.1.new/manual/gui.rst
+--- calibre-3.39.1/manual/gui.rst 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/manual/gui.rst 2019-02-26 11:40:36.550037909 +0100
+@@ -51,7 +51,7 @@ Add books
3. **Add books from directories, including sub-directories (Multiple books per directory, assumes every e-book file is a different book)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any e-books found are added to the library. calibre assumes that each directory contains many books. All e-book files with the same name in a directory are assumed to be the same book in different formats. E-books with different names are added as different books.
@@ -34,10 +34,10 @@ diff -r -u calibre-3.33.1.orig/manual/gui.rst calibre-3.33.1/manual/gui.rst
5. **Add empty book (Book Entry with no formats)**: Allows you to create a blank book record. This can be used to then manually fill out the information about a book that you may not have yet in your collection.
-diff -r -u calibre-3.33.1.orig/resources/mime.types calibre-3.33.1/resources/mime.types
---- calibre-3.33.1.orig/resources/mime.types 2018-11-02 18:00:29.396635432 +0000
-+++ calibre-3.33.1/resources/mime.types 2018-11-02 17:55:10.713304381 +0000
-@@ -138,7 +138,6 @@
+diff -rupN calibre-3.39.1/resources/mime.types calibre-3.39.1.new/resources/mime.types
+--- calibre-3.39.1/resources/mime.types 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/resources/mime.types 2019-02-26 11:40:36.550037909 +0100
+@@ -138,7 +138,6 @@ application/prs.cww cww
application/prs.nprend
application/prs.plucker
application/qsig
@@ -45,7 +45,7 @@ diff -r -u calibre-3.33.1.orig/resources/mime.types calibre-3.33.1/resources/mim
application/rdf+xml rdf
application/reginfo+xml rif
application/relax-ng-compact-syntax rnc
-@@ -849,7 +848,6 @@
+@@ -849,7 +848,6 @@ application/x-pkcs7-certreqresp p7r
application/x-pkcs7-crl crl
application/x-python-code pyc pyo
application/x-quicktimeplayer qtl
@@ -53,7 +53,7 @@ diff -r -u calibre-3.33.1.orig/resources/mime.types calibre-3.33.1/resources/mim
application/x-redhat-package-manager rpm
application/x-sh sh
application/x-shar shar
-@@ -1372,7 +1370,6 @@
+@@ -1372,7 +1370,6 @@ application/x-mobipocket-subscription
application/x-kindle-application azw2
application/x-mobi8-ebook azw3
application/x-cbz cbz
@@ -61,10 +61,10 @@ diff -r -u calibre-3.33.1.orig/resources/mime.types calibre-3.33.1/resources/mim
application/x-cb7 cb7
application/x-cbc cbc
application/x-koboreader-ebook kobo
-diff -r -u calibre-3.33.1.orig/setup/resources.py calibre-3.33.1/setup/resources.py
---- calibre-3.33.1.orig/setup/resources.py 2018-11-02 18:00:30.683302087 +0000
-+++ calibre-3.33.1/setup/resources.py 2018-11-02 17:55:11.076637713 +0000
-@@ -348,7 +348,7 @@
+diff -rupN calibre-3.39.1/setup/resources.py calibre-3.39.1.new/setup/resources.py
+--- calibre-3.39.1/setup/resources.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/setup/resources.py 2019-02-26 11:40:36.550037909 +0100
+@@ -348,7 +348,7 @@ class Resources(Command): # {{{
log = Log()
# log.outputs = []
for inf in supported_input_formats():
@@ -73,10 +73,10 @@ diff -r -u calibre-3.33.1.orig/setup/resources.py calibre-3.33.1/setup/resources
continue
for ouf in available_output_formats():
of = ouf if ouf == 'oeb' else 'dummy.'+ouf
-diff -r -u calibre-3.33.1.orig/src/calibre/customize/builtins.py calibre-3.33.1/src/calibre/customize/builtins.py
---- calibre-3.33.1.orig/src/calibre/customize/builtins.py 2018-11-02 18:00:30.683302087 +0000
-+++ calibre-3.33.1/src/calibre/customize/builtins.py 2018-11-02 17:55:08.869971064 +0000
-@@ -132,7 +132,7 @@
+diff -rupN calibre-3.39.1/src/calibre/customize/builtins.py calibre-3.39.1.new/src/calibre/customize/builtins.py
+--- calibre-3.39.1/src/calibre/customize/builtins.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/customize/builtins.py 2019-02-26 11:40:36.550037909 +0100
+@@ -132,7 +132,7 @@ plugins += [HTML2ZIP, PML2PMLZ, TXT2TXTZ
class ComicMetadataReader(MetadataReaderPlugin):
name = 'Read comic metadata'
@@ -85,7 +85,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/customize/builtins.py calibre-3.33.1/
description = _('Extract cover from comic files')
def customization_help(self, gui=False):
-@@ -143,19 +143,14 @@
+@@ -143,19 +143,14 @@ class ComicMetadataReader(MetadataReader
pos = stream.tell()
id_ = stream.read(3)
stream.seek(pos)
@@ -108,7 +108,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/customize/builtins.py calibre-3.33.1/
series_index = self.site_customization
if series_index not in {'volume', 'issue'}:
series_index = 'volume'
-@@ -354,17 +349,6 @@
+@@ -354,17 +349,6 @@ class PMLMetadataReader(MetadataReaderPl
return get_metadata(stream)
@@ -126,10 +126,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/customize/builtins.py calibre-3.33.1/
class RBMetadataReader(MetadataReaderPlugin):
name = 'Read RB metadata'
-diff -r -u calibre-3.33.1.orig/src/calibre/customize/ui.py calibre-3.33.1/src/calibre/customize/ui.py
---- calibre-3.33.1.orig/src/calibre/customize/ui.py 2018-11-02 18:00:30.673302088 +0000
-+++ calibre-3.33.1/src/calibre/customize/ui.py 2018-11-02 17:55:08.489971068 +0000
-@@ -538,7 +538,7 @@
+diff -rupN calibre-3.39.1/src/calibre/customize/ui.py calibre-3.39.1.new/src/calibre/customize/ui.py
+--- calibre-3.39.1/src/calibre/customize/ui.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/customize/ui.py 2019-02-26 11:40:36.550037909 +0100
+@@ -538,7 +538,7 @@ def available_input_formats():
if not is_disabled(plugin):
for format in plugin.file_types:
formats.add(format)
@@ -138,10 +138,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/customize/ui.py calibre-3.33.1/src/ca
return formats
-diff -r -u calibre-3.33.1.orig/src/calibre/devices/kobo/driver.py calibre-3.33.1/src/calibre/devices/kobo/driver.py
---- calibre-3.33.1.orig/src/calibre/devices/kobo/driver.py 2018-11-02 18:00:30.656635421 +0000
-+++ calibre-3.33.1/src/calibre/devices/kobo/driver.py 2018-11-02 17:55:11.443304372 +0000
-@@ -86,7 +86,7 @@
+diff -rupN calibre-3.39.1/src/calibre/devices/kobo/driver.py calibre-3.39.1.new/src/calibre/devices/kobo/driver.py
+--- calibre-3.39.1/src/calibre/devices/kobo/driver.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/devices/kobo/driver.py 2019-02-26 11:40:36.553371290 +0100
+@@ -90,7 +90,7 @@ class KOBO(USBMS):
book_class = Book
# Ordered list of supported formats
@@ -150,10 +150,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/devices/kobo/driver.py calibre-3.33.1
CAN_SET_METADATA = ['collections']
VENDOR_ID = [0x2237]
-diff -r -u calibre-3.33.1.orig/src/calibre/devices/misc.py calibre-3.33.1/src/calibre/devices/misc.py
---- calibre-3.33.1.orig/src/calibre/devices/misc.py 2018-11-02 18:00:30.656635421 +0000
-+++ calibre-3.33.1/src/calibre/devices/misc.py 2018-11-02 17:55:11.786637709 +0000
-@@ -448,7 +448,7 @@
+diff -rupN calibre-3.39.1/src/calibre/devices/misc.py calibre-3.39.1.new/src/calibre/devices/misc.py
+--- calibre-3.39.1/src/calibre/devices/misc.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/devices/misc.py 2019-02-26 11:40:36.553371290 +0100
+@@ -448,7 +448,7 @@ class WAYTEQ(USBMS):
EBOOK_DIR_MAIN = 'Documents'
SCAN_FROM_ROOT = True
@@ -162,10 +162,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/devices/misc.py calibre-3.33.1/src/ca
WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['RK28_SDK_DEMO', 'EINK_EBOOK_READE']
SUPPORTS_SUB_DIRS = True
-diff -r -u calibre-3.33.1.orig/src/calibre/devices/mtp/filesystem_cache.py calibre-3.33.1/src/calibre/devices/mtp/filesystem_cache.py
---- calibre-3.33.1.orig/src/calibre/devices/mtp/filesystem_cache.py 2018-11-02 18:00:30.653302088 +0000
-+++ calibre-3.33.1/src/calibre/devices/mtp/filesystem_cache.py 2018-11-02 17:55:12.123304377 +0000
-@@ -18,7 +18,7 @@
+diff -rupN calibre-3.39.1/src/calibre/devices/mtp/filesystem_cache.py calibre-3.39.1.new/src/calibre/devices/mtp/filesystem_cache.py
+--- calibre-3.39.1/src/calibre/devices/mtp/filesystem_cache.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/devices/mtp/filesystem_cache.py 2019-02-26 11:40:36.553371290 +0100
+@@ -18,7 +18,7 @@ from calibre.utils.date import local_tz,
from calibre.utils.icu import sort_key, lower
from calibre.ebooks import BOOK_EXTENSIONS
@@ -174,10 +174,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/devices/mtp/filesystem_cache.py calib
class FileOrFolder(object):
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/comic/__init__.py calibre-3.33.1/src/calibre/ebooks/comic/__init__.py
---- calibre-3.33.1.orig/src/calibre/ebooks/comic/__init__.py 2018-11-02 18:00:30.639968755 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/comic/__init__.py 2018-11-02 17:55:12.803304368 +0000
-@@ -4,7 +4,7 @@
+diff -rupN calibre-3.39.1/src/calibre/ebooks/comic/__init__.py calibre-3.39.1.new/src/calibre/ebooks/comic/__init__.py
+--- calibre-3.39.1/src/calibre/ebooks/comic/__init__.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/comic/__init__.py 2019-02-26 11:40:36.553371290 +0100
+@@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal kovid
__docformat__ = 'restructuredtext en'
'''
@@ -186,10 +186,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/comic/__init__.py calibre-3.33
'''
import sys
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/conversion/plugins/comic_input.py calibre-3.33.1/src/calibre/ebooks/conversion/plugins/comic_input.py
---- calibre-3.33.1.orig/src/calibre/ebooks/conversion/plugins/comic_input.py 2018-11-02 18:00:30.639968755 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/conversion/plugins/comic_input.py 2018-11-02 17:55:08.153304401 +0000
-@@ -18,8 +18,8 @@
+diff -rupN calibre-3.39.1/src/calibre/ebooks/conversion/plugins/comic_input.py calibre-3.39.1.new/src/calibre/ebooks/conversion/plugins/comic_input.py
+--- calibre-3.39.1/src/calibre/ebooks/conversion/plugins/comic_input.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/conversion/plugins/comic_input.py 2019-02-26 11:40:36.553371290 +0100
+@@ -18,8 +18,8 @@ class ComicInput(InputFormatPlugin):
name = 'Comic Input'
author = 'Kovid Goyal'
@@ -200,10 +200,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/conversion/plugins/comic_input
is_image_collection = True
commit_name = 'comic_input'
core_usage = -1
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/conversion/plumber.py calibre-3.33.1/src/calibre/ebooks/conversion/plumber.py
---- calibre-3.33.1.orig/src/calibre/ebooks/conversion/plumber.py 2018-11-02 18:00:30.636635421 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/conversion/plumber.py 2018-11-02 17:55:13.106637701 +0000
-@@ -43,7 +43,7 @@
+diff -rupN calibre-3.39.1/src/calibre/ebooks/conversion/plumber.py calibre-3.39.1.new/src/calibre/ebooks/conversion/plumber.py
+--- calibre-3.39.1/src/calibre/ebooks/conversion/plumber.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/conversion/plumber.py 2019-02-26 11:40:36.553371290 +0100
+@@ -43,7 +43,7 @@ various stages of conversion. The stages
def supported_input_formats():
fmts = available_input_formats()
@@ -212,7 +212,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/conversion/plumber.py calibre-
fmts.add(x)
return fmts
-@@ -64,7 +64,7 @@
+@@ -64,7 +64,7 @@ class CompositeProgressReporter(object):
self.global_reporter(global_frac, msg)
@@ -221,10 +221,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/conversion/plumber.py calibre-
class Plumber(object):
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/__init__.py calibre-3.33.1/src/calibre/ebooks/__init__.py
---- calibre-3.33.1.orig/src/calibre/ebooks/__init__.py 2018-11-02 18:00:30.639968755 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/__init__.py 2018-11-02 17:55:12.459971039 +0000
-@@ -30,9 +30,9 @@
+diff -rupN calibre-3.39.1/src/calibre/ebooks/__init__.py calibre-3.39.1.new/src/calibre/ebooks/__init__.py
+--- calibre-3.39.1/src/calibre/ebooks/__init__.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/__init__.py 2019-02-26 11:40:36.553371290 +0100
+@@ -30,9 +30,9 @@ class ParserError(ValueError):
pass
@@ -236,10 +236,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/__init__.py calibre-3.33.1/src
'rb', 'imp', 'odt', 'chm', 'tpz', 'azw1', 'pml', 'pmlz', 'mbp', 'tan', 'snb',
'xps', 'oxps', 'azw4', 'book', 'zbf', 'pobi', 'docx', 'docm', 'md',
'textile', 'markdown', 'ibook', 'ibooks', 'iba', 'azw3', 'ps', 'kepub', 'kfx']
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py calibre-3.33.1/src/calibre/ebooks/metadata/archive.py
---- calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py 2018-11-02 18:00:30.619968755 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/metadata/archive.py 2018-11-02 17:55:07.596637739 +0000
-@@ -29,8 +29,6 @@
+diff -rupN calibre-3.39.1/src/calibre/ebooks/metadata/archive.py calibre-3.39.1.new/src/calibre/ebooks/metadata/archive.py
+--- calibre-3.39.1/src/calibre/ebooks/metadata/archive.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/metadata/archive.py 2019-02-26 11:40:36.553371290 +0100
+@@ -29,8 +29,6 @@ def archive_type(stream):
ans = None
if id_ == stringFileHeader:
ans = 'zip'
@@ -248,7 +248,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py calibre-3.
try:
stream.seek(pos)
except:
-@@ -42,24 +40,16 @@
+@@ -42,24 +40,16 @@ class ArchiveExtract(FileTypePlugin):
name = 'Archive Extract'
author = 'Kovid Goyal'
description = _('Extract common e-book formats from archive files '
@@ -278,7 +278,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py calibre-3.
def fname_ok(fname):
bn = os.path.basename(fname).lower()
-@@ -75,7 +65,7 @@
+@@ -75,7 +65,7 @@ class ArchiveExtract(FileTypePlugin):
fnames = list(filter(fname_ok, fnames))
if is_comic(fnames):
@@ -287,7 +287,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py calibre-3.
of = self.temporary_file('_archive_extract'+ext)
with open(archive, 'rb') as f:
of.write(f.read())
-@@ -92,11 +82,7 @@
+@@ -92,11 +82,7 @@ class ArchiveExtract(FileTypePlugin):
of = self.temporary_file('_archive_extract.'+ext)
with closing(of):
@@ -300,7 +300,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py calibre-3.
return of.name
-@@ -159,9 +145,6 @@
+@@ -159,9 +145,6 @@ def get_comic_metadata(stream, stream_ty
from calibre.utils.zipfile import ZipFile
zf = ZipFile(stream)
comment = zf.comment
@@ -310,22 +310,22 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/metadata/archive.py calibre-3.
if comment:
import json
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/oeb/iterator/book.py calibre-3.33.1/src/calibre/ebooks/oeb/iterator/book.py
---- calibre-3.33.1.orig/src/calibre/ebooks/oeb/iterator/book.py 2018-11-02 18:00:30.593302088 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/oeb/iterator/book.py 2018-11-02 17:55:13.416637692 +0000
-@@ -157,7 +157,7 @@
- self.spine = []
- Spiny = partial(SpineItem, read_anchor_map=read_anchor_map, read_links=read_links,
- run_char_count=run_char_count, from_epub=self.book_format == 'EPUB')
-- is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cbr', 'cb7'}
-+ is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cb7'}
- for i in ordered:
- spath = i.path
- mt = None
-diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/pdf/from_comic.py calibre-3.33.1/src/calibre/ebooks/pdf/from_comic.py
---- calibre-3.33.1.orig/src/calibre/ebooks/pdf/from_comic.py 2018-11-02 18:00:30.576635422 +0000
-+++ calibre-3.33.1/src/calibre/ebooks/pdf/from_comic.py 2018-11-02 17:55:13.706637692 +0000
-@@ -3,7 +3,7 @@
+diff -rupN calibre-3.39.1/src/calibre/ebooks/oeb/iterator/book.py calibre-3.39.1.new/src/calibre/ebooks/oeb/iterator/book.py
+--- calibre-3.39.1/src/calibre/ebooks/oeb/iterator/book.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/oeb/iterator/book.py 2019-02-26 11:41:29.474118987 +0100
+@@ -161,7 +161,7 @@ class EbookIterator(BookmarksMixin):
+ else:
+ ordered = [i for i in self.opf.spine if i.is_linear] + \
+ [i for i in self.opf.spine if not i.is_linear]
+- is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cbr', 'cb7'}
++ is_comic = input_fmt.lower() in {'cbc', 'cbz', 'cb7'}
+ for i in ordered:
+ spath = i.path
+ mt = None
+diff -rupN calibre-3.39.1/src/calibre/ebooks/pdf/from_comic.py calibre-3.39.1.new/src/calibre/ebooks/pdf/from_comic.py
+--- calibre-3.39.1/src/calibre/ebooks/pdf/from_comic.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/ebooks/pdf/from_comic.py 2019-02-26 11:40:36.556704670 +0100
+@@ -3,7 +3,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en'
@@ -334,10 +334,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/ebooks/pdf/from_comic.py calibre-3.33
import sys
from functools import partial
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/actions/add.py calibre-3.33.1/src/calibre/gui2/actions/add.py
---- calibre-3.33.1.orig/src/calibre/gui2/actions/add.py 2018-11-02 18:00:30.496635423 +0000
-+++ calibre-3.33.1/src/calibre/gui2/actions/add.py 2018-11-02 17:55:07.003304405 +0000
-@@ -36,8 +36,8 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/actions/add.py calibre-3.39.1.new/src/calibre/gui2/actions/add.py
+--- calibre-3.39.1/src/calibre/gui2/actions/add.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/actions/add.py 2019-02-26 11:40:36.556704670 +0100
+@@ -36,8 +36,8 @@ def get_filters():
(_('HTML books'), ['htm', 'html', 'xhtm', 'xhtml']),
(_('LIT books'), ['lit']),
(_('Text books'), ['txt', 'text', 'rtf', 'md', 'markdown', 'textile', 'txtz']),
@@ -348,7 +348,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/actions/add.py calibre-3.33.1/sr
(_('Wordprocessor files'), ['odt', 'doc', 'docx']),
]
-@@ -64,10 +64,10 @@
+@@ -64,10 +64,10 @@ class AddAction(InterfaceAction):
'sub-directories (Multiple books per directory, assumes every '
'e-book file is a different book)')).triggered.connect(
self.add_recursive_multiple)
@@ -362,7 +362,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/actions/add.py calibre-3.33.1/sr
connect_lambda(self.create_menu_action(
arm, 'recursive-multiple-archive', _('Multiple books per directory in the archive')).triggered,
self, lambda self: self.add_archive(False))
-@@ -201,7 +201,7 @@
+@@ -201,7 +201,7 @@ class AddAction(InterfaceAction):
def add_archive(self, single):
paths = choose_files(
self.gui, 'recursive-archive-add', _('Choose archive file'),
@@ -371,10 +371,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/actions/add.py calibre-3.33.1/sr
if paths:
self.do_add_recursive(paths, single, list_of_archives=True)
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/actions/preferences.py calibre-3.33.1/src/calibre/gui2/actions/preferences.py
---- calibre-3.33.1.orig/src/calibre/gui2/actions/preferences.py 2018-11-02 18:00:30.493302089 +0000
-+++ calibre-3.33.1/src/calibre/gui2/actions/preferences.py 2018-11-02 17:55:14.219971026 +0000
-@@ -29,8 +29,6 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/actions/preferences.py calibre-3.39.1.new/src/calibre/gui2/actions/preferences.py
+--- calibre-3.39.1/src/calibre/gui2/actions/preferences.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/actions/preferences.py 2019-02-26 11:40:36.556704670 +0100
+@@ -29,8 +29,6 @@ class PreferencesAction(InterfaceAction)
pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config)
cm('welcome wizard', _('Run Welcome &wizard'),
icon='wizard.png', triggered=self.gui.run_wizard)
@@ -383,10 +383,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/actions/preferences.py calibre-3
if not DEBUG:
pm.addSeparator()
cm('restart', _('Restart in debug mode'), icon='debug.png',
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/add.py calibre-3.33.1/src/calibre/gui2/add.py
---- calibre-3.33.1.orig/src/calibre/gui2/add.py 2018-11-02 18:00:30.493302089 +0000
-+++ calibre-3.33.1/src/calibre/gui2/add.py 2018-11-02 17:55:14.443304356 +0000
-@@ -167,9 +167,6 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/add.py calibre-3.39.1.new/src/calibre/gui2/add.py
+--- calibre-3.39.1/src/calibre/gui2/add.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/add.py 2019-02-26 11:40:36.556704670 +0100
+@@ -167,9 +167,6 @@ class Adder(QObject):
prints('Corrupt ZIP file, trying to use local headers')
from calibre.utils.localunzip import extractall
extractall(source, tdir)
@@ -396,10 +396,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/add.py calibre-3.33.1/src/calibr
return tdir
try:
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/dialogs/comicconf.py calibre-3.33.1/src/calibre/gui2/dialogs/comicconf.py
---- calibre-3.33.1.orig/src/calibre/gui2/dialogs/comicconf.py 2018-11-02 18:00:30.473302090 +0000
-+++ calibre-3.33.1/src/calibre/gui2/dialogs/comicconf.py 2018-11-02 17:55:14.649971023 +0000
-@@ -33,7 +33,7 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/dialogs/comicconf.py calibre-3.39.1.new/src/calibre/gui2/dialogs/comicconf.py
+--- calibre-3.39.1/src/calibre/gui2/dialogs/comicconf.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/dialogs/comicconf.py 2019-02-26 11:40:36.560038051 +0100
+@@ -33,7 +33,7 @@ def get_conversion_options(window, defau
class ComicConf(QDialog, Ui_Dialog):
def __init__(self, window, config_defaults=None, generic=True,
@@ -408,10 +408,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/dialogs/comicconf.py calibre-3.3
QDialog.__init__(self, window)
Ui_Dialog.__init__(self)
self.setupUi(self)
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/__init__.py calibre-3.33.1/src/calibre/gui2/__init__.py
---- calibre-3.33.1.orig/src/calibre/gui2/__init__.py 2018-11-02 18:00:30.496635423 +0000
-+++ calibre-3.33.1/src/calibre/gui2/__init__.py 2018-11-02 17:55:13.969971028 +0000
-@@ -191,8 +191,6 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/__init__.py calibre-3.39.1.new/src/calibre/gui2/__init__.py
+--- calibre-3.39.1/src/calibre/gui2/__init__.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/__init__.py 2019-02-26 11:40:36.560038051 +0100
+@@ -191,8 +191,6 @@ def _config(): # {{{
help=_('Confirm before deleting'))
c.add_opt('main_window_geometry', default=None,
help=_('Main window geometry'))
@@ -420,10 +420,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/__init__.py calibre-3.33.1/src/c
c.add_opt('use_roman_numerals_for_series_number', default=True,
help=_('Use Roman numerals for series number'))
c.add_opt('sort_tags_by', default='name',
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.py calibre-3.33.1/src/calibre/gui2/preferences/behavior.py
---- calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.py 2018-11-02 18:00:30.456635423 +0000
-+++ calibre-3.33.1/src/calibre/gui2/preferences/behavior.py 2018-11-02 17:55:06.426637746 +0000
-@@ -40,7 +40,6 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/preferences/behavior.py calibre-3.39.1.new/src/calibre/gui2/preferences/behavior.py
+--- calibre-3.39.1/src/calibre/gui2/preferences/behavior.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/preferences/behavior.py 2019-02-26 11:40:36.560038051 +0100
+@@ -40,7 +40,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_
r('network_timeout', prefs)
@@ -431,7 +431,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.py calibre-
r('upload_news_to_device', config)
r('delete_news_from_library_on_upload', config)
-@@ -140,7 +139,7 @@
+@@ -140,7 +139,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_
input_map = prefs['input_format_order']
all_formats = set()
self.opt_input_order.clear()
@@ -440,9 +440,9 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.py calibre-
all_formats.add(fmt.upper())
for format in input_map + list(all_formats.difference(input_map)):
item = QListWidgetItem(format, self.opt_input_order)
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.ui calibre-3.33.1/src/calibre/gui2/preferences/behavior.ui
---- calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.ui 2018-11-02 18:00:30.456635423 +0000
-+++ calibre-3.33.1/src/calibre/gui2/preferences/behavior.ui 2018-11-02 17:55:14.843304353 +0000
+diff -rupN calibre-3.39.1/src/calibre/gui2/preferences/behavior.ui calibre-3.39.1.new/src/calibre/gui2/preferences/behavior.ui
+--- calibre-3.39.1/src/calibre/gui2/preferences/behavior.ui 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/preferences/behavior.ui 2019-02-26 11:40:36.560038051 +0100
@@ -16,13 +16,6 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -457,10 +457,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/preferences/behavior.ui calibre-
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="opt_upload_news_to_device">
<property name="text">
-diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/calibre/gui2/update.py
---- calibre-3.33.1.orig/src/calibre/gui2/update.py 2018-11-02 18:00:30.433302090 +0000
-+++ calibre-3.33.1/src/calibre/gui2/update.py 2018-11-02 18:20:59.376626554 +0000
-@@ -6,15 +6,13 @@
+diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/calibre/gui2/update.py
+--- calibre-3.39.1/src/calibre/gui2/update.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/gui2/update.py 2019-02-26 11:40:36.560038051 +0100
+@@ -6,15 +6,13 @@ from polyglot.builtins import map
from threading import Thread, Event
from PyQt5.Qt import (QObject, pyqtSignal, Qt, QUrl, QDialog, QGridLayout,
@@ -479,7 +479,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/cal
from calibre.gui2.dialogs.plugin_updater import get_plugin_updates_available
URL = 'https://code.calibre-ebook.com/latest'
-@@ -31,35 +29,7 @@
+@@ -31,35 +29,7 @@ def get_download_url():
def get_newest_version():
@@ -516,7 +516,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/cal
class Signal(QObject):
-@@ -82,12 +52,6 @@
+@@ -82,12 +52,6 @@ class CheckForUpdates(Thread):
calibre_update_version = NO_CALIBRE_UPDATE
plugins_update_found = 0
try:
@@ -529,7 +529,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/cal
update_plugins = get_plugin_updates_available(raise_error=True)
if update_plugins is not None:
plugins_update_found = len(update_plugins)
-@@ -132,11 +96,6 @@
+@@ -132,11 +96,6 @@ class UpdateNotification(QDialog):
self.setWindowIcon(QIcon(I('lt.png')))
self.l.addWidget(self.logo, 0, 0)
self.l.addWidget(self.label, 0, 1)
@@ -541,7 +541,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/cal
self.bb = QDialogButtonBox(self)
b = self.bb.addButton(_('&Get update'), self.bb.AcceptRole)
b.setDefault(True)
-@@ -164,9 +123,6 @@
+@@ -164,9 +123,6 @@ class UpdateNotification(QDialog):
if gui is not None:
gui.quit(restart=True)
@@ -551,7 +551,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/cal
def accept(self):
open_url(QUrl(get_download_url()))
-@@ -214,7 +170,7 @@
+@@ -214,7 +170,7 @@ class UpdateMixin(object):
self.status_bar.update_label.setVisible(True)
if has_calibre_update:
@@ -560,10 +560,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/gui2/update.py calibre-3.33.1/src/cal
if not no_show_popup:
self._update_notification__ = UpdateNotification(calibre_version,
number_of_plugin_updates, parent=self)
-diff -r -u calibre-3.33.1.orig/src/calibre/__init__.py calibre-3.33.1/src/calibre/__init__.py
---- calibre-3.33.1.orig/src/calibre/__init__.py 2018-11-02 18:00:30.683302087 +0000
-+++ calibre-3.33.1/src/calibre/__init__.py 2018-11-02 17:55:09.219971061 +0000
-@@ -298,10 +298,7 @@
+diff -rupN calibre-3.39.1/src/calibre/__init__.py calibre-3.39.1.new/src/calibre/__init__.py
+--- calibre-3.39.1/src/calibre/__init__.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/__init__.py 2019-02-26 11:40:36.560038051 +0100
+@@ -298,10 +298,7 @@ def extract(path, dir):
# First use the file header to identify its type
with open(path, 'rb') as f:
id_ = f.read(3)
@@ -575,7 +575,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/__init__.py calibre-3.33.1/src/calibr
from calibre.libunzip import extract as zipextract
extractor = zipextract
if extractor is None:
-@@ -310,9 +307,6 @@
+@@ -310,9 +307,6 @@ def extract(path, dir):
if ext in ['zip', 'cbz', 'epub', 'oebzip']:
from calibre.libunzip import extract as zipextract
extractor = zipextract
@@ -585,10 +585,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/__init__.py calibre-3.33.1/src/calibr
if extractor is None:
raise Exception('Unknown archive type')
extractor(path, dir)
-diff -r -u calibre-3.33.1.orig/src/calibre/linux.py calibre-3.33.1/src/calibre/linux.py
---- calibre-3.33.1.orig/src/calibre/linux.py 2018-11-02 18:00:30.409968757 +0000
-+++ calibre-3.33.1/src/calibre/linux.py 2018-11-02 17:55:15.033304353 +0000
-@@ -318,7 +318,7 @@
+diff -rupN calibre-3.39.1/src/calibre/linux.py calibre-3.39.1.new/src/calibre/linux.py
+--- calibre-3.39.1/src/calibre/linux.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/linux.py 2019-02-26 11:40:36.560038051 +0100
+@@ -318,7 +318,7 @@ class ZshCompleter(object): # {{{
):
for fmt in fmts:
is_input = group_title == input_group
@@ -597,10 +597,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/linux.py calibre-3.33.1/src/calibre/l
continue
p = (get_parser(input_fmt=fmt) if is_input
else get_parser(output_fmt=fmt))
-diff -r -u calibre-3.33.1.orig/src/calibre/srv/render_book.py calibre-3.33.1/src/calibre/srv/render_book.py
---- calibre-3.33.1.orig/src/calibre/srv/render_book.py 2018-11-02 18:00:30.406635424 +0000
-+++ calibre-3.33.1/src/calibre/srv/render_book.py 2018-11-02 17:54:41.786637925 +0000
-@@ -195,7 +195,7 @@
+diff -rupN calibre-3.39.1/src/calibre/srv/render_book.py calibre-3.39.1.new/src/calibre/srv/render_book.py
+--- calibre-3.39.1/src/calibre/srv/render_book.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/srv/render_book.py 2019-02-26 11:40:36.560038051 +0100
+@@ -195,7 +195,7 @@ class Container(ContainerBase):
'spine':spine,
'link_uid': uuid4(),
'book_hash': book_hash,
@@ -609,10 +609,38 @@ diff -r -u calibre-3.33.1.orig/src/calibre/srv/render_book.py calibre-3.33.1/src
'raster_cover_name': raster_cover_name,
'title_page_name': titlepage_name,
'has_maths': False,
-diff -r -u calibre-3.33.1.orig/src/calibre/test_build.py calibre-3.33.1/src/calibre/test_build.py
---- calibre-3.33.1.orig/src/calibre/test_build.py 2018-11-02 18:00:30.406635424 +0000
-+++ calibre-3.33.1/src/calibre/test_build.py 2018-11-02 17:55:15.236637685 +0000
-@@ -218,10 +218,6 @@
+diff -rupN calibre-3.39.1/src/calibre/srv/tests/loop.py calibre-3.39.1.new/src/calibre/srv/tests/loop.py
+--- calibre-3.39.1/src/calibre/srv/tests/loop.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/srv/tests/loop.py 2019-02-26 11:42:14.074747922 +0100
+@@ -108,24 +108,6 @@ class LoopTest(BaseTest):
+ with TestServer(lambda data:(data.path[0] + data.read()), listen_on='1.1.1.1', fallback_to_detected_interface=True, specialize=specialize) as server:
+ self.assertNotEqual('1.1.1.1', server.address[0])
+
+- @skipIf(is_ci, 'Continuous Integration servers do not support BonJour')
+- def test_bonjour(self):
+- 'Test advertising via BonJour'
+- from calibre.srv.bonjour import BonJour
+- from calibre.utils.Zeroconf import Zeroconf
+- b = BonJour()
+- with TestServer(lambda data:(data.path[0] + data.read()), plugins=(b,), shutdown_timeout=5) as server:
+- self.assertTrue(b.started.wait(5), 'BonJour not started')
+- self.ae(b.advertised_port, server.address[1])
+- service = b.services[0]
+- self.ae(service.type, b'_calibre._tcp.local.')
+- r = Zeroconf()
+- info = r.getServiceInfo(service.type, service.name)
+- self.assertIsNotNone(info)
+- self.ae(info.text, b'\npath=/opds')
+-
+- self.assertTrue(b.stopped.wait(5), 'BonJour not stopped')
+-
+ def test_dual_stack(self):
+ from calibre.srv.loop import IPPROTO_IPV6
+ with TestServer(lambda data:(data.path[0] + data.read()), listen_on='::') as server:
+diff -rupN calibre-3.39.1/src/calibre/test_build.py calibre-3.39.1.new/src/calibre/test_build.py
+--- calibre-3.39.1/src/calibre/test_build.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/test_build.py 2019-02-26 11:40:36.563371432 +0100
+@@ -220,10 +220,6 @@ class BuildTest(unittest.TestCase):
from calibre.gui2.win_file_dialogs import test
test()
@@ -623,10 +651,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/test_build.py calibre-3.33.1/src/cali
@unittest.skipUnless(iswindows, 'WPD is windows only')
def test_wpd(self):
wpd = plugins['wpd'][0]
-diff -r -u calibre-3.33.1.orig/src/calibre/utils/file_type_icons.py calibre-3.33.1/src/calibre/utils/file_type_icons.py
---- calibre-3.33.1.orig/src/calibre/utils/file_type_icons.py 2018-11-02 18:00:30.403302090 +0000
-+++ calibre-3.33.1/src/calibre/utils/file_type_icons.py 2018-11-02 17:54:45.416637897 +0000
-@@ -16,7 +16,6 @@
+diff -rupN calibre-3.39.1/src/calibre/utils/file_type_icons.py calibre-3.39.1.new/src/calibre/utils/file_type_icons.py
+--- calibre-3.39.1/src/calibre/utils/file_type_icons.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/utils/file_type_icons.py 2019-02-26 11:40:36.563371432 +0100
+@@ -16,7 +16,6 @@ EXT_MAP = {
'png' : 'png',
'bmp' : 'bmp',
'cbz' : 'cbz',
@@ -634,7 +662,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/file_type_icons.py calibre-3.33
'svg' : 'svg',
'html' : 'html',
'htmlz' : 'html',
-@@ -28,7 +27,6 @@
+@@ -28,7 +27,6 @@ EXT_MAP = {
'lrx' : 'lrx',
'pdf' : 'pdf',
'pdr' : 'zero',
@@ -642,10 +670,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/file_type_icons.py calibre-3.33
'zip' : 'zip',
'txt' : 'txt',
'text' : 'txt',
-diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py calibre-3.33.1/src/calibre/utils/search_query_parser_test.py
---- calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py 2018-11-02 18:00:30.396635424 +0000
-+++ calibre-3.33.1/src/calibre/utils/search_query_parser_test.py 2018-11-02 17:55:15.446637679 +0000
-@@ -30,16 +30,16 @@
+diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-3.39.1.new/src/calibre/utils/search_query_parser_test.py
+--- calibre-3.39.1/src/calibre/utils/search_query_parser_test.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/utils/search_query_parser_test.py 2019-02-26 11:40:36.563371432 +0100
+@@ -30,16 +30,16 @@ class Tester(SearchQueryParser):
u'Tor Books',
u'lrf'],
8: [u'Stalky and Co.', u'Rudyard Kipling', u'manybooks.net', u'lrf'],
@@ -667,7 +695,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
16: [u'Quicksilver', u'Neal Stephenson', None, u'lrf,zip'],
17: [u'The Comedies of William Shakespeare',
u'William Shakespeare',
-@@ -54,15 +54,15 @@
+@@ -54,15 +54,15 @@ class Tester(SearchQueryParser):
None,
u'lrf'],
20: [u'An Ideal Husband', u'Oscar Wilde', u'manybooks.net', u'lrf'],
@@ -692,7 +720,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
30: [u'Genghis Khan and The Making of the Modern World',
u'Jack Weatherford Orc',
u'Three Rivers Press',
-@@ -73,9 +73,9 @@
+@@ -73,9 +73,9 @@ class Tester(SearchQueryParser):
u'lrf,zip'],
32: [u'The Killer Angels', u'Michael Shaara', None, u'html,lrf'],
33: [u'Band Of Brothers', u'Stephen E Ambrose', None, u'lrf,txt'],
@@ -704,7 +732,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
37: [u'Masterman Ready', u'Marryat, Captain Frederick', None, u'lrf'],
38: [u'With the Lightnings',
u'David Drake',
-@@ -88,16 +88,16 @@
+@@ -88,16 +88,16 @@ class Tester(SearchQueryParser):
40: [u'The Far Side of The Stars',
u'David Drake',
u'Baen Publishing Enterprises',
@@ -725,7 +753,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
44: [u'Harry Potter and the Order of the Phoenix',
u'J. K. Rowling',
None,
-@@ -106,12 +106,12 @@
+@@ -106,12 +106,12 @@ class Tester(SearchQueryParser):
46: [u'The Stars at War II',
u'Steve White',
u'Baen Publishing Enterprises',
@@ -741,7 +769,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
49: [u'Harry Potter and the Prisoner of Azkaban',
u'J. K. Rowling',
None,
-@@ -124,20 +124,20 @@
+@@ -124,20 +124,20 @@ class Tester(SearchQueryParser):
u'J.K. Rowling',
None,
u'lit,lrf,pdf'],
@@ -767,7 +795,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
89: [u'Master and commander',
u"Patrick O'Brian",
u'Fontana,\n1971',
-@@ -145,7 +145,7 @@
+@@ -145,7 +145,7 @@ class Tester(SearchQueryParser):
91: [u'A Companion to Wolves',
u'Sarah Monette,Elizabeth Beär',
None,
@@ -776,7 +804,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
92: [u'The Lions of al-Rassan', u'Guy Gavriel Kay', u'Eos', u'lit,lrf'],
93: [u'Gardens of the Moon', u'Steven Erikson', u'Tor Fantasy', u'lit,lrf'],
95: [u'The Master and Margarita',
-@@ -169,7 +169,7 @@
+@@ -169,7 +169,7 @@ class Tester(SearchQueryParser):
144: [u'Atonement',
u'Ian McEwan',
u'New York : Nan A. Talese/Doubleday, 2002.',
@@ -785,7 +813,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
146: [u'1632', u'Eric Flint', u'Baen Books', u'lit,lrf'],
147: [u'1633', u'David Weber,Eric Flint,Dru Blair', u'Baen', u'lit,lrf'],
148: [u'1634: The Baltic War',
-@@ -222,7 +222,7 @@
+@@ -222,7 +222,7 @@ class Tester(SearchQueryParser):
253: [u"Hunter's Run",
u'George R. R. Martin,Gardner Dozois,Daniel Abraham',
u'Eos',
@@ -794,7 +822,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
257: [u'Knife of Dreams', u'Robert Jordan', None, u'lit,lrf'],
258: [u'Saturday',
u'Ian McEwan',
-@@ -242,7 +242,7 @@
+@@ -242,7 +242,7 @@ class Tester(SearchQueryParser):
u'New York : Random House, 2005.',
u'lit,lrf'],
269: [u'Reap the Whirlwind', u'David Mack', u'Star Trek', u'lit,lrf'],
@@ -803,7 +831,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
273: [u'The Thousandfold Thought',
u'R. Scott Bakker',
u'Overlook TP',
-@@ -250,17 +250,17 @@
+@@ -250,17 +250,17 @@ class Tester(SearchQueryParser):
276: [u'Elantris',
u'Brandon Sanderson',
u'New York : Tor, 2005.',
@@ -825,7 +853,7 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
325: [u"Foundation's Triumph", u'David Brin', u'Easton Press', u'lit,lrf'],
327: [u'I am Charlotte Simmons', u'Tom Wolfe', u'Vintage', u'htm,lrf'],
335: [u'The Currents of Space', u'Isaac Asimov', None, u'lit,lrf'],
-@@ -290,15 +290,15 @@
+@@ -290,15 +290,15 @@ class Tester(SearchQueryParser):
u'Aspect',
u'lit,lrf'],
356: [u'The Naked God', u'Peter F. Hamilton', u'Aspect', u'lit,lrf'],
@@ -844,10 +872,10 @@ diff -r -u calibre-3.33.1.orig/src/calibre/utils/search_query_parser_test.py cal
}
tests = {
-diff -r -u calibre-3.33.1.orig/src/calibre/web/feeds/feedparser.py calibre-3.33.1/src/calibre/web/feeds/feedparser.py
---- calibre-3.33.1.orig/src/calibre/web/feeds/feedparser.py 2018-11-02 18:00:30.393302091 +0000
-+++ calibre-3.33.1/src/calibre/web/feeds/feedparser.py 2018-11-02 17:55:04.466637761 +0000
-@@ -2081,7 +2081,7 @@
+diff -rupN calibre-3.39.1/src/calibre/web/feeds/feedparser.py calibre-3.39.1.new/src/calibre/web/feeds/feedparser.py
+--- calibre-3.39.1/src/calibre/web/feeds/feedparser.py 2019-02-01 18:43:29.000000000 +0100
++++ calibre-3.39.1.new/src/calibre/web/feeds/feedparser.py 2019-02-26 11:40:36.563371432 +0100
+@@ -2081,7 +2081,7 @@ class _MicroformatsParser:
EMAIL = 5
known_xfn_relationships = {'contact', 'acquaintance', 'friend', 'met', 'co-worker', 'coworker', 'colleague', 'co-resident', 'coresident', 'neighbor', 'child', 'parent', 'sibling', 'brother', 'sister', 'spouse', 'wife', 'husband', 'kin', 'relative', 'muse', 'crush', 'date', 'sweetheart', 'me'}
@@ -856,30 +884,3 @@ diff -r -u calibre-3.33.1.orig/src/calibre/web/feeds/feedparser.py calibre-3.33.
def __init__(self, data, baseuri, encoding):
self.document = BeautifulSoup.BeautifulSoup(data)
---- calibre-3.33.1.orig/src/calibre/srv/tests/loop.py 2018-10-19 00:00:54.000000000 -0500
-+++ calibre-3.33.1/src/calibre/srv/tests/loop.py 2018-11-08 12:25:51.575170672 -0500
-@@ -108,24 +108,6 @@
- with TestServer(lambda data:(data.path[0] + data.read()), listen_on='1.1.1.1', fallback_to_detected_interface=True, specialize=specialize) as server:
- self.assertNotEqual('1.1.1.1', server.address[0])
-
-- @skipIf(is_ci, 'Continuous Integration servers do not support BonJour')
-- def test_bonjour(self):
-- 'Test advertising via BonJour'
-- from calibre.srv.bonjour import BonJour
-- from calibre.utils.Zeroconf import Zeroconf
-- b = BonJour()
-- with TestServer(lambda data:(data.path[0] + data.read()), plugins=(b,), shutdown_timeout=5) as server:
-- self.assertTrue(b.started.wait(5), 'BonJour not started')
-- self.ae(b.advertised_port, server.address[1])
-- service = b.services[0]
-- self.ae(service.type, b'_calibre._tcp.local.')
-- r = Zeroconf()
-- info = r.getServiceInfo(service.type, service.name)
-- self.assertIsNotNone(info)
-- self.ae(info.text, b'\npath=/opds')
--
-- self.assertTrue(b.stopped.wait(5), 'BonJour not stopped')
--
- def test_ring_buffer(self):
- 'Test the ring buffer used for reads'
- class FakeSocket(object):