mirror of
https://github.com/void-linux/void-packages.git
synced 2025-04-16 14:17:02 +02:00
calibre: rebuild against qt5-5.13.2
- backport patch to fix ebook-viewer
This commit is contained in:
parent
6fa6fd66fd
commit
f3123a55ab
2 changed files with 174 additions and 3 deletions
166
srcpkgs/calibre/patches/calibre-qt-5.13.2.patch
Normal file
166
srcpkgs/calibre/patches/calibre-qt-5.13.2.patch
Normal file
|
@ -0,0 +1,166 @@
|
|||
From 2da7dd741fcebd3af89f77bc3fc4f52fe90940de Mon Sep 17 00:00:00 2001
|
||||
From: Kovid Goyal <kovid@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
|
||||
--- src/pyj/ajax.pyj
|
||||
+++ 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@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
|
||||
--- src/pyj/ajax.pyj
|
||||
+++ 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@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
|
||||
--- src/pyj/ajax.pyj
|
||||
+++ 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
|
||||
--- src/pyj/viewer-main.pyj
|
||||
+++ 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@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
|
||||
--- src/pyj/ajax.pyj
|
||||
+++ 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
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
# Template file for 'calibre'
|
||||
pkgname=calibre
|
||||
version=4.2.0
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=python2-module
|
||||
pycompile_dirs="/usr/lib/calibre/"
|
||||
make_build_args="gui"
|
||||
hostmakedepends="pkg-config python-BeautifulSoup4 python-Pillow python-PyQt5-svg
|
||||
python-PyQt5-webengine python-apsw python-css-parser python-dateutil
|
||||
python-devel python-html5-parser python-msgpack python-regex qt5-qmake
|
||||
xdg-utils"
|
||||
xdg-utils rapydscript-ng"
|
||||
makedepends="glib-devel libchmlib-devel libinput-devel libmagick-devel libmtp-devel
|
||||
libpodofo-devel libwmf-devel libxkbcommon-devel python-PyQt5-devel
|
||||
qt5-devel sqlite-devel tslib-devel hunspell-devel"
|
||||
|
@ -38,6 +37,12 @@ do_configure() {
|
|||
-e "s/^Name=calibre/Name=Calibre/g"
|
||||
}
|
||||
|
||||
do_build() {
|
||||
python2 setup.py build
|
||||
python2 setup.py gui
|
||||
python2 setup.py rapydscript
|
||||
}
|
||||
|
||||
do_install() {
|
||||
vmkdir usr/share/zsh/site-functions
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue