qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* Re: [Qemu-devel] [edk2] license for binary drivers
       [not found] <20140806074054.GF2170@masterlulz.local>
@ 2014-08-06 10:34 ` Laszlo Ersek
  2014-08-06 13:44   ` Paolo Bonzini
  0 siblings, 1 reply; 5+ messages in thread
From: Laszlo Ersek @ 2014-08-06 10:34 UTC (permalink / raw)
  To: Reza Jelveh; +Cc: edk2-devel, qemu devel list

On 08/06/14 09:40, Reza Jelveh wrote:
> Hello,
> 
> EDK2 integrates FAT as a binary driver. What is the license of the FAT driver?

https://svn.code.sf.net/p/edk2/code/trunk/edk2/FatBinPkg/License.txt

> What are the guidelines for use of binary drivers with EDK2? Specifically if
> you want to bundle an OVMF firmware with qemu?

I'm not a lawyer. You should consult a lawyer.

That said, the binary or source code nature of the FAT driver is
inconsequential in this instance. You can actually find the source code
for the FAT driver, and build it yourself, you just need to import it in
the edk2 tree, and patch OvmfPkg*.{dsc,fdf) slightly.

https://svn.code.sf.net/p/edk2/code/trunk/edk2/FatBinPkg/ReadMe.txt
https://github.com/tianocore/edk2-FatPkg/

The main issue is that the FAT driver is not free software. It doesn't
satisfy the four freedom requirements listed here:

https://www.gnu.org/philosophy/free-sw.html

  [...]
  The freedom to run the program as you wish, for any purpose
  (freedom 0).
  [...]

The FAT driver license does not give you this freedom.

The FAT driver's license is more restrictive than the 3-clause BSDL that
it is based upon.

The 3-clause BSDL is GPL compatible:

http://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29

But the additional restriction in the FAT driver's license makes it
incompatible with the GPLv2 (which QEMU as a whole us released under,
see LICENSE).

The additional restriction most likely originates from
<http://msdn.microsoft.com/en-us/gg463080.aspx>, the Microsoft EFI FAT32
File System Specification:

    Note: The download license agreement permits you to use the
    Microsoft EFI FAT32 File System Specification only in connection
    with a firmware implementation of the Extensible Firmware Initiative
    Specification, v. 1.0. If you plan to implement the FAT32 File
    System specification for other purposes, you must obtain an
    additional license from Microsoft. For example, you must obtain an
    additional license in order to create a file system for reading or
    reading and writing FAT32 in digital cameras recording to flash
    media, in computer operating systems reading and writing
    internal/external hard disks or flash media, or in set-top boxes
    reading FAT-formatted media.

(This is precisely what freedom 0 would be about.)

So no, you can't ship an OVMF binary (or source tarball) that contains
the FAT driver, bundled as part of the GPLv2 (+compatible) QEMU
distribution, either in source or in binary form.

Linux distributions have moved OVMF to their non-free channels accordingly.

https://packages.debian.org/sid/ovmf
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745698

http://packages.ubuntu.com/trusty/misc/ovmf

What you can do is build an OVMF binary that doesn't include the FAT
driver. The result will be then covered by 3-clause BSDL (further
restricted by the OpenSSL license, if you include -D SECURE_BOOT), and
that one you can bundle with QEMU. However, such an OVMF binary will be
useless, unless users themselves can augment it somehow at build time or
at runtime with some FAT driver. (The UEFI specification requires FAT32
support.)

UEFI should have standardized a preexistent, but unencumbered, file
system. That horse is out of the barn.

Disclaimer: I am not a lawyer, and this is my personal opinion only, not
necessarily my employer's.

Laszlo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [edk2] license for binary drivers
  2014-08-06 10:34 ` [Qemu-devel] [edk2] license for binary drivers Laszlo Ersek
@ 2014-08-06 13:44   ` Paolo Bonzini
  2014-08-06 21:51     ` Andrew Fish
  0 siblings, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2014-08-06 13:44 UTC (permalink / raw)
  To: edk2-devel, Reza Jelveh; +Cc: qemu devel list

Il 06/08/2014 12:34, Laszlo Ersek ha scritto:
> So no, you can't ship an OVMF binary (or source tarball) that contains
> the FAT driver, bundled as part of the GPLv2 (+compatible) QEMU
> distribution, either in source or in binary form.

What Laszlo said is mostly my understanding too (IANAL etc.).

Just one thing: the GPL does allow you to "merely aggregate" the OVMF
binaries with QEMU sources or QEMU binaries; and a lawyer could also
tell you the if QEMU were to ship OVMF binaries in its tarball, it would
be mere aggregation.  It would then be allowed by the GPL.

I wouldn't disagree; the OVMF binaries are just data as far as QEMU is
concerned.

However, the non-free nature of the OVMF binaries mean that QEMU will
never ever ship OVMF binaries until the license is fixed for the
offending FAT driver.  Not only because we don't want to get into legal
minefields, but also because QEMU is free software and wants to keep its
distributed releases entirely free.

Paolo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [edk2] license for binary drivers
  2014-08-06 13:44   ` Paolo Bonzini
@ 2014-08-06 21:51     ` Andrew Fish
  2014-08-06 22:22       ` Reza Jelveh
  2014-08-07 12:53       ` Paolo Bonzini
  0 siblings, 2 replies; 5+ messages in thread
From: Andrew Fish @ 2014-08-06 21:51 UTC (permalink / raw)
  To: edk2-devel; +Cc: qemu devel list, Reza Jelveh


On Aug 6, 2014, at 6:44 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:

> Il 06/08/2014 12:34, Laszlo Ersek ha scritto:
>> So no, you can't ship an OVMF binary (or source tarball) that contains
>> the FAT driver, bundled as part of the GPLv2 (+compatible) QEMU
>> distribution, either in source or in binary form.
> 
> What Laszlo said is mostly my understanding too (IANAL etc.).
> 
> Just one thing: the GPL does allow you to "merely aggregate" the OVMF
> binaries with QEMU sources or QEMU binaries; and a lawyer could also
> tell you the if QEMU were to ship OVMF binaries in its tarball, it would
> be mere aggregation.  It would then be allowed by the GPL.
> 
> I wouldn't disagree; the OVMF binaries are just data as far as QEMU is
> concerned.
> 
> However, the non-free nature of the OVMF binaries mean that QEMU will
> never ever ship OVMF binaries until the license is fixed for the
> offending FAT driver.  Not only because we don't want to get into legal
> minefields, but also because QEMU is free software and wants to keep its
> distributed releases entirely free.
> 

IANAL, but this stuff seems kind of free . Reverse engineering something does not make it free. Copying other peoples work and changing the license does not make it free. Nothing that the edk2 or QEMU developers do changes the Intellectual Property rights that are associated with the FAT file system. 

The IP for FAT was contributed to UEFI, and the specification that includes the license in question was created. The edk2 FAT driver was coded to this specification and thus has this license. Which means you can use FAT for UEFI firmware without paying a licensing fee. So from a commercial point of view the edk2 FAT driver is “free”. 

How you write a GPL licensed FAT driver seems like a legal quagmire. Probably something better discussed with a lawyer.  From the outside looking in it seems like the IP rights are enforced by charging licensing fees to devices that support FAT. So free can still cost you….

Thanks,

Andrew Fish

PS The original pre-release version of the EFI spec had a simple file system defined, but we got feedback that adding (and maintaining) a new file system on a large number of operating systems would be a pain, and that is how we ended up with FAT32.  Well at least we got GPT in the spec….

> Paolo
> 
> ------------------------------------------------------------------------------
> Infragistics Professional
> Build stunning WinForms apps today!
> Reboot your WinForms applications with our WinForms controls. 
> Build a bridge from your legacy apps to the future.
> http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [edk2] license for binary drivers
  2014-08-06 21:51     ` Andrew Fish
@ 2014-08-06 22:22       ` Reza Jelveh
  2014-08-07 12:53       ` Paolo Bonzini
  1 sibling, 0 replies; 5+ messages in thread
From: Reza Jelveh @ 2014-08-06 22:22 UTC (permalink / raw)
  To: Andrew Fish; +Cc: edk2-devel, qemu devel list

On 06/08/14 14:51, Andrew Fish wrote:
> How you write a GPL licensed FAT driver seems like a legal quagmire. Probably something better discussed with a lawyer.  From the outside looking in it seems like the IP rights are enforced by charging licensing fees to devices that support FAT. So free can still cost you….

This is about whether a Hfs driver under the GPL is acceptable not about the
FAT driver really. And about how legal it is to bundle these in a firmware.

The question arises because I want to know how legal it is to bundle these
things together along with Qemu

Thanks,
Reza

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [edk2] license for binary drivers
  2014-08-06 21:51     ` Andrew Fish
  2014-08-06 22:22       ` Reza Jelveh
@ 2014-08-07 12:53       ` Paolo Bonzini
  1 sibling, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2014-08-07 12:53 UTC (permalink / raw)
  To: edk2-devel; +Cc: qemu devel list

Il 06/08/2014 23:51, Andrew Fish ha scritto:
> On Aug 6, 2014, at 6:44 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> However, the non-free nature of the OVMF binaries mean that QEMU
>> will never ever ship OVMF binaries until the license is fixed for
>> the offending FAT driver.  Not only because we don't want to get
>> into legal minefields, but also because QEMU is free software and
>> wants to keep its distributed releases entirely free.
> 
> IANAL, but this stuff seems kind of free

There is only one definition of free software, which is what Laszlo
cited, and the Tiano Core FAT driver does not satisfy it.

And in practice that definition is practically the same as the open
source definition, which the Tiano Core FAT driver does not satisfy
either (see the paragraph "License must be technology-neutral").

So the driver is neither free software, nor open source software.

> Reverse engineering
> something does not make it free. Copying other peoples work and
> changing the license does not make it free. Nothing that the edk2 or
> QEMU developers do changes the Intellectual Property rights that are
> associated with the FAT file system.

Catch-all words that lump together copyright and patents, such as
"Intellectual Property", can help spreading FUD about free software, but
they cannot _forbid_ distribution or use of the software.  Which are
done at your own risk anyway, since almost all software licenses come
with a warranty disclaimer.

On the other hand, the Tiano Core FAT driver license is just about
copyright, and the driver simply _cannot_ be distributed or used except
"as necessary to emulate an implementation of the UEFI Specifications;
and to create firmware, applications, utilities and/or drivers".  Doing
so directly violates the license, without much room for discussion.

> The IP for FAT was contributed to UEFI, and the specification that
> includes the license in question was created. The edk2 FAT driver was
> coded to this specification and thus has this license.  Which means
> you can use FAT for UEFI firmware without paying a licensing fee.
> So from a commercial point of view the edk2 FAT driver is “free”.
> How you write a GPL licensed FAT driver seems like a legal quagmire.

I have three problems with this paragraph:

1) The FAT specification license is not the FatPkg license, and the FAT
specification licensor is not the FatPkg licensor.  Have you consulted
Apple's lawyers before claiming that what applies to the FAT
specification (and is written in the FAT speciification license) is also
valid for the FatPkg driver, as you are doing?  I would do it before
making such a sweeping claim.

2) The word free was obviously never used with the meaning of "gratis".

3) No one has mentioned the GNU GPL, and in any case, calling anything
"easy" or "hard" from a legal point of view is better left to real
lawyers, isn't it?  They have figured it out for Linux in the past.

Paolo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-08-07 12:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20140806074054.GF2170@masterlulz.local>
2014-08-06 10:34 ` [Qemu-devel] [edk2] license for binary drivers Laszlo Ersek
2014-08-06 13:44   ` Paolo Bonzini
2014-08-06 21:51     ` Andrew Fish
2014-08-06 22:22       ` Reza Jelveh
2014-08-07 12:53       ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).