# 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

zircon_enable_kernel_debugging_features = false
zircon_enable_netsvc_debugging_features = false

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

base_package_labels += [
  "//build/info:build-info",
  "//garnet/bin/device_settings:device_settings_manager",
  "//garnet/bin/http",
  "//garnet/bin/log_listener:log_listener",
  "//garnet/bin/log_listener:log_listener_shell",
  "//garnet/bin/network_time_service",
  "//garnet/bin/pkg_cache",
  "//garnet/bin/pkg_cache:config",
  "//garnet/bin/pkg_ctl",
  "//garnet/bin/pkg_resolver",
  "//garnet/bin/scpi",
  "//garnet/bin/setui:setui_service",
  "//garnet/bin/sshd-host",
  "//garnet/bin/sshd-host:config",
  "//garnet/bin/stash:stash",
  "//garnet/bin/stash_ctl:stash_ctl",
  "//garnet/bin/sysmgr",
  "//garnet/bin/sysmgr:network_config",
  "//garnet/bin/sysmgr:services_config",
  "//garnet/bin/system-update-checker",
  "//garnet/bin/system-update-checker:system-update-checker-config",
  "//garnet/bin/thermd",
  "//garnet/bin/thermd:config",
  "//garnet/bin/timezone",
  "//garnet/go/src/amber",
  "//garnet/go/src/amber:config",
  "//garnet/go/src/amber:pkgfs",
  "//garnet/lib/root_ssl_certificates",
  "//src/diagnostics/archivist:with_default_config",
  "//src/cobalt/bin/app:cobalt",
  "//src/cobalt/bin/system-metrics:cobalt_system_metrics",
  "//src/connectivity/bluetooth:core",
  "//src/connectivity/network/mdns/bundles:config",
  "//src/connectivity/network/mdns/bundles:services",
  "//src/connectivity/network/net-cli",
  "//src/connectivity/network/netcfg",
  "//src/connectivity/network/netcfg:config",
  "//src/connectivity/network/netcfg:filter_config",
  "//src/connectivity/network/netstack",
  "//src/connectivity/wlan:service",
  "//src/developer/exception_broker",
  "//src/developer/feedback/boot_log_checker",
  "//src/developer/feedback/boot_log_checker:config",
  "//src/developer/feedback/bugreport",
  "//src/developer/feedback/crashpad_agent",
  "//src/developer/feedback/feedback_agent",
  "//src/diagnostics/archivist",
  "//src/identity/bin:core",
  "//src/recovery/factory_reset",
  "//src/sys/appmgr",
  "//src/sys/appmgr:appmgr_global_data_allowlist",
  "//src/sys/appmgr:appmgr_scheme_config",
  "//src/sys/timekeeper",
  "//third_party/openssh-portable/fuchsia/developer-keys:ssh_config",
]

cache_package_labels += []

universe_package_labels += [ "//bundles:tools" ]
