I prepared the script, however, several things turned ugly and/or way
more complicated than anticipated. Who would have guessed, right? :)

TL;DR:
repo: https://codeberg.org/Faramos/fedora-i686-analysis
See the analysis matrix in other branches.
This result is likely closest to reality:
  
https://codeberg.org/Faramos/fedora-i686-analysis/src/branch/rawhide/steam-only/analyze-i686-for-removal.log
The good news is that I still have similar results. Slightly better, actually.


Longer version:

I'm sorry the script grew 850 lines long :( but I *tried* to at least
keep it friendly to read / audit.

Reproducibility:
 - The Rawhide repository data changes daily (and the F45 Mass Rebuild
is currently in progress)
 - The SPEC tarball is too large to include in the repo.
 - the analysis matrix grew
so I can't put the sources into the repository. I logged checksums,
but since there is no archive of the repo files, and no SPECfile
tarball for non-rawhide, so reproducibility is on the "trust me, bro"
basis. The best you can do is re-run the script and check how close
the result is to what I got. :(

Originally, I did not account for 'BuildRequires', when evaluating
whether a package is a leaf package.
Turns out >100 packages has to stay. But we are still at >3,400 ready to go.
Computation strategy got tricky, see "Forward pass" and "Backward
pass" comments in code.

Originally, I used the old F35 era FESCo list of "protected" packages.
I should have re-generated i myself.
Fabio's list is up-to-date, though it was still generated with DNF 3:
  https://forge.fedoraproject.org/packaging/i686-leafdrop
And also since F43 reportedly 'wine' no longer pull i686.
  
https://forge.fedoraproject.org/packaging/i686-leafdrop/commit/0f4bed90f5779179988ec9ccb3715727cb5f3390
To be extra sure, I compared my script's run against the F35 FESCo
list, the current Rawhide Steam + Wine list and the current Rawhide
Steam only list and also against F44 - these are the branches in my
repo. It turns out that while the baselines differ, the resulting set
ready for removal stays exactly the same. In other words, all of the
wine or old (F35 list) packages are either multi-lib or non-leaf, thus
not affecting the set for removal.
With the up-to-date Rawhide FESCo "protected" list, and after tuning
my methodology (mostly thanks to summing up all removal iterations
together), the set of packages ready for removal grew to 3586.

The analysis also found:

4200 source packages should build for i686, but no corresponding
binary RPMs exist.
  'rust-*' (3,138), 'golang-*' (502) - Spec has no top-level
'BuildArch: noarch' but all produce only noarch '-devel' subpackages
  '*-fonts' (198)
  'ExclusiveArch: %{go_arches}' (24)
  The rest (351) likely consist of a mix of FTBFS and other corner cases

477 packages exist that have both 'ExcludeArch: %{ix86}' and
'BuildArch: noarch', meaning the 'ExcludeArch' has no effect.
  'ExclusiveArch: %{java_arches}' + 'BuildArch: noarch' (355) - ant,
maven, Java ecosystem
  'ExcludeArch: %{ix86} / i686' + 'BuildArch: noarch' (62) -
ansible-collection-*, VulkanMemoryAllocator
  'ExclusiveArch: x86_64' + 'BuildArch: noarch' (20) - ROCm, PyTorch,
HIP packages
  'ExclusiveArch: %{nodejs_arches}' + 'BuildArch: noarch' (18) -
nodejs-*, typescript
  'ExclusiveArch: %{rust_arches}' + 'BuildArch: noarch' (2) -
obs-service-rust2rpm, stratis-cli
  'ExclusiveArch: %{golang_arches}' +'BuildArch: noarch' (1) containers-common


Michal

--

Michal Schorm
Senior Software Engineer
Databases Team
Red Hat

--

On Sat, Jul 18, 2026 at 6:34 PM Michal Schorm <[email protected]> wrote:
>
> On Sat, Jul 18, 2026 at 1:22 PM Miro Hrončok <[email protected]> wrote:
> > I am unable to check your list right now (would rather like to review the
> > script that generated it -- the methodology mentioned in the comment seems 
> > OK
> > at a quick glance).
>
> ACK, I will try to create a reproducible script.
>
>
> On Sat, Jul 18, 2026 at 4:02 PM Gary Buhrmaster
> <[email protected]> wrote:
> > If you ExcludeArch'ed the leaf packages
> > do you have any thoughts about how
> > many additional packages would become
> > a leaf package, and be able to be
> > ExcludeArch'ed in follow-on rounds of
> > the work?
>
> Yes, roughly:
> 2nd round: ~ 187 src pkgs
> 3rd round: ~ 9 src pkgs
> 4rd round: none
>
> I'll try to present reproducible evidence so we can apply this change
> to those extra 187 + 9 packages too, right away.
>
>
> Michal
>
> --
>
> Michal Schorm
> Senior Software Engineer
> Databases Team
> Red Hat
>
> --

-- 
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
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/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new

Reply via email to