[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