On Tue, 21 Jan 2025 at 13:13, Stephen Gallagher <sgallagh@xxxxxxxxxx> wrote:
Well, first of all, maintaining such a tiered list manually is a realistic impossibility, given the number of packages in Fedora. In Fedora ELN we have a *very* tiny list of things we build exceptionally: all of them are in the build toolchain.Second, when doing a mass-rebuild, ordering shouldn't generally be (as much of) a problem. The main reason that package ordering is necessary is for dependencies. In the case of a mass-rebuild, in nearly all cases you should be able to assume that if the package built previously, then it should be able to rebuild with the packages currently in the buildroot. Now, this isn't always true because sometimes a newer version of a build dependency introduces a regression or other compatibility issue, but in that case there's nothing that can be done by reordering the build: you need to patch one or the other to fix the incompatibility. That's one of the main purposes of running a mass rebuild in the first place: it's the primary warning system we have for discovering that a package that built previously has stopped being buildable in the current environment.
I think the reason people think that the lack of ordering is that it really relies on various "toolchains" having gotten all their changes done before the mass rebuild happens. If something were to cause a new compiler or static library to get built in the mass rebuild, then every package built will be using the old one BUT every package built after the mass merge would be built with the new tools. Or if the new compiler lands right before the new build, various code may not compile because most programmers were not aware that the defaults now needed to use a newer standard and various code is now 'broken'.
When things like the above happen in a mass rebuild, we get the 'we should have an ordered rebuild' thread going. Having been someone who proposed this in the past, it seems like a quick fix in which we use 'computers' to do the messy parts and we won't have to worry about things. The actual implementation is another matter and quickly explodes into complexity where you keep throwing duct tape to try and get that last 90% solved but find each fix broke some other 80%. I really don't think that outside of a *cough* core *cough* set of packages it is possible to actually accomplish without full time people constantly reworking the graphs every couple of weeks ( I am looking at you go but AI python is not much better).
Anyway.. at this point I don't think you could make 'build-order' work in Fedora without a deep change in culture, packaging system and developer mindset.
Stephen Smoogen, Red Hat Automotive
Let us be kind to one another, for most of us are fighting a hard battle. -- Ian MacClaren-- _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue