Re: GCC 13 broke 50 packages requiring libgnat-12.so() and libgnarl-12.so()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux