summaryrefslogtreecommitdiff
blob: 3d4a32ca2bb94a2cd0cb4de4e2f439bcb56f1b6a (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
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/gnome-extra/gnome-packagekit/gnome-packagekit-3.8.2.ebuild,v 1.1 2013/08/25 22:30:10 eva Exp $

EAPI="5"
GCONF_DEBUG="no"
PYTHON_COMPAT=( python2_{6,7} python3_{2,3} )

inherit eutils gnome2 python-r1 virtualx

DESCRIPTION="PackageKit client for the GNOME desktop"
HOMEPAGE="http://www.packagekit.org/"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="nls systemd test udev"

# FIXME: add PYTHON_USEDEP on packagekit-base when available
# gdk-pixbuf used in gpk-animated-icon
# pango used on gpk-common
RDEPEND="
	>=dev-libs/glib-2.32:2
	x11-libs/gdk-pixbuf:2
	>=x11-libs/gtk+-2.91.0:3
	>=x11-libs/libnotify-0.7.0:=
	x11-libs/pango
	>=dev-libs/dbus-glib-0.73

	>=app-admin/packagekit-base-0.7.2[udev]
	>=app-admin/packagekit-gtk-0.7.2
	>=media-libs/libcanberra-0.10[gtk3]
	>=sys-apps/dbus-1.1.2
	>=sys-power/upower-0.9.0

	media-libs/fontconfig
	x11-libs/libX11

	systemd? ( >=sys-apps/systemd-42 )
	!systemd? ( sys-auth/consolekit )
	udev? ( >=virtual/udev-171[gudev] )
"
DEPEND="${RDEPEND}
	app-text/docbook-sgml-utils
	>=dev-util/gtk-doc-am-1.9
	>=dev-util/intltool-0.35
	dev-libs/libxslt
	sys-devel/gettext
	virtual/pkgconfig
"

# NOTES:
# app-text/docbook-sgml-utils required for man pages
# app-text/gnome-doc-utils and dev-libs/libxslt required for gnome help files
# gtk-doc is generating a useless file, don't need it

# UPSTREAM:
# misuse of CPPFLAGS/CXXFLAGS ?
# see if tests can forget about display (use eclass for that ?)
# intltool and gettext only with +nls

src_prepare() {
	# Regenerate marshalers for <glib-2.31 compat
	rm -v src/gpk-marshal.{c,h} || die

	# * disable tests with graphical dialogs and that require packagekitd
	#   to be run with the dummy backend
	# * disable tests that fails every time packagekit developers make a
	#   tiny change to headers
	sed -e '/gpk_enum_test (test)/d' \
		-e '/gpk_error_test (test)/d' \
		-e '/gpk_modal_dialog_test (test)/d' \
		-e '/gpk_task_test (test)/d' \
		-i src/gpk-self-test.c || die

	# Leave python build to us
	sed '/python.*\\/d' -i Makefile.am Makefile.in || die

	# Disable stupid flags
	# FIXME: touching configure.ac triggers maintainer-mode
	sed -e '/CPPFLAGS="$CPPFLAGS -g"/d' -i configure || die

	mkdir -p "${S}_default" || die
	prepare_python() {
		mkdir -p "${BUILD_DIR}" || die
	}
	python_foreach_impl prepare_python
	gnome2_src_prepare
}

src_configure() {
	local myconf
	myconf="
		--localstatedir=/var
		--enable-compile-warnings=yes
		--enable-iso-c
		--disable-strict
		$(use_enable nls)
		$(use_enable systemd)
		$(use_enable test tests)
		$(use_enable udev gudev)
		ITSTOOL=$(type -P true)"

	cd "${S}_default" || die
	ECONF_SOURCE="${S}" gnome2_src_configure ${myconf}
	ECONF_SOURCE="${S}" python_foreach_impl run_in_build_dir \
		gnome2_src_configure ${myconf}
}

src_compile() {
	cd "${S}_default" || die
	gnome2_src_compile
	build_python() {
		cd "${BUILD_DIR}"/python || die
		default
	}
	python_foreach_impl build_python
}

src_test() {
	unset DISPLAY
	cd "${S}_default" || die
	# out-of-tree tests of documentation fail
	Xemake check -C src
}

src_install() {
	dodoc AUTHORS MAINTAINERS NEWS README TODO

	cd "${S}_default" || die
	gnome2_src_install

	install_python() {
		cd "${BUILD_DIR}"/python || die
		emake install DESTDIR="${D}" VPATH="${S}/python/packagekit:${BUILD_DIR}" || die
	}
	python_foreach_impl install_python
}