Fuchsia is a modern open source operating system developed by Google.
Pigweed does not use the Fuchsia operating system itself, but uses some low-level libraries developed for it.
Parts of two Fuchsia libraries are used in Pigweed:
Unlike other third party libraries used by Pigweed, some Fuchsia source code is included in tree. A few factors drove this decision:
Core Pigweed features like
pw::Functiondepend on these Fuchsia libraries. Including the source in-tree avoids having Pigweed require an an external repository.
The Fuchsia repository is too large to require downstream projects to clone.
If Fuchsia moves
fit to separate repositories, the
decision to include Fuchsia code in tree may be reconsidered.
To synchronize with the Fuchsia repository, run the
copybara tool with the
That creates a Gerrit change with updates from the Fuchsia repo, if any.
Files are synced from Fuchsia repository to their original paths under the
third_party/fuchsia/repo directory in Pigweed. The Copybara script applies
patches to adapt the sources for use in Pigweed. For example,
__builtin_abort is replaced with