summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
Diffstat (limited to 'libre')
-rw-r--r--libre/calibre-libre/PKGBUILD104
-rw-r--r--libre/calibre-libre/calibre-mount-helper28
-rw-r--r--libre/calibre-libre/desktop_integration.patch101
-rw-r--r--libre/calibre-libre/libre.patch353
4 files changed, 212 insertions, 374 deletions
diff --git a/libre/calibre-libre/PKGBUILD b/libre/calibre-libre/PKGBUILD
index aee169fd9..4dec76236 100644
--- a/libre/calibre-libre/PKGBUILD
+++ b/libre/calibre-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 113113 2014-06-13 19:40:31Z jelle $
+# $Id: PKGBUILD 116806 2014-08-03 19:31:57Z jelle $
# Maintainer (Arch): Jelle van der Waa <jelle@vdwaa.nl>
# Maintainer (Arch): Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org>
@@ -9,65 +9,80 @@
_pkgname=calibre
pkgname=calibre-libre
-pkgver=1.40.0
-pkgrel=1
-pkgdesc="Ebook management application, without nonfree libunrar support"
+pkgver=1.204.1
+pkgrel=2
+pkgdesc="Ebook management application, without nonfree decompression engine for RAR archives"
arch=('i686' 'x86_64' 'mips64el')
url="http://calibre-ebook.com/"
license=('GPL3')
depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-cherrypy'
- 'python2-mechanize' 'podofo' 'libwmf' 'python2-beautifulsoup3'
- 'imagemagick' 'poppler-qt' 'chmlib' 'python2-lxml' 'libusbx'
+ 'python2-mechanize' 'podofo' 'libwmf'
+ 'imagemagick' 'chmlib' 'python2-lxml' 'libusbx'
'python2-pillow' 'shared-mime-info' 'python2-dnspython'
- 'python2-pyqt4' 'python2-psutil' 'icu' 'libmtp'
- 'python2-netifaces' 'python2-cssselect' 'python2-apsw')
-makedepends=('python2-pycountry' 'qt4-private-headers')
+ 'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp'
+ 'python2-netifaces' 'python2-cssselect' 'python2-apsw' 'qt5-webkit'
+ 'qt5-svg' 'python2-chardet' 'python2-html5lib')
+makedepends=('python2-pycountry' 'qt5-x11extras' )
optdepends=('ipython2: to use calibre-debug')
replaces=($_pkgname)
conflicts=($_pkgname)
provides=($_pkgname=$pkgver)
install=calibre.install
-mksource=("http://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz")
+mksource=("http://download.calibre-ebook.com/betas/calibre-${pkgver}.tar.xz")
source=("https://repo.parabolagnulinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz"
- 'desktop_integration.patch'
- 'calibre-mount-helper'
'libre.patch')
-mkmd5sums=('4fb8c0273e9bf14698fe99a89c9e2a65')
-md5sums=('d4c862b8b1590b116275393512909284'
- 'ece36dfd737fa4a346f0a0e59395e949'
- '675cd87d41342119827ef706055491e7'
- '073a36adbb3628d21c2dff8b41e84abe')
+mkmd5sums=('12f63635b7c743da3b4849f3a1e8ee9b')
+md5sums=('dafd34ee356960928eaf920c7035d221'
+ '343162b9d1c97c0463d4919a8b9ac500')
mksource(){
- cd "${srcdir}/${_pkgname}"
+ cd "${srcdir}/${_pkgname}-${pkgver}"
# Remove nonfree unRAR utility files from the source
rm -rv src/unrar
}
prepare(){
- cd "${srcdir}/${_pkgname}"
+ cd "${srcdir}/${_pkgname}-${pkgver}"
- # Remove nonfree libunrar/cbr support and references
+ # Remove nonfree rar/cbr support and references
rm -v src/calibre/{ebooks/metadata/rar.py,utils/unrar.{cpp,py}}
rm -v resources/images/mimetypes/{cbr,rar}.png
rm -v imgsrc/mimetypes/rar.svg
patch -Np1 -i "${srcdir}/libre.patch"
- #rm -rf src/{cherrypy,pyPdf}
- rm -rf src/cherrypy
- rm -rf resources/${pkgname}-portable.*
- sed -i -e "s/ldflags = shlex.split(ldflags)/ldflags = shlex.split(ldflags) + ['-fPIC']/" setup/extensions.py
-
- # Fix for calibre-0.8.58
- sed -i -e "s:#!usr:#!/usr:g" src/calibre/ebooks/markdown/extensions/meta.py
-
- sed -i -e 's:\(#!/usr/bin/env[ ]\+python$\|#![ ]/usr/bin/env[ ]\+python$\|#!/usr/bin/python$\):\12:g' \
- $(find . -regex ".*.py\|.*.recipe")
+ # Remove unneeded files and libs
+ rm -rf resources/${_pkgname}-portable.* \
+ src/six.py \
+ src/cherrypy \
+ src/html5lib \
+ src/chardet
+
+ sed -i "s/shlex.split(ldflags)/& + ['-fPIC']/" setup/extensions.py
+ #sed -i -e "s/ldflags = shlex.split(ldflags)/ldflags = shlex.split(ldflags) + ['-fPIC']/" setup/extensions.py
+
+ # Use python2
+ sed -i 's:\(env[ ]\+python$\|/usr/bin/python$\):\12:g' $(find . -regex ".*\.py\|.*\.recipe")
+ sed -i "/pyqt_sip_dir/ s:=.*:= '/usr/share/sip/Py2-PyQt5':" setup/build_environment.py
+
+ # Desktop integration (e.g. enforce arch defaults)
+ sed -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \
+ -e "/\(cc('xdg-icon-resource\|self.icon_resources.append\|'128'))\)/d" \
+ -e "/render_img/ s/\('calibre-.*\.png'\)/os.path.join(dir, \1)/g" \
+ -e "/dir, 'calibre-lrf.png'/i \
+\ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')\n\
+\ os.mkdir(dir)" \
+ -e "/f = open/ s/\('calibre-.*\.desktop'\)/os.path.join(dir, \1)/g" \
+ -e "/dir, 'calibre-lrfviewer.desktop'/i \
+\ dir = os.path.join(self.opts.staging_sharedir,'../applications')\n\
+\ os.mkdir(dir)" \
+ -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
}
build() {
- cd "${srcdir}/${_pkgname}"
+ cd "${srcdir}/${_pkgname}-${pkgver}"
LANG='en_US.UTF-8' python2 setup.py build
# LANG='en_US.UTF-8' python2 setup.py resources
@@ -77,36 +92,21 @@ build() {
}
package() {
- cd "${srcdir}/${_pkgname}"
+ cd "${srcdir}/${_pkgname}-${pkgver}"
- patch -Np1 -i "${srcdir}/desktop_integration.patch"
-
- # More on desktop integration (e.g. enforce arch defaults)
- sed -i -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \
- -e "s|self.opts.staging_sharedir, 'man/man1'|self.opts.staging_root, 'usr/share/man/man1'|" \
- -e "s|manpath, prog+'.1'+__appname__+'.bz2'|manpath, prog+'.1'+'.bz2'|" \
- -e "s|old_udev = '/etc|old_udev = '${pkgdir}/etc|" \
- -e "s/^Name=calibre/Name=Calibre/g" src/calibre/linux.py
-
# Fix the environment module location
sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py
- install -d "${pkgdir}/usr/lib/python2.7/site-packages"
- install -d "${pkgdir}/usr/share/zsh/site-functions"
+ install -d "${pkgdir}/usr/lib/python2.7/site-packages" \
+ "${pkgdir}/usr/share/zsh/site-functions"
+
LANG='en_US.UTF-8' python2 setup.py install --root="${pkgdir}" --prefix=/usr \
--staging-bindir="${pkgdir}/usr/bin" \
--staging-libdir="${pkgdir}/usr/lib" \
--staging-sharedir="${pkgdir}/usr/share"
- find "${pkgdir}" -type d -empty -delete
-
- # See http://lwn.net/SubscriberLink/465311/7c299471a5399167/
- rm -rf "${pkgdir}/usr/bin/calibre-mount-helper"
- install -m 755 "${srcdir}/calibre-mount-helper" "${pkgdir}/usr/bin"
-
- # Compiling bytecode FS33392
+ # Compiling bytecode FS#33392
python2 -m compileall "${pkgdir}/usr/lib/calibre/"
-
- # Compiling optimized bytecode FS33392
python2 -O -m compileall "${pkgdir}/usr/lib/calibre/"
}
+
diff --git a/libre/calibre-libre/calibre-mount-helper b/libre/calibre-libre/calibre-mount-helper
deleted file mode 100644
index 00cac4270..000000000
--- a/libre/calibre-libre/calibre-mount-helper
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh -e
-# Replacement for upstream mount helper using udisks/eject
-# (C) 2010 Martin Pitt <mpitt@debian.org>
-
-ACTION="$1"
-DEV="$2"
-
-case "$ACTION" in
- mount)
- udisks --mount "$DEV"
-
- # check if mount worked. If not, fail
- # udisks does return 0 even if mount failed
- mount | grep -q "$DEV" || exit 0
- ;;
-
- eject)
- eject "$DEV"
- ;;
-
- cleanup)
- ;;
-
- *)
- echo "unknown action" >&2
- exit 1
-esac
-
diff --git a/libre/calibre-libre/desktop_integration.patch b/libre/calibre-libre/desktop_integration.patch
deleted file mode 100644
index f1a66c020..000000000
--- a/libre/calibre-libre/desktop_integration.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-diff -aur calibre/src/calibre/linux.py calibre.new/src/calibre/linux.py
---- calibre/src/calibre/linux.py 2014-02-28 04:06:35.000000000 +0100
-+++ calibre.new/src/calibre/linux.py 2014-02-28 11:18:00.518362669 +0100
-@@ -495,18 +495,6 @@
- self.setup_completion()
- if islinux or isbsd:
- self.setup_desktop_integration()
-- self.create_uninstaller()
--
-- from calibre.utils.config import config_dir
-- if os.path.exists(config_dir):
-- os.chdir(config_dir)
-- if islinux or isbsd:
-- for f in os.listdir('.'):
-- if os.stat(f).st_uid == 0:
-- import shutil
-- shutil.rmtree(f) if os.path.isdir(f) else os.unlink(f)
-- if os.stat(config_dir).st_uid == 0:
-- os.rmdir(config_dir)
-
- if warn is None and self.warnings:
- self.info('\n\nThere were %d warnings\n'%len(self.warnings))
-@@ -564,7 +552,7 @@
- if isnetbsd:
- f = os.path.join(self.opts.staging_root, 'share/bash_completion.d/calibre')
- else:
-- f = os.path.join(self.opts.staging_etc, 'bash_completion.d/calibre')
-+ f = os.path.join(self.opts.staging_root, 'usr/share/bash-completion/completions/calibre')
- if not os.path.exists(os.path.dirname(f)):
- os.makedirs(os.path.dirname(f))
- bash_comp_dest, zsh_comp_dest = f, None
-@@ -713,56 +701,37 @@
-
- with TemporaryDirectory() as tdir, CurrentDir(tdir), \
- PreserveMIMEDefaults():
-- render_img('mimetypes/lrf.png', 'calibre-lrf.png')
-- cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-lrf', '128'))
-- cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-lrs',
-- '128'))
-- render_img('mimetypes/mobi.png', 'calibre-mobi.png')
-- cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-mobi.png application-x-mobipocket-ebook', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-x-mobipocket-ebook', '128'))
-- render_img('mimetypes/tpz.png', 'calibre-tpz.png')
-- cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-tpz.png application-x-topaz-ebook', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-x-topaz-ebook', '128'))
-- render_img('mimetypes/azw2.png', 'calibre-azw2.png')
-- cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-azw2.png application-x-kindle-application', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-x-kindle-application', '128'))
-- render_img('mimetypes/azw3.png', 'calibre-azw3.png')
-- cc('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-azw3.png application-x-mobi8-ebook', shell=True)
-- self.icon_resources.append(('mimetypes', 'application-x-mobi8-ebook', '128'))
-- render_img('lt.png', 'calibre-gui.png', width=256, height=256)
-- cc('xdg-icon-resource install --noupdate --size 256 calibre-gui.png calibre-gui', shell=True)
-- self.icon_resources.append(('apps', 'calibre-gui', '256'))
-- render_img('viewer.png', 'calibre-viewer.png', width=256, height=256)
-- cc('xdg-icon-resource install --size 256 calibre-viewer.png calibre-viewer', shell=True)
-- self.icon_resources.append(('apps', 'calibre-viewer', '256'))
-- render_img('tweak.png', 'calibre-ebook-edit.png', width=256, height=256)
-- cc('xdg-icon-resource install --size 256 calibre-ebook-edit.png calibre-ebook-edit', shell=True)
-- self.icon_resources.append(('apps', 'calibre-ebook-edit', '256'))
-+ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')
-+ os.mkdir(dir)
-+ render_img('mimetypes/lrf.png', os.path.join(dir,'calibre-lrf.png'))
-+ render_img('lt.png', os.path.join(dir, 'calibre-gui.png'))
-+ render_img('viewer.png', os.path.join(dir, 'calibre-viewer.png'))
-+ render_img('tweak.png', os.path.join(dir, 'calibre-ebook-edit.png'))
-
- mimetypes = set([])
- for x in all_input_formats():
- mt = guess_type('dummy.'+x)[0]
-- if mt and 'chemical' not in mt and 'ctc-posml' not in mt:
-+ if mt and 'chemical' not in mt and 'text' not in mt and 'pdf' not in mt and 'xhtml' not in mt:
- mimetypes.add(mt)
-
- def write_mimetypes(f):
- f.write('MimeType=%s;\n'%';'.join(mimetypes))
-
- from calibre.ebooks.oeb.polish.main import SUPPORTED
-- f = open('calibre-lrfviewer.desktop', 'wb')
-+ dir = os.path.join(self.opts.staging_sharedir,'../applications')
-+ os.mkdir(dir)
-+ f = open(os.path.join(dir, 'calibre-lrfviewer.desktop'), 'wb')
- f.write(VIEWER)
- f.close()
-- f = open('calibre-ebook-viewer.desktop', 'wb')
-+ f = open(os.path.join(dir, 'calibre-ebook-viewer.desktop'), 'wb')
- f.write(EVIEWER)
- write_mimetypes(f)
-- f = open('calibre-ebook-edit.desktop', 'wb')
-+ f = open(os.path.join(dir, 'calibre-ebook-edit.desktop'), 'wb')
- f.write(ETWEAK)
- mt = [guess_type('a.' + x.lower())[0] for x in SUPPORTED]
- f.write('MimeType=%s;\n'%';'.join(mt))
- f.close()
-- f = open('calibre-gui.desktop', 'wb')
-+ f = open(os.path.join(dir, 'calibre-gui.desktop'), 'wb')
- f.write(GUI)
- write_mimetypes(f)
- f.close()
diff --git a/libre/calibre-libre/libre.patch b/libre/calibre-libre/libre.patch
index e2101d8a2..7f1bdb6ee 100644
--- a/libre/calibre-libre/libre.patch
+++ b/libre/calibre-libre/libre.patch
@@ -1,35 +1,26 @@
-diff --git a/resources/images.qrc b/resources/images.qrc
-index 4daf069..f7569d1 100644
---- a/resources/images.qrc
-+++ b/resources/images.qrc
-@@ -159,7 +159,6 @@
- <file>images/textures/grey_wash_wall.png</file>
- <file>images/mimetypes/djvu.png</file>
- <file>images/mimetypes/rtf.png</file>
--<file>images/mimetypes/cbr.png</file>
- <file>images/mimetypes/lrf.png</file>
- <file>images/mimetypes/jpeg.png</file>
- <file>images/mimetypes/pdf.png</file>
-@@ -181,7 +180,6 @@
- <file>images/mimetypes/txt.png</file>
- <file>images/mimetypes/snb.png</file>
+diff -Nur calibre-1.204.1.orig/resources/images.qrc calibre-1.204.1/resources/images.qrc
+--- calibre-1.204.1.orig/resources/images.qrc 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/resources/images.qrc 2014-08-03 19:38:32.047600280 -0300
+@@ -193,8 +193,6 @@
+ <file>images/mimetypes/svg.png</file>
<file>images/mimetypes/odt.png</file>
+ <file>images/mimetypes/epub.png</file>
+-<file>images/mimetypes/cbr.png</file>
-<file>images/mimetypes/rar.png</file>
- <file>images/mimetypes/azw2.png</file>
- <file>images/mimetypes/zip.png</file>
- <file>images/mimetypes/dir.png</file>
-@@ -212,4 +210,4 @@
- <file>images/devices/tablet.png</file>
- <file>images/devices/folder.png</file>
+ <file>images/mimetypes/tpz.png</file>
+ <file>images/mimetypes/djvu.png</file>
+ <file>images/mimetypes/computer.png</file>
+@@ -214,4 +212,4 @@
+ <file>images/mimetypes/html.png</file>
+ <file>images/mimetypes/lrx.png</file>
</qresource>
-</RCC>
\ No newline at end of file
+</RCC>
-diff --git a/resources/mime.types b/resources/mime.types
-index b7c33e9..055ea61 100644
---- a/resources/mime.types
-+++ b/resources/mime.types
-@@ -137,7 +137,6 @@ application/prs.cww cww
+diff -Nur calibre-1.204.1.orig/resources/mime.types calibre-1.204.1/resources/mime.types
+--- calibre-1.204.1.orig/resources/mime.types 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/resources/mime.types 2014-08-03 19:37:20.290255565 -0300
+@@ -137,7 +137,6 @@
application/prs.nprend
application/prs.plucker
application/qsig
@@ -37,7 +28,7 @@ index b7c33e9..055ea61 100644
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
@@ -45,7 +36,7 @@ index b7c33e9..055ea61 100644
application/x-redhat-package-manager rpm
application/x-sh sh
application/x-shar shar
-@@ -1372,7 +1370,6 @@ application/x-mobipocket-subscription pobi
+@@ -1372,7 +1370,6 @@
application/x-kindle-application azw2
application/x-mobi8-ebook azw3
application/x-cbz cbz
@@ -53,11 +44,10 @@ index b7c33e9..055ea61 100644
application/x-cb7 cb7
application/x-koboreader-ebook kobo
image/wmf wmf
-diff --git a/session.vim b/session.vim
-index 67502c2..b7f24d3 100644
---- a/session.vim
-+++ b/session.vim
-@@ -11,7 +11,6 @@ let g:syntastic_cpp_include_dirs = [
+diff -Nur calibre-1.204.1.orig/session.vim calibre-1.204.1/session.vim
+--- calibre-1.204.1.orig/session.vim 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/session.vim 2014-08-03 19:37:20.290255565 -0300
+@@ -11,7 +11,6 @@
\'/usr/include/freetype2',
\'/usr/include/fontconfig',
\'src/qtcurve/common', 'src/qtcurve',
@@ -65,11 +55,10 @@ index 67502c2..b7f24d3 100644
\'src/qt-harfbuzz/src',
\'/usr/include/ImageMagick',
\]
-diff --git a/setup/extensions.py b/setup/extensions.py
-index b9d92f6..2ac13a9 100644
---- a/setup/extensions.py
-+++ b/setup/extensions.py
-@@ -224,24 +224,6 @@ extensions = [
+diff -Nur calibre-1.204.1.orig/setup/extensions.py calibre-1.204.1/setup/extensions.py
+--- calibre-1.204.1.orig/setup/extensions.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/setup/extensions.py 2014-08-03 19:37:20.290255565 -0300
+@@ -229,24 +229,6 @@
sip_files=['calibre/ebooks/pdf/render/qt_hack.sip']
),
@@ -94,11 +83,10 @@ index b9d92f6..2ac13a9 100644
]
-diff --git a/setup/installer/windows/freeze.py b/setup/installer/windows/freeze.py
-index 08aa91f..7ee523b 100644
---- a/setup/installer/windows/freeze.py
-+++ b/setup/installer/windows/freeze.py
-@@ -635,7 +635,7 @@ class Win32Freeze(Command, WixMixIn):
+diff -Nur calibre-1.204.1.orig/setup/installer/windows/freeze.py calibre-1.204.1/setup/installer/windows/freeze.py
+--- calibre-1.204.1.orig/setup/installer/windows/freeze.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/setup/installer/windows/freeze.py 2014-08-03 19:37:20.290255565 -0300
+@@ -672,7 +672,7 @@
# Because of https://github.com/fancycode/MemoryModule/issues/4
# any extensions that use C++ exceptions must be loaded
# from files
@@ -107,24 +95,22 @@ index 08aa91f..7ee523b 100644
'progress_indicator.pyd', 'hunspell.pyd',
# As per this https://bugs.launchpad.net/bugs/1087816
# on some systems magick.pyd fails to load from memory
-diff --git a/setup/resources.py b/setup/resources.py
-index 1bcc288..7d6c72f 100644
---- a/setup/resources.py
-+++ b/setup/resources.py
-@@ -282,7 +282,7 @@ class Resources(Command): # {{{
+diff -Nur calibre-1.204.1.orig/setup/resources.py calibre-1.204.1/setup/resources.py
+--- calibre-1.204.1.orig/setup/resources.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/setup/resources.py 2014-08-03 19:37:20.290255565 -0300
+@@ -280,7 +280,7 @@
log = Log()
- #log.outputs = []
+ # log.outputs = []
for inf in supported_input_formats():
- if inf in ('zip', 'rar', 'oebzip'):
+ if inf in ('zip', 'oebzip'):
continue
for ouf in available_output_formats():
of = ouf if ouf == 'oeb' else 'dummy.'+ouf
-diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py
-index fcb627c..3289865 100644
---- a/src/calibre/__init__.py
-+++ b/src/calibre/__init__.py
-@@ -271,10 +271,7 @@ def extract(path, dir):
+diff -Nur calibre-1.204.1.orig/src/calibre/__init__.py calibre-1.204.1/src/calibre/__init__.py
+--- calibre-1.204.1.orig/src/calibre/__init__.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/__init__.py 2014-08-03 19:37:20.290255565 -0300
+@@ -271,10 +271,7 @@
# First use the file header to identify its type
with open(path, 'rb') as f:
id_ = f.read(3)
@@ -136,7 +122,7 @@ index fcb627c..3289865 100644
from calibre.libunzip import extract as zipextract
extractor = zipextract
if extractor is None:
-@@ -283,9 +280,6 @@ def extract(path, dir):
+@@ -283,9 +280,6 @@
if ext in ['zip', 'cbz', 'epub', 'oebzip']:
from calibre.libunzip import extract as zipextract
extractor = zipextract
@@ -146,23 +132,21 @@ index fcb627c..3289865 100644
if extractor is None:
raise Exception('Unknown archive type')
extractor(path, dir)
-diff --git a/src/calibre/constants.py b/src/calibre/constants.py
-index a250521..5d891b8 100644
---- a/src/calibre/constants.py
-+++ b/src/calibre/constants.py
-@@ -137,7 +137,6 @@ class Plugins(collections.Mapping):
- 'speedup',
+diff -Nur calibre-1.204.1.orig/src/calibre/constants.py calibre-1.204.1/src/calibre/constants.py
+--- calibre-1.204.1.orig/src/calibre/constants.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/constants.py 2014-08-03 19:37:20.290255565 -0300
+@@ -138,7 +138,6 @@
+ 'html',
'freetype',
'woff',
- 'unrar',
'qt_hack',
'_regex',
'hunspell',
-diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py
-index a74951c..a91abb6 100644
---- a/src/calibre/customize/builtins.py
-+++ b/src/calibre/customize/builtins.py
-@@ -127,7 +127,7 @@ plugins += [HTML2ZIP, PML2PMLZ, TXT2TXTZ, ArchiveExtract,]
+diff -Nur calibre-1.204.1.orig/src/calibre/customize/builtins.py calibre-1.204.1/src/calibre/customize/builtins.py
+--- calibre-1.204.1.orig/src/calibre/customize/builtins.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/customize/builtins.py 2014-08-03 19:37:20.290255565 -0300
+@@ -127,7 +127,7 @@
class ComicMetadataReader(MetadataReaderPlugin):
name = 'Read comic metadata'
@@ -171,7 +155,7 @@ index a74951c..a91abb6 100644
description = _('Extract cover from comic files')
def customization_help(self, gui=False):
-@@ -138,14 +138,8 @@ class ComicMetadataReader(MetadataReaderPlugin):
+@@ -138,14 +138,8 @@
pos = stream.tell()
id_ = stream.read(3)
stream.seek(pos)
@@ -187,7 +171,7 @@ index a74951c..a91abb6 100644
from calibre.libunzip import extract_member
extract_first = functools.partial(extract_member,
sort_alphabetically=True)
-@@ -153,7 +147,7 @@ class ComicMetadataReader(MetadataReaderPlugin):
+@@ -153,7 +147,7 @@
ret = extract_first(stream)
mi = MetaInformation(None, None)
stream.seek(0)
@@ -196,7 +180,7 @@ index a74951c..a91abb6 100644
series_index = self.site_customization
if series_index not in {'volume', 'issue'}:
series_index = 'volume'
-@@ -336,16 +330,6 @@ class PMLMetadataReader(MetadataReaderPlugin):
+@@ -336,16 +330,6 @@
from calibre.ebooks.metadata.pml import get_metadata
return get_metadata(stream)
@@ -213,11 +197,10 @@ index a74951c..a91abb6 100644
class RBMetadataReader(MetadataReaderPlugin):
name = 'Read RB metadata'
-diff --git a/src/calibre/customize/ui.py b/src/calibre/customize/ui.py
-index 2e1cc23..c9a3701 100644
---- a/src/calibre/customize/ui.py
-+++ b/src/calibre/customize/ui.py
-@@ -436,7 +436,7 @@ def available_input_formats():
+diff -Nur calibre-1.204.1.orig/src/calibre/customize/ui.py calibre-1.204.1/src/calibre/customize/ui.py
+--- calibre-1.204.1.orig/src/calibre/customize/ui.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/customize/ui.py 2014-08-03 19:37:20.290255565 -0300
+@@ -440,7 +440,7 @@
if not is_disabled(plugin):
for format in plugin.file_types:
formats.add(format)
@@ -226,11 +209,10 @@ index 2e1cc23..c9a3701 100644
return formats
-diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py
-index aca5e86..1c2064f 100644
---- a/src/calibre/devices/kobo/driver.py
-+++ b/src/calibre/devices/kobo/driver.py
-@@ -77,7 +77,7 @@ class KOBO(USBMS):
+diff -Nur calibre-1.204.1.orig/src/calibre/devices/kobo/driver.py calibre-1.204.1/src/calibre/devices/kobo/driver.py
+--- calibre-1.204.1.orig/src/calibre/devices/kobo/driver.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/devices/kobo/driver.py 2014-08-03 19:37:20.290255565 -0300
+@@ -77,7 +77,7 @@
book_class = Book
# Ordered list of supported formats
@@ -239,11 +221,10 @@ index aca5e86..1c2064f 100644
CAN_SET_METADATA = ['collections']
VENDOR_ID = [0x2237]
-diff --git a/src/calibre/devices/mtp/filesystem_cache.py b/src/calibre/devices/mtp/filesystem_cache.py
-index 3acb026..f3626ab 100644
---- a/src/calibre/devices/mtp/filesystem_cache.py
-+++ b/src/calibre/devices/mtp/filesystem_cache.py
-@@ -18,7 +18,7 @@ from calibre.utils.date import local_tz, as_utc
+diff -Nur calibre-1.204.1.orig/src/calibre/devices/mtp/filesystem_cache.py calibre-1.204.1/src/calibre/devices/mtp/filesystem_cache.py
+--- calibre-1.204.1.orig/src/calibre/devices/mtp/filesystem_cache.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/devices/mtp/filesystem_cache.py 2014-08-03 19:37:20.290255565 -0300
+@@ -18,7 +18,7 @@
from calibre.utils.icu import sort_key, lower
from calibre.ebooks import BOOK_EXTENSIONS
@@ -252,11 +233,10 @@ index 3acb026..f3626ab 100644
class FileOrFolder(object):
-diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py
-index 3d01f84..8818bcb 100644
---- a/src/calibre/ebooks/__init__.py
-+++ b/src/calibre/ebooks/__init__.py
-@@ -26,9 +26,9 @@ class DRMError(ValueError):
+diff -Nur calibre-1.204.1.orig/src/calibre/ebooks/__init__.py calibre-1.204.1/src/calibre/ebooks/__init__.py
+--- calibre-1.204.1.orig/src/calibre/ebooks/__init__.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/ebooks/__init__.py 2014-08-03 19:37:20.290255565 -0300
+@@ -26,9 +26,9 @@
class ParserError(ValueError):
pass
@@ -267,12 +247,11 @@ index 3d01f84..8818bcb 100644
+ 'epub', 'fb2', 'djv', 'djvu', 'lrx', 'cbz', 'cbc', 'oebzip',
'rb', 'imp', 'odt', 'chm', 'tpz', 'azw1', 'pml', 'pmlz', 'mbp', 'tan', 'snb',
'xps', 'oxps', 'azw4', 'book', 'zbf', 'pobi', 'docx', 'docm', 'md',
- 'textile', 'markdown', 'ibook', 'iba', 'azw3', 'ps']
-diff --git a/src/calibre/ebooks/conversion/plugins/comic_input.py b/src/calibre/ebooks/conversion/plugins/comic_input.py
-index e66ca49..3caa2db 100644
---- a/src/calibre/ebooks/conversion/plugins/comic_input.py
-+++ b/src/calibre/ebooks/conversion/plugins/comic_input.py
-@@ -17,8 +17,8 @@ class ComicInput(InputFormatPlugin):
+ 'textile', 'markdown', 'ibook', 'ibooks', 'iba', 'azw3', 'ps', 'kepub']
+diff -Nur calibre-1.204.1.orig/src/calibre/ebooks/conversion/plugins/comic_input.py calibre-1.204.1/src/calibre/ebooks/conversion/plugins/comic_input.py
+--- calibre-1.204.1.orig/src/calibre/ebooks/conversion/plugins/comic_input.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/ebooks/conversion/plugins/comic_input.py 2014-08-03 19:37:20.290255565 -0300
+@@ -17,8 +17,8 @@
name = 'Comic Input'
author = 'Kovid Goyal'
@@ -283,11 +262,10 @@ index e66ca49..3caa2db 100644
is_image_collection = True
core_usage = -1
-diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py
-index cb49801..689c5aa 100644
---- a/src/calibre/ebooks/conversion/plumber.py
-+++ b/src/calibre/ebooks/conversion/plumber.py
-@@ -42,7 +42,7 @@ various stages of conversion. The stages are:
+diff -Nur calibre-1.204.1.orig/src/calibre/ebooks/conversion/plumber.py calibre-1.204.1/src/calibre/ebooks/conversion/plumber.py
+--- calibre-1.204.1.orig/src/calibre/ebooks/conversion/plumber.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/ebooks/conversion/plumber.py 2014-08-03 19:37:20.290255565 -0300
+@@ -42,7 +42,7 @@
def supported_input_formats():
fmts = available_input_formats()
@@ -296,7 +274,7 @@ index cb49801..689c5aa 100644
fmts.add(x)
return fmts
-@@ -60,7 +60,7 @@ class CompositeProgressReporter(object):
+@@ -60,7 +60,7 @@
(self.global_max - self.global_min)
self.global_reporter(global_frac, msg)
@@ -305,11 +283,10 @@ index cb49801..689c5aa 100644
class Plumber(object):
'''
-diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py
-index 7b8ecd2..f5c31ac 100644
---- a/src/calibre/ebooks/metadata/archive.py
-+++ b/src/calibre/ebooks/metadata/archive.py
-@@ -27,8 +27,6 @@ def archive_type(stream):
+diff -Nur calibre-1.204.1.orig/src/calibre/ebooks/metadata/archive.py calibre-1.204.1/src/calibre/ebooks/metadata/archive.py
+--- calibre-1.204.1.orig/src/calibre/ebooks/metadata/archive.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/ebooks/metadata/archive.py 2014-08-03 19:37:20.290255565 -0300
+@@ -27,8 +27,6 @@
ans = None
if id_ == stringFileHeader:
ans = 'zip'
@@ -318,7 +295,7 @@ index 7b8ecd2..f5c31ac 100644
try:
stream.seek(pos)
except:
-@@ -40,29 +38,20 @@ class ArchiveExtract(FileTypePlugin):
+@@ -40,29 +38,20 @@
name = 'Archive Extract'
author = 'Kovid Goyal'
description = _('Extract common e-book formats from archives '
@@ -354,7 +331,7 @@ index 7b8ecd2..f5c31ac 100644
of = self.temporary_file('_archive_extract'+ext)
with open(archive, 'rb') as f:
of.write(f.read())
-@@ -78,12 +67,7 @@ class ArchiveExtract(FileTypePlugin):
+@@ -78,12 +67,7 @@
of = self.temporary_file('_archive_extract.'+ext)
with closing(of):
@@ -368,7 +345,7 @@ index 7b8ecd2..f5c31ac 100644
return of.name
def get_comic_book_info(d, mi, series_index='volume'):
-@@ -141,10 +125,6 @@ def get_comic_metadata(stream, stream_type, series_index='volume'):
+@@ -141,10 +125,6 @@
from calibre.utils.zipfile import ZipFile
zf = ZipFile(stream)
comment = zf.comment
@@ -379,11 +356,10 @@ index 7b8ecd2..f5c31ac 100644
if comment:
import json
-diff --git a/src/calibre/ebooks/oeb/iterator/book.py b/src/calibre/ebooks/oeb/iterator/book.py
-index 8868e7c..4662f67 100644
---- a/src/calibre/ebooks/oeb/iterator/book.py
-+++ b/src/calibre/ebooks/oeb/iterator/book.py
-@@ -127,7 +127,7 @@ class EbookIterator(BookmarksMixin):
+diff -Nur calibre-1.204.1.orig/src/calibre/ebooks/oeb/iterator/book.py calibre-1.204.1/src/calibre/ebooks/oeb/iterator/book.py
+--- calibre-1.204.1.orig/src/calibre/ebooks/oeb/iterator/book.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/ebooks/oeb/iterator/book.py 2014-08-03 19:37:20.290255565 -0300
+@@ -126,7 +126,7 @@
self.spine = []
Spiny = partial(SpineItem, read_anchor_map=read_anchor_map,
run_char_count=run_char_count, from_epub=self.book_format == 'EPUB')
@@ -392,11 +368,10 @@ index 8868e7c..4662f67 100644
for i in ordered:
spath = i.path
mt = None
-diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py
-index e419685..ee83d7b 100644
---- a/src/calibre/gui2/__init__.py
-+++ b/src/calibre/gui2/__init__.py
-@@ -488,7 +488,6 @@ class FileIconProvider(QFileIconProvider):
+diff -Nur calibre-1.204.1.orig/src/calibre/gui2/__init__.py calibre-1.204.1/src/calibre/gui2/__init__.py
+--- calibre-1.204.1.orig/src/calibre/gui2/__init__.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/gui2/__init__.py 2014-08-03 19:37:20.290255565 -0300
+@@ -497,7 +497,6 @@
'png' : 'png',
'bmp' : 'bmp',
'cbz' : 'cbz',
@@ -404,7 +379,7 @@ index e419685..ee83d7b 100644
'svg' : 'svg',
'html' : 'html',
'htmlz' : 'html',
-@@ -500,7 +499,6 @@ class FileIconProvider(QFileIconProvider):
+@@ -509,7 +508,6 @@
'lrx' : 'lrx',
'pdf' : 'pdf',
'pdr' : 'zero',
@@ -412,11 +387,10 @@ index e419685..ee83d7b 100644
'zip' : 'zip',
'txt' : 'txt',
'text' : 'txt',
-diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py
-index 3e3c48b..a605ff5 100644
---- a/src/calibre/gui2/actions/add.py
-+++ b/src/calibre/gui2/actions/add.py
-@@ -38,8 +38,8 @@ def get_filters():
+diff -Nur calibre-1.204.1.orig/src/calibre/gui2/actions/add.py calibre-1.204.1/src/calibre/gui2/actions/add.py
+--- calibre-1.204.1.orig/src/calibre/gui2/actions/add.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/gui2/actions/add.py 2014-08-03 19:37:20.293588940 -0300
+@@ -39,8 +39,8 @@
(_('Text books'), ['txt', 'text', 'rtf']),
(_('PDF Books'), ['pdf', 'azw4']),
(_('SNB Books'), ['snb']),
@@ -427,7 +401,7 @@ index 3e3c48b..a605ff5 100644
(_('Wordprocessor files'), ['odt', 'doc', 'docx']),
]
-@@ -66,7 +66,7 @@ class AddAction(InterfaceAction):
+@@ -67,7 +67,7 @@
'sub directories (Multiple books per directory, assumes every '
'ebook file is a different book)')).triggered.connect(
self.add_recursive_multiple)
@@ -436,7 +410,7 @@ index 3e3c48b..a605ff5 100644
self.create_menu_action(arm, 'recursive-single-archive', _(
'One book per directory in the archive')).triggered.connect(partial(self.add_archive, True))
self.create_menu_action(arm, 'recursive-multiple-archive', _(
-@@ -144,7 +144,7 @@ class AddAction(InterfaceAction):
+@@ -145,7 +145,7 @@
def add_archive(self, single):
paths = choose_files(
self.gui, 'recursive-archive-add', _('Choose archive file'),
@@ -445,11 +419,10 @@ index 3e3c48b..a605ff5 100644
if paths:
self.do_add_recursive(paths[0], single)
-diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py
-index d849846..50aa6d9 100644
---- a/src/calibre/gui2/add.py
-+++ b/src/calibre/gui2/add.py
-@@ -84,11 +84,8 @@ class RecursiveFind(QThread): # {{{
+diff -Nur calibre-1.204.1.orig/src/calibre/gui2/add.py calibre-1.204.1/src/calibre/gui2/add.py
+--- calibre-1.204.1.orig/src/calibre/gui2/add.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/gui2/add.py 2014-08-03 19:37:20.293588940 -0300
+@@ -84,11 +84,8 @@
prints('Corrupt ZIP file, trying to use local headers')
from calibre.utils.localunzip import extractall
extractall(self.path, self.tdir)
@@ -462,7 +435,7 @@ index d849846..50aa6d9 100644
def run(self):
if self.tdir is not None:
-@@ -292,7 +289,7 @@ class Adder(QObject): # {{{
+@@ -292,7 +289,7 @@
self.pd.canceled_signal.connect(self.canceled)
def add_recursive(self, root, single=True):
@@ -471,11 +444,10 @@ index d849846..50aa6d9 100644
self.path = tdir = PersistentTemporaryDirectory('_arcv_')
else:
self.path = root
-diff --git a/src/calibre/library/server/opds.py b/src/calibre/library/server/opds.py
-index 5e9ca44..f5d230d 100644
---- a/src/calibre/library/server/opds.py
-+++ b/src/calibre/library/server/opds.py
-@@ -29,7 +29,7 @@ BASE_HREFS = {
+diff -Nur calibre-1.204.1.orig/src/calibre/library/server/opds.py calibre-1.204.1/src/calibre/library/server/opds.py
+--- calibre-1.204.1.orig/src/calibre/library/server/opds.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/library/server/opds.py 2014-08-03 19:37:20.293588940 -0300
+@@ -29,7 +29,7 @@
1 : '/opds',
}
@@ -484,11 +456,10 @@ index 5e9ca44..f5d230d 100644
def url_for(name, version, **kwargs):
if not name.endswith('_'):
-diff --git a/src/calibre/linux.py b/src/calibre/linux.py
-index c746606..d6b2c6c 100644
---- a/src/calibre/linux.py
-+++ b/src/calibre/linux.py
-@@ -314,7 +314,7 @@ class ZshCompleter(object): # {{{
+diff -Nur calibre-1.204.1.orig/src/calibre/linux.py calibre-1.204.1/src/calibre/linux.py
+--- calibre-1.204.1.orig/src/calibre/linux.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/linux.py 2014-08-03 19:37:20.293588940 -0300
+@@ -316,7 +316,7 @@
):
for fmt in fmts:
is_input = group_title == input_group
@@ -497,11 +468,10 @@ index c746606..d6b2c6c 100644
continue
p = (get_parser(input_fmt=fmt) if is_input
else get_parser(output_fmt=fmt))
-diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
-index fd9a36d..130d08d 100644
---- a/src/calibre/test_build.py
-+++ b/src/calibre/test_build.py
-@@ -102,11 +102,6 @@ def test_imaging():
+diff -Nur calibre-1.204.1.orig/src/calibre/test_build.py calibre-1.204.1/src/calibre/test_build.py
+--- calibre-1.204.1.orig/src/calibre/test_build.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/test_build.py 2014-08-03 19:37:20.293588940 -0300
+@@ -139,11 +139,6 @@
raise RuntimeError('PIL choked!')
print ('PIL OK!')
@@ -513,41 +483,18 @@ index fd9a36d..130d08d 100644
def test_ssl():
import ssl
ssl
-@@ -146,7 +141,6 @@ def test():
- test_ssl()
+@@ -217,7 +212,6 @@
test_sqlite()
+ test_apsw()
test_imaging()
- test_unrar()
test_icu()
test_woff()
test_qt()
-diff --git a/translations/calibre/main.pot b/translations/calibre/main.pot
-index 1775b71..65cf8c4 100644
---- a/translations/calibre/main.pot
-+++ b/translations/calibre/main.pot
-@@ -3870,7 +3870,7 @@ msgid "Set book ID"
- msgstr ""
-
- #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:42
--msgid "Extract common e-book formats from archives (zip/rar) files. Also try to autodetect if they are actually cbz/cbr files."
-+msgid "Extract common e-book formats from archives (zip) files. Also try to autodetect if they are actually cbz files."
- msgstr ""
-
- #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:644
-@@ -10866,7 +10866,7 @@ msgid "You can also customise the plugin locations using <b>Preferences -> Custo
- msgstr ""
-
- #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33
--msgid "Set defaults for conversion of comics (CBR/CBZ files)"
-+msgid "Set defaults for conversion of comics (CBZ files)"
- msgstr ""
-
- #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48
-diff --git a/src/calibre/utils/search_query_parser.py b/src/calibre/utils/search_query_parser.py
-index d395057..4804b28 100644
---- a/src/calibre/utils/search_query_parser.py
-+++ b/src/calibre/utils/search_query_parser.py
-@@ -445,16 +445,16 @@ class Tester(SearchQueryParser):
+diff -Nur calibre-1.204.1.orig/src/calibre/utils/search_query_parser.py calibre-1.204.1/src/calibre/utils/search_query_parser.py
+--- calibre-1.204.1.orig/src/calibre/utils/search_query_parser.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/utils/search_query_parser.py 2014-08-03 19:37:20.296922310 -0300
+@@ -445,16 +445,16 @@
u'Tor Books',
u'lrf'],
8: [u'Stalky and Co.', u'Rudyard Kipling', u'manybooks.net', u'lrf'],
@@ -569,7 +516,7 @@ index d395057..4804b28 100644
16: [u'Quicksilver', u'Neal Stephenson', None, u'lrf,zip'],
17: [u'The Comedies of William Shakespeare',
u'William Shakespeare',
-@@ -469,15 +469,15 @@ class Tester(SearchQueryParser):
+@@ -469,15 +469,15 @@
None,
u'lrf'],
20: [u'An Ideal Husband', u'Oscar Wilde', u'manybooks.net', u'lrf'],
@@ -594,7 +541,7 @@ index d395057..4804b28 100644
30: [u'Genghis Khan and The Making of the Modern World',
u'Jack Weatherford Orc',
u'Three Rivers Press',
-@@ -488,9 +488,9 @@ class Tester(SearchQueryParser):
+@@ -488,9 +488,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'],
@@ -606,7 +553,7 @@ index d395057..4804b28 100644
37: [u'Masterman Ready', u'Marryat, Captain Frederick', None, u'lrf'],
38: [u'With the Lightnings',
u'David Drake',
-@@ -503,16 +503,16 @@ class Tester(SearchQueryParser):
+@@ -503,16 +503,16 @@
40: [u'The Far Side of The Stars',
u'David Drake',
u'Baen Publishing Enterprises',
@@ -627,7 +574,7 @@ index d395057..4804b28 100644
44: [u'Harry Potter and the Order of the Phoenix',
u'J. K. Rowling',
None,
-@@ -521,12 +521,12 @@ class Tester(SearchQueryParser):
+@@ -521,12 +521,12 @@
46: [u'The Stars at War II',
u'Steve White',
u'Baen Publishing Enterprises',
@@ -643,7 +590,7 @@ index d395057..4804b28 100644
49: [u'Harry Potter and the Prisoner of Azkaban',
u'J. K. Rowling',
None,
-@@ -539,20 +539,20 @@ class Tester(SearchQueryParser):
+@@ -539,20 +539,20 @@
u'J.K. Rowling',
None,
u'lit,lrf,pdf'],
@@ -669,7 +616,7 @@ index d395057..4804b28 100644
89: [u'Master and commander',
u"Patrick O'Brian",
u'Fontana,\n1971',
-@@ -560,7 +560,7 @@ class Tester(SearchQueryParser):
+@@ -560,7 +560,7 @@
91: [u'A Companion to Wolves',
u'Sarah Monette,Elizabeth Beär',
None,
@@ -678,7 +625,7 @@ index d395057..4804b28 100644
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',
-@@ -584,7 +584,7 @@ class Tester(SearchQueryParser):
+@@ -584,7 +584,7 @@
144: [u'Atonement',
u'Ian McEwan',
u'New York : Nan A. Talese/Doubleday, 2002.',
@@ -687,7 +634,7 @@ index d395057..4804b28 100644
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',
-@@ -637,7 +637,7 @@ class Tester(SearchQueryParser):
+@@ -637,7 +637,7 @@
253: [u"Hunter's Run",
u'George R. R. Martin,Gardner Dozois,Daniel Abraham',
u'Eos',
@@ -696,7 +643,7 @@ index d395057..4804b28 100644
257: [u'Knife of Dreams', u'Robert Jordan', None, u'lit,lrf'],
258: [u'Saturday',
u'Ian McEwan',
-@@ -657,7 +657,7 @@ class Tester(SearchQueryParser):
+@@ -657,7 +657,7 @@
u'New York : Random House, 2005.',
u'lit,lrf'],
269: [u'Reap the Whirlwind', u'David Mack', u'Star Trek', u'lit,lrf'],
@@ -705,7 +652,7 @@ index d395057..4804b28 100644
273: [u'The Thousandfold Thought',
u'R. Scott Bakker',
u'Overlook TP',
-@@ -665,17 +665,17 @@ class Tester(SearchQueryParser):
+@@ -665,17 +665,17 @@
276: [u'Elantris',
u'Brandon Sanderson',
u'New York : Tor, 2005.',
@@ -727,7 +674,7 @@ index d395057..4804b28 100644
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'],
-@@ -705,15 +705,15 @@ class Tester(SearchQueryParser):
+@@ -705,15 +705,15 @@
u'Aspect',
u'lit,lrf'],
356: [u'The Naked God', u'Peter F. Hamilton', u'Aspect', u'lit,lrf'],
@@ -746,11 +693,10 @@ index d395057..4804b28 100644
}
tests = {
-diff --git a/src/calibre/web/feeds/feedparser.py b/src/calibre/web/feeds/feedparser.py
-index 16085cf..420efaa 100755
---- a/src/calibre/web/feeds/feedparser.py
-+++ b/src/calibre/web/feeds/feedparser.py
-@@ -2081,7 +2081,7 @@ class _MicroformatsParser:
+diff -Nur calibre-1.204.1.orig/src/calibre/web/feeds/feedparser.py calibre-1.204.1/src/calibre/web/feeds/feedparser.py
+--- calibre-1.204.1.orig/src/calibre/web/feeds/feedparser.py 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/src/calibre/web/feeds/feedparser.py 2014-08-03 19:37:20.296922310 -0300
+@@ -2081,7 +2081,7 @@
EMAIL = 5
known_xfn_relationships = set(['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'])
@@ -759,3 +705,24 @@ index 16085cf..420efaa 100755
def __init__(self, data, baseuri, encoding):
self.document = BeautifulSoup.BeautifulSoup(data)
+diff -Nur calibre-1.204.1.orig/translations/calibre/main.pot calibre-1.204.1/translations/calibre/main.pot
+--- calibre-1.204.1.orig/translations/calibre/main.pot 1989-12-31 22:00:00.000000000 -0200
++++ calibre-1.204.1/translations/calibre/main.pot 2014-08-03 19:37:20.296922310 -0300
+@@ -3906,7 +3906,7 @@
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/archive.py:42
+-msgid "Extract common e-book formats from archives (zip/rar) files. Also try to autodetect if they are actually cbz/cbr files."
++msgid "Extract common e-book formats from archives (zip) files. Also try to autodetect if they are actually cbz files."
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/book/base.py:644
+@@ -11087,7 +11087,7 @@
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33
+-msgid "Set defaults for conversion of comics (CBR/CBZ files)"
++msgid "Set defaults for conversion of comics (CBZ files)"
+ msgstr ""
+
+ #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48