blob: 04726b449b9fe1e485a352543edb5e4044cdab70 [file] [log] [blame]
# Copyright 2022 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This `minimal` product is intended to be the "smallest thing we'd still call Fuchsia," which
# implies simplicity, security, updatability and performance. Importantly, that differs from "all
# current products use this feature;" today, that is what the `core` product is for.
# `minimal` will change over time, both by addition and subtraction -- for example, should the
# team ship a mechanism for updating Fuchsia that does not require IP networking, that functionality
# should be moved to a higher-level product definition.
import("//build/security/policies.gni")
import("//products/bringup.gni")
# Minimal, and all products based on it, use the "standard" assembled_system()
# impl in `//build/images/fuchsia`
use_bringup_assembly = false
bootfs_only = false
# Kernel command line arguments.
product_bootfs_labels -=
[ "//products/kernel_cmdline:kernel.oom.behavior--jobkill" ]
product_bootfs_labels += [ "//products/kernel_cmdline:minimal" ]
# Core scheduler profiles.
product_bootfs_labels += [ "//src/sys/core:bootfs" ]
core_realm_package_name = "core-minimal"
core_realm_shards = [
"//src/connectivity/network:virtualization-core-shard",
"//src/developer/build_info:build_info_core_shard",
"//src/developer/forensics:core_shard",
"//src/developer/memory/monitor:memory_monitor_core_shard",
"//src/recovery/factory_reset:factory_reset_core_shard",
"//src/sys/pkg/bin/system-update-checker:system-update-checker-core-shard",
"//src/sys/pkg/bin/system-updater:system-updater-core-shard",
"//src/sys/process-resolver:core_shard",
]
core_realm_restrict_persistent_storage = true
legacy_base_package_labels += [
# TODO(http://fxb/91760): remove once build_info is supported in assembly_input_bundle()
"//build/info:build-info",
# TODO(http://fxb/100451): remove once core_realm shards can be compiled via
"//src/cobalt/bin/app:cobalt",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/cobalt/bin/app:cobalt_registry",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/cobalt/bin/app:config",
# TODO(http://fxb/100451): remove once core_realm shards can be compiled via
"//src/cobalt/bin/system-metrics:cobalt_system_metrics",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/connectivity/network/mdns/bundles:config",
# TODO(http://fxb/100451): remove once core_realm shards can be compiled via
"//src/connectivity/network/mdns/bundles:services",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/connectivity/network/netcfg:config-default",
# TODO(http://fxb/100451): remove once core_realm shards can be compiled via
"//src/connectivity/network",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/core:core_component_id_index",
# TODO(https://fxbug.dev/85821): remove once out-of-tree users no longer
# reference v1 components.
"//src/connectivity/network:network-legacy-deprecated",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/developer/forensics:pkg",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/diagnostics/config/persistence",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/diagnostics/config/triage:triage-detect",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/diagnostics/detect:triage-detect",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/diagnostics/kcounter:diagnostics-kcounter",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/diagnostics/sampler",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/hwinfo:default_product_config",
# TODO(http://fxb/100451): remove once core_realm shards can be compiled via
# assembly_input_bundle()
"//src/recovery/factory_reset",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/activity",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/full-resolver", # This seems needed to run the session manager
# TODO(http://fxb/100451): remove once core_realm shards can be compiled via
"//src/sys/pkg:system-update-checker",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/pkg/bin/system-update-committer:enable_reboot_on_verification_failure",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/process-resolver",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/time/httpsdate_time_source:httpsdate-time-source",
# TODO(http://fxb/103965): remove once we have config_data support in assembly_input_bundle()
"//src/sys/time/timekeeper",
]
product_bootfs_labels += [
# Core products have pkgfs, so include the base resolver.
"//src/sys/base-resolver:bootfs",
]
# Set the SWD policy for core.gni, details can be found in
# //build/security/policies_swd.gni.
policy_labels.swd = "unrestricted"
# Set the update_checker policy for core.gni, details can be found in
# //build/security/policies_swd.gni.
policy_labels.update_checker = "system_update_checker"
# Use the product assembly config file to specify the product configuration.
#
# This should be overridden by products which inherit from minimal.
fuchsia_product_assembly_config_label = "//products/minimal"
fuchsia_product_assembly_config_file = "${root_build_dir}/obj/products/minimal/minimal/product_assembly_config.json"
fuchsia_structured_config_policy =
"//products/minimal/minimal_user_structured_config_policy.json5"