[build][tarmaker] Sort entries to make output more deterministic

The 'tarmaker' implementation uses a map[string]string container
that has randomized key order during iteration. This resulted in
non-deterministic outputs every time the tool was run with the
same inputs.

This fixes the issue by sorting the entries by path in the archive
before generating it.

Note that the output is not fully deterministic yet, because the
file timestamps and user/group values are not normalized at the
moment.

Fixed: 81322
Change-Id: Ib57d2efcc589179865b9f06706047fc983663f0c
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/559204
Commit-Queue: David Turner <digit@google.com>
Reviewed-by: David Fang <fangism@google.com>
Reviewed-by: Jay Zhuang <jayzhuang@google.com>
1 file changed
tree: 9aa6fb3b0911d914bc3379bf6c4912a817cd0b5b
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.