Hi all,
I'm involved in a new project to produce some OS images for unusual
targets, and since the Baserock reference systems are great for this
I'd like to reuse them. There's a requirement to use BuildStream on our
side, so following on from Tristan's proposal of adopting BuildStream
in Baserock[1] I started looking at converting the whole definitions
repo.
A while back Tristan wrote the conversion tool defs2bst[2] which seems
to work well. And Javier already set up a GitLab CI pipeline[3] to
convert the gnome-system to BuildStream then try to build it. So far
this has turned up some bugs but is a bit out of date.
What I have done is a manual conversion in a branch of
definitions.git, which is here:
<
https://gitlab.com/baserock/definitions/tree/sam/buildstream>
The defs2bst script works well for nearly everything but you can
see in the commit log that a few manual fixes were needed.
The old Baserock definitions are moved to `old/`, and converted
BuildStream defintions are in `elements/`. The converted systems
are in the elements/systems dir.
Not all systems are converted and probably never will be. If I've missed
one that you care about please reply here.
Only the x86_64 conversions are done, and I think all the
platform-specific stuff needs to be manually converted in order to
reduce duplication and take advantage of BuildStream's 'variants'
feature. I've not looked into how best to do this yet.
The devel-system is the only one that has a deployment target,
`systems/devel-system-image.bst`. This is based on what Tristan did
for the gnome-system conversion. The BuildStream project is currently
working on integrating support for image deployments into the tool
itself, get involved there if you're interested in deploying images.
The `convert` script in the top directory can be used to redo the
conversion, it will need some tweaking but this makes it possible to
keep up with changes on the 'master' branch of definitions.git. Keep an
eye on `git diff` before committing updates to avoid un-doing the
various manual fixes.
I don't know if I'll be driving this migration further or not at this
point. I do hope that we can keep moving this forward though. I'm
interested in hearing views from people who are actively using the
Baserock definitions.git repo about this migration and what blockers you
see to merging this branch to 'master' and switching to BuildStream as
a build tool.
Thanks
Sam
[1]
https://listmaster.pepperfish.net/pipermail/baserock-dev-baserock.org/201...
[2]
https://gitlab.com/BuildStream/defs2bst/
[3]
https://gitlab.com/baserock/definitions/blob/jjardon/bst2/.gitlab-ci.yml
--
Sam Thursfield, Codethink Ltd.
Office telephone: +44 161 236 5575