# 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="metapackage"
SLOT="0"
KEYWORDS="~*"
# Note: Do not utilize USE=internal here.  Update virtual/target-chrome-os instead.
# Note: You almost never want to use + here to enable settings by default.
# Please see https://crrev.com/c/2776455 as an example instead.
IUSE="
	asan
	arc-camera1
	arc-camera3
	assistant-dlc
	biod
	bluetooth
	bootchart
	cellular
	chargesplash
	chrome_internal
	compupdates
	containers
	cr50_onboard
	+cras
	+crash_reporting
	+cros_disks
	cros_embedded
	cups
	+debugd
	diagnostics
	dlc
	dlc_test
	dlp
	dns-proxy
	dptf
	eclog
	factory_branch
	featured
	federated_service
	floss
	+fonts
	fpstudy
	fusebox
	fuzzer
	fwupd
	gl3590
	hammerd
	iioservice
	ime
	input_devices_evdev
	intel_lpe
	iwlwifi_rescan
	kerberos_daemon
	kvm_host
	lacros_rootfs
	lvm_stateful_partition
	manatee
	media_perception
	memd
	missive
	mist
	minios
	mmc
	secanomalyd
	modemfwd
	ml_service
	mojo_service_manager
	hps
	mtd
	+network_time
	nfc
	ondevice_handwriting
	os_install_service
	pam
	pciguard
	perfetto
	postscript
	+power_management
	+profile
	racc
	+readahead
	resourced
	rgbkbd
	rmad
	scanner
	selinux
	+shill
	sirenia
	smbprovider
	spaced
	+syslog
	+system_locales
	system_proxy
	systemd
	ti50_onboard
	touchview
	+tpm
	-tpm2
	+trim_supported
	typecd
	ubsan
	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 dependency 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
		chromeos-base/bootid-logger
	)
	biod? ( chromeos-base/biod )
	chargesplash? ( chromeos-base/chargesplash )
	fpstudy? ( chromeos-base/fingerprint_study )
	compupdates? ( chromeos-base/imageloader )
	dlc? (
		app-accessibility/pumpkin
		chromeos-base/dlcservice
		chromeos-base/sample-dlc
		chromeos-languagepacks/tts-es-us
	)
	bluetooth? ( net-wireless/bluez )
	floss? (
		!asan? (
			!ubsan? ( net-wireless/floss )
		)
	)
	bootchart? ( app-benchmarks/bootchart )
	tpm? (
		app-crypt/trousers
		chromeos-base/chaps
	)
	tpm2? (
		chromeos-base/trunks
		chromeos-base/vtpm
	)
	pam? ( virtual/chromeos-auth-config )
	federated_service? ( chromeos-base/federated-service )
	fonts? ( chromeos-base/chromeos-fonts )
	chromeos-base/chromeos-installer
	chromeos-base/dev-install
	os_install_service? ( chromeos-base/os_install_service )
	perfetto? ( chromeos-base/perfetto )
	crash_reporting? ( chromeos-base/crash-reporter )
	missive? ( chromeos-base/missive )
	mist? ( chromeos-base/mist )
	modemfwd? ( chromeos-base/modemfwd )
	containers? ( chromeos-base/run_oci )
	cros_disks? ( chromeos-base/cros-disks )
	debugd? ( chromeos-base/debugd )
	diagnostics? ( chromeos-base/diagnostics )
	dlp? ( chromeos-base/dlp )
	kerberos_daemon? ( chromeos-base/kerberos )
	scanner? ( chromeos-base/lorgnette )
	ml_service? ( chromeos-base/ml )
	ondevice_handwriting? (
		chromeos-languagepacks/handwriting-da
		chromeos-languagepacks/handwriting-de
		chromeos-languagepacks/handwriting-es
		chromeos-languagepacks/handwriting-fi
		chromeos-languagepacks/handwriting-fr
		chromeos-languagepacks/handwriting-it
		chromeos-languagepacks/handwriting-ja
		chromeos-languagepacks/handwriting-nl
		chromeos-languagepacks/handwriting-pt
		chromeos-languagepacks/handwriting-sv
	)
	hps? (
		chromeos-base/hpsd
		chromeos-base/hps-firmware-images
		!asan? (
			!ubsan? ( chromeos-base/hps-firmware )
		)
	)
	hammerd? ( chromeos-base/hammerd )
	racc? (
		chromeos-base/hardware_verifier
		chromeos-base/runtime_probe
	)
	rgbkbd? ( chromeos-base/rgbkbd )
	rmad? ( chromeos-base/rmad )
	iioservice? ( chromeos-base/iioservice )
	media_perception? ( chromeos-base/mri_package )
	memd? ( chromeos-base/memd )
	power_management? ( chromeos-base/power_manager )
	!chromeos-base/platform2
	profile? ( chromeos-base/quipper )
	resourced? ( chromeos-base/resourced )
	selinux? ( chromeos-base/selinux-policy )
	shill? ( >=chromeos-base/shill-0.0.1-r2205 )
	manatee? ( chromeos-base/sirenia )
	sirenia? ( chromeos-base/sirenia )
	spaced? ( chromeos-base/spaced )
	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? (
		!iioservice? ( 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 )
	!systemd? ( sys-apps/systemd-tmpfiles )
	usbguard? ( sys-apps/usbguard )
	kvm_host? (
		chromeos-base/crosdns
		chromeos-base/crostini_client
		chromeos-base/vm_host_tools
		chromeos-base/termina-dlc
	)
	sys-kernel/linux-firmware
	virtual/chromeos-bsp
	virtual/chromeos-firewall
	!factory_branch? ( virtual/chromeos-firmware )
	virtual/chromeos-interface
	virtual/chromeos-regions
	virtual/implicit-system
	virtual/linux-sources
	sys-apps/kmod[tools]
	virtual/service-manager
	cr50_onboard? (
		chromeos-base/chromeos-cr50
		chromeos-base/u2fd
	)
	ti50_onboard? (
		chromeos-base/chromeos-ti50
		chromeos-base/u2fd
	)
	tpm? ( 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
		sys-firmware/fwupd-peripherals
		sys-firmware/fwupd-storage
		mmc? ( sys-firmware/mmc-firmware )
		gl3590? ( sys-firmware/gl3590-firmware )
	)
	smbprovider? (
		chromeos-base/smbfs
		chromeos-base/smbprovider
	)
	typecd? ( chromeos-base/typecd )
	pciguard? ( chromeos-base/pciguard )
	minios? ( chromeos-base/minios )
	secanomalyd? ( chromeos-base/secanomalyd )
	lacros_rootfs? ( chromeos-base/chromeos-lacros )
	dns-proxy? ( chromeos-base/dns-proxy )
	featured? ( chromeos-base/featured )
	fusebox? ( chromeos-base/fusebox )
	chrome_internal? (
		assistant-dlc? ( chromeos-base/assistant-dlc )
	)
	mojo_service_manager? ( chromeos-base/mojo_service_manager )
	lvm_stateful_partition? ( chromeos-base/lvmd )
"

################################################################################
#
# 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
	net-wireless/crda
	sys-apps/dbus
	sys-apps/flashrom
	sys-apps/iproute2
	sys-apps/rootdev
	!systemd? ( sys-apps/upstart )
	sys-fs/e2fsprogs
	virtual/assets
	virtual/cheets
	virtual/udev
"

# TODO(toolchain): Remove this libxcrypt dep after all packages directly depend
# on it and it is not installed as a system library anymore
CROS_RDEPEND="${CROS_RDEPEND}
	sys-libs/libxcrypt
"

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