On Wed, Sep 27, 2023 at 11:32 PM Jerry James <loganjerry@xxxxxxxxx> wrote: > > Figuring out whether a given package is a leaf for i386 is a pain in > the neck when done manually. How about we have a computer figure it > out for us? > > Those of you who run regular reports, what would it take to run a > report every week or two that lists every package X such that: > 1. X has no ExcludeArch field that expands to a value including "i386"; > 2. X has no ExclusiveArch field that expands to a value not including "i386"; > and > 3. For every package Y that BuildRequires or Requires X or any of its > subpackages: > A. Y has an ExcludeArch field that expands to a value including "i386"; or > B. Y has an ExclusiveArch field that expands to a value not including "i386". > > Bonus points if the report can take a list of packages to exclude. > That way, over time we can figure out which packages we really want to > build for i386 and drop them from the report. When the report lists 0 > packages, we have reached nirvana. > > I'm willing to put in some work to write such a report, but have no > clue how to get started. If someone can point me in the right > direction, I can take a stab at it. I've thought about doing something like this, but it's more difficult to get right than it looks like at first glance. Problem 1: You cannot rely on repository metadata. Since koji throws away SRPMs from all architectures except for one random one, architecture-specific BuildRequires are not reliably represented in our repository metadata. Problem 2: So long as noarch packages are also randomly scheduled to sometimes be built on i686, all noarch packages also need to be included in the analysis for what things need all their dependencies available on i686. Problem 3: Imagine a situation where a package that is still required on i686 adds a new dependency on a package (and its dependency tree) that has already been removed from i686. What needs to happen in this case? Do we possibly need to handle bootstrap problems if too many things are dropped? - Problem 1 can be worked around by processing spec files directly (ew), or by parsing buildroot information that is stored for all koji builds (available via koji API). - Problem 2 is, I think, being worked on by releng / fedora-infra, so that in the future, it might be possible to exclude i686 builders when scheduling noarch builds. - Problem 3 might be too hard to solve, and might also not be a (big) problem in the timeframe where we still need to care about i686 packages. However, for parsing spec files, there's also the question of ... which spec files need to be parsed? Those committed into the rawhide branch? Those might not have been built yet. Those from the SRPM associated with the last tagged koji build? Not sure how feasible it is to get those efficiently. Fabio _______________________________________________ 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