[roll] Roll fuchsia [sdk][product_bundle]: canonicalize zip paths

The canonicalization code for PBv2 for zip files would create the wrong
path if a relative path on disk was a sibling to it.

Consider the pb.zip
```
pb.zip
-> product_bundle
  -> product-bundle.json
```

Which is in ~/work/ and is a sibling to a product_bundle directory like
so:

```
~/work
-> pb.zip
-> product_bundle
  -> product-bundle.json
  -> system_a
    -> fuchsia.zbi
```

If a system_a record for in the pb.zip's product-bundle.json indicated
the zbi could be found at product_bundle/system_a/fuchsia.zbi the
canonicalization path would expand that to
`~/work/product_bundle/system_a/fuchsia.zbi`.

Which may be an image entirely different form the one in the pb.zip.

This CL introduces the Canonicalizer trait which allows callers to the
ProductBundle::V2 to provide their own canonicalization methods.

This introduces a ZipCanonicalizer as well, which does no filesystem
checks for the canonicalization of paths.

Original-Bug: b/322512730
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/981547
Original-Revision: 386814289fbccf57aef333ac3576e8ef3825726a
GitOrigin-RevId: a5f83114dbc8abb6d2236169a135e6afb39a42b8
Change-Id: I59e37d5ebd7476a298c0c93fcbf7b4c4d497b03a
1 file changed
tree: ef17f719aa214c5cd574313e23263c2428bda5bb
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. 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.