Dne 18. 01. 25 v 11:01 dop. Mattia Verga via devel napsal(a):
I think some of the build failures are due to building things out of
sequence.
I agree with Fabio in this thread, that it is (should not be) the case.
The optimal solution would be to have some script that periodically
creates a tree of buildrequires dependency for all Fedora packages...
but that would require some work. So, I was just thinking, what about to
set up a simple repository where we put some text files like:
As one of the Mock developer, I have seen several people trying to create script that build-order packages. All of them
failed. Including me.
There are lots of traps:
- Some dependencies are generated only during the build E.g., https://fedoraproject.org/wiki/Changes/DynamicBuildRequires
- Some **names** of packages are generated only during the build. E.g. SoftwareCollections (not relevant for Fedora itself).
- It is hard to parse Requires from SRC.RPM because of %if condition and other macros. Basically you have to that in
correct build environment only.
- it is hard to evaluate the macros. You have to be in the build enviroment of the target platform with all installed
macros as SPEC files heavily used various srpm-macros as deps and even including their own macros as SOURCEX.
- did I mention %bootstrap macro?
The only way that works, is what mockchain does: build the packages in random order. if any fails, repeat while at least
one package in the loop succeed.
My $0.02 - if you try to write something, write is simple and dumb. Not general. Based on the data from last rebuild.
Count with the errors. As it does not be 100% correct. Even if it takes several percent of failures down it will be
improvement.
--
Miroslav Suchy, RHCA
Red Hat, Manager, Packit and CPT, #brno, #fedora-buildsys
--
_______________________________________________
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