| // 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 component represents the set of capabilities required to use the package stack in recovery |
| // mode. |
| { |
| include: [ |
| "inspect/client.shard.cml", |
| "syslog/client.shard.cml", |
| "trace/offer.shard.cml", |
| ], |
| children: [ |
| { |
| name: "pkg-cache", |
| url: "#meta/pkg-cache.cm", |
| }, |
| { |
| name: "pkg-resolver", |
| url: "#meta/pkg-resolver.cm", |
| }, |
| { |
| name: "system-updater", |
| url: "#meta/system-updater.cm", |
| }, |
| { |
| // TODO(https://fxbug.dev/42144087) investigate how isolated-ota should work with commits. GC is |
| // traditionally blocked on the previous updated being committed. Here, we relax this |
| // restriction because it does not make sense for recovery, and use a fake |
| // system-update-committer that always reports the system is committed. |
| name: "fake-system-update-committer", |
| url: "#meta/fake-system-update-committer.cm", |
| }, |
| ], |
| offer: [ |
| // Routes from the parent to children. All are required if you are a |
| // client of this component! |
| { |
| directory: "blob-exec", |
| from: "parent", |
| to: "#pkg-cache", |
| rights: [ |
| "execute", |
| "rw*", |
| ], |
| }, |
| { |
| // Needed for passing repository configs to pkg-resolver |
| directory: "config-data", |
| from: "parent", |
| to: "#pkg-resolver", |
| rights: [ "r*" ], |
| }, |
| { |
| // Needed for handing pkg-resolver the appropriate SSL certificates for network traffic |
| directory: "root-ssl-certificates", |
| from: "parent", |
| to: "#pkg-resolver", |
| rights: [ "r*" ], |
| }, |
| { |
| // Needed so system-updater knows what board to install for. |
| directory: "build-info", |
| from: "parent", |
| to: "#system-updater", |
| rights: [ "r*" ], |
| }, |
| { |
| protocol: [ |
| "fuchsia.logger.LogSink", |
| "fuchsia.metrics.MetricEventLoggerFactory", |
| ], |
| from: "parent", |
| to: [ |
| "#fake-system-update-committer", |
| "#pkg-cache", |
| "#pkg-resolver", |
| "#system-updater", |
| ], |
| }, |
| { |
| protocol: [ "fuchsia.boot.Arguments" ], |
| from: "parent", |
| to: "#pkg-cache", |
| }, |
| { |
| protocol: [ |
| "fuchsia.net.name.Lookup", |
| "fuchsia.posix.socket.Provider", |
| ], |
| from: "parent", |
| to: "#pkg-resolver", |
| }, |
| { |
| protocol: "fuchsia.paver.Paver", |
| from: "parent", |
| to: "#system-updater", |
| }, |
| |
| // Routes between children |
| { |
| protocol: "fuchsia.update.CommitStatusProvider", |
| from: "#fake-system-update-committer", |
| to: "#pkg-cache", |
| }, |
| { |
| protocol: [ "fuchsia.pkg.PackageCache" ], |
| from: "#pkg-cache", |
| to: "#pkg-resolver", |
| }, |
| { |
| protocol: [ |
| "fuchsia.pkg.PackageCache", |
| "fuchsia.pkg.RetainedPackages", |
| "fuchsia.space.Manager", |
| ], |
| from: "#pkg-cache", |
| to: "#system-updater", |
| }, |
| { |
| protocol: "fuchsia.pkg.PackageResolver-ota", |
| from: "#pkg-resolver", |
| as: "fuchsia.pkg.PackageResolver", |
| to: "#system-updater", |
| }, |
| ], |
| expose: [ |
| { |
| protocol: [ "fuchsia.update.installer.Installer" ], |
| from: "#system-updater", |
| to: "parent", |
| }, |
| ], |
| } |