[arch-commits] Commit in calibre/repos/community-x86_64 (3 files)
Eli Schwartz
eschwartz at archlinux.org
Sun Nov 3 03:40:09 UTC 2019
Date: Sunday, November 3, 2019 @ 03:40:09
Author: eschwartz
Revision: 522418
archrelease: copy trunk to community-x86_64
Added:
calibre/repos/community-x86_64/PKGBUILD
(from rev 522417, calibre/trunk/PKGBUILD)
calibre/repos/community-x86_64/calibre-qt-5.13.2.patch
(from rev 522417, calibre/trunk/calibre-qt-5.13.2.patch)
Deleted:
calibre/repos/community-x86_64/PKGBUILD
-------------------------+
PKGBUILD | 204 +++++++++++++++++++++++-----------------------
calibre-qt-5.13.2.patch | 166 +++++++++++++++++++++++++++++++++++++
2 files changed, 268 insertions(+), 102 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2019-11-03 03:39:49 UTC (rev 522417)
+++ PKGBUILD 2019-11-03 03:40:09 UTC (rev 522418)
@@ -1,102 +0,0 @@
-# Maintainer: Jelle van der Waa <jelle at vdwaa.nl>
-# Maintainer: Eli Schwartz <eschwartz at archlinux.org>
-# Contributor: Daniel Wallace <danielwallace at gtmanfred dot com>
-# Contributor: Giovanni Scafora <giovanni at archlinux.org>
-# Contributor: Petrov Roman <nwhisper at gmail.com>
-# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
-# Contributor: Larry Hajali <larryhaja at gmail.com>
-
-pkgname=calibre
-pkgver=4.2.0
-pkgrel=4
-pkgdesc="Ebook management application"
-arch=('x86_64')
-url="https://calibre-ebook.com/"
-license=('GPL3')
-_py_deps=('apsw' 'beautifulsoup4' 'cssselect' 'css-parser' 'dateutil' 'dbus' 'dnspython'
- 'feedparser' 'html2text' 'html5-parser' 'lxml' 'markdown' 'mechanize' 'msgpack'
- 'netifaces' 'unrardll' 'pillow' 'psutil' 'pygments' 'pyqt5' 'pyqtwebengine' 'regex')
-depends=('chmlib' 'hunspell' 'icu' 'jxrlib' 'libmtp' 'libusbx' 'libwmf' 'mathjax2' 'mtdev' 'optipng'
- 'podofo' "${_py_deps[@]/#/python2-}" 'qt5-svg' '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"
- calibre-qt-5.13.2.patch::"https://github.com/kovidgoyal/calibre/commit/6cccd18b.patch")
-sha256sums=('b1b626acdcc3b29ae96489e7424389161bd6529545f47c0d2b063b99131286d8'
- 'SKIP'
- 'e04ebcae81459b60c9b165ac494d7a5e2cb14a1da2af4b8ad890b0f4f6027fcd')
-b2sums=('a37baae9c77ae2535782c5ee2095a33874c394b7f6415f4aac2752330c6cac3972723e75b90d38955a67a5df90de4318b740ca357b7149f610245f1895482437'
- 'SKIP'
- '5fabab94ed39ef63daa87e3f42b87cc8631113b670eb9698566682d2719c3816e5b54a4c1b49e77a962c82a19c4cb49c81896318f8ce9a8cf37db8a138d4ee2c')
-validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal (New longer key) <kovid at kovidgoyal.net>
-
-prepare(){
- cd "${pkgname}-${pkgver}"
-
- # fix ebook-viewer with Qt 5.13.2
- patch -p1 -i ../calibre-qt-5.13.2.patch
-
- # Desktop integration (e.g. enforce arch defaults)
- # Use uppercase naming scheme, don't delete config files under fakeroot.
- 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
- rm ${pkgname}-portable.* mozilla-ca-certs.pem
-
- # use system mathjax
- rm -r mathjax
-}
-
-build() {
- cd "${pkgname}-${pkgver}"
-
- 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/mathjax2 --system-mathjax
- LANG='en_US.UTF-8' python2 setup.py rapydscript
-}
-
-check() {
- cd "${pkgname}-${pkgver}"
-
- # without xvfb-run this fails with much "Control socket failed to recv(), resetting"
- # ERROR: test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest)
- LANG='en_US.UTF-8' xvfb-run python2 setup.py test
-}
-
-package() {
- cd "${pkgname}-${pkgver}"
-
- # If this directory doesn't exist, zsh completion won't install.
- install -d "${pkgdir}/usr/share/zsh/site-functions"
-
- LANG='en_US.UTF-8' python2 setup.py install \
- --staging-root="${pkgdir}/usr" \
- --prefix=/usr
-
- 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
- _destdir="$(dirname "${_file#${pkgdir}}")"
- python2 -m compileall -d "${_destdir}" "${_file}"
- python2 -O -m compileall -d "${_destdir}" "${_file}"
- done < <(find "${pkgdir}"/usr/lib/ -name '*.py' -print0)
-}
Copied: calibre/repos/community-x86_64/PKGBUILD (from rev 522417, calibre/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2019-11-03 03:40:09 UTC (rev 522418)
@@ -0,0 +1,102 @@
+# Maintainer: Jelle van der Waa <jelle at vdwaa.nl>
+# Maintainer: Eli Schwartz <eschwartz at archlinux.org>
+# Contributor: Daniel Wallace <danielwallace at gtmanfred dot com>
+# Contributor: Giovanni Scafora <giovanni at archlinux.org>
+# Contributor: Petrov Roman <nwhisper at gmail.com>
+# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
+# Contributor: Larry Hajali <larryhaja at gmail.com>
+
+pkgname=calibre
+pkgver=4.2.0
+pkgrel=5
+pkgdesc="Ebook management application"
+arch=('x86_64')
+url="https://calibre-ebook.com/"
+license=('GPL3')
+_py_deps=('apsw' 'beautifulsoup4' 'cssselect' 'css-parser' 'dateutil' 'dbus' 'dnspython'
+ 'feedparser' 'html2text' 'html5-parser' 'lxml' 'markdown' 'mechanize' 'msgpack'
+ 'netifaces' 'unrardll' 'pillow' 'psutil' 'pygments' 'pyqt5' 'pyqtwebengine' 'regex')
+depends=('chmlib' 'hunspell' 'icu' 'jxrlib' 'libmtp' 'libusbx' 'libwmf' 'mathjax2' 'mtdev' 'optipng'
+ 'podofo' "${_py_deps[@]/#/python2-}" 'qt5-svg' '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"
+ "calibre-qt-5.13.2.patch")
+sha256sums=('b1b626acdcc3b29ae96489e7424389161bd6529545f47c0d2b063b99131286d8'
+ 'SKIP'
+ 'c4e952ad1bb15cb0c8c36e34b6f056d4263b74f9322ab611de5a73dd0004f2be')
+b2sums=('a37baae9c77ae2535782c5ee2095a33874c394b7f6415f4aac2752330c6cac3972723e75b90d38955a67a5df90de4318b740ca357b7149f610245f1895482437'
+ 'SKIP'
+ '1778ba195a5088aa65d74ad22e255200f4d7304ee543077e15b08793cb6877c1e7bf45b9b63fb3beba9d6ad667c1d1ddb3218f9d539e252162fe9f33a5c17616')
+validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal (New longer key) <kovid at kovidgoyal.net>
+
+prepare(){
+ cd "${pkgname}-${pkgver}"
+
+ # fix ebook-viewer with Qt 5.13.2
+ patch -p1 -i ../calibre-qt-5.13.2.patch
+
+ # Desktop integration (e.g. enforce arch defaults)
+ # Use uppercase naming scheme, don't delete config files under fakeroot.
+ 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
+ rm ${pkgname}-portable.* mozilla-ca-certs.pem
+
+ # use system mathjax
+ rm -r mathjax
+}
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ 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/mathjax2 --system-mathjax
+ LANG='en_US.UTF-8' python2 setup.py rapydscript
+}
+
+check() {
+ cd "${pkgname}-${pkgver}"
+
+ # without xvfb-run this fails with much "Control socket failed to recv(), resetting"
+ # ERROR: test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest)
+ LANG='en_US.UTF-8' xvfb-run python2 setup.py test
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+
+ # If this directory doesn't exist, zsh completion won't install.
+ install -d "${pkgdir}/usr/share/zsh/site-functions"
+
+ LANG='en_US.UTF-8' python2 setup.py install \
+ --staging-root="${pkgdir}/usr" \
+ --prefix=/usr
+
+ 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
+ _destdir="$(dirname "${_file#${pkgdir}}")"
+ python2 -m compileall -d "${_destdir}" "${_file}"
+ python2 -O -m compileall -d "${_destdir}" "${_file}"
+ done < <(find "${pkgdir}"/usr/lib/ -name '*.py' -print0)
+}
Copied: calibre/repos/community-x86_64/calibre-qt-5.13.2.patch (from rev 522417, calibre/trunk/calibre-qt-5.13.2.patch)
===================================================================
--- calibre-qt-5.13.2.patch (rev 0)
+++ calibre-qt-5.13.2.patch 2019-11-03 03:40:09 UTC (rev 522418)
@@ -0,0 +1,166 @@
+From 2da7dd741fcebd3af89f77bc3fc4f52fe90940de Mon Sep 17 00:00:00 2001
+From: Kovid Goyal <kovid at kovidgoyal.net>
+Date: Sat, 2 Nov 2019 07:18:35 +0530
+Subject: [PATCH 1/4] Better error message on AJAX call failure
+
+(cherry picked from commit 8b7b9427bd71f48acf9dc766c976bb3f5ce5e357)
+---
+ src/pyj/ajax.pyj | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pyj/ajax.pyj b/src/pyj/ajax.pyj
+index 7a8c453e5e..3a43984903 100644
+--- a/src/pyj/ajax.pyj
++++ b/src/pyj/ajax.pyj
+@@ -81,7 +81,7 @@ def ajax(path, on_complete, on_progress=None, bypass_cache=True, method='GET', q
+ rtext = xhr.responseText or ''
+ except:
+ rtext = ''
+- xhr.error_html = str.format(_('Failed to communicate with "{}", with status: [{}] {}<br><br>{}'), xhr.request_path, xhr.status, xhr.statusText, rtext[:200])
++ xhr.error_html = str.format(_('Failed to communicate with "{}", with status: [{} ({})] {}<br><br>{}'), xhr.request_path, xhr.status, event, xhr.statusText, rtext[:200])
+
+ def progress_callback(ev):
+ if ev.lengthComputable:
+--
+2.23.0
+
+
+From fc63678168b5bbb8c48f1930535e1d2bfb90c13f Mon Sep 17 00:00:00 2001
+From: Kovid Goyal <kovid at kovidgoyal.net>
+Date: Sat, 2 Nov 2019 07:24:10 +0530
+Subject: [PATCH 2/4] Workaround for AJAX breakage on Qt 5.13.2
+
+Fixes #1850975 [qt5-webengine 5.13.2 breaks ebook-viewer](https://bugs.launchpad.net/calibre/+bug/1850975)
+
+(cherry picked from commit 6cccd18be81133ce57c885ecad9e012a16a3fe8b)
+---
+ src/pyj/ajax.pyj | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/pyj/ajax.pyj b/src/pyj/ajax.pyj
+index 3a43984903..5a038eaed5 100644
+--- a/src/pyj/ajax.pyj
++++ b/src/pyj/ajax.pyj
+@@ -102,6 +102,9 @@ def ajax(path, on_complete, on_progress=None, bypass_cache=True, method='GET', q
+ is_network_error = ev if end_type is 'error' else False
+ if xhr.status is not ok_code and end_type is 'load':
+ end_type = 'error'
++ if xhr.status is ok_code and end_type is 'error':
++ # this apparently happens on Qt 5.13.2
++ end_type = 'load'
+ if end_type is not 'load':
+ set_error(end_type, is_network_error)
+ on_complete(end_type, xhr, ev)
+--
+2.23.0
+
+
+From 71223eb8a2ace02473ada1568f123d2bd5af3891 Mon Sep 17 00:00:00 2001
+From: Kovid Goyal <kovid at kovidgoyal.net>
+Date: Sun, 3 Nov 2019 07:12:25 +0530
+Subject: [PATCH 3/4] Also reset headers/footers when resetting interface
+
+And work Qt 5.13.2 bug in more places
+
+(cherry picked from commit a179632356579a954eccf2d23112f061e8187a68)
+[Eli: disentangled from unrelated changes relying on commit 4e98478013c7e23a6333cb27cc09976667c77d1f]
+---
+ src/pyj/ajax.pyj | 10 +++++++---
+ src/pyj/viewer-main.pyj | 5 ++++-
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/src/pyj/ajax.pyj b/src/pyj/ajax.pyj
+index 5a038eaed5..9337c6ad62 100644
+--- a/src/pyj/ajax.pyj
++++ b/src/pyj/ajax.pyj
+@@ -47,6 +47,12 @@ def absolute_path(path):
+ return path
+
+
++def workaround_qt_bug(xhr, end_type, ok_code=200):
++ if end_type is 'error' and xhr.status is ok_code:
++ end_type = 'load'
++ return end_type
++
++
+ def ajax(path, on_complete, on_progress=None, bypass_cache=True, method='GET', query=None, timeout=None, ok_code=200, progress_totals_needed=True):
+ # Run an AJAX request. on_complete must be a function that accepts three
+ # arguments: end_type, xhr, ev where end_type is one of 'abort', 'error',
+@@ -102,9 +108,7 @@ def ajax(path, on_complete, on_progress=None, bypass_cache=True, method='GET', q
+ is_network_error = ev if end_type is 'error' else False
+ if xhr.status is not ok_code and end_type is 'load':
+ end_type = 'error'
+- if xhr.status is ok_code and end_type is 'error':
+- # this apparently happens on Qt 5.13.2
+- end_type = 'load'
++ end_type = workaround_qt_bug(xhr, end_type, ok_code)
+ if end_type is not 'load':
+ set_error(end_type, is_network_error)
+ on_complete(end_type, xhr, ev)
+diff --git a/src/pyj/viewer-main.pyj b/src/pyj/viewer-main.pyj
+index 87c9d3e9a5..d7047386d9 100644
+--- a/src/pyj/viewer-main.pyj
++++ b/src/pyj/viewer-main.pyj
+@@ -7,7 +7,7 @@ from elementmaker import E
+ from gettext import gettext as _, install
+
+ import initialize # noqa: unused-import
+-from ajax import ajax
++from ajax import ajax, workaround_qt_bug
+ from book_list.globals import set_session_data
+ from book_list.library_data import library_data
+ from book_list.theme import get_color
+@@ -34,6 +34,7 @@ view = None
+
+
+ def file_received(name, file_data, proceed, end_type, xhr, ev):
++ end_type = workaround_qt_bug(xhr, end_type)
+ if end_type is 'abort':
+ return
+ if end_type is not 'load':
+@@ -62,6 +63,7 @@ def get_file(book, name, proceed):
+ xhr.send()
+
+ def mathjax_file_received(name, proceed, end_type, xhr, ev):
++ end_type = workaround_qt_bug(xhr, end_type)
+ if end_type is 'abort':
+ return
+ if end_type is not 'load':
+@@ -139,6 +141,7 @@ def show_error(title, msg, details):
+
+ def manifest_received(key, initial_cfi, initial_toc_node, pathtoebook, end_type, xhr, ev):
+ nonlocal book
++ end_type = workaround_qt_bug(xhr, end_type)
+ if end_type is 'load':
+ book = new_book(key, {})
+ data = xhr.response
+--
+2.23.0
+
+
+From 461f2095d3a91cd1e81e3a853b3fc985c7ecbcd6 Mon Sep 17 00:00:00 2001
+From: Kovid Goyal <kovid at kovidgoyal.net>
+Date: Sun, 3 Nov 2019 07:16:17 +0530
+Subject: [PATCH 4/4] Only use Qt bug workaround in the viewer
+
+(cherry picked from commit c17411a39f9db0fe15455f6a0dd959ffe70087e5)
+---
+ src/pyj/ajax.pyj | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pyj/ajax.pyj b/src/pyj/ajax.pyj
+index 9337c6ad62..ec5c78cd1c 100644
+--- a/src/pyj/ajax.pyj
++++ b/src/pyj/ajax.pyj
+@@ -48,7 +48,7 @@ def absolute_path(path):
+
+
+ def workaround_qt_bug(xhr, end_type, ok_code=200):
+- if end_type is 'error' and xhr.status is ok_code:
++ if end_type is 'error' and xhr.status is ok_code and window.navigator.userAgent.indexOf('calibre-viewer') is 0:
+ end_type = 'load'
+ return end_type
+
+--
+2.23.0
+
More information about the arch-commits
mailing list