[arch-commits] Commit in calibre/trunk (PKGBUILD calibre-qt-5.13.2.patch)
Eli Schwartz
eschwartz at archlinux.org
Sun Nov 3 03:39:49 UTC 2019
Date: Sunday, November 3, 2019 @ 03:39:49
Author: eschwartz
Revision: 522417
upgpkg: calibre 4.2.0-5
more fixes for qt5-webengine update (FS#64357)
there are three more patches that are needed to finally fix the ebook-viewer
Added:
calibre/trunk/calibre-qt-5.13.2.patch
Modified:
calibre/trunk/PKGBUILD
-------------------------+
PKGBUILD | 8 +-
calibre-qt-5.13.2.patch | 166 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 170 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-11-03 01:27:16 UTC (rev 522416)
+++ PKGBUILD 2019-11-03 03:39:49 UTC (rev 522417)
@@ -8,7 +8,7 @@
pkgname=calibre
pkgver=4.2.0
-pkgrel=4
+pkgrel=5
pkgdesc="Ebook management application"
arch=('x86_64')
url="https://calibre-ebook.com/"
@@ -24,13 +24,13 @@
'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")
+ "calibre-qt-5.13.2.patch")
sha256sums=('b1b626acdcc3b29ae96489e7424389161bd6529545f47c0d2b063b99131286d8'
'SKIP'
- 'e04ebcae81459b60c9b165ac494d7a5e2cb14a1da2af4b8ad890b0f4f6027fcd')
+ 'c4e952ad1bb15cb0c8c36e34b6f056d4263b74f9322ab611de5a73dd0004f2be')
b2sums=('a37baae9c77ae2535782c5ee2095a33874c394b7f6415f4aac2752330c6cac3972723e75b90d38955a67a5df90de4318b740ca357b7149f610245f1895482437'
'SKIP'
- '5fabab94ed39ef63daa87e3f42b87cc8631113b670eb9698566682d2719c3816e5b54a4c1b49e77a962c82a19c4cb49c81896318f8ce9a8cf37db8a138d4ee2c')
+ '1778ba195a5088aa65d74ad22e255200f4d7304ee543077e15b08793cb6877c1e7bf45b9b63fb3beba9d6ad667c1d1ddb3218f9d539e252162fe9f33a5c17616')
validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal (New longer key) <kovid at kovidgoyal.net>
prepare(){
Added: calibre-qt-5.13.2.patch
===================================================================
--- calibre-qt-5.13.2.patch (rev 0)
+++ calibre-qt-5.13.2.patch 2019-11-03 03:39:49 UTC (rev 522417)
@@ -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