Note: This checklist may not be fully exhaustive and I’ll likely update it as needed. Feel free to send me suggestions.
Making your first image from the base image
First, you should figure out what packages should be installed in your image. To do that, you can start from the base container image that already includes the packages common to all variants. You can then add packages from the comps group corresponding to your desktop in Fedora.
At this point, you should consider which apps are going to be shipped by default, included in the image, and which ones are going to be installed by default as Flatpaks.
Take a look at the Universal Blue project for examples on how to do container based variants.
Creating rpm-ostree manifests
Once you’ve got something working, reproduce that in the workstation-ostree-config repo using the comps group, the exclude list and the filter and sync script. Look at other variants for example.
Always start from Rawhide, or use the latest stable Fedora release to test but submit the PR to Rawhide. I’ll likely review it then.
Experimental CI in GitLab
Once the PR is merged, we’ll enable test builds in the unofficial CI hosted on GitLab.com in the fedora/ostree namespace.
When things are in good shape, you can move to the next step!
Making it official
Then, let’s make it official!
Now you need to submit a change request to Fedora to request this new variant to be added to the official Fedora composes. Follow the steps to make a Fedora Change Request.
You can use the last three change requests as example:
You will have to pick a name for your variant and request legal review for it. You can not reuse existing names or call your variant “Silverblue FooBar”.
Once your change as been accepted, you can move to the next steps.
You then have to create a new sub package as part of
fedora-release to give your new edition a distinctive identity in
Once the new sub package is merged and built, you can add it to the rpm-ostree manifests.
To get official builds of your variant, you will have to add the confirmation to enable them in Rawhide. It’s mostly copy pasting and tweaking the existing configuration for other variants. See:
- Look for “ostree” in the
- This is also where you configure which Flatpaks are included in the installer ISO and thus installed by default.
- Add your variants to the following files:
You’ll want to make sure that the apps that you want to install by default as Flatpaks are available as Fedora Flatpaks. Reach out to the Flatpak SIG if you need help. You can not use Flatpaks from Flathub. See the Fedora Flatpak and SIG FAQ.
Then you’ll have to make a docs repo. You can start from the Silverblue one and then make a PR to the docs website repo (start with
prod once released) to have it built and hosted on the Fedora docs site.
Finally, you can add a page for your variant to the new Fedora website. Use the Silverblue, Kinoite and Sericea pages as example.
Happy composing and rebasing!