summaryrefslogtreecommitdiff
blob: eba560759564b8b8f8c14253653527db70b925ca (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
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-text/calibre/calibre-0.6.8.ebuild,v 1.1 2009/08/22 03:42:08 zmedico Exp $

EAPI=2
NEED_PYTHON=2.6

inherit python distutils eutils fdo-mime bash-completion

DESCRIPTION="Ebook management application."
HOMEPAGE="http://calibre.kovidgoyal.net"
SRC_URI="http://calibre.kovidgoyal.net/downloads/$P.tar.gz"

LICENSE="GPL-2"

KEYWORDS="~amd64 ~x86"

SLOT="0"

IUSE=""

# libusb-compat is untested
SHARED_DEPEND=">=dev-lang/python-2.6[sqlite]
	>=dev-python/setuptools-0.6_rc5
	>=dev-python/imaging-1.1.6
	dev-libs/libusb:0
	>=dev-python/PyQt4-4.5[X,svg,webkit]
	>=dev-python/mechanize-0.1.11
	>=media-gfx/imagemagick-6.3.5
	>=x11-misc/xdg-utils-1.0.2
	>=dev-python/dbus-python-0.82.2
	>=dev-python/lxml-2.1.5
	>=dev-python/python-dateutil-1.4.1
	>=dev-python/beautifulsoup-3.0.5
	>=dev-python/dnspython-1.6.0
	>=sys-apps/help2man-1.36.4
	>=dev-python/pyPdf-1.12
	|| ( app-text/podofo >=app-text/pdftk-1.12 )
	>=dev-python/cherrypy-3.0.2-r1
	>=dev-python/cssutils-0.9.6_alpha4
	>=dev-python/odfpy-0.7"

RDEPEND="$SHARED_DEPEND
	>=dev-python/reportlab-2.1"

DEPEND="$SHARED_DEPEND
	dev-python/setuptools
	>=gnome-base/librsvg-2.0.0
	>=x11-misc/xdg-utils-1.0.2-r2
	sys-apps/help2man"

src_prepare() {
	# Removing the post_install call. We'll do that stuff in src_install.
	sed -i -e "/if 'install'/,/subprocess.check_call/d" \
		setup.py || die "couldn't remove post_install call"
	# For help2man to succeed, we need to tell it the path to the tools.
	sed -i -e "s:\('help2man',\) \(prog\):\1 \'PYTHONPATH=\"${D}$(python_get_sitedir)\" \' + \'${D}usr/bin/\' + \2:" \
		src/calibre/linux.py || die "sed'ing in the IMAGE path failed"
	# Avoid sandbox violation in /usr/share/gnome/apps when linux.py
	# calls xdg-desktop-menu (bug #258938). This also prevents
	# "${D}"/usr/share/applications/{mimeinfo.cache,defaults.list}
	# from being installed (we don't want them anyway).
	sed -i -e "s:xdg-desktop-menu install:xdg-desktop-menu install --mode user:" \
		src/calibre/linux.py || die "sed'ing in the IMAGE path failed"
	distutils_src_prepare
}

src_install() {
	pushd "${S}"/build
	ln -s lib\.* lib
	popd
	distutils_src_install

	# Create directory before running the postinst script
	# otherwise it will bail out.
	dodir /usr/share/icons/hicolor
	dodir /etc/xdg/menus
	dodir /usr/share/applications
	dodir /usr/share/desktop-directories
	dodir /usr/share/applnk
	dodir /usr/share/mime/packages

	# Bypass the default kde-config output, and force it to
	# tell xdg-mime to use a different path.
	cat - > "${T}/kde-config" <<EOF
#!/bin/bash

case \$1:\$2 in
	--version:) echo -e "Qt: 3.3.8\nKDE: 3.5.8\nkde-config: 1.0" ;;
	--path:mime) echo "${D}/usr/share/mimelnk/" ;;
esac
EOF

	chmod +x "${T}/kde-config"

	PATH="${T}:${PATH}" KDEDIRS="${D}/usr" XDG_DATA_DIRS="${D}/usr/share" DESTDIR="${D}" PYTHONPATH="${S}/build/lib" \
		python "${S}"/src/${PN}/linux.py \
		--use-destdir --do-not-reload-udev-hal \
		--group-file="${ROOT}"/etc/group --dont-check-root \
		|| die "post-installation failed."

	# The menu entries end up here due to '--mode user' being added to
	# xdg-desktop-menu options in src_prepare.
	domenu "$HOME"/.local/share/applications/*.desktop || \
		die "failed to install .desktop menu files"

	dobashcompletion "$D"usr/share/bash-completion/calibre
	find "${D}"/etc -type d -empty -delete

	# Removing junk.
	# Bundled python modules:     Module       | Package
	#                             ----------------------------
	#                             encutils     | cssutils
	#                             odf          | odfpy
	rm -r "${D}"/usr/share/mime/{subclasses,XMLnamespaces,globs{,2},mime.cache,magic,aliases,types,treemagic,{generic-,}icons} \
		"${D}"/usr/share/{applnk,desktop-directories} \
		"${D}$(python_get_sitedir)"/{cherrypy,cssutils,encutils,odf,pyPdf}
}

pkg_postinst() {
	fdo-mime_desktop_database_update
	fdo-mime_mime_database_update
	distutils_pkg_postinst
	bash-completion_pkg_postinst
}