forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-2.3.6, Repoman-2.3.2
- Loading branch information
Andrey Grozin
committed
Jul 10, 2017
1 parent
5bf79c9
commit 497597d
Showing
2 changed files
with
277 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST calibre-2.78.0.tar.xz 38739404 SHA256 d2b0b0c5451d3ac05ce9de0b801ddf8de7664fee45f273d7ee8445a1ec2f898b SHA512 0779ac385dde45ac4baee7cecb0916e245f3e1cf20662bad9d9a4278265390b1aa89c2b478601b57113e7de08a69343288488ee299e8b43332f0129e650aa0ca WHIRLPOOL 325fc344445078ef0df0a29b4cd8e32445a881ede89e3db87606166ff0c8b7db10b7cc34432e63c2bb49382537a5107686339b987f1be807d59a1786ddfd4a75 | ||
DIST calibre-2.85.1.tar.xz 37783284 SHA256 8c8db280c51b26284bff1c066fb503ecef9e1f15f7e2e7b4f705c817ee041abd SHA512 ce29924213fa7461bbf2fc62f26bd53e4eafdf3b0dd58e241071592be4ee038cdb3ac6ac2982229dd0e52595a93aca7d921640ea55796950d1f3ac3c2742af4f WHIRLPOOL 1432f71c19c8ff41dede3370287813281557f3659c862e7a9fe76d548bf393d8dd889aa4dc92d514244b2d35ce25b962c2942ef3dec2bf1ebaa81b1ea6bd0c94 | ||
DIST calibre-3.1.1.tar.xz 35841216 SHA256 cfa00b953cf68f0760a4588c8adad066749cce673178e85e4c249790c07f01d2 SHA512 1da11ede70d93fa608873726fdcd9b39f261c045ea874521b45211df951bdb15e62958f50628eb6cfcfef2ff14b89da74b0f89481f3671480dbc9589b096d695 WHIRLPOOL fa85b83fc2502cdbdb12259a0d56cff9867606088f62b6a147ee4fa0f99174d5e74a396239b07441124da839aa1000d8ba146b588290b30a70a1caa1166003c0 | ||
DIST calibre-3.3.0.tar.xz 36308116 SHA256 0cd42109f432995a75bd921a37444c142cc25d178083857efbac756f615403ff SHA512 bb63f83d5e35079daba9ec6e7849e6a65c51cf0b2da9fc45b86a2b64cc147f862f08413730f3d2710793de7b045fc73913534dfca11b128ad0ea72e92033f977 WHIRLPOOL 151c6633f53e75b097276f026fedd083b8b7aa28b28e4d2d0de587a3e8280e40f04a13998b8eae5a9f54f1041e7a8b85fa8de99734437b4246bf66664ce31a7d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,276 @@ | ||
# Copyright 1999-2017 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
|
||
PYTHON_COMPAT=( python2_7 ) | ||
PYTHON_REQ_USE="sqlite,ssl" | ||
|
||
inherit eutils fdo-mime bash-completion-r1 multilib toolchain-funcs python-single-r1 | ||
|
||
DESCRIPTION="Ebook management application" | ||
HOMEPAGE="http://calibre-ebook.com/" | ||
SRC_URI="http://download.calibre-ebook.com/${PV}/${P}.tar.xz" | ||
|
||
LICENSE=" | ||
GPL-3+ | ||
GPL-3 | ||
GPL-2+ | ||
GPL-2 | ||
GPL-1+ | ||
LGPL-3+ | ||
LGPL-2.1+ | ||
LGPL-2.1 | ||
BSD | ||
MIT | ||
Old-MIT | ||
Apache-2.0 | ||
public-domain | ||
|| ( Artistic GPL-1+ ) | ||
CC-BY-3.0 | ||
OFL-1.1 | ||
PSF-2 | ||
unRAR | ||
" | ||
KEYWORDS="~amd64 ~arm ~x86" | ||
SLOT="0" | ||
IUSE="ios +udisks" | ||
|
||
REQUIRED_USE="${PYTHON_REQUIRED_USE}" | ||
|
||
COMMON_DEPEND="${PYTHON_DEPS} | ||
>=app-text/podofo-0.8.2:= | ||
>=app-text/poppler-0.26.5[qt5] | ||
>=dev-libs/chmlib-0.40:= | ||
dev-libs/glib:2 | ||
>=dev-libs/icu-57.1:= | ||
>=dev-python/apsw-3.13.0[${PYTHON_USEDEP}] | ||
>=dev-python/beautifulsoup-3.0.5:python-2[${PYTHON_USEDEP}] | ||
dev-python/chardet[${PYTHON_USEDEP}] | ||
>=dev-python/cssselect-0.7.1[${PYTHON_USEDEP}] | ||
>=dev-python/cssutils-1.0.1[${PYTHON_USEDEP}] | ||
>=dev-python/dbus-python-1.2.4[${PYTHON_USEDEP}] | ||
>=dev-libs/dbus-glib-0.106 | ||
>=sys-apps/dbus-1.10.8 | ||
>=dev-python/lxml-3.2.1[${PYTHON_USEDEP}] | ||
>=dev-python/mechanize-0.2.5[${PYTHON_USEDEP}] | ||
dev-python/msgpack[${PYTHON_USEDEP}] | ||
dev-python/netifaces[${PYTHON_USEDEP}] | ||
dev-python/pillow[${PYTHON_USEDEP}] | ||
dev-python/psutil[${PYTHON_USEDEP}] | ||
>=dev-python/pygments-2.1.3[${PYTHON_USEDEP}] | ||
>=dev-python/python-dateutil-2.5.3[${PYTHON_USEDEP}] | ||
>=dev-python/PyQt5-5.8[gui,svg,webkit,widgets,network,printsupport,${PYTHON_USEDEP}] | ||
dev-python/regex[${PYTHON_USEDEP}] | ||
dev-qt/qtcore:5 | ||
dev-qt/qtgui:5 | ||
dev-qt/qtwidgets:5 | ||
media-fonts/liberation-fonts | ||
>=media-gfx/imagemagick-6.5.9[jpeg,png] | ||
media-libs/fontconfig | ||
>=media-libs/freetype-2:= | ||
>=media-libs/libmtp-1.1.11:= | ||
>=media-libs/libwmf-0.2.8 | ||
>=media-gfx/optipng-0.7.6 | ||
sys-libs/zlib | ||
virtual/libusb:1= | ||
virtual/python-dnspython[${PYTHON_USEDEP}] | ||
x11-libs/libX11 | ||
x11-libs/libXext | ||
x11-libs/libXrender | ||
>=x11-misc/xdg-utils-1.0.2-r2 | ||
ios? ( | ||
>=app-pda/usbmuxd-1.0.8 | ||
>=app-pda/libimobiledevice-1.2.0 | ||
) | ||
udisks? ( virtual/libudev )" | ||
RDEPEND="${COMMON_DEPEND} | ||
udisks? ( || ( sys-fs/udisks:2 sys-fs/udisks:0 ) )" | ||
DEPEND="${COMMON_DEPEND} | ||
>=dev-python/setuptools-23.1.0[${PYTHON_USEDEP}] | ||
>=virtual/podofo-build-0.9.4 | ||
virtual/pkgconfig" | ||
|
||
src_prepare() { | ||
# no_updates: do not annoy user with "new version is availible all the time | ||
# disable_plugins: walking sec-hole, wait for upstream to use GHNS interface | ||
eapply \ | ||
"${FILESDIR}/${PN}-2.9.0-no_updates_dialog.patch" \ | ||
"${FILESDIR}/${PN}-disable_plugins.patch" | ||
|
||
eapply_user | ||
|
||
# Fix outdated version constant. | ||
#sed -e "s#\\(^numeric_version =\\).*#\\1 (${PV//./, })#" \ | ||
# -i src/calibre/constants.py || \ | ||
# die "sed failed to patch constants.py" | ||
|
||
# Avoid sandbox violation in /usr/share/gnome/apps when linux.py | ||
# calls xdg-* (bug #258938). | ||
sed -e "s|'xdg-desktop-menu', 'install'|\\0, '--mode', 'user'|" \ | ||
-e "s|check_call(\\['xdg-desktop-menu', 'forceupdate'\\])|#\\0|" \ | ||
-e "s|\\(CurrentDir(tdir)\\), \\\\\$|\\1:|" \ | ||
-e "s|, PreserveMIMEDefaults():|:|" \ | ||
-e "s|'xdg-icon-resource', 'install'|\\0, '--mode', 'user'|" \ | ||
-e "s|cmd\[2\]|cmd[4]|" \ | ||
-e "s|cc(\\['xdg-desktop-menu', 'forceupdate'\\])|#\\0|" \ | ||
-e "s|'xdg-mime', 'install'|\\0, '--mode', 'user'|" \ | ||
-i src/calibre/linux.py || die "sed failed to patch linux.py" | ||
|
||
# Disable unnecessary privilege dropping for bug #287067. | ||
sed -e "s:if os.geteuid() == 0:if False and os.geteuid() == 0:" \ | ||
-i setup/install.py || die "sed failed to patch install.py" | ||
|
||
sed -e "/^ self.check_call(\\[QMAKE\\] + qmc + \\[proname\\])$/a\ | ||
\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ self.check_call(['sed', \ | ||
'-e', 's|^CFLAGS .*|\\\\\\\\0 ${CFLAGS}|', \ | ||
'-e', 's|^CXXFLAGS .*|\\\\\\\\0 ${CXXFLAGS}|', \ | ||
'-e', 's|^LFLAGS .*|\\\\\\\\0 ${LDFLAGS}|', \ | ||
'-i', 'Makefile'])" \ | ||
-i setup/build.py || die "sed failed to patch build.py" | ||
|
||
# use system beautifulsoup, instead of bundled | ||
rm -f "${S}"/src/calibre/ebooks/BeautifulSoup.py \ | ||
|| die "could not remove bundled beautifulsoup" | ||
find "${S}" -type f -name \*.py -exec \ | ||
sed -e 's/calibre.ebooks.BeautifulSoup/BeautifulSoup/' -i {} + \ | ||
|| die "could not sed bundled beautifulsoup out of the source tree" | ||
|
||
# avoid failure of xdg tools to recognize vendor prefix | ||
sed -e "s|xdg-icon-resource install|xdg-icon-resource install --novendor|" \ | ||
-e "s|'xdg-mime', 'install'|'xdg-mime', 'install', '--novendor'|" \ | ||
-e "s|'xdg-desktop-menu', 'install'|'xdg-desktop-menu', 'install', '--novendor'|" \ | ||
-i "${S}"/src/calibre/linux.py || die 'sed failed' | ||
|
||
# don't create/install uninstaller | ||
sed '/self\.create_uninstaller()/d' -i src/calibre/linux.py || die | ||
} | ||
|
||
src_install() { | ||
# Bypass kbuildsycoca and update-mime-database in order to | ||
# avoid sandbox violations if xdg-mime tries to call them. | ||
cat - > "${T}/kbuildsycoca" <<-EOF | ||
#!${BASH} | ||
echo $0 : $@ | ||
exit 0 | ||
EOF | ||
|
||
cp "${T}"/{kbuildsycoca,update-mime-database} || die | ||
chmod +x "${T}"/{kbuildsycoca,update-mime-database} || die | ||
|
||
export QMAKE="${EPREFIX}/usr/$(get_libdir)/qt5/bin/qmake" | ||
|
||
# Unset DISPLAY in order to prevent xdg-mime from triggering a sandbox | ||
# violation with kbuildsycoca as in bug #287067, comment #13. | ||
export -n DISPLAY | ||
|
||
# Bug #352625 - Some LANGUAGE values can trigger the following ValueError: | ||
# File "/usr/lib/python2.6/locale.py", line 486, in getdefaultlocale | ||
# return _parse_localename(localename) | ||
# File "/usr/lib/python2.6/locale.py", line 418, in _parse_localename | ||
# raise ValueError, 'unknown locale: %s' % localename | ||
#ValueError: unknown locale: 46 | ||
export -n LANGUAGE | ||
|
||
# Bug #295672 - Avoid sandbox violation in ~/.config by forcing | ||
# variables to point to our fake temporary $HOME. | ||
export HOME="${T}/fake_homedir" | ||
export XDG_CONFIG_HOME="${HOME}/.config" | ||
export XDG_DATA_HOME="${HOME}/.local/share" | ||
export CALIBRE_CONFIG_DIRECTORY="${XDG_CONFIG_HOME}/calibre" | ||
mkdir -p "${XDG_DATA_HOME}" "${CALIBRE_CONFIG_DIRECTORY}" || die | ||
|
||
tc-export CC CXX | ||
# Bug #334243 - respect LDFLAGS when building extensions | ||
export OVERRIDE_CFLAGS="$CFLAGS" OVERRIDE_LDFLAGS="$LDFLAGS" | ||
local libdir=$(get_libdir) | ||
[[ -n $libdir ]] || die "get_libdir returned an empty string" | ||
|
||
# Bug #472690 - Avoid sandbox violation for /dev/dri/card0. | ||
local x | ||
for x in /dev/dri/card[0-9] ; do | ||
[[ -e ${x} ]] && addpredict ${x} | ||
done | ||
|
||
#dodir "/usr/$(get_libdir)/python2.7/site-packages" # for init_calibre.py | ||
#dodir $(python_get_sitedir) | ||
PATH=${T}:${PATH} PYTHONPATH=${S}/src${PYTHONPATH:+:}${PYTHONPATH} \ | ||
"${PYTHON}" setup.py install \ | ||
--root="${D}" \ | ||
--prefix="${EPREFIX}/usr" \ | ||
--libdir="${EPREFIX}/usr/${libdir}" \ | ||
--staging-root="${ED}usr" \ | ||
--staging-libdir="${ED}usr/${libdir}" || die | ||
|
||
# The menu entries end up here due to '--mode user' being added to | ||
# xdg-* options in src_prepare. | ||
dodir /usr/share/mime/packages | ||
chmod -fR a+rX,u+w,g-w,o-w "${HOME}"/.local | ||
mv "${HOME}"/.local/share/mime/packages/* "${ED}"usr/share/mime/packages/ || | ||
die "failed to register mime types" | ||
dodir /usr/share/icons | ||
mv "${HOME}"/.local/share/icons/* "${ED}"usr/share/icons/ || | ||
die "failed to install icon files" | ||
|
||
domenu "${HOME}"/.local/share/applications/*.desktop || | ||
die "failed to install .desktop menu files" | ||
|
||
find "${ED}"usr/share -type d -empty -delete | ||
|
||
cd "${ED}"/usr/share/calibre/fonts/liberation || die | ||
local x | ||
for x in * ; do | ||
[[ -f ${EPREFIX}usr/share/fonts/liberation-fonts/${x} ]] || continue | ||
ln -sf "../../../fonts/liberation-fonts/${x}" "${x}" || die | ||
done | ||
|
||
einfo "Converting python shebangs" | ||
python_fix_shebang "${ED}" | ||
|
||
einfo "Compiling python modules" | ||
python_optimize "${ED}"usr/lib/calibre | ||
|
||
newinitd "${FILESDIR}"/calibre-server-3.init calibre-server | ||
newconfd "${FILESDIR}"/calibre-server-3.conf calibre-server | ||
|
||
bashcomp_alias calibre \ | ||
lrfviewer \ | ||
calibre-debug \ | ||
ebook-meta \ | ||
calibre-server \ | ||
ebook-viewer \ | ||
ebook-polish \ | ||
fetch-ebook-metadata \ | ||
lrf2lrs \ | ||
ebook-convert \ | ||
ebook-edit \ | ||
calibre-smtp \ | ||
ebook-device | ||
|
||
} | ||
|
||
pkg_preinst() { | ||
# Indentify stray directories from upstream's "Binary install" | ||
# method (see bug 622728). | ||
CALIBRE_LIB_DIR=/usr/$(get_libdir)/calibre | ||
CALIBRE_LIB_CONTENT=$(for x in "${ED%/}${CALIBRE_LIB_DIR}"/*; do | ||
printf -- "${x##*/} "; done) || die "Failed to list ${ED%/}${CALIBRE_LIB_DIR}" | ||
} | ||
|
||
pkg_postinst() { | ||
[[ -n ${CALIBRE_LIB_DIR} ]] || die "CALIBRE_LIB_DIR is unset" | ||
local x | ||
for x in "${EROOT%/}${CALIBRE_LIB_DIR}"/*; do | ||
if [[ " ${CALIBRE_LIB_CONTENT} " != *" ${x##*/} "* ]]; then | ||
elog "Purging '${x}'" | ||
rm -rf "${x}" | ||
fi | ||
done | ||
fdo-mime_desktop_database_update | ||
fdo-mime_mime_database_update | ||
} | ||
|
||
pkg_postrm() { | ||
fdo-mime_desktop_database_update | ||
fdo-mime_mime_database_update | ||
} |