summaryrefslogtreecommitdiff
path: root/README
blob: 5300b8740c1bab8101a6e89b885ac033b70dadc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Baserock reference system definitions
=====================================

Baserock is a system for developing embedded and appliance Linux systems. For
more information, see <http://wiki.baserock.org>.

These are some example definitions for use with Baserock tooling. You can fork
this repo and develop your own systems directly within it, or use it as a
reference point when developing your own set of definitions.

The systems listed in the elements/systems/ directory are example systems
that build and run at some point. The only ones we can be sure
that still build in current master of definitions are the ones that
we keep building in our ci system; they are listed in
http://git.baserock.org/cgit/baserock/baserock/definitions.git/tree/clusters/ci.morph

BuildStream conversions
-----------------------

It is possible to use BuildStream to build Baserock definitions. The
BuildStream build tool uses a different definitions format, so a conversion
needs to be done first.

Run the `convert` script from the root of the repository and you will be
rewarded with an autogenerated set of .bst files in the elements/ subdirectory
which should be buildable using BuildStream.

To run `convert`, you will need defs2bst and ybd. The following commands, run
from the root of the repository, should be enough to do a conversion:

    git clone https://gitlab.com/BuildStream/defs2bst/
    git clone https://gitlab.com/baserock/ybd/
    ./convert

You can then build e.g. a devel-system using BuildStream:

    bst build systems/devel-system-content.bst

Some things are not supported by the BuildStream conversion tool, and will need
to be manually dealt with.

  * the build-essential stratum isn't automatically converted, the
    elements/gnu-toolchain.bst element is its equivalent and needs to be
    manually kept in sync with any changes

  * .configure and .write extensions need to be rewritten as BuildStream
    elements

  * non-x86_64 systems aren't automatically converted; BuildStream supports
    "arch conditionals" which should make it easier for a single tree of .bst
    files to support many platforms, but it's not easy to automatically achieve
    this in places like linux.bst where Baserock currently has many different
    equivalents