# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

EAPI="4"

DESCRIPTION="List of packages that are needed for Chrome OS factory software."
HOMEPAGE="http://dev.chromium.org/"

LICENSE="BSD-Google"
SLOT="0"
KEYWORDS="*"
IUSE="+shill X"

################################################################################

# Packages for factory framework ("Goofy"):
FACTORY_FRAMEWORK_RDEPEND="
	shill? ( chromeos-base/shill-test-scripts )
	dev-lang/python
	dev-python/dbus-python
	dev-python/dpkt
	dev-python/imaging
	dev-python/jsonrpclib
	dev-python/netifaces
	dev-python/pygobject
	dev-python/pyyaml
	dev-python/setproctitle
	dev-python/ws4py
"
# Note: factory repo also has a 'third_party/jsonrpclib' and factory software
# used to run that instead of dev-python/jsonrpclib.
# dbus-python may be temporarily broken on embedded platform.

# Packages used only if X is available.
FACTORY_X_RDEPEND="
	dev-python/python-xlib
	x11-apps/xinput
	x11-apps/xrandr
	x11-misc/xdotool
"

# Packages shared by several pytests inside factory.
# TODO(itspeter): Might remove cryptohome once a conclusion
#                 comes in http://crosbug.com/p/31800.
FACTORY_TEST_RDEPEND="
	app-arch/xz-utils
	chromeos-base/cryptohome
	dev-python/numpy
	dev-python/pyserial
	dev-python/python-evdev
	dev-python/pyudev
	dev-util/stressapptest
	net-ftp/pybootd
	sys-apps/iproute2
	sys-apps/lshw
"

# Packages used by audio related tests
FACTORY_TEST_RDEPEND+="
	chromeos-base/audiotest
	media-sound/sox
"

# Packages used by camera related tests
FACTORY_TEST_RDEPEND+="
	media-gfx/zbar
	media-libs/opencv
"

# Packages used by removable storage test.
FACTORY_TEST_RDEPEND+="
	sys-block/parted
"

# Packages used by network related tests.
FACTORY_TEST_RDEPEND+="
	dev-python/pexpect
	net-misc/iperf:3
"

# Packages used by registration code tests.
FACTORY_TEST_RDEPEND+="
	dev-libs/protobuf-python
"

# Packages to support running autotest tests inside factory framework.
FACTORY_TEST_RDEPEND+="
	chromeos-base/autotest-client
"

# Packages used by finalize.
FACTORY_TEST_RDEPEND+="
	chromeos-base/memento_softwareupdate
	sys-apps/busybox
	sys-apps/coreboot-utils
"

################################################################################
# Assemble the final RDEPEND variable for portage
################################################################################
RDEPEND="${FACTORY_FRAMEWORK_RDEPEND}
	 ${FACTORY_TEST_RDEPEND}
	 X? ( ${FACTORY_X_RDEPEND} )
"
