Laszlo Ersek lersek@redhat.com writes:
On 05/31/13 15:04, Anthony Liguori wrote:
Laszlo Ersek lersek@redhat.com writes:
On 05/31/13 09:09, Jordan Justen wrote:
Due to licensing differences I can't just port code from SeaBIOS to OVMF
<soapbox>
:)
Fork OVMF, drop the fat module, and just add GPL code. It's an easily solvable problem.
It's not optimal for the "upstream first" principle;
<still on soapbox>
OVMF is not Open Source so "upstream first" doesn't apply. At least, the FAT module is not Open Source.
Bullet 8 from the Open Source Definition[1]
"8. License Must Not Be Specific to a Product
The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution."
License from OVMF FAT module[2]:
"Additional terms: In addition to the forgoing, redistribution and use of the code is conditioned upon the FAT 32 File System Driver and all derivative works thereof being used for and designed only to read and/or write to a file system that is directly managed by: Intel’s Extensible Firmware Initiative (EFI) Specification v. 1.0 and later and/or the Unified Extensible Firmware Interface (UEFI) Forum’s UEFI Specifications v.2.0 and later (together the “UEFI Specifications”); only as necessary to emulate an implementation of the UEFI Specifications; and to create firmware, applications, utilities and/or drivers."
[1] http://opensource.org/osd-annotated [2] http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Edk2-fat-dri...
AFAIK, for the systems that we'd actually want to use OVMF for, a FAT module is a hard requirement.
we'd have to backport upstream edk2 patches forever (there's a whole lot of edk2 modules outside of direct OvmfPkg that get built into OVMF.fd -- OvmfPkg "only" customizes / cherry-picks the full edk2 tree for virtual machines), or to periodically rebase an ever-increasing set of patches.
Independently, we need *some* FAT driver (otherwise you can't even boot most installer media), which is where the already discussed worries lie. Whatever solves this aspect is independent of forking all of edk2.
It's either Open Source or it's not. It's currently not. I have a hard time sympathesizing with trying to work with a proprietary upstream.
Rewriting BSD implementations of everything is silly. Every other vendor that uses TianoCore has a proprietary fork.
Correct, but they (presumably) keep rebasing their ever accumulating stuff at least on the periodically refreshed "stable edk2 subset" (UDK2010, which BTW doesn't include OvmfPkg). This must be horrible for them, but in exchange they get to remain proprietary (which may benefit them commercially).
Maintaining a GPL fork seems just as reasonable.
Perhaps; diverging from "upstream first" would hurt for certain.
Well I'm suggesting creating a real upstream (that is actually Open Source). Then I'm all for upstream first.
In terms of creating a FAT module, the most likely source would seem to be the kernel code and since that's GPL, I don't think it's terribly avoidable to end up with a GPL'd uefi implementation.
If that's inevitable, then we're wasting effort by rewriting stuff under a BSD license.
Regards,
Anthony Liguori
</soapbox>
Thanks for the suggestion :) Laszlo