[Fedora-packaging] Request for exception: seabios-bin on ppc64

Paolo Bonzini pbonzini at redhat.com
Tue Oct 16 16:39:05 UTC 2012


Il 16/10/2012 18:27, Karsten Hopp ha scritto:
> Am 16.10.2012 16:19, schrieb Richard W.M. Jones:
>>
>> [Bug: https://bugzilla.redhat.com/show_bug.cgi?id=866664]
>>
>> Here's the situation, since the bug doesn't explain it well.
>>
>> (1) qemu can run any architecture on any other architecture, using
>> software emulation.  eg. It can run x86_64 guest operating systems on
>> top of ppc64 hosts (albeit not at full speed).
>>
>> (2) In order to run guests, you have to provide a BIOS (or some sort
>> of other boot ROM), since most guests wouldn't be able to boot without
>> BIOS services.  This applies for all guests, but of particular
>> interest to us are i686/x86_64 guests.
>>
>> (3) SeaBIOS is a free, open source PC BIOS implementation.  It is what
>> we use to provide services to i686/x86_64 PC guests.
>>
>> (4) Although qemu itself bundles some binary BIOSes, in Fedora we have
>> chosen to recompile these from source.  We now (on i686/x86_64)
>> compile or cross-compile all ROMs from source.
>>
>> (5) 'seabios-bin' is the name of the RPM package that contains the
>> SeaBIOS ROMs.  I have no idea why (historical?) this package has
>> '-bin' in the name, but the important point is that it is NOT a
>> binary-only package.  It is built from source.
>>
>> (6) In order to compile SeaBIOS you need a program called 'iasl' (part
>> of the ACPICA.org project).  This program is needed to compile the
>> ACPI tables which are an integral part of the ROM data that is needed
>> for i686/x86_64 guests to boot.
>>
>> (7) Unfortunately the iasl program, which runs fine on little-endian
>> platforms, has endianness issues.  Such that when you run it on a
>> ppc64 host it produces big-endian ACPI tables, which are of course
>> completely broken.  'iasl' itself is a very large program, and I do
>> not know the scope of the fix for this issue -- it may be trivial, or
>> it may require auditing every line of code.
>>
>> Therefore:
>>
>> We would like a packaging exception which would allow us to import the
>> seabios-bin package (built on little-endian) into the ppc & ppc64
>> buildroots.
> 
> I'm all for it. We wouldn't ship a binary without sources, just one that
> got compiled on a x86 Fedora builder and got repackaged for PPC.
> As you can see in bugzillas 866664, 856856 and 865013, fixing iasl might
> become a major effort and the other option of dropping x86 support in
> the PPC qemu doesn't seem the right thing to do here.

Alternatively, it would also be good to get a generic exception that
would let us distribute pre-compiled .dsl files as RPM sources.  I'll
try to get ppc & ppc64 to use a cross-compiled SeaBIOS.

One advantage of this is that upstream we're going to move the
iasl-compiled files from SeaBIOS to QEMU.  Such a generic exception
would cause less problems once this actually happens.

Paolo


More information about the packaging mailing list