On Wed, Jan 18, 2023 at 4:07 AM John Reiser <jreiser@xxxxxxxxxxxx> wrote: > > On 1/17/23 14:37, Björn Persson wrote: > > > So as things stand, these rebuilds need to be done by a human who knows > > the dependency graph. > > Requiring "a human who knows the dependency graph" is *severely* broken. > There should be a shell script which computes an acceptable order from the > old installed version, and outputs the order for examination and modification. > Probably the script involves ldd, "readelf --dynamic", and tsort. > For new dependencies the script may need to be re-run during the builds. I'm afraid, as of today, that can't be generalized without human intervention. This may work with difficulty for binary packages, but even then not in the general case. Take alone circular dependencies that are due to documentation being generated, but that would be the simplest case. We are trying to solve this kind of problem in the mass pre-builder project [1], if we succeed to do so, we have hope that the code base could be used as a basis for all use cases that involve mass building (whether it is Fedora mass rebuild or CI building reverse dependencies for stability QE). Any help that would improve the code base and help us move towards this is more than welcome. In the current state, the mass prebuilder may try to calculate building priorities based on the information collected out of the dependency graph, but this has major flows: 1) Assumptions are made in order to break the circular dependencies that are unlikely to be generally accurate 2) The calculation is computationally expensive (seems subjectively exponential), and can't be realistically used for more than 2 or 3 thousand packages. (e.g. GCC and its 10k reverse dependencies is a no-go) For some use cases, as of now it looks more realistic to use brute force (try to build until it works, or a general failure is subjectively declared) unless someone with proper knowledge specifies a meaningful list. [1] https://gitlab.com/fedora/packager-tools/mass-prebuild _______________________________________________ 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