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

EAPI="6"

DESCRIPTION="List of packages that are needed inside the Chromium OS base (release)"
HOMEPAGE="http://dev.chromium.org/"

LICENSE="BSD-Google"
SLOT="0"
KEYWORDS="*"
# Note: Do not utilize USE=internal here.  Update virtual/target-chrome-os instead.
IUSE="
	arc-camera1
	arc-camera3
	biod
	bluetooth
	bootchart
	buffet
	cellular
	compupdates
	containers
	cr50_onboard
	+cras
	+crash_reporting
	+cros_disks
	cros_embedded
	cups
	+debugd
	diagnostics
	dlc
	dlc_test
	dptf
	eclog
	esim
	+fonts
	fuzzer
	fwupd
	hammerd
	ime
	input_devices_evdev
	intel_lpe
	iwlwifi_rescan
	kerberos_daemon
	kernel-3_8
	kvm_host
	media_perception
	memd
	mist
	modemfwd
	ml_service
	mtd
	+network_time
	nfc
	pam
	postscript
	+power_management
	+profile
	+readahead
	scanner
	selinux
	+shill
	smbprovider
	+syslog
	+system_locales
	systemd
	touchview
	+tpm
	-tpm2
	+trim_supported
	usb_bouncer
	usbguard
	+vpn
	watchdog
"

REQUIRED_USE="
	cellular? ( shill )
	modemfwd? ( cellular )
"

################################################################################
#
# READ THIS BEFORE ADDING PACKAGES TO THIS EBUILD!
#
################################################################################
#
# Every chromeos dependency (along with its dependencies) is included in the
# release image -- more packages contribute to longer build times, a larger
# image, slower and bigger auto-updates, increased security risks, etc. Consider
# the following before adding a new package:
#
# 1. Does the package really need to be part of the release image?
#
# Some packages can be included only in the developer or test images, i.e., the
# target-os-dev or chromeos-test ebuilds. If the package will eventually be used
# in the release but it's still under development, consider adding it to
# target-os-dev initially until it's ready for production.
#
# 2. Why is the package a direct dependency of the chromeos ebuild?
#
# It makes sense for some packages to be included as a direct dependency of the
# chromeos ebuild but for most it doesn't. The package should be added as a
# direct dependency of the ebuilds for all packages that actually use it -- in
# time, this ensures correct builds and allows easier cleanup of obsolete
# packages. For example, if a utility will be invoked by the session manager,
# its package should be added as a dependency in the chromeos-login ebuild. If
# the package really needs to be a direct dependency of the chromeos ebuild,
# consider adding a comment why the package is needed and how it's used.
#
# 3. Are all default package features and dependent packages needed?
#
# The release image should include only packages and features that are needed in
# the production system. Often packages pull in features and additional packages
# that are never used. Review these and consider pruning them (e.g., through USE
# flags).
#
# 4. What is the impact on the image size?
#
# Before adding a package, evaluate the impact on the image size. If the package
# and its dependencies increase the image size significantly, consider
# alternative packages or approaches.
#
# 5. Is the package needed on all targets?
#
# If the package is needed only on some target boards, consider making it
# conditional through USE flags in the board overlays.
#
# Variable Naming Convention:
# ---------------------------
# CROS_COMMON_* : Dependencies common to all CrOS flavors
# CROS_* : Dependencies for "regular" CrOS devices (coreutils, etc.)
################################################################################

################################################################################
#
# Per Package Comments:
# --------------------
# Please add any comments specific to why certain packages are
# pulled into the dependecy here. This is optional and required only when
# the dependency isn't obvious
#
################################################################################

################################################################################
#
# Dependencies common to all CrOS flavors (embedded, regular).
# Everything in here should be behind a USE flag.
#
################################################################################
RDEPEND="
	input_devices_evdev? ( app-misc/evtest )
	syslog? ( app-admin/rsyslog sys-apps/journald )
	biod? ( chromeos-base/biod )
	compupdates? ( chromeos-base/imageloader )
	dlc? ( chromeos-base/dlcservice )
	dlc_test? (
		chromeos-base/dummy-dlc
		chromeos-base/test-dlc
	)
	bluetooth? ( chromeos-base/bluetooth )
	bootchart? ( app-benchmarks/bootchart )
	tpm? (
		!tpm2? ( app-crypt/trousers )
		chromeos-base/chaps
	)
	tpm2? ( chromeos-base/trunks )
	pam? ( virtual/chromeos-auth-config )
	fonts? ( chromeos-base/chromeos-fonts )
	chromeos-base/chromeos-installer
	chromeos-base/dev-install
	crash_reporting? ( chromeos-base/crash-reporter )
	mist? ( chromeos-base/mist )
	modemfwd? ( chromeos-base/modemfwd )
	buffet? ( chromeos-base/buffet )
	containers? ( chromeos-base/run_oci )
	cros_disks? ( chromeos-base/cros-disks )
	debugd? ( chromeos-base/debugd )
	diagnostics? ( chromeos-base/diagnostics )
	kerberos_daemon? ( chromeos-base/kerberos )
	scanner? ( chromeos-base/lorgnette )
	ml_service? ( chromeos-base/ml )
	hammerd? ( chromeos-base/hammerd )
	esim? ( chromeos-base/hermes )
	media_perception? ( chromeos-base/mri_package )
	memd? ( chromeos-base/memd )
	power_management? ( chromeos-base/power_manager )
	!chromeos-base/platform2
	profile? ( chromeos-base/quipper )
	selinux? ( chromeos-base/selinux-policy )
	shill? ( chromeos-base/shill )
	usb_bouncer? ( chromeos-base/usb_bouncer )
	chromeos-base/update_engine
	vpn? ( chromeos-base/vpn-manager )
	cras? (
		media-sound/adhd
		media-sound/cras_tests
	)
	trim_supported? ( chromeos-base/chromeos-trim )
	network_time? ( net-misc/tlsdate )
	iwlwifi_rescan? ( net-wireless/iwlwifi_rescan )
	nfc? ( net-wireless/neard chromeos-base/neard-configs )
	readahead? ( sys-apps/ureadahead )
	pam? ( sys-auth/pam_pwdfile )
	watchdog? ( sys-apps/daisydog )
	mtd? ( sys-fs/mtd-utils )
	cups? ( virtual/chromium-os-printing )
	touchview? ( chromeos-base/chromeos-accelerometer-init )
	system_locales? ( chromeos-base/system-locales )
	eclog? ( chromeos-base/timberslide )
	chromeos-base/chromeos-machine-id-regen
	systemd? ( sys-apps/systemd )
	usbguard? ( sys-apps/usbguard )
	kvm_host? (
		chromeos-base/chromeos-termina-scripts
		chromeos-base/crosdns
		chromeos-base/crostini_client
		chromeos-base/vm_host_tools
	)
	sys-kernel/linux-firmware
	virtual/chromeos-bsp
	virtual/chromeos-firewall
	virtual/chromeos-firmware
	virtual/chromeos-interface
	virtual/chromeos-regions
	virtual/implicit-system
	virtual/linux-sources
	virtual/modutils
	virtual/service-manager
	cr50_onboard? (
		chromeos-base/chromeos-cr50
		chromeos-base/u2fd
	)
	ime? (
		app-i18n/chinese-input
		app-i18n/keyboard-input
		app-i18n/japanese-input
		app-i18n/hangul-input
	)
	fuzzer? ( virtual/target-fuzzers )
	!dev-python/socksipy
	arc-camera1? ( chromeos-base/cros-camera )
	arc-camera3? ( chromeos-base/cros-camera )
	fwupd? ( sys-apps/fwupd )
	smbprovider? ( chromeos-base/smbprovider )
"

################################################################################
#
# CROS_* : Dependencies for "regular" CrOS devices (coreutils, X etc)
#
# Comments on individual packages:
# --------------------------------
# app-editors/vim:
# Specifically include the editor we want to appear in chromeos images, so that
# it is deterministic which editor is chosen by 'virtual/editor' dependencies
# (such as in the 'sudo' package).  See crosbug.com/5777.
#
# app-shells/bash:
# We depend on dash for the /bin/sh shell for runtime speeds, but we also
# depend on bash to make the dev mode experience better.  We do not enable
# things like line editing in dash, so its interactive mode is very bare.
################################################################################

CROS_X86_RDEPEND="
	dptf? ( virtual/dptf )
	intel_lpe? ( virtual/lpe-support )
"

CROS_RDEPEND="
	x86? ( ${CROS_X86_RDEPEND} )
	amd64? ( ${CROS_X86_RDEPEND} )
"

# Anything behind a USE flag belongs in the main RDEPEND list above.
# New packages usually should be behind a USE flag.
CROS_RDEPEND="${CROS_RDEPEND}
	app-arch/tar
	app-editors/vim
	app-shells/bash
	chromeos-base/common-assets
	chromeos-base/chromeos-imageburner
	chromeos-base/crosh
	chromeos-base/crosh-extension
	chromeos-base/inputcontrol
	chromeos-base/mtpd
	chromeos-base/permission_broker
	chromeos-base/userfeedback
	chromeos-base/vboot_reference
	chromeos-base/vpd
	bluetooth? ( kernel-3_8? ( net-wireless/ath3k ) )
	net-wireless/crda
	sys-apps/dbus
	sys-apps/flashrom
	sys-apps/iproute2
	sys-apps/pv
	sys-apps/rootdev
	!systemd? ( sys-apps/upstart )
	sys-fs/e2fsprogs
	virtual/assets
	virtual/cheets
	virtual/udev
"

RDEPEND+="!cros_embedded? ( ${CROS_RDEPEND} )"
