-
Andrei Gherzan authored
This also includes a set of additional small tweaks: 1. formatting and small rewarding 2. explicitly use the kitkstone branch for repo init (this avoids confusion and also saves us from repo edge cases where the default one is ignored) Signed-off-by:
Andrei Gherzan <andrei.gherzan@huawei.com>
Andrei Gherzan authoredThis also includes a set of additional small tweaks: 1. formatting and small rewarding 2. explicitly use the kitkstone branch for repo init (this avoids confusion and also saves us from repo edge cases where the default one is ignored) Signed-off-by:
Andrei Gherzan <andrei.gherzan@huawei.com>
Repo Workspace
|main_project_name| uses repo to provide full workspace setup that includes all the repositories needed for building |main_project_name| and developing on top.
Contents
The Repo Tool
In order to setup a sources workspace of |main_project_name|, the git-repo
tool is
required on the host.
|main_project_name| 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/Debian:
$ sudo apt-get update
$ sudo apt-get install repo
For Debian "contrib" repo should be [enabled](https://wiki.debian.org/SourcesList#Example_sources.list)
The repo package has not been backported to Ubuntu 20.04. PPA repository should be used for this release instead:
On Ubuntu 20.04:
$ sudo add-apt-repository ppa:ostc/ppa
$ 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 https://build.opensuse.org/project/show/home:oniroproject:tools
$ 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
:
[openharmony-tools]
Server = http://download.opensuse.org/repositories/home:/openharmony:/tools/Arch/$arch/
Optionally, install the repository's signing key.
Then install the repo
package with pacman.
On OpenMandriva:
OpenMandriva has already added |main_project_name| 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 |main_project_name|:
$ mkdir oniroproject; cd oniroproject
$ repo init -u https://gitlab.eclipse.org/eclipse/oniro-core/oniro.git -b kirkstone
$ repo sync --no-clone-bundle
Workspace Structure
A fully set workspace, will provide a structure similar to:
./oniroproject/
├── bitbake
├── docs
├── ip-policy
├── meta-openembedded
├── meta-raspberrypi
├── meta-zephyr
├── <various bitbake layers>
├── oe-core
├── oniro
└── README.md
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.