blob: 1300fc1cfa840c6784b5c7bc17920bdb66941786 [file] [log] [blame]
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
GNOME2_LA_PUNT="yes"
VALA_USE_DEPEND="vapigen"
inherit autotools bash-completion-r1 check-reqs gnome2 user systemd udev vala multilib-minimal
DESCRIPTION="System service to accurately color manage input and output devices"
HOMEPAGE="https://www.freedesktop.org/software/colord/"
SRC_URI="https://www.freedesktop.org/software/colord/releases/${P}.tar.xz"
LICENSE="GPL-2+"
SLOT="0/2" # subslot = libcolord soname version
KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86 ~x86-fbsd"
# We prefer policykit enabled by default, bug #448058
IUSE="argyllcms examples extra-print-profiles +gusb +introspection +policykit scanner systemd +udev vala"
REQUIRED_USE="
gusb? ( udev )
scanner? ( udev )
vala? ( introspection )
"
COMMON_DEPEND="
dev-db/sqlite:3=[${MULTILIB_USEDEP}]
>=dev-libs/glib-2.44.0:2[${MULTILIB_USEDEP}]
>=media-libs/lcms-2.6:2=[${MULTILIB_USEDEP}]
argyllcms? ( media-gfx/argyllcms )
gusb? ( >=dev-libs/libgusb-0.2.7[introspection?,${MULTILIB_USEDEP}] )
introspection? ( >=dev-libs/gobject-introspection-0.9.8:= )
policykit? ( >=sys-auth/polkit-0.104 )
scanner? (
media-gfx/sane-backends
sys-apps/dbus )
systemd? ( >=sys-apps/systemd-44:0= )
udev? (
virtual/udev
virtual/libgudev:=[${MULTILIB_USEDEP}]
virtual/libudev:=[${MULTILIB_USEDEP}]
)
"
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[${MULTILIB_USEDEP}]
extra-print-profiles? ( media-gfx/argyllcms )
vala? ( $(vala_depend) )
"
# 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 \
configure.ac || die
eautoreconf
use vala && vala_src_prepare
gnome2_src_prepare
multilib_copy_sources
}
multilib_src_configure() {
# Reverse tools require gusb
# bash-completion test does not work on gentoo
local myconf=(
--disable-bash-completion
--disable-examples
--disable-static
--enable-libcolordcompat
--with-daemon-user=colord
--localstatedir="${EPREFIX}"/var
$(multilib_native_use_enable argyllcms argyllcms-sensor)
$(multilib_native_use_enable extra-print-profiles print-profiles)
$(multilib_native_usex extra-print-profiles COLPROF="$(type -P argyll-colprof)" "")
$(use_enable gusb)
$(multilib_native_use_enable gusb reverse)
$(multilib_native_use_enable introspection)
$(multilib_native_use_enable policykit polkit)
$(multilib_native_use_enable scanner sane)
$(multilib_native_use_enable systemd systemd-login)
$(use_enable udev)
--with-udevrulesdir="$(get_udevdir)"/rules.d
$(multilib_native_use_enable vala)
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
)
ECONF_SOURCE=${S} \
gnome2_src_configure "${myconf[@]}"
}
multilib_src_compile() {
if multilib_is_native_abi; then
gnome2_src_compile
else
emake -C lib/colord
use gusb && emake -C lib/colorhug
emake -C lib/compat
fi
}
multilib_src_test() {
if multilib_is_native_abi; then
default
else
emake -C lib/colord check
use gusb && emake -C lib/colorhug check
emake -C lib/compat check
fi
}
multilib_src_install() {
if multilib_is_native_abi; then
gnome2_src_install
else
gnome2_src_install -j1 -C lib/colord
use gusb && gnome2_src_install -j1 -C lib/colorhug
gnome2_src_install -j1 -C lib/compat
gnome2_src_install -j1 -C contrib/session-helper install-libcolord_includeHEADERS
fi
}
multilib_src_install_all() {
einstalldocs
newbashcomp data/colormgr colormgr
# 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
docinto examples
dodoc examples/*.c
fi
}