[GSoC 2020]: Need help in writing sed alternative in Python for RSB recipes

Chris Johns chrisj at rtems.org
Sun Aug 23 23:59:27 UTC 2020


On 24/8/20 12:38 am, Heinz Junkes wrote:
> But shouldn't the dependencies for the RTEMS basic installation
> be taken into account. 

Dependences are normally checked by the application, package or tool being
built. In the case of EPICS it should check for a suitable RTEMS, libbsd etc and
configure itself. Given the high quality of the EPICS software I have assumed it
does this. The RSB can perform some checks but these are limited and specific.
If we need to we can add something.

The RSB builds something based on a recipe someone creates. You can collect one
or more of these recipes as a set of things to build. You can collect sets of
things to build as a further set creating a vertical stack of software. A
vertical stack is one of those classic software stack pictures with the hardware
at the bottom, then the drivers and OS, networking, protocols, middle-ware and
an application at the top.

The RSB is a tool in the RTEMS eco-system that can build a vertical stack for a
BSP, for example a beagleboneblack or zedboard or you can break down a vertical
stack to manage and customise any of the steps for your specific needs.

Customising the steps lets a project, company, who ever create a build set that
targets a specific configuration for a selected board or sets of boards. A
company, a large organisation or EPICS can also do this. We call it deployment.

As an open source project we learnt a hard lesson that supporting deployment is
a whole project in itself. Deploy is really important but it became a
distraction from our core focus, the OS and the kernel, consuming more and more
of our resources. As a result we have focused on tools that help users do this.
We also welcome commercial support services to do this for users.

> Maybe I don't understand the purpose of the source-builder.

This could be due to it's role not being explained clearly. I hope this post helps.

> But I thought that the necessary rtems-modules (compiler for architecture, libbsd, etc.) are checked and if something is missing, they are installed?

The depends on the how the vertical stack is put together. The EPICS build set
should concentrate on EPICS. Now Mritunjay has included the RSB's
`rtems-bsp.cfg` BSP configuration file some checks will be made. Once we have
EPICS building as a package we can move to discuss if it becomes part of the
default package set the BSPs build set's build:

https://git.rtems.org/rtems-source-builder/tree/rtems/config/6/rtems-packages.bset

The packages are pull in on the last line of of a BSP build set:

https://git.rtems.org/rtems-source-builder/tree/rtems/config/bsps/xilinx_zynq_zedboard.bset

Integration like this has and still is a long term goal Joel and I have. We
would like EPICS to sit here with NASA's core flight executive so the bar is as
low as possible to have these important software packages build ready to run.

>And when do the tests (epics: make runtests and qemu) come into play? 

This is something we will need to address. The RSB cleans a build environment
once it completes a build. The model is unpack source, patch, configure, build,
install, and then clean. In the case of the RTEMS kernel the test executables
are optionally installed so a user can run them:

https://git.rtems.org/rtems-source-builder/tree/rtems/config/tools/rtems-kernel-common.cfg#n255

How is EPICS used in real systems? Is the production executable built by EPICS
from the EPICS source tree? Is it a set of libraries that get installed and an
application links in these libraries?

Chris


More information about the devel mailing list