On Mon, Oct 31, 2016 at 12:11:31PM +0100, Alexander Kurtz wrote:
> This becomes even more important if you try to fix #842683 , so I
> propose a scheme looking something like this:
> * There is only one arch:all package called "ovmf" containing the
> builds for all architectures.
> * The actual firmware files could be named like this:
> where $arch would be the UEFI-style architecture name in lower
> case, i.e. "ia32", "x64", "ia64", "arm", "aa64"  and $type
> would be one of "code", "vars", "unified" (for the deprecated
> variant with code and vars in one file).
> * Compatibility is ensured by providing a transitional qemu-efi
> package depending on the ovmf package and the ovmf package
> carrying symlinks for all previously used file paths.
> What do you think?
Thanks for starting this discussion. I agree that the current scheme
needs improvement. I think package names, file paths, and grouping are
all fairly independent topics, so I'll address each one separately,
starting with package names.
My reasons for choosing "qemu-efi" when adding the aa64 images were
1) "OVMF", in upstream source, refers only to the x86-specific
build. The ARM images have always had a different name - initially
ArmVirtualizationQemu, and currently ArmVirt.
2) "OVMF" doesn't seem like a keyword users would likely be familiar
with. I'd expect a user to know they want "EFI" or "UEFI" for use
with QEMU. OVMF, IMO, is yet another obscure term in the soup of
names here (edk2, EFI, UEFI, Tianocore, OVMF).
Therefore, if we're going to try for more consistent package naming, I
think I'd rather not consolidate under "ovmf". Since, AFAIK, these
images are only useful for QEMU models, I'd rather go the other way
and use the "qemu-efi" stem instead of "ovmf", e.g.:
As for file paths, we're currently using the paths that libvirt and
OpenStack nova default to. We could move everything and provide
symlinks for compat, but I'm not convinced this is a big enough
problem to do so - in fact, I think that would only add confusion.
That said, libvirt/OpenStack don't appear to have unique paths defined
for 32-bit variants, so I'm not sure what to do for those.
Finally, regarding package grouping, I do think we want to retain
the ability to install the firmware for each architecture
independently - similar to how it is possible to install
qemu-system-<arch> packages independently. I suspect that most users
really just require one of them, and combining them all would make a
very large package (qemu-efi's Installed-Size alone is currently
129M). If there's a good use case for a meta package that installs all
of them, I'd be +1 for that.