blob: 4e47e51f2c2bdef69178da0c8ff05f6181e70767 (
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
|
# 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 decrompession engine for rar archives
# - frozen at v3.48.0 - v4.x and above removed support for webkit
pkgname=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')
source=("https://download.calibre-ebook.com/${pkgver}/calibre-${pkgver}.tar.xz"
"https://calibre-ebook.com/signatures/${pkgname}-${pkgver}.tar.xz.sig"
'libre.patch'
"https://github.com/kovidgoyal/calibre/commit/420e9e121b67db197e0c5d0bf23b92c174f2678f.patch")
sha256sums=('024528f0f913c78e121fb34beb3dae8dba3686f2334422c6450808796042950c'
'SKIP'
'00c352f4a5b49da43f38e495e3a2d82144f753a3d797cec8b5870b872137a70b'
'ff9be7c1773c18ccf4acaff5598ad29cf1477a1d33ddde85184d97f9a44ace1a')
b2sums=('9a7fae20487ae93120cfdc06a312a42d54d68935fdd2bc18dc41be5f8d359c79eae24e0409ba8e7f4df85e2f073f80ce6bab56cba0638cead6693600fa93cb41'
'SKIP'
'SKIP'
'29a3597676fd8a26d286363ba5002d2c439faba6c8cd3d6c98fd10f8aa3cd41021dbda501f445ed94759dc17561c945488822ba4f9e17334481d3261a973787c')
validpgpkeys=('3CE1780F78DD88DF45194FD706BC317B515ACE7C') # Kovid Goyal (New longer key) <kovid@kovidgoyal.net>
prepare(){
cd "${pkgname}-${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)
patch -p1 -i ../420e9e121b67db197e0c5d0bf23b92c174f2678f.patch
cd resources
# Remove unneeded files
rm ${pkgname}-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 "${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}"
# 2 failing tests on armv7h
[[ $CARCH = arm* ]] && return
# 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)
}
|