Phase out 32bit ppc due to bugfix and maintenance burden

Phil Knirsch pknirsch at redhat.com
Fri May 9 11:18:13 UTC 2014


On 05/09/2014 12:15 PM, David Woodhouse wrote:
> On Fri, 2014-05-09 at 11:32 +0200, Phil Knirsch wrote:
>>
>> So for 1) this would effectively mean we'd have to look at every failed
>> build for 32bit ppc and put ExcludeArch: ppc in it. On top of that we'd
>> then need to additionally look for all components that require or
>> buildrequire recursively these packages and do the same for all those
>> packages, too. Just for the java stack thats several hundreds of
>> packages alone. Overall thats an enormous amount of effort and would
>> have to be constantly done for any new 32bit ppc package failing, so we
>> dropped this solution.
>
> Hm, does this really have to be that much work? If feasible, it would
> have been my preferred option. Although since I do almost nothing on PPC
> these days I appreciate how little my opinion counts :)
>
> Let's assume that you can write a script which, when run as a
> provenpackager, will check out a package from the git tree, add the
> ExcludeArch tag to it and commit it, and file a bug in bugzilla marked
> as blocking the 'PPC32 ExcludeArch tracker'. So the actual work involved
> in adding the ExcludeArch is basically limited to giving a *reason*.
>

Sure, but remember the chained dependencies we have in the build 
requires in Fedora. One of the recent efforts in the Base WG that me and 
Harald Hoyer were actually driving was investigate the inter build 
dependencies for a self hosting Fedora that includes gcc, rpm, yum and 
anaconda. We ended up needing over 1800 packages to be self hosting, but 
if we'd drop the self hosting requirement that dropped to less than 700. 
Which means the build requires pulls in more than 2x the amount of 
packages. And if you e.g. have to ExcludeArch eclipse (just as a typical 
example of a component that has proven to be quite difficult) you're 
then either left with unraveling the whole build requires chain of 
eclipse, java and all it's friends or excludearch the whole java world, 
which then in chain requires you to disable db4 and db, which is 
required by rpm. So you can't really disable the java stack but have to 
manually clean up the buildrequires and as you can imagine, doing that 
is a lot of work.

> It's also not that hard to use repoquery or similar tools to
> automatically run that script up the dependency chain, surely?

Jup, we've done exactly that for the Base WG effort. Harald produced a 
nice graph of the inter dependencies here:

http://www.harald-hoyer.de/2014/01/14/self-hosting-fedora-base/

So we know it's a mess, and running repoquery regularly only will 
confirm that, but without someone dedicated and having the spare cycles 
to actually do the work to unravel those, that in itself won't help a 
lot unfortunatly. :(

> If we're genuinely talking about an "enormous amount of effort" then we
> really can script it and make it easy. And "constantly done for any new
> 32bit ppc package failing" also surprised me. As I said, I've been
> paying little attention to PPC for a while, but we used to have fairly
> much 100% coverage... are things really falling apart that much, and at
> such a rate?

It's rather often core packages where we see build failures, be it java 
or toolchain related, or somewhere in the high level desktop space where 
things are quite dependent on another, too.

And it's often enough to having us spend a considerable amount of time 
having to investigate the failures, work with maintainers on potential 
fixes etc. And although most maintainers are really very helpful and 
forthcoming with finding fixes even for secondary architectures, 
occasionally we get a "don't have time" from someone (which is of course 
totally understandable and not meant as an accusation), which then means 
we'll have to find the fix ourselves or again, unravel dep build chains 
and would have to start ExludeArchs:

> If we really can't manage this, then I suppose I have no fundamental
> objection to just configuring the PPC koji to build only 64-bit from now
> on, and let someone set up a PPC32 koji instance if they want to. I
> think that's what you're proposing, right? All the RPM multilib bits
> ought to still work, if the packages come into existence again.
>

Exactly, maybe i should have been clearer about that. We're totally fine 
and would be happy if someone sets up a ppc32 koji and builds and 
composes away, it's just that we simply don't have the time to really do 
this anymore as a more official secondary arch for Fedora anymore.

> Configuring the PPC32 koji to just *accept* failures of the 32-bit
> builds, while still allowing PPC64 builds to complete successfully when
> that happens, would be nice. But that requires hacking on koji, doesn't
> it?
>

We thought about it, but the problem comes with the ppc and ppc64 bit 
architectures being multiarch. They are defined like that in rpm, yum 
and all the tooling we have for dealing with those architectures. If 
we'd only hack koji to accept builds if the 32bit fails but the 64bit 
succeeds that would break general multilib closure and David Aquilina 
said the side effects of different versions then could lead to another 
really ugly mess in the long run.

Hope that clarifies it a bit more in depth, and apologies for leaving 
out some of the alternatives that are of course absolutely viable (e.g. 
for someone to set up his own ppc32 bit koji and continuing to build 
there then).

Thanks & regards, Phil

-- 
Philipp Knirsch              | Tel.:  +49-711-96437-470
Manager Core Services        | Fax.:  +49-711-96437-111
Red Hat GmbH                 | Email: Phil Knirsch <pknirsch at redhat.com>
Wankelstrasse 5              | Web:   http://www.redhat.com/
D-70563 Stuttgart, Germany


More information about the ppc mailing list