Hi everybody,
The announcement of the Change proposal to drop armv7 support with F37
has reminded me of something that I wanted to ask about some time ago:
How we could work towards reducing the number of packages we build for
i686.
Our current approach, which is to "build everything but ship almost
nothing" - just to keep x86_64 / i686 multilib working - is, frankly,
very wasteful of computing and storage resources, as well as a burden
on maintainers of big packages, which frequently run up against limits
of 32-bit architectures.
I think it should be possible to figure out a way to limit the number
of packages that need to be built for the common multilib usecases
(Wine + Steam ... am I forgetting something?), and just ... not build
anything else for i686.
This would probably involve the following steps:
1. determine the packages that need to be built on i686 for common
multilib scenarios
2. determine recursive install-time and build-time dependencies of
those packages
3. if necessary, update this list with any new build-or install-time
dependencies that are added to the package set
As for how to implement this, I'm not sure about the details yet
(which is why I'm sending this as an RFC and not filing a Change
proposal yet).
Since it's not practical to modify almost all Fedora packages to add
"ExcludeArch: %{ix86}" to them, we'd probably need a different
machanism for this. I have a vague idea:
- include the list of packages to be built ... somewhere (maybe in the
default buildroot?)
- if a package name matches a list entry, build it on i686. if it
doesn't, then don't.
As for the second step, I'm not sure how to do that yet - does
injecting ExcludeArch headers at SRPM build time in koji work, maybe
with some RPM macro that's included in every package anyway? Or could
we somehow influence the chroots that builds in koji are launched for?
Then the spec or SRPM wouldn't even have to be modified.
As I said, I'm not sure about the details yet, but we should be able
to figure out a way to do this, and make building Fedora packages less
wasteful. Consider this my "request for comments". :)
Fabio