|
|
Log in / Subscribe / Register

De Vlieger: The Fedora 45 sausage factory

Fedora contributor Simon de Vlieger has published a blog post with a walkthrough of how the project turns source code and packages into the final release that users install on their systems.

It follows the a package from a packager's git push to a composed release: ISOs, cloud images, container images, and OSTree deployments.

The walkthrough describes how the Fedora 'sausage' is created as of Fedora 45, things change all the time; I hope to have time to update this document every cycle or every few cycles of Fedora releases so there's both history and people can find up to date information.



to post comments

Dependencies

Posted Jul 25, 2026 14:48 UTC (Sat) by magfr (subscriber, #16052) [Link] (3 responses)

I read it and would like to know what happens if something like boost-devel gets an update, will that trigger a rebuild of everything that builddepends on it ?

Dependencies

Posted Jul 25, 2026 15:45 UTC (Sat) by AdamW (subscriber, #48457) [Link] (2 responses)

Not automatically, no. The packager is required to do the build on a side tag and either rebuild the dependencies themself (if they have the privileges) or ask the maintainers to do it (if not). Then a combined update is created from the side tag.

Dependencies

Posted Jul 27, 2026 11:51 UTC (Mon) by cyperpunks (subscriber, #39406) [Link] (1 responses)

The document skips some details for example how to push a multi package update, how a full distro rebuild is done, the role of koschei, how Fedora and Red Hat share bugzilla instance, the use of PR vs direct push to repos and other details, however it covers a lot.

Dependencies

Posted Jul 28, 2026 15:27 UTC (Tue) by AdamW (subscriber, #48457) [Link]

Yeah, if you put in all the details it gets unworkably long and hard to keep track of (this is what's happened every time I've ever tried to write something like this). I think Simon did a great job of providing enough information while keeping it vaguely readable. I guess a good thing would be to add some links to the docs on details like the ones you mentioned.

Deep Down Sausage

Posted Jul 27, 2026 12:36 UTC (Mon) by smoogen (subscriber, #97) [Link]

I want to thank Simon for getting this out. I tried to write up similar documents in the past, but would get tied into multiple minutia which he skipped over in his first run (it does say the document will get updates as time permits). At the last time I wrote this, there were different steps needing to be outlined like:
1. `fedpkg new-sources` puts stuff into the look-aside cache for sources. This would trigger various tooling
2. I think `fedpkg build` had some checks before koji could start a build to determine if the build could be made. The obvious ones were 'is this branch still alive` to some other rules. At one point this was controlled by packagedb and then another tool which was meant for modularity and went away when modularity was removed.
3. There were multiple message buses that would send different messages for either older tools or updated tools. Sometimes messages would jam up for unknown reasons and then unclog in ways which would remind one of the pivotal events in Flushed Away.
4. ... and we get to koji and find out how things go to do different builders depending on the spec and ... it goes on and on.

My last deep exposure to this rats nest of different tools was around 2020, and I think the last 6 years has been a constant but slow 'lets get rid of this finally!' which has cleaned up most of the build infrastructure. [Slow because in general with the various freezes and deadlines to push out multiple composes daily and 2 major releases a year, there isn't a lot of slack time for turning stuff off or putting better replacements in]

The members of Fedora Infrastructure deserve a round of beverages of their choice at any Fedora event.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds