blob: 70e634774c6bc8804a544c9b4c0fc0fa98bf71ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
# Maintainer (Arch): Jelle van der Waa <jelle@vdwaa.nl>
# Maintainer (Arch): Eli Schwartz <eschwartz@archlinux.org>
# Contributor (Arch): Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org>
# Contributor (Arch): Petrov Roman <nwhisper@gmail.com>
# Contributor (Arch): Andrea Fagiani <andfagiani _at_ gmail dot com>
# Contributor (Arch): Larry Hajali <larryhaja@gmail.com>
# Maintainer: Andreas Grapentin <andreas@grapentin.org>
# Contributor: David P.<megver83@parabola.nu>
# Contributor: Jesús E.<heckyel@parabola.nu>
# Contributor: Isaac David <isacdaavid@at@isacdaavid@dot@info>
# Contributor: David Palma <dbpalma9@gmail.com>
# parabola changes and rationale:
# - removed de-compression engine for rar archives
# - frozen at v3.48.0 - v4.x and above removed support for webkit
pkgname=calibre3
_srcname=calibre
pkgver=3.48.0
pkgrel=1
pkgrel+=.parabola3
pkgdesc="Ebook management application"
pkgdesc+=", without nonfree RAR support, without webengine"
arch=('x86_64')
arch+=('i686' 'armv7h')
url="https://calibre-ebook.com/"
license=('GPL3')
_py_deps=('apsw' 'beautifulsoup4' 'cssselect' 'css-parser' 'dateutil' 'dbus' 'dnspython' 'dukpy'
'feedparser' 'html2text' 'html5-parser' 'lxml' 'markdown' 'mechanize' 'msgpack'
'netifaces' 'pillow' 'psutil' 'pygments' 'pyqt5' 'regex')
depends=('chmlib' 'hunspell' 'jxrlib' 'libmtp' 'libusbx' 'libwmf' 'mathjax2' 'mtdev' 'optipng'
'podofo' "${_py_deps[@]/#/python2-}" 'qt5-svg' 'qt5-webkit' 'udisks2')
depends+=('libicui18n.so' 'libicuuc.so')
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')
replaces=('calibre')
source=("https://download.calibre-ebook.com/${pkgver}/${_srcname}-${pkgver}.tar.xz"
"https://calibre-ebook.com/signatures/${_srcname}-${pkgver}.tar.xz.sig"
'libre.patch'
"devendor-hunspell.patch"
"update-fontconfig-db-qt5.15.patch")
sha256sums=('024528f0f913c78e121fb34beb3dae8dba3686f2334422c6450808796042950c'
'SKIP'
'00c352f4a5b49da43f38e495e3a2d82144f753a3d797cec8b5870b872137a70b'
'ff9be7c1773c18ccf4acaff5598ad29cf1477a1d33ddde85184d97f9a44ace1a'
'ffd7aa6dab196420843064cd29454b56aa8c8bd014af3adc734b4f45f3c3baa7')
b2sums=('9a7fae20487ae93120cfdc06a312a42d54d68935fdd2bc18dc41be5f8d359c79eae24e0409ba8e7f4df85e2f073f80ce6bab56cba0638cead6693600fa93cb41'
'SKIP'
'ce3d88839da2e838a4ed0bf141cfb1fd84cabe49537c1d8c98ecb1e14c6af2b050b4ce097d2a69cf9c80c6b1ccb89c01c3268d29391639207adf1dc1daa86069'
'29a3597676fd8a26d286363ba5002d2c439faba6c8cd3d6c98fd10f8aa3cd41021dbda501f445ed94759dc17561c945488822ba4f9e17334481d3261a973787c'
'14038b4ea5f87d9a8f645b5af8342da90337202b0247b07dccd8995f55bb965b5c2bbdddc24b55b6e92e899f91d5dec19c10ddea8fcc42c8ed3d74ee90eb09d6')
validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal
prepare()
{
cd "${srcdir}"/${_srcname}-${pkgver}
# fix freedom issues
rm -v imgsrc/mimetypes/rar.svg
rm -v src/calibre/ebooks/metadata/rar.py
rm -v src/calibre/utils/unrar.py
rm -v resources/images/mimetypes/{cbr,rar}.png
patch -fNp1 -i "$srcdir/libre.patch"
# Desktop integration (e.g. enforce arch defaults)
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
# de-vendor hunspell (back-ported from 4.x)
# see: https://github.com/kovidgoyal/calibre/commit/420e9e121b67db197e0c5d0bf23b92c174f2678f.patch
patch -p1 -i ../devendor-hunspell.patch
# Update fontconfig database for Qt 5.15 (back-ported from 4.x)
# see: https://github.com/kovidgoyal/calibre/commit/db7007a25faefb0cc90e64dda1c0793393b9512d.patch
patch -p1 -i ../update-fontconfig-db-qt5.15.patch
cd resources
# Remove unneeded files
rm ${_srcname}-portable.* mozilla-ca-certs.pem
# tarball cache from calibre 4.x
rm editor.js viewer.{js,html}
# use system mathjax
rm -r mathjax
}
build()
{
cd "${srcdir}"/${_srcname}-${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()
{
local is_network_enabled=1
# tests require networking
(( ${is_network_enabled} )) || return 0
# 2 failing tests on armv7h
[[ $CARCH = arm* ]] && return 0
cd "${srcdir}"/${_srcname}-${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 "${srcdir}"/${_srcname}-${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)
}
|