summaryrefslogtreecommitdiff
blob: ac125cb8294fb337b0f0c78aab5e186348ef0005 (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
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI="5"
GCONF_DEBUG="no"
GNOME2_LA_PUNT="yes"
VALA_USE_DEPEND="vapigen"
VALA_MIN_API_VERSION="0.18"

inherit bash-completion-r1 check-reqs eutils gnome2 user systemd udev vala
if [[ ${PV} = 9999 ]]; then
	GCONF_DEBUG="no"
	inherit gnome2-live # need all the hacks from gnome2-live_src_prepare
fi

DESCRIPTION="System service to accurately color manage input and output devices"
HOMEPAGE="http://www.freedesktop.org/software/colord/"
if [[ ${PV} = 9999 ]]; then
	EGIT_REPO_URI="git://gitorious.org/colord/master.git"
else
	SRC_URI="http://www.freedesktop.org/software/colord/releases/${P}.tar.xz"
fi

LICENSE="GPL-2+"
SLOT="0/2" # subslot = libcolord soname version

# We prefer policykit enabled by default, bug #448058
IUSE="examples extra-print-profiles +gusb +introspection +policykit scanner systemd +udev vala"
REQUIRED_USE="
	gusb? ( udev )
	scanner? ( udev )
	vala? ( introspection )
"
if [[ ${PV} = 9999 ]]; then
	KEYWORDS=""
	IUSE="${IUSE} doc"
else
	KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
fi

COMMON_DEPEND="
	dev-db/sqlite:3=
	>=dev-libs/glib-2.36:2
	>=media-libs/lcms-2.6:2=
	gusb? ( >=dev-libs/libgusb-0.1.1[introspection?] )
	introspection? ( >=dev-libs/gobject-introspection-0.9.8 )
	policykit? ( >=sys-auth/polkit-0.103 )
	scanner? ( media-gfx/sane-backends )
	systemd? ( >=sys-apps/systemd-44:0= )
	udev? (
		virtual/udev
		virtual/libgudev:=
		virtual/libudev:=
		)
"
RDEPEND="${COMMON_DEPEND}
	!media-gfx/shared-color-profiles
	!<=media-gfx/colorhug-client-0.1.13
"
DEPEND="${COMMON_DEPEND}
	dev-libs/libxslt
	>=dev-util/gtk-doc-am-1.9
	>=dev-util/intltool-0.35
	>=sys-devel/gettext-0.17
	virtual/pkgconfig
	extra-print-profiles? ( media-gfx/argyllcms )
	vala? ( $(vala_depend) )
"
if [[ ${PV} =~ 9999 ]]; then
	# Needed for generating man pages, not needed for tarballs
	DEPEND="${DEPEND}
		app-text/docbook-sgml-utils
		doc? (
			app-text/docbook-xml-dtd:4.1.2
			>=dev-util/gtk-doc-1.9 )"
fi

# FIXME: needs pre-installed dbus service files
RESTRICT="test"

# According to upstream comment in colord.spec.in, building the extra print
# profiles requires >=4G of memory
CHECKREQS_MEMORY="4G"

pkg_pretend() {
	use extra-print-profiles && check-reqs_pkg_pretend
}

pkg_setup() {
	use extra-print-profiles && check-reqs_pkg_setup
	enewgroup colord
	enewuser colord -1 -1 /var/lib/colord colord
}

src_prepare() {
	# Adapt to Gentoo paths
	sed -i -e 's/spotread/argyll-spotread/' src/sensors/cd-sensor-argyll.c || die

	use vala && vala_src_prepare
	gnome2_src_prepare
}

src_configure() {
	local myconf=""
	[[ ${PV} = 9999 ]] && myconf="${myconf} $(use_enable doc gtk-doc)"
	# Reverse tools require gusb
	# bash-completion test does not work on gentoo
	gnome2_src_configure \
		--disable-bash-completion \
		--disable-examples \
		--disable-static \
		--enable-libcolordcompat \
		--with-daemon-user=colord \
		--localstatedir="${EPREFIX}"/var \
		$(use_enable extra-print-profiles print-profiles) \
		$(usex extra-print-profiles COLPROF="$(type -P argyll-colprof)" "") \
		$(use_enable gusb) \
		$(use_enable gusb reverse) \
		$(use_enable introspection) \
		$(use_enable policykit polkit) \
		$(use_enable scanner sane) \
		$(use_enable systemd systemd-login) \
		$(use_enable udev) \
		--with-udevrulesdir="$(get_udevdir)"/rules.d \
		$(use_enable vala) \
		"$(systemd_with_unitdir)" \
		${myconf}

	if [[ ${PV} = 9999 ]]; then
		# parallel make fails in doc/api
		use doc && MAKEOPTS="${MAKEOPTS} -j1"
	fi
}

src_install() {
	DOCS="AUTHORS ChangeLog MAINTAINERS NEWS README.md TODO"
	gnome2_src_install

	newbashcomp data/colormgr colormgr
	rm -vr "${ED}etc/bash_completion.d"

	# Ensure config and profile directories exist and /var/lib/colord/*
	# is writable by colord user
	keepdir /var/lib/color{,d}/icc
	fowners colord:colord /var/lib/colord{,/icc}

	if use examples; then
		insinto /usr/share/doc/${PF}/examples
		doins examples/*.c
	fi
}