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.
Files are synced from Fuchsia repository to the
directory in Pigweed. The files maintain their original paths under that
directory. The Copybara script applies patches to adapt the sources for use in
Pigweed. For example,
__builtin_abort is replaced with
Code is synchronized between the Fuchsia repository and the Pigweed repository using the third_party/fuchsia/copy.bara.sky Copybara script.
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.
copybara command fails, the Copybara script or patch file may need to
be updated. Try the following:
Ensure that the source files in
copy.bara.skyare up-to-date. Fix the list if any files were renamed in Fuchsia.
Update the patch file Copybara applies by running