Introduction

bitbake-setup has been around since YP 5.3 (Whinlatter). Although it is still under development, the goal is to have a tool to automate the initialization and management of Yocto Project build environments, and of course, a way to better share local configurations.

Let's see the main changes that bitbake-setup will bring to Yocto Project 6.0 (Wrynose).

New Scripts

Basically:

A New Configuration File (.conf.json)

This file is a template used to describe the setup and available options. It lists the sources and provides a template for the available configuration. The parts of this document are:

Fragments

We already have the concept of fragments to configure kernel, U-Boot, and BusyBox, for example. Now, with bitbake-setup, we can group BitBake configurations into fragments that can be enabled or disabled.

I personally like the idea of fragments as we can group variable settings into one fragment and then enable or disable it as needed. I'm sure there will be confusion about what a fragment is versus what a distro is, but after getting used to the new concepts it will become clearer.

Suggested New Directory Structure and Configuration Organization

The new workspace layout proposed by the Yocto Project through the use of bitbake-setup is as follows:

Top Directory
├── site.conf
├── Setup 1
│   ├── build/
│   ├── config/
│   └── layers/
└── Setup 2
    ├── build/
    ├── config/
    └── layers/

After running bitbake-setup init with default choices, the created layout looks like: