pre-RFC: Rebasing Silverblue on CoreOS

Hi, in the background I’ve slowly been working on

The idea here is that basically CoreOS becomes the base of Silverblue - and ideally IoT as well. More components besides rpm-ostree are shared, including Ignition and zincati (for IoT and maybe Silverblue).

There’s a whole lot of implications to this of course; some things get worse, others get much better. One of those things that IMO is much better is how much easier it is to do custom builds (both for testing fixes and truly custom forks) with
which is opinionated tooling that works with rpm-ostree and also knows how to build and test disk images (the most relevant of which is a Live ISO).

Just putting this out there now for more visibility and discussion. I am actually using this locally from local builds; I haven’t uploaded pre-built disk images online yet, though it wouldn’t be hard to do.


In the specific what will/might get worse?

Are there some “for dummies” instructions to test out FCOSB composing?

I see has instructions to build a Live Image, but how does one compose the tree?

Hello @walters,
Thanks for putting this out for the community to do some testing with. It is relevant to many who have been asking for a live image of SB for some time. I forked your repo about 7 months ago and see that it has a number of changes since then, I think I’m roughly 8 commits behind. It’s time I updated my fork and make a live image for starters.

Glad you posted this. I was not aware of this. To add to the discussion, I see this will support many more desktop environment option, which is a good thing. I am also concerned about the comment that some things will get worse; whatever that may mean. However, I see the the long term benefits that this approach could provide and I am confident rough edges will get worked out eventually. How far along is the build tools to support this? Are you forking COSA to do that? What is the long term vision and time frame expectations? I would love to see a build service provided by Fedora or Red Hat in the future to produce custom images based on user forks of this repo.

I see has instructions to build a Live Image, but how does one compose the tree?

Just cosa build will do both the ostree commit and a qemu image. (The qemu focus is a CoreOS inheritance; it’s used by cosa run which conveniently spawns a transient VM. There’s some small other details here that become relevant like Workstation/SB don’t enable sshd by default and wouldn’t have a core user)

1 Like

While I’m not directly concerned about this, I am indirectly concerned because the KDE SIG is looking to make a Kinoite flavor (with @Siosm), and a rebase to use cosa instead of the standard stack is a bit disruptive toward that.

Additionally, I’ve heard rumblings that cosa will also be replaced in the next 6 months, and I don’t particularly think it’s a good idea that we should rebase Silverblue onto the CoreOS build toolchain when we’ll be ripping everything out again in a few months.

I don’t think this would be an issue. cosa is mostly a wrapper around common rpm-ostree workflow and should help us de-duplicate the work to create variants. Rebasing on Fedora CoreOS also has other advantages such as benefiting directly from the development and maintenance work done on FCOS.

I work daily with cosa and have not heard of that. Could you explain where this comes from?

For this to be doable on Silverblue, would I need to layer qemu-kvm+libvirt-clients+bridge-utils+libvirt-deamon-system+virt-manager?

No, when running inside a container, cosa comes with it’s own QEMU so no need for anything specific on the host.

Well I can run the container, and use commands like fetch, but I get the error of /dev/kvm not existing.

You need to have hardware support for KVM for some operations done by cosa but no need for libvirt, etc.

Thanks @Siosm,
I must just be doing something wrong. My hardware is fully capable, I have VM’s setup for some of my specific MS needs and they always work fine using virt-manager. I’ll work through it, I’m sure.
Nov 27, 2020. Can get the tools to work, but cosa still errors with …
'Error: host directory cannot be empty

  • rc=125
  • set +x

    Now, I am thinking I am missing a step, any thoughts?