summaryrefslogtreecommitdiff
path: root/libre/calibre
diff options
context:
space:
mode:
Diffstat (limited to 'libre/calibre')
-rw-r--r--libre/calibre/PKGBUILD47
-rw-r--r--libre/calibre/libre.patch343
2 files changed, 161 insertions, 229 deletions
diff --git a/libre/calibre/PKGBUILD b/libre/calibre/PKGBUILD
index 97718c83b..4e6ce9ad1 100644
--- a/libre/calibre/PKGBUILD
+++ b/libre/calibre/PKGBUILD
@@ -15,33 +15,33 @@
# - removed decrompession engine for rar archives
pkgname=calibre
-pkgver=3.39.1
+pkgver=3.46.0
pkgrel=1
-pkgrel+=.par2
+pkgrel+=.par1
pkgdesc="Ebook management application"
pkgdesc+=", without nonfree decompression engine for RAR archives"
arch=('x86_64')
arch+=('i686' 'armv7h')
url="https://calibre-ebook.com/"
license=('GPL3')
-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'
- 'python2-netifaces' 'python2-cssselect' 'python2-apsw' 'qt5-webkit'
- 'qt5-svg' 'python2-regex' 'python2-pygments' 'mtdev'
- 'desktop-file-utils' 'gtk-update-icon-cache' 'optipng' 'udisks2')
-makedepends=('qt5-x11extras' 'sip' 'xdg-utils')
+_py_deps=('apsw' 'beautifulsoup4' 'cssselect' 'css-parser' 'dateutil' 'dbus' 'dnspython' 'dukpy'
+ 'feedparser' 'html2text' 'html5-parser' 'lxml' 'markdown' 'mechanize' 'msgpack'
+ 'netifaces' 'pillow' 'psutil' 'pygments' 'pyqt5' 'regex')
+depends=('chmlib' 'icu' 'jxrlib' 'libmtp' 'libusbx' 'libwmf' 'mathjax' 'mtdev' 'optipng'
+ 'podofo' "${_py_deps[@]/#/python2-}" 'qt5-svg' 'qt5-webkit' 'udisks2')
+makedepends=('qt5-x11extras' 'rapydscript-ng' 'sip' 'xdg-utils')
checkdepends=('xorg-server-xvfb')
optdepends=('ipython2: to use calibre-debug'
'poppler: required for converting pdf to html')
source=("https://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz"
"https://calibre-ebook.com/signatures/${pkgname}-${pkgver}.tar.xz.sig"
'libre.patch')
-sha256sums=('50bb56ca9455464495c646688722cb07199ed74a3a2eb3dc4f3b3e609be68121'
+sha256sums=('e947b9854f9db344ee07e5495feaad759c96936d89a128d3a3587c3503d09ab6'
'SKIP'
- '2990c382bcfaa36e3162261eed9acae7e905b75471bcdd75930ddd9a33173f6c')
+ '1574e2094ce7f3e37116215ae117ed4a10426592535b261f66eacc1508566ad2')
+b2sums=('5590ba422d0323ea7c0cea67d88d448f00f5a470e7a8fdf9851b488c0856c88175bd107715a856706e95b2e1a45604713d061f4a7a3603ecaa01dfc018c1ed58'
+ 'SKIP'
+ '45a57037ad9f9b57c73e5eed8a5faf57e2be2bfdc6f4c2ff753cc536d5f8f8431d6cc9a8d64781caab47571d45fdb4476f1fecf0e759d388ca526ad36803c19b')
validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal (New longer key) <kovid@kovidgoyal.net>
prepare(){
@@ -55,13 +55,16 @@ prepare(){
patch -fNp1 -i "$srcdir/libre.patch"
# Desktop integration (e.g. enforce arch defaults)
- sed -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \
- -e "/cc(\['xdg-desktop-menu', 'forceupdate'\])/d" \
- -e "/cc(\['xdg-mime', 'install', MIME\])/d" \
+ sed -e "/import config_dir/,/os.rmdir(config_dir)/d" \
-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
+ # cherry-picked bits of python2-backports.functools_lru_cache
+ # needed for frozen builds + beautifulsoup4
+ # see https://github.com/kovidgoyal/calibre/commit/b177f0a1096b4fdabd8772dd9edc66662a69e683#commitcomment-33169700
+ rm -r src/backports
+
cd resources
# Remove unneeded files
@@ -95,14 +98,12 @@ check() {
package() {
cd "${pkgname}-${pkgver}"
- install -d "${pkgdir}/usr/share/zsh/site-functions" \
- "${pkgdir}"/usr/share/{applications,desktop-directories,icons/hicolor}
-
- install -Dm644 resources/calibre-mimetypes.xml \
- "${pkgdir}/usr/share/mime/packages/calibre-mimetypes.xml"
+ # If this directory doesn't exist, zsh completion won't install.
+ install -d "${pkgdir}/usr/share/zsh/site-functions"
- XDG_DATA_DIRS="${pkgdir}/usr/share" LANG='en_US.UTF-8' \
- python2 setup.py install --staging-root="${pkgdir}/usr" --prefix=/usr
+ LANG='en_US.UTF-8' python2 setup.py install \
+ --staging-root="${pkgdir}/usr" \
+ --prefix=/usr
cp -a man-pages/ "${pkgdir}/usr/share/man"
diff --git a/libre/calibre/libre.patch b/libre/calibre/libre.patch
index 6f2709f36..4c3e65c16 100644
--- a/libre/calibre/libre.patch
+++ b/libre/calibre/libre.patch
@@ -1,7 +1,6 @@
-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
+--- calibre-3.46.0.orig/manual/conversion.rst 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/manual/conversion.rst 2019-08-26 01:03:19.365098742 -0500
+@@ -747,7 +747,7 @@
Comic book collections
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -10,10 +9,9 @@ diff -rupN calibre-3.39.1/manual/conversion.rst calibre-3.39.1.new/manual/conver
.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 -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-3.46.0.orig/manual/faq.rst 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/manual/faq.rst 2019-08-26 01:07:40.285096018 -0500
+@@ -18,7 +18,7 @@
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,22 +20,20 @@ diff -rupN calibre-3.39.1/manual/faq.rst calibre-3.39.1.new/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 -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
+--- calibre-3.46.0.orig/manual/gui.rst 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/manual/gui.rst 2019-08-26 01:09:15.315095026 -0500
+@@ -51,7 +51,7 @@
- 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.
+ 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.
- 4. **Add multiple books from archive (ZIP/RAR)**: Allows you to add multiple e-books that are stored inside the selected ZIP or RAR files. It is a convenient shortcut that avoids having to first unzip the archive and then add the books via one of the above two options.
+ 4. **Add multiple books from archive (ZIP)**: Allows you to add multiple e-books that are stored inside the selected ZIP files. It is a convenient shortcut that avoids having to first unzip the archive and then add the books via one of the above two options.
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 -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
+--- calibre-3.46.0.orig/resources/mime.types 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/resources/mime.types 2019-08-26 01:12:33.905092952 -0500
+@@ -138,7 +138,6 @@
application/prs.nprend
application/prs.plucker
application/qsig
@@ -45,7 +41,7 @@ diff -rupN calibre-3.39.1/resources/mime.types calibre-3.39.1.new/resources/mime
application/rdf+xml rdf
application/reginfo+xml rif
application/relax-ng-compact-syntax rnc
-@@ -849,7 +848,6 @@ application/x-pkcs7-certreqresp p7r
+@@ -849,7 +848,6 @@
application/x-pkcs7-crl crl
application/x-python-code pyc pyo
application/x-quicktimeplayer qtl
@@ -53,7 +49,7 @@ diff -rupN calibre-3.39.1/resources/mime.types calibre-3.39.1.new/resources/mime
application/x-redhat-package-manager rpm
application/x-sh sh
application/x-shar shar
-@@ -1372,7 +1370,6 @@ application/x-mobipocket-subscription
+@@ -1372,7 +1370,6 @@
application/x-kindle-application azw2
application/x-mobi8-ebook azw3
application/x-cbz cbz
@@ -61,10 +57,9 @@ diff -rupN calibre-3.39.1/resources/mime.types calibre-3.39.1.new/resources/mime
application/x-cb7 cb7
application/x-cbc cbc
application/x-koboreader-ebook kobo
-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): # {{{
+--- calibre-3.46.0.orig/setup/resources.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/setup/resources.py 2019-08-26 16:14:52.537133971 -0500
+@@ -348,7 +348,7 @@
log = Log()
# log.outputs = []
for inf in supported_input_formats():
@@ -73,10 +68,9 @@ diff -rupN calibre-3.39.1/setup/resources.py calibre-3.39.1.new/setup/resources.
continue
for ouf in available_output_formats():
of = ouf if ouf == 'oeb' else 'dummy.'+ouf
-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
+--- calibre-3.46.0.orig/src/calibre/customize/builtins.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/customize/builtins.py 2019-08-26 16:19:10.547135583 -0500
+@@ -133,7 +133,7 @@
class ComicMetadataReader(MetadataReaderPlugin):
name = 'Read comic metadata'
@@ -85,7 +79,7 @@ diff -rupN calibre-3.39.1/src/calibre/customize/builtins.py calibre-3.39.1.new/s
description = _('Extract cover from comic files')
def customization_help(self, gui=False):
-@@ -143,19 +143,14 @@ class ComicMetadataReader(MetadataReader
+@@ -144,19 +144,14 @@
pos = stream.tell()
id_ = stream.read(3)
stream.seek(pos)
@@ -108,7 +102,7 @@ diff -rupN calibre-3.39.1/src/calibre/customize/builtins.py calibre-3.39.1.new/s
series_index = self.site_customization
if series_index not in {'volume', 'issue'}:
series_index = 'volume'
-@@ -354,17 +349,6 @@ class PMLMetadataReader(MetadataReaderPl
+@@ -355,17 +350,6 @@
return get_metadata(stream)
@@ -126,10 +120,9 @@ diff -rupN calibre-3.39.1/src/calibre/customize/builtins.py calibre-3.39.1.new/s
class RBMetadataReader(MetadataReaderPlugin):
name = 'Read RB metadata'
-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():
+--- calibre-3.46.0.orig/src/calibre/customize/ui.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/customize/ui.py 2019-08-26 16:22:32.957136847 -0500
+@@ -538,7 +538,7 @@
if not is_disabled(plugin):
for format in plugin.file_types:
formats.add(format)
@@ -138,10 +131,9 @@ diff -rupN calibre-3.39.1/src/calibre/customize/ui.py calibre-3.39.1.new/src/cal
return formats
-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):
+--- calibre-3.46.0.orig/src/calibre/devices/kobo/driver.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/devices/kobo/driver.py 2019-08-26 16:24:06.647137432 -0500
+@@ -92,7 +92,7 @@
book_class = Book
# Ordered list of supported formats
@@ -150,10 +142,9 @@ diff -rupN calibre-3.39.1/src/calibre/devices/kobo/driver.py calibre-3.39.1.new/
CAN_SET_METADATA = ['collections']
VENDOR_ID = [0x2237]
-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):
+--- calibre-3.46.0.orig/src/calibre/devices/misc.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/devices/misc.py 2019-08-26 16:25:22.907137908 -0500
+@@ -448,7 +448,7 @@
EBOOK_DIR_MAIN = 'Documents'
SCAN_FROM_ROOT = True
@@ -162,10 +153,9 @@ diff -rupN calibre-3.39.1/src/calibre/devices/misc.py calibre-3.39.1.new/src/cal
WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['RK28_SDK_DEMO', 'EINK_EBOOK_READE']
SUPPORTS_SUB_DIRS = True
-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,
+--- calibre-3.46.0.orig/src/calibre/devices/mtp/filesystem_cache.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/devices/mtp/filesystem_cache.py 2019-08-26 16:26:18.837138258 -0500
+@@ -17,7 +17,7 @@
from calibre.utils.icu import sort_key, lower
from calibre.ebooks import BOOK_EXTENSIONS
@@ -174,10 +164,9 @@ diff -rupN calibre-3.39.1/src/calibre/devices/mtp/filesystem_cache.py calibre-3.
class FileOrFolder(object):
-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
+--- calibre-3.46.0.orig/src/calibre/ebooks/comic/__init__.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/ebooks/comic/__init__.py 2019-08-26 16:28:07.637138937 -0500
+@@ -6,7 +6,7 @@
__docformat__ = 'restructuredtext en'
'''
@@ -186,10 +175,9 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/comic/__init__.py calibre-3.39.1.ne
'''
import sys
-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):
+--- calibre-3.46.0.orig/src/calibre/ebooks/conversion/plugins/comic_input.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/ebooks/conversion/plugins/comic_input.py 2019-08-26 16:30:49.127139946 -0500
+@@ -20,8 +20,8 @@
name = 'Comic Input'
author = 'Kovid Goyal'
@@ -200,10 +188,9 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/conversion/plugins/comic_input.py c
is_image_collection = True
commit_name = 'comic_input'
core_usage = -1
-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
+--- calibre-3.46.0.orig/src/calibre/ebooks/conversion/plumber.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/ebooks/conversion/plumber.py 2019-08-26 16:32:33.387140597 -0500
+@@ -46,7 +46,7 @@
def supported_input_formats():
fmts = available_input_formats()
@@ -212,7 +199,7 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/conversion/plumber.py calibre-3.39.
fmts.add(x)
return fmts
-@@ -64,7 +64,7 @@ class CompositeProgressReporter(object):
+@@ -67,7 +67,7 @@
self.global_reporter(global_frac, msg)
@@ -221,10 +208,9 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/conversion/plumber.py calibre-3.39.
class Plumber(object):
-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):
+--- calibre-3.46.0.orig/src/calibre/ebooks/__init__.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/ebooks/__init__.py 2019-08-26 16:33:48.557141066 -0500
+@@ -33,9 +33,9 @@
pass
@@ -236,19 +222,18 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/__init__.py calibre-3.39.1.new/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 -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):
+--- calibre-3.46.0.orig/src/calibre/ebooks/metadata/archive.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/ebooks/metadata/archive.py 2019-08-26 16:47:19.547146131 -0500
+@@ -30,8 +30,6 @@
ans = None
if id_ == stringFileHeader:
ans = 'zip'
-- elif id_.startswith('Rar'):
+- elif id_.startswith(b'Rar'):
- ans = 'rar'
try:
stream.seek(pos)
- except:
-@@ -42,24 +40,16 @@ class ArchiveExtract(FileTypePlugin):
+ except Exception:
+@@ -43,24 +41,16 @@
name = 'Archive Extract'
author = 'Kovid Goyal'
description = _('Extract common e-book formats from archive files '
@@ -278,7 +263,7 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/metadata/archive.py calibre-3.39.1.
def fname_ok(fname):
bn = os.path.basename(fname).lower()
-@@ -75,7 +65,7 @@ class ArchiveExtract(FileTypePlugin):
+@@ -76,7 +66,7 @@
fnames = list(filter(fname_ok, fnames))
if is_comic(fnames):
@@ -287,7 +272,7 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/metadata/archive.py calibre-3.39.1.
of = self.temporary_file('_archive_extract'+ext)
with open(archive, 'rb') as f:
of.write(f.read())
-@@ -92,11 +82,7 @@ class ArchiveExtract(FileTypePlugin):
+@@ -93,11 +83,7 @@
of = self.temporary_file('_archive_extract.'+ext)
with closing(of):
@@ -300,7 +285,7 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/metadata/archive.py calibre-3.39.1.
return of.name
-@@ -159,9 +145,6 @@ def get_comic_metadata(stream, stream_ty
+@@ -168,8 +154,5 @@
from calibre.utils.zipfile import ZipFile
zf = ZipFile(stream)
comment = zf.comment
@@ -308,12 +293,10 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/metadata/archive.py calibre-3.39.1.
- from calibre.utils.unrar import comment as get_comment
- comment = get_comment(stream)
- if comment:
- import json
-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):
+ return parse_comic_comment(comment or b'{}', series_index=series_index)
+--- calibre-3.46.0.orig/src/calibre/ebooks/oeb/iterator/book.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/ebooks/oeb/iterator/book.py 2019-08-26 16:48:49.227146691 -0500
+@@ -160,7 +160,7 @@
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]
@@ -322,22 +305,9 @@ diff -rupN calibre-3.39.1/src/calibre/ebooks/oeb/iterator/book.py calibre-3.39.1
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'
-
--'Convert a comic in CBR/CBZ format to pdf'
-+'Convert a comic in CBZ format to pdf'
-
- import sys
- from functools import partial
-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():
+--- calibre-3.46.0.orig/src/calibre/gui2/actions/add.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/actions/add.py 2019-08-26 17:12:43.337155648 -0500
+@@ -37,8 +37,8 @@
(_('HTML books'), ['htm', 'html', 'xhtm', 'xhtml']),
(_('LIT books'), ['lit']),
(_('Text books'), ['txt', 'text', 'rtf', 'md', 'markdown', 'textile', 'txtz']),
@@ -348,21 +318,16 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/actions/add.py calibre-3.39.1.new/src
(_('Wordprocessor files'), ['odt', 'doc', 'docx']),
]
-@@ -64,10 +64,10 @@ class AddAction(InterfaceAction):
+@@ -65,7 +65,7 @@
'sub-directories (Multiple books per directory, assumes every '
'e-book file is a different book)')).triggered.connect(
self.add_recursive_multiple)
- arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP/RAR)'))
+ arm = self.add_archive_menu = self.add_menu.addMenu(_('Add multiple books from archive (ZIP)'))
connect_lambda(self.create_menu_action(
-- arm, 'recursive-single-archive', _('One book per directory in the archive')).triggered,
-- self, lambda self: self.add_archive(True))
-+ arm, 'recursive-single-archive', _('One book per directory in the archive')).triggered,
-+ self, lambda self: self.add_archive(True))
- 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 @@ class AddAction(InterfaceAction):
+ arm, 'recursive-single-archive', _('One book per directory in the archive')).triggered,
+ self, lambda self: self.add_archive(True))
+@@ -247,7 +247,7 @@
def add_archive(self, single):
paths = choose_files(
self.gui, 'recursive-archive-add', _('Choose archive file'),
@@ -371,10 +336,9 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/actions/add.py calibre-3.39.1.new/src
if paths:
self.do_add_recursive(paths, single, list_of_archives=True)
-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)
+--- calibre-3.46.0.orig/src/calibre/gui2/actions/preferences.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/actions/preferences.py 2019-08-26 17:14:54.687156468 -0500
+@@ -29,8 +29,6 @@
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 +347,9 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/actions/preferences.py calibre-3.39.1
if not DEBUG:
pm.addSeparator()
cm('restart', _('Restart in debug mode'), icon='debug.png',
-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):
+--- calibre-3.46.0.orig/src/calibre/gui2/add.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/add.py 2019-08-26 17:16:14.817156968 -0500
+@@ -167,9 +167,6 @@
prints('Corrupt ZIP file, trying to use local headers')
from calibre.utils.localunzip import extractall
extractall(source, tdir)
@@ -396,22 +359,9 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/add.py calibre-3.39.1.new/src/calibre
return tdir
try:
-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,
-- title=_('Set defaults for conversion of comics (CBR/CBZ files)')):
-+ title=_('Set defaults for conversion of comics (CBZ files)')):
- QDialog.__init__(self, window)
- Ui_Dialog.__init__(self)
- self.setupUi(self)
-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(): # {{{
+--- calibre-3.46.0.orig/src/calibre/gui2/__init__.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/__init__.py 2019-08-26 17:20:41.207158632 -0500
+@@ -206,8 +206,6 @@
help=_('Confirm before deleting'))
c.add_opt('main_window_geometry', default=None,
help=_('Main window geometry'))
@@ -420,10 +370,9 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/__init__.py calibre-3.39.1.new/src/ca
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 -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_
+--- calibre-3.46.0.orig/src/calibre/gui2/preferences/behavior.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/preferences/behavior.py 2019-08-26 17:21:59.877159123 -0500
+@@ -41,7 +41,6 @@
r('network_timeout', prefs)
@@ -431,7 +380,7 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/preferences/behavior.py calibre-3.39.
r('upload_news_to_device', config)
r('delete_news_from_library_on_upload', config)
-@@ -140,7 +139,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_
+@@ -141,7 +140,7 @@
input_map = prefs['input_format_order']
all_formats = set()
self.opt_input_order.clear()
@@ -440,9 +389,8 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/preferences/behavior.py calibre-3.39.
all_formats.add(fmt.upper())
for format in input_map + list(all_formats.difference(input_map)):
item = QListWidgetItem(format, self.opt_input_order)
-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
+--- calibre-3.46.0.orig/src/calibre/gui2/preferences/behavior.ui 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/preferences/behavior.ui 2019-08-26 17:23:20.187159625 -0500
@@ -16,13 +16,6 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -457,10 +405,9 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/preferences/behavior.ui calibre-3.39.
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="opt_upload_news_to_device">
<property name="text">
-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
+--- calibre-3.46.0.orig/src/calibre/gui2/update.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/gui2/update.py 2019-08-26 17:30:02.797162139 -0500
+@@ -6,15 +6,13 @@
from threading import Thread, Event
from PyQt5.Qt import (QObject, pyqtSignal, Qt, QUrl, QDialog, QGridLayout,
@@ -477,9 +424,9 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/cali
-from calibre.gui2 import config, dynamic, open_url
+from calibre.gui2 import dynamic, open_url
from calibre.gui2.dialogs.plugin_updater import get_plugin_updates_available
-
- URL = 'https://code.calibre-ebook.com/latest'
-@@ -31,35 +29,7 @@ def get_download_url():
+ from calibre.utils.serialize import msgpack_dumps, msgpack_loads
+ from polyglot.binary import as_hex_unicode, from_hex_bytes
+@@ -33,35 +31,7 @@
def get_newest_version():
@@ -508,7 +455,7 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/cali
- except UnicodeDecodeError:
- version = u''
- ans = NO_CALIBRE_UPDATE
-- m = re.match(unicode(r'(\d+)\.(\d+).(\d+)$'), version)
+- m = re.match(unicode_type(r'(\d+)\.(\d+).(\d+)$'), version)
- if m is not None:
- ans = tuple(map(int, (m.group(1), m.group(2), m.group(3))))
- return ans
@@ -516,7 +463,7 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/cali
class Signal(QObject):
-@@ -82,12 +52,6 @@ class CheckForUpdates(Thread):
+@@ -84,12 +54,6 @@
calibre_update_version = NO_CALIBRE_UPDATE
plugins_update_found = 0
try:
@@ -529,7 +476,7 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/cali
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 @@ class UpdateNotification(QDialog):
+@@ -148,11 +112,6 @@
self.setWindowIcon(QIcon(I('lt.png')))
self.l.addWidget(self.logo, 0, 0)
self.l.addWidget(self.label, 0, 1)
@@ -541,7 +488,7 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/cali
self.bb = QDialogButtonBox(self)
b = self.bb.addButton(_('&Get update'), self.bb.AcceptRole)
b.setDefault(True)
-@@ -164,9 +123,6 @@ class UpdateNotification(QDialog):
+@@ -180,9 +139,6 @@
if gui is not None:
gui.quit(restart=True)
@@ -551,19 +498,18 @@ diff -rupN calibre-3.39.1/src/calibre/gui2/update.py calibre-3.39.1.new/src/cali
def accept(self):
open_url(QUrl(get_download_url()))
-@@ -214,7 +170,7 @@ class UpdateMixin(object):
+@@ -230,7 +186,7 @@
self.status_bar.update_label.setVisible(True)
if has_calibre_update:
-- if (force or (config.get('new_version_notification') and dynamic.get(version_key(calibre_version), True))):
+- if (force or (config.get('new_version_notification') and not is_version_notified(calibre_version))):
+ if force:
if not no_show_popup:
self._update_notification__ = UpdateNotification(calibre_version,
number_of_plugin_updates, parent=self)
-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):
+--- calibre-3.46.0.orig/src/calibre/__init__.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/__init__.py 2019-08-26 17:31:50.377162811 -0500
+@@ -254,10 +254,7 @@
# First use the file header to identify its type
with open(path, 'rb') as f:
id_ = f.read(3)
@@ -575,7 +521,7 @@ diff -rupN calibre-3.39.1/src/calibre/__init__.py calibre-3.39.1.new/src/calibre
from calibre.libunzip import extract as zipextract
extractor = zipextract
if extractor is None:
-@@ -310,9 +307,6 @@ def extract(path, dir):
+@@ -266,9 +263,6 @@
if ext in ['zip', 'cbz', 'epub', 'oebzip']:
from calibre.libunzip import extract as zipextract
extractor = zipextract
@@ -585,10 +531,9 @@ diff -rupN calibre-3.39.1/src/calibre/__init__.py calibre-3.39.1.new/src/calibre
if extractor is None:
raise Exception('Unknown archive type')
extractor(path, dir)
-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): # {{{
+--- calibre-3.46.0.orig/src/calibre/linux.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/linux.py 2019-08-26 17:33:01.557163256 -0500
+@@ -338,7 +338,7 @@
):
for fmt in fmts:
is_input = group_title == input_group
@@ -597,10 +542,9 @@ diff -rupN calibre-3.39.1/src/calibre/linux.py calibre-3.39.1.new/src/calibre/li
continue
p = (get_parser(input_fmt=fmt) if is_input
else get_parser(output_fmt=fmt))
-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):
+--- calibre-3.46.0.orig/src/calibre/srv/render_book.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/srv/render_book.py 2019-08-26 17:33:53.057163577 -0500
+@@ -190,7 +190,7 @@
'spine':spine,
'link_uid': uuid4(),
'book_hash': book_hash,
@@ -609,10 +553,9 @@ diff -rupN calibre-3.39.1/src/calibre/srv/render_book.py calibre-3.39.1.new/src/
'raster_cover_name': raster_cover_name,
'title_page_name': titlepage_name,
'has_maths': False,
-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):
+--- calibre-3.46.0.orig/src/calibre/srv/tests/loop.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/srv/tests/loop.py 2019-08-26 17:35:18.047164108 -0500
+@@ -110,27 +110,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])
@@ -620,15 +563,18 @@ diff -rupN calibre-3.39.1/src/calibre/srv/tests/loop.py calibre-3.39.1.new/src/c
- def test_bonjour(self):
- 'Test advertising via BonJour'
- from calibre.srv.bonjour import BonJour
-- from calibre.utils.Zeroconf import Zeroconf
-- b = BonJour()
+- if ispy3:
+- from zeroconf import Zeroconf
+- else:
+- from calibre.utils.Zeroconf import Zeroconf
+- b = BonJour(wait_for_stop=False)
- 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.')
+- self.ae(service.type, '_calibre._tcp.local.')
- r = Zeroconf()
-- info = r.getServiceInfo(service.type, service.name)
+- info = r.get_service_info(service.type, service.name)
- self.assertIsNotNone(info)
- self.ae(info.text, b'\npath=/opds')
-
@@ -636,11 +582,10 @@ diff -rupN calibre-3.39.1/src/calibre/srv/tests/loop.py calibre-3.39.1.new/src/c
-
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):
+ with TestServer(lambda data:(data.path[0] + data.read().decode('utf-8')), listen_on='::') as server:
+--- calibre-3.46.0.orig/src/calibre/test_build.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/test_build.py 2019-08-26 17:36:49.697164680 -0500
+@@ -236,10 +236,6 @@
from calibre.gui2.win_file_dialogs import test
test()
@@ -651,10 +596,9 @@ diff -rupN calibre-3.39.1/src/calibre/test_build.py calibre-3.39.1.new/src/calib
@unittest.skipUnless(iswindows, 'WPD is windows only')
def test_wpd(self):
wpd = plugins['wpd'][0]
-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 = {
+--- calibre-3.46.0.orig/src/calibre/utils/file_type_icons.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/utils/file_type_icons.py 2019-08-26 17:40:50.577166185 -0500
+@@ -15,7 +15,6 @@
'png' : 'png',
'bmp' : 'bmp',
'cbz' : 'cbz',
@@ -662,7 +606,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/file_type_icons.py calibre-3.39.1.ne
'svg' : 'svg',
'html' : 'html',
'htmlz' : 'html',
-@@ -28,7 +27,6 @@ EXT_MAP = {
+@@ -27,7 +26,6 @@
'lrx' : 'lrx',
'pdf' : 'pdf',
'pdr' : 'zero',
@@ -670,10 +614,9 @@ diff -rupN calibre-3.39.1/src/calibre/utils/file_type_icons.py calibre-3.39.1.ne
'zip' : 'zip',
'txt' : 'txt',
'text' : 'txt',
-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):
+--- calibre-3.46.0.orig/src/calibre/utils/search_query_parser_test.py 2019-07-18 22:19:21.000000000 -0500
++++ calibre-3.46.0/src/calibre/utils/search_query_parser_test.py 2019-08-26 17:48:14.897168960 -0500
+@@ -30,16 +30,16 @@
u'Tor Books',
u'lrf'],
8: [u'Stalky and Co.', u'Rudyard Kipling', u'manybooks.net', u'lrf'],
@@ -695,7 +638,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
16: [u'Quicksilver', u'Neal Stephenson', None, u'lrf,zip'],
17: [u'The Comedies of William Shakespeare',
u'William Shakespeare',
-@@ -54,15 +54,15 @@ class Tester(SearchQueryParser):
+@@ -54,15 +54,15 @@
None,
u'lrf'],
20: [u'An Ideal Husband', u'Oscar Wilde', u'manybooks.net', u'lrf'],
@@ -720,7 +663,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
30: [u'Genghis Khan and The Making of the Modern World',
u'Jack Weatherford Orc',
u'Three Rivers Press',
-@@ -73,9 +73,9 @@ class Tester(SearchQueryParser):
+@@ -73,9 +73,9 @@
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'],
@@ -732,7 +675,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
37: [u'Masterman Ready', u'Marryat, Captain Frederick', None, u'lrf'],
38: [u'With the Lightnings',
u'David Drake',
-@@ -88,16 +88,16 @@ class Tester(SearchQueryParser):
+@@ -88,16 +88,16 @@
40: [u'The Far Side of The Stars',
u'David Drake',
u'Baen Publishing Enterprises',
@@ -753,7 +696,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
44: [u'Harry Potter and the Order of the Phoenix',
u'J. K. Rowling',
None,
-@@ -106,12 +106,12 @@ class Tester(SearchQueryParser):
+@@ -106,12 +106,12 @@
46: [u'The Stars at War II',
u'Steve White',
u'Baen Publishing Enterprises',
@@ -769,7 +712,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
49: [u'Harry Potter and the Prisoner of Azkaban',
u'J. K. Rowling',
None,
-@@ -124,20 +124,20 @@ class Tester(SearchQueryParser):
+@@ -124,20 +124,20 @@
u'J.K. Rowling',
None,
u'lit,lrf,pdf'],
@@ -795,7 +738,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
89: [u'Master and commander',
u"Patrick O'Brian",
u'Fontana,\n1971',
-@@ -145,7 +145,7 @@ class Tester(SearchQueryParser):
+@@ -145,7 +145,7 @@
91: [u'A Companion to Wolves',
u'Sarah Monette,Elizabeth Beär',
None,
@@ -804,7 +747,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
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 @@ class Tester(SearchQueryParser):
+@@ -169,7 +169,7 @@
144: [u'Atonement',
u'Ian McEwan',
u'New York : Nan A. Talese/Doubleday, 2002.',
@@ -813,7 +756,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
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 @@ class Tester(SearchQueryParser):
+@@ -222,7 +222,7 @@
253: [u"Hunter's Run",
u'George R. R. Martin,Gardner Dozois,Daniel Abraham',
u'Eos',
@@ -822,7 +765,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
257: [u'Knife of Dreams', u'Robert Jordan', None, u'lit,lrf'],
258: [u'Saturday',
u'Ian McEwan',
-@@ -242,7 +242,7 @@ class Tester(SearchQueryParser):
+@@ -242,7 +242,7 @@
u'New York : Random House, 2005.',
u'lit,lrf'],
269: [u'Reap the Whirlwind', u'David Mack', u'Star Trek', u'lit,lrf'],
@@ -831,7 +774,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
273: [u'The Thousandfold Thought',
u'R. Scott Bakker',
u'Overlook TP',
-@@ -250,17 +250,17 @@ class Tester(SearchQueryParser):
+@@ -250,17 +250,17 @@
276: [u'Elantris',
u'Brandon Sanderson',
u'New York : Tor, 2005.',
@@ -853,7 +796,7 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
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 @@ class Tester(SearchQueryParser):
+@@ -290,15 +290,15 @@
u'Aspect',
u'lit,lrf'],
356: [u'The Naked God', u'Peter F. Hamilton', u'Aspect', u'lit,lrf'],
@@ -872,15 +815,3 @@ diff -rupN calibre-3.39.1/src/calibre/utils/search_query_parser_test.py calibre-
}
tests = {
-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'}
-- known_binary_extensions = {'zip','rar','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','rar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv'}
-+ known_binary_extensions = {'zip','exe','gz','tar','tgz','tbz2','bz2','z','7z','dmg','img','sit','sitx','hqx','deb','rpm','bz2','jar','iso','bin','msi','mp2','mp3','ogg','ogm','mp4','m4v','m4a','avi','wma','wmv'}
-
- def __init__(self, data, baseuri, encoding):
- self.document = BeautifulSoup.BeautifulSoup(data)