Enhanced Script Base Element

Currently in the core of BuildStream there is a BuildElement which is a specialized element for the purpose of implementing various build elements (like autotools, cmake, etc).

All of these elements share the commonality of:

  • staging one or more sources into /buildstream/build
  • running a series of commands defined by the element's accompanied YAML configuration
  • collection of the artifact from /buildstream/install location in the sandbox

This pattern should be repeated for the purpose of deployments, currently we have a quite rigid script element which allows staging multiple artifact dependency chains in different places and running a series of commands allowing one to use one base runtime to operate on another staged artifact & dependencies.

In order to create more kinds of deployment elements we should have a more flexible base scripting element to allow this.

The design of this base scripting element should take into consideration the current usage of the script element for creating a bootable image