Repo Workspace

All Scenarios OS uses repo to provide full workspace setup that includes all the repositories needed for building All Scenarios OS and developing on top.

The Repo Tool

In order to setup a sources workspace of All Scenarios OS, the git-repo tool is required on the host.

All Scenarios OS provides a patched version of the repo tool for Ubuntu 20.04 at launchpad PPA, for rpm/dnf based distributions at copr, and for openSUSE, Arch and a few other distributions at OBS.

The patches are also available in the tool’s source repository. One can install this tool by following the next steps:

On Ubuntu:

$ sudo add-apt-repository ppa:openharmony/tools
$ sudo apt-get update
$ sudo apt-get install git-repo

On distributions that use dnf:

$ sudo dnf copr enable oniroproject/tools
$ sudo dnf --refresh install repo

On openSUSE or SUSE Enterprise Linux:

$ sudo zypper addrepo
$ sudo zypper in repo

In the zypper addrepo line, replace openSUSE_Tumbleweed with the distribution you’re using - a list of distributions for which the package is available here.

On Arch Linux:

Add our OBS repository to /etc/pacman.conf:

Server =$arch/

Optionally, install the repository’s signing key.

Then install the repo package with pacman.

On OpenMandriva:

OpenMandriva has already added All Scenarios OS version of repo to its official repositories. If you’re on OpenMandriva, simply dnf install repo.

The Manifests

The repo manifest files are part of the main oniro repository and are to be used for configuring a workspace. The project provides a single default.xml manifest file in each of the active branches.

Depending on the specific branch of the above-mentioned repository, that manifest may either allow some projects to follow changes by selecting git branches or pin all projects to a specific git commit revision.

Setting up the Workspace

Once the repo tool is installed, you can initialize and populate the workspace. This will bring in all the needed sources for building All Scenarios OS:

$ mkdir oniroproject; cd oniroproject
$ repo init -u
$ repo sync --no-clone-bundle

Workspace structure

A fully set workspace, will provide a structure similar to:

├── bitbake
├── docs
├── ip-policy
├── meta-openembedded
├── meta-raspberrypi
├── meta-zephyr
├── <various bitbake layers>
├── oe-core
├── oniro

All the bitbake layers are included at the root of the workspace. See for example meta-openembedded above.

It is recommended to use the root of the workspace for the build directories using build- as directory name prefix.