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@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to