Yocto-Doky is a GitLab project for the Doky Yocto distribution. Doky intends to be suitable for projects with proprietary code, but which still wish to follow their open source obligations.

Origin and Direction

Initially Based on Yocto’s Poky Reference Distribution

Doky came into existence using the information in the Yocto’s Poky README. It does not use code from meta-poky. It also does not include the Yocto Documentation.

Differences

Doky makes different choices than Poky

  • Removes the use of ‘viral’ licenses - those which would require the releasing of propretary code simply by being part of the same firmware system as the ‘viral’ licenses (this includes the GPL-3.0 and friends).
    • Uses busybox rather than bash and various system utilities. Toybox is being considered as an alternative for this purpose.
    • Uses xterm rather than matchbox-terminal (which depends on vte which is a *GPLv3 component).
    • Use clang/llvm as the system C compiler and runtime.
  • Based on the RaspberryPi BSP meta-layer rather than having it’s own generic x64 meta-layer.
  • Includes layers on which it depends as Git submodules rather than included in-tree.
  • Depend on additional layers compared to Poky (e.g. meta-clang)
  • Uses source linting as the beginnings of commit-level CI.
  • TODO: complete the list

Direction

In future Doky will continue to be updated, as appropriate for use in a production firmware (currently it is purely experimental).

Integration layer

Based on the Yocto Project and OpenEmbedded

As an integration layer Doky consists of several upstream projects such as BitBake, OpenEmbedded-Core layer, CLang Layer layer, and Raspberry Pi BSP layer which have configuration and hardware support components. These components are all part of the Yocto Project and OpenEmbedded ecosystems.

The Yocto Project has extensive documentation about the system including a reference manual which can be found at https://docs.yoctoproject.org/

OpenEmbedded is the build architecture used by Poky and the Yocto project. For information about OpenEmbedded, see the OpenEmbedded website.

Contains additional support layers

  1. TODO: Add repo and link (currently baked into the main repo)
  2. TODO: Add repo and link for tweaked BSP (likewise)

Additional out-of-tree layers may be added

E.g. ../meta-proprietary can be a directory containing a layer which is not to be published publicly, and added via bitbake-layers add-layer ../meta-proprietary.

Miscellany

Doky is pronounced Doh-key, unlike Poky, which is pronounced Paw-key, because the original author’s brain always wants to call Poky Poke-y.

Authors and acknowledgment

Doky is currently authored by Daniel F. Dickinson, with much code from the Yocto Project and OpenEmbedded

License

Doky itself is licensed under the Apache-2.0 license. Other project’s licenses are indicated in their respective folders.