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

EAPI="7"

# This ebuild only cares about its own FILESDIR and ebuild file, so it tracks
# the canonical empty project.
CROS_WORKON_PROJECT="chromiumos/infra/build/empty-project"
CROS_WORKON_LOCALNAME="../platform/empty-project"

inherit cros-workon

DESCRIPTION="List of packages that are needed inside the Chromium OS base (release)"
HOMEPAGE="https://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
	+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
	perfetto
	postscript
	+power_management
	+profile
	+readahead
	scanner
	selinux
	+shill
	smbprovider
	+syslog
	+system_locales
	system_proxy
	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 chromeos-base/croslog 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
	perfetto? ( chromeos-base/perfetto )
	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 )
	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 )
	system_proxy? ( chromeos-base/system-proxy )
	eclog? ( chromeos-base/timberslide )
	chromeos-base/chromeos-machine-id-regen
	systemd? ( sys-apps/systemd )
	usbguard? ( sys-apps/usbguard )
	kvm_host? (
		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/smbfs
		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} )"
