blob: c247e33140e912875035cb88efbee86e6dd1ecd9 [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.
"""Assembly related Providers."""
load("@rules_fuchsia//fuchsia/private:providers.bzl", _FuchsiaProductBundleInfo = "FuchsiaProductBundleInfo")
FuchsiaAssembledPackageInfo = provider(
"Packages that can be included into a product. It consists of the package and the corresponding config data.",
fields = {
"package": "The base package",
"configs": "A list of configs that is attached to packages",
},
)
FuchsiaConfigData = provider(
"The config data which is used in assembly.",
fields = {
"source": "Config file on host",
"destination": "A String indicating the path to find the file in the package on the target",
},
)
FuchsiaIdentityConfigInfo = provider(
doc = "Platform configuration options for the identity area.",
fields = {
"password_pinweaver": "Whether the pinweaver protocol should be enabled in `password_authenticator` on supported boards. Pinweaver will always be disabled if the board does not support the protocol.",
},
)
FuchsiaInputConfigInfo = provider(
doc = "Platform configuration options for the input area.",
fields = {
"idle_threshold_minutes": "How much time has passed since the last user input activity for the system to become idle.",
"supported_input_devices": "The relevant input device bindings from which to install appropriate input handlers.",
},
)
FuchsiaDevelopmentSupportConfigInfo = provider(
doc = "Platform configuration options for the development_support area.",
fields = {
"enabled": "A bool value whether development_support is enabled",
},
)
FuchsiaStarnixConfigInfo = provider(
doc = "Platform starnix options for the starnix area.",
fields = {
"enabled": "Whether starnix support should be included",
},
)
FuchsiaConnectivityConfigInfo = provider(
doc = "Platform configuration options for the connectivity area.",
fields = {
"wlan": "WLAN sub configuration",
},
)
FuchsiaConnectivityWlanConfigInfo = provider(
doc = "Platform configuration options for the connectivity area wlan field.",
fields = {
"legacy_privacy_support": "A bool value for legacy_privacy_support of wlan",
"include_wlan_aibs": "A bool value for include_wlan_aibs of wlan",
},
)
FuchsiaDiagnosticsConfigInfo = provider(
doc = "Platform configuration options for the diagnostics area.",
fields = {
"archivist": "Archivist configuration selection",
},
)
FuchsiaProductConfigInfo = provider(
doc = "A product-info used to containing the product_config.json and deps.",
fields = {
"product_config": "The JSON product configuration file.",
},
)
FuchsiaBoardConfigInfo = provider(
doc = "A board-info used to containing the board_config.json and deps.",
fields = {
"board_config": "The JSON board configuration file.",
},
)
FuchsiaAssemblyConfigInfo = provider(
doc = "Private provider that includes a single JSON configuration file.",
fields = {
"config": "JSON configuration file",
},
)
FuchsiaProductAssemblyBundleInfo = provider(
doc = """
A bundle of files used by product assembly.
This should only be provided by the single exported target of a
fuchsia_product_assembly_bundle repository.
""",
fields = {
"dir": "Path to the bundle directory",
"files": "All files contained in the bundle",
},
)
FuchsiaZbiInfo = provider(
doc = """An Image info for Zbi.""",
fields = {
"zbi_name": "Name of zbi image appeared in image configuration",
"compression": "Zbi compression format",
"post_processing_script": "Post procesing script",
"post_processing_args": "Args needed by post processing script",
},
)
FuchsiaVbmetaInfo = provider(
doc = """An Image info for Vbmeta.""",
fields = {
"vbmeta_name": "Name of vbmeta image appeared in image configuration",
"key": "the key for signing VBMeta.",
"key_metadata": "key metadata to add to the VBMeta.",
},
)
FuchsiaFsBlobFsInfo = provider(
doc = """A BlobFs filesystem.""",
fields = {
"blobfs_name": "Name of filesystem",
"blobfs_info": "Json of Blob FS information",
},
)
FuchsiaFsMinFsInfo = provider(
doc = """A MinFs filesystem.""",
fields = {
"minfs_name": "Name of filesystem",
"minfs_info": "Json of Min FS information",
},
)
FuchsiaFsEmptyDataInfo = provider(
doc = """An Empty MinFs filesystem.""",
fields = {
"empty_data_name": "Name of filesystem",
},
)
FuchsiaFsEmptyAccountInfo = provider(
doc = """An Empty Account filesystem.""",
fields = {
"empty_account_name": "Name of filesystem",
},
)
FuchsiaFsReservedInfo = provider(
doc = """A Reserved filesystem.""",
fields = {
"reserved_name": "Name of filesystem",
"reserved_info": "Json of Reserved FS information",
},
)
FuchsiaFVMStandardInfo = provider(
doc = "A fvm with no modification.",
fields = {
"fvm_standard_name": "Name of fvm file",
"filesystems": "Filesystems to use",
"fvm_info": "Json of FVM information",
},
)
FuchsiaFVMSparseInfo = provider(
doc = "A fvm that is compressed sparse.",
fields = {
"fvm_sparse_name": "Name of fvm file",
"filesystems": "Filesystems to use",
"fvm_info": "Json of FVM information",
},
)
FuchsiaFVMNandInfo = provider(
doc = "A FVM prepared for a Nand partition.",
fields = {
"fvm_nand_name": "Name of fvm file",
"filesystems": "Filesystems to use",
"fvm_info": "Json of FVM information",
},
)
FuchsiaProductImageInfo = provider(
doc = "Info needed to pave a Fuchsia image",
fields = {
"images_out": "images out directory",
},
)
FuchsiaProductBundleInfo = _FuchsiaProductBundleInfo
FuchsiaPartitionInfo = provider(
doc = "Mapping of images to partitions.",
fields = {
"partition": "partition in dict",
},
)
FuchsiaScrutinyConfigInfo = provider(
doc = "A set of scrutiny configs.",
fields = {
"bootfs_files": "Set of files expected in bootfs",
"bootfs_packages": "Set of packages expected in bootfs",
"kernel_cmdline": "Set of cmdline args expected to be passed to the kernel",
"component_tree_config": "Tree of expected component routes",
"routes_config_golden": "Config file for route resources validation",
"component_resolver_allowlist": "Allowlist of components that can be resolved using privileged component resolvers",
"component_route_exceptions": "Allowlist of all capability routes that are exempt from route checking",
"base_packages": "Set of base packages expected in the fvm",
"structured_config_policy": "File describing the policy of structured config",
},
)