[roll] Roll fuchsia [ffx component explore] Add tools as trampolines

Adds `--tool` package binaries as `#!resolve` trampolines, isolating
their dependent libraries and preventing collisions.

To enable the `#!resolve` trampolines, this CL also adds a
VmexResource capability to mark the added files as executable and a
process resolver capability to run them. `ffx component explore` is
only available on eng builds.

The binaries are located on a path like
  .dash/tools/<package>/<filename>
which avoids name collisions among packages.

The PATH environment variable is constructed as the packages are
read, so binaries can be run using just their file name. The path
preference is in the same order as the command line arguments.

Dynamically constructing the PATH solves fxb/114885.

The change works with the `-c` command line argument, so tool
binaries can be run directly.

Example:
$ ffx component explore /core/stash -c hello_world_cpp --tools fuchsia-pkg://fuchsia.com/hello-world
Moniker: /core/stash
Hello, World!

SKIP_BINARY_SIZE_CHECK=Approved by gopichitluri@

Original-Bug: 104303,114885
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/759022
Size-Review: Gopi Krishna Chitluri <gopichitluri@google.com>
Original-Revision: ce04eabedd75ab589f8379b420e492b352e4a4d0
GitOrigin-RevId: 7b8ef20dff476a1d098b835a992d5dbfe1a5e8da
Change-Id: Ib8e9983583f3abd44fb9f2bfc6a50a98a6afaf19
1 file changed
tree: 7b0336f862999bd0bed5cd44c942121777a0d537
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
  13. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.