This is proof of concept project to build a KDE based version of Fedora Silverblue. I called it Kinoite because it had to start with a ‘K’ and Kinoite is a blue mineral.
The resulting desktop only has Firefox and Konsole as main applications installed by default (the minimum for easy Flatpak/Flathub usage).
This has only been tested inside a virtual machine for now, so use at your own risk!
Instructions to try it out on an already installed Fedora Silverblue system:
Unfortunately, the current configuration layout makes it hard to switch base packages without duplicating the entire config tree. Thus the Kinoite config is simply a copy of the Silverblue one and is not integrated at all.
Thanks a lot to all of you! The Fedora & Silverblue projects are looking great!
Thanks for working on this! Supporting something like this was actually part of the rpm-ostree design from the very start; especially now that package layering works as well as it does, being able to rpm-ostree rebase between the different base images I think makes so much more sense than the “sea of packages” approach.
Do you want to try factoring out something like “base desktop bits” in the workstation-ostree-config repo?
As the base package lists are currently based on Fedora comps groups, I had to make various changes to them to make my variant. Should I submit them as pull request to the comps pagure repo or is there a more formal process to make changes to them?
@walters I also noticed that rpm-ostree/ostree server side operations (install, compose) are single core CPU bound as rpm-ostree seems to be single threaded. Profiling using perf quickly pointed out zlib as the main culprit for most time spent during the compose step. Using a parallel algorithm like lz4, zstd or snappy might significantly improve performance without losing on the compressed size side.
@walters I reworked most of the treefiles in the workstation-ostree-config repo to split out the list of packages common to all desktop variants. I pushed a new version of the changes required to support multiple desktop variants at https://pagure.io/fork/siosm/workstation-ostree-config (f-28 branch). I dropped the changes I made to the Fedora comps for now.
Moreover, there is now an additional variant to try out, with an XFCE desktop!
And finally, I pushed all the trees I built on my server, thus one may try them out those using:
$ sudo rpm-ostree rebase kinoite:fedora/28/x86_64/silverblue # GNOME version
$ sudo rpm-ostree rebase kinoite:fedora/28/x86_64/kinoite # KDE version
$ sudo rpm-ostree rebase kinoite:fedora/28/x86_64/fedora-xfce # XFCE version
Again, this has only been tested inside a virtual machine and not on a real system. But the desktops looks good and are properly working as far as I have tested.
One thing I’d say related to all of this is that I’d like for Silverblue to use rojig mode by default. I’ve been doing some prep work around that that I can land after we merge your PR - I think it will make it substantially less maintenance burden for rel-eng to have more variants.
And if you have a bit of time to play with rojig it should make it easier for you (or others) to host derivatives, testing builds etc. as you can just have people reuse the base packages from the primary repo mirrors. See the spec file in fedora-atomic, then the bit "ex-jigdo-spec": "fedora-atomic-host.spec", in the treefile, and the rpm-ostree compose tree --ex-rojig-output-set option.
But that said I’d like to soon add this to the Silverblue default configs and that will make it all more obvious how it works. (And make it not-experimental fairly soon)
OK, I merged this to master and made some more fixups on top. Whether we add these variants to releng is another story, but at least it’s easier for people to build locally. We’re going to have to do some comps pruning to make this more sustainable. Thanks for the patches, let me know if master works well for you, and keep the patches coming!
As far as I know there is no official support. I will update & upload a fresh version on my server soon (no promise), and I will try to automate it. Otherwise, you should be able to build your own using the instructions from the first post.
I’ve (finally!) updated my mirror (now comes with branches for 29, 30 and rawhide) and I’ve added a LXQt variant (see PRs: 138, 139, 140).
Again, this has only been tested inside a virtual machine for now, so use at your own risk! Moreover this time, I pushed 12 refs (3 versions x 4 variants) so I have not tested them all! (I think rawhide is broken right now).
I’ve automated most of the work so I should be able to produce updates regularly. I am still learning the details of ostree management thus bare with me while I sort out version history handling and naming logic.