# Copyright 2018 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.

import("//products/bringup.gni")

bootfs_only = false

kernel_cmdline_args -= [
  "devmgr.log-to-debuglog=true",
  "kernel.oom.behavior=jobkill",
]
kernel_cmdline_args += [ "kernel.oom.behavior=reboot" ]

meta_package_labels += [
  "//build/images:config-data",
  "//build/images:shell-commands",
  "//src/sys/component_index:component_index",
]

product_system_image_deps = [
  "//src/connectivity/bluetooth:core-system",

  # Test drivers will only be loaded as tests require. They should be removed from production
  # products that have limited storage.
  # TODO(fxbug.dev/3150): Move to a regular package.
  "//src/graphics/lib/magma/tests:test-drivers",
  "//src/sys/pkg:pkgfs-disable-executability-restrictions",
]

base_package_labels += [
  "//build/info:build-info",
  "//garnet/bin/log_listener:log_listener",
  "//garnet/bin/log_listener:log_listener_shell",
  "//src/intl/intl_services:small",
  "//garnet/bin/setui:setui_service",
  "//garnet/bin/sshd-host",
  "//garnet/bin/sshd-host:config",
  "//garnet/bin/sysmgr",
  "//garnet/bin/sysmgr:network_config",
  "//garnet/bin/sysmgr:services_config",
  "//garnet/bin/timezone",
  "//src/cobalt/bin/app:cobalt",
  "//src/cobalt/bin/app:cobalt_registry",
  "//src/cobalt/bin/app:config",
  "//src/cobalt/bin/system-metrics:cobalt_system_metrics",
  "//src/cobalt/bin/system-metrics:config",
  "//src/connectivity/bluetooth:core",
  "//src/connectivity/management/reachability",
  "//src/connectivity/management/reachability:reachability_sysmgr_config",
  "//src/connectivity/management:network_config_default",
  "//src/connectivity/network/mdns/bundles:config",
  "//src/connectivity/network/mdns/bundles:services",
  "//src/connectivity/network:config",
  "//src/connectivity/wlan:packages",
  "//src/connectivity/wlan/config:default",
  "//src/developer/forensics:pkg",
  "//src/developer/forensics:device_id_provider_config",
  "//src/developer/forensics/snapshot:pkg",
  "//src/diagnostics/log-stats:package",
  "//src/hwinfo:hwinfo",
  "//src/hwinfo:default_product_config",
  "//src/media/audio/bundles:audio_config",
  "//src/recovery/factory_reset",
  "//src/security/policy:appmgr_policy_eng",
  "//src/security/root_ssl_certificates",
  "//src/sys/appmgr",
  "//src/sys/appmgr:appmgr_scheme_config",
  "//src/sys/appmgr:core_component_id_index",
  "//src/sys/core",
  "//src/sys/device_settings:device_settings_manager",
  "//src/sys/pkg:core",
  "//src/sys/pkg:system-update-checker",
  "//src/sys/pkg/bin/pkg-resolver:enable_dynamic_configuration",
  "//src/sys/stash:pkg",
  "//src/sys/time/network_time_service:network-time-service",
  "//src/sys/time/httpsdate_time_source:httpsdate-time-source",
  "//src/sys/time/timekeeper",
  "//third_party/openssh-portable/fuchsia/developer-keys:ssh_config",
]

# Tools to control the pkg subsystem are in the base package set by default
# so the software delivery system can be debugged and reconfigured without
# access to the full universe package set.
# Product configurations that lack an accessible shell environment should
# remove these tools from the base package set.
base_package_labels += [ "//src/sys/pkg:tools" ]

# cargo-gnaw is currently part of all build graphs, but it should only
# built by fx tooling
base_package_labels += [ "//tools/cargo-gnaw:install-cargo-gnaw" ]

cache_package_labels += [ "//src/developer/ffx:runtime" ]

product_system_image_deps += [ "//bundles:tools-system" ]
universe_package_labels += [ "//bundles:tools" ]

product_bootfs_labels -=
    [ "//src/sys/component_manager:config_no_pkgresolver_resource" ]

product_bootfs_labels +=
    [ "//src/sys/component_manager:component_manager_config_bootfs_resource" ]
