Patchwork [2/2] LICENSE: clarify

login
register
mail settings
Submitter Paolo Bonzini
Date July 31, 2013, 6:19 a.m.
Message ID <1375251592-2537-3-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/263589/
State New
Headers show

Comments

Paolo Bonzini - July 31, 2013, 6:19 a.m.
1) The GPL says that "if the Program does not specify a version number
of this License, you may choose any version ever published by the Free
Software Foundation".  This is not true, QEMU includes parts that are
v2-only.

2) Provide a default for files with no licensing information.

3) It is not just hardware emulation that is under BSD license.

4) Restrict GPLv2-only contributions to user mode emulation (due to
code from Linux) and PCI passthrough (due to code from Neocleus).

5) The rules were initially set by Fabrice but are being amended by
other people (already in commit ee12e1f, LICENSE: There is no libqemu.a
anymore, 2011-11-15).  Do not put words in his mouth.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 LICENSE | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
Erik de Castro Lopo - July 31, 2013, 7:27 a.m.
Paolo Bonzini wrote:

> 4) Restrict GPLv2-only contributions to user mode emulation (due to
> code from Linux) and PCI passthrough (due to code from Neocleus).

It would be nice to have that statement or something like it
mentioning the linux-user/ tree added to the LICENSE file.

Cheers,
Erik
Andreas Färber - July 31, 2013, 7:40 a.m.
Am 31.07.2013 08:19, schrieb Paolo Bonzini:
> 1) The GPL says that "if the Program does not specify a version number
> of this License, you may choose any version ever published by the Free
> Software Foundation".  This is not true, QEMU includes parts that are
> v2-only.
> 
> 2) Provide a default for files with no licensing information.
> 
> 3) It is not just hardware emulation that is under BSD license.
> 
> 4) Restrict GPLv2-only contributions to user mode emulation (due to
> code from Linux) and PCI passthrough (due to code from Neocleus).
> 
> 5) The rules were initially set by Fabrice but are being amended by
> other people (already in commit ee12e1f, LICENSE: There is no libqemu.a
> anymore, 2011-11-15).  Do not put words in his mouth.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Acked-by: Andreas Färber <afaerber@suse.de>

Thanks,
Andreas
Stefan Weil - July 31, 2013, 4:48 p.m.
Am 31.07.2013 08:19, schrieb Paolo Bonzini:
> 1) The GPL says that "if the Program does not specify a version number
> of this License, you may choose any version ever published by the Free
> Software Foundation".  This is not true, QEMU includes parts that are
> v2-only.
>
> 2) Provide a default for files with no licensing information.
>
> 3) It is not just hardware emulation that is under BSD license.
>
> 4) Restrict GPLv2-only contributions to user mode emulation (due to
> code from Linux) and PCI passthrough (due to code from Neocleus).
>
> 5) The rules were initially set by Fabrice but are being amended by
> other people (already in commit ee12e1f, LICENSE: There is no libqemu.a
> anymore, 2011-11-15).  Do not put words in his mouth.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  LICENSE | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/LICENSE b/LICENSE
> index acae9a3..2bd2e95 100644
> --- a/LICENSE
> +++ b/LICENSE
> @@ -1,16 +1,21 @@
>  The following points clarify the QEMU license:
>  
> -1) QEMU as a whole is released under the GNU General Public License
> +1) QEMU as a whole is released under the GNU General Public License,
> +version 2.

I appreciate these clarifications. For point 1, I suggest

... version 2 or (at your option) any later version.

That is more precise because it excludes "version 2 only"
and corresponds better to file COPYING.

Maybe we can also refer to the files COPYING and COPYING.LIB.


>  
>  2) Parts of QEMU have specific licenses which are compatible with the
> -GNU General Public License. Hence each source file contains its own
> -licensing information.
> +GNU General Public License, version 2. Hence each source file contains
> +its own licensing information.  Source files with no licensing information
> +are released under the GNU General Public License, version 2 or (at your
> +option) any later version.
>  
> -Many hardware device emulation sources are released under the BSD license.
> +As of July 2013, contributions under version 2 of the GNU General Public
> +License (and no later version) are only accepted for the following files
> +or directories: bsd-user/, linux-user/, hw/misc/vfio.c, hw/xen/xen_pt*.
>  
>  3) The Tiny Code Generator (TCG) is released under the BSD license
>     (see license headers in files).
>  
>  4) QEMU is a trademark of Fabrice Bellard.
>  
> -Fabrice Bellard.
> +Fabrice Bellard and the QEMU team

"QEMU team" is rather unspecific. Who is member of the QEMU team?

* People with commit rights?
* All maintainers listed in MAINTAINERS?
* Participants of the KVM calls?
* QEMU contributors working for Redhat, IBM, SUSE?
* All contributors?

Fabrice Bellard and all QEMU contributors would be more specific.

The trademark ownership is another problem - not now,
but maybe in 60 years (for obvious reasons).

What about transfering it to FSF Europe or some other
organisation? Of course this needs discussion with Fabrice,
so this can be postponed for the time after QEMU 1.6.

Regards,

Stefan
Eric Blake - July 31, 2013, 4:58 p.m.
On 07/31/2013 10:48 AM, Stefan Weil wrote:

>>  
>> -1) QEMU as a whole is released under the GNU General Public License
>> +1) QEMU as a whole is released under the GNU General Public License,
>> +version 2.
> 
> I appreciate these clarifications. For point 1, I suggest
> 
> ... version 2 or (at your option) any later version.
> 
> That is more precise because it excludes "version 2 only"
> and corresponds better to file COPYING.

No.  qemu itself _is_ GPLv2-only, because it uses GPLv2-only code.  That
is, GPLv2-only is the only license compatible with the intersection of
all sources combined together to make the qemu binary.

There are individual files that can (at your option) be upgraded to a
later GPL version, but qemu itself can never be released under GPLv3
without a lot of relicensing work (and likely never to happen, given
that the kernel is the source of some of our GPLv2-only files, and the
kernel is unwilling to use GPLv2+).

[Side note - libvirt ships multiple binaries, where the license on those
binaries differs: libvirt.so is inentionally LGPLv2+; libvirtd is
LGPLv2-only, because that is the only license compatible in the
intersection of libvirt.so and its use of virtualbox code that is
LGPLv2-only; virsh is GPLv3+, because that is the only license
compatible in the intersection of libvirt.so and its use of GPLv3+ readline]

> 
> Maybe we can also refer to the files COPYING and COPYING.LIB.

Yes, that might be worthwhile to do.  (Technically, COPYING.LIB already
refers to COPYING)
Anthony Liguori - July 31, 2013, 5:40 p.m.
On Wed, Jul 31, 2013 at 1:19 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> 1) The GPL says that "if the Program does not specify a version number
> of this License, you may choose any version ever published by the Free
> Software Foundation".  This is not true, QEMU includes parts that are
> v2-only.
>
> 2) Provide a default for files with no licensing information.
>
> 3) It is not just hardware emulation that is under BSD license.
>
> 4) Restrict GPLv2-only contributions to user mode emulation (due to
> code from Linux) and PCI passthrough (due to code from Neocleus).

I am okay *discouraging* GPLv2 only contributions but if there's
compelling code that cannot be relicensed, I would object strongly to
rejecting it purely because it wasn't GPLv2+.

>
> 5) The rules were initially set by Fabrice but are being amended by
> other people (already in commit ee12e1f, LICENSE: There is no libqemu.a
> anymore, 2011-11-15).  Do not put words in his mouth.

I think it's better at this point to just put QEMU team.  Fabrice is
no longer associated with the project.

Regards,

Anthony Liguori

> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  LICENSE | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/LICENSE b/LICENSE
> index acae9a3..2bd2e95 100644
> --- a/LICENSE
> +++ b/LICENSE
> @@ -1,16 +1,21 @@
>  The following points clarify the QEMU license:
>
> -1) QEMU as a whole is released under the GNU General Public License
> +1) QEMU as a whole is released under the GNU General Public License,
> +version 2.
>
>  2) Parts of QEMU have specific licenses which are compatible with the
> -GNU General Public License. Hence each source file contains its own
> -licensing information.
> +GNU General Public License, version 2. Hence each source file contains
> +its own licensing information.  Source files with no licensing information
> +are released under the GNU General Public License, version 2 or (at your
> +option) any later version.
>
> -Many hardware device emulation sources are released under the BSD license.
> +As of July 2013, contributions under version 2 of the GNU General Public
> +License (and no later version) are only accepted for the following files
> +or directories: bsd-user/, linux-user/, hw/misc/vfio.c, hw/xen/xen_pt*.
>
>  3) The Tiny Code Generator (TCG) is released under the BSD license
>     (see license headers in files).
>
>  4) QEMU is a trademark of Fabrice Bellard.
>
> -Fabrice Bellard.
> +Fabrice Bellard and the QEMU team
> --
> 1.8.1.4
>
>
Paolo Bonzini - Aug. 1, 2013, 8:21 a.m.
> On Wed, Jul 31, 2013 at 1:19 AM, Paolo Bonzini <pbonzini@redhat.com> wrote:
> > 1) The GPL says that "if the Program does not specify a version number
> > of this License, you may choose any version ever published by the Free
> > Software Foundation".  This is not true, QEMU includes parts that are
> > v2-only.
> >
> > 2) Provide a default for files with no licensing information.
> >
> > 3) It is not just hardware emulation that is under BSD license.
> >
> > 4) Restrict GPLv2-only contributions to user mode emulation (due to
> > code from Linux) and PCI passthrough (due to code from Neocleus).
> 
> I am okay *discouraging* GPLv2 only contributions but if there's
> compelling code that cannot be relicensed, I would object strongly to
> rejecting it purely because it wasn't GPLv2+.

Yes, that's why I included "as of".  We can certainly broaden the
set of GPLv2-only features, but it would require discussions and another
patch to LICENSE.  If you believe "as of July 2013" is not enough, I can
send v2.

> > 5) The rules were initially set by Fabrice but are being amended by
> > other people (already in commit ee12e1f, LICENSE: There is no libqemu.a
> > anymore, 2011-11-15).  Do not put words in his mouth.
> 
> I think it's better at this point to just put QEMU team.  Fabrice is
> no longer associated with the project.

It still mentions the trademark, and one of the last times he was
contacted was exactly to enforce the BSDness of TCG, so I left it in.
As the most active committer, you can certainly submit a follow-up
patch to remove it; I didn't really feel qualified to do that.

Paolo
Paolo Bonzini - Aug. 1, 2013, 8:29 a.m.
> > -1) QEMU as a whole is released under the GNU General Public License
> > +1) QEMU as a whole is released under the GNU General Public License,
> > +version 2.
> 
> I appreciate these clarifications. For point 1, I suggest
> 
> ... version 2 or (at your option) any later version.

As Eric explained, I wish this was true! :)

I explained this in the commit message, too:
> > 1) The GPL says that "if the Program does not specify a version number
> > of this License, you may choose any version ever published by the Free
> > Software Foundation".  This is not true, QEMU includes parts that are
> > v2-only.

> > -Fabrice Bellard.
> > +Fabrice Bellard and the QEMU team
> 
> "QEMU team" is rather unspecific. Who is member of the QEMU team?
> 
> * People with commit rights?
> * All maintainers listed in MAINTAINERS?
> * Participants of the KVM calls?
> * QEMU contributors working for Redhat, IBM, SUSE?
> * All contributors?
> 
> Fabrice Bellard and all QEMU contributors would be more specific.

Certainly these rules have to be understood by committers, but QEMU
team is intended in the most generic sense.  It just means "people
who care about these rules"---everyone else agrees to them by providing
the Signed-off-by lines in their commit messages, and this includes
many from RH/IBM/SuSE.

"XYZ team" occurs frequently in copyright notices, and I don't think
the interpretation of it is going to be a problem.

Paolo

Patch

diff --git a/LICENSE b/LICENSE
index acae9a3..2bd2e95 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,16 +1,21 @@ 
 The following points clarify the QEMU license:
 
-1) QEMU as a whole is released under the GNU General Public License
+1) QEMU as a whole is released under the GNU General Public License,
+version 2.
 
 2) Parts of QEMU have specific licenses which are compatible with the
-GNU General Public License. Hence each source file contains its own
-licensing information.
+GNU General Public License, version 2. Hence each source file contains
+its own licensing information.  Source files with no licensing information
+are released under the GNU General Public License, version 2 or (at your
+option) any later version.
 
-Many hardware device emulation sources are released under the BSD license.
+As of July 2013, contributions under version 2 of the GNU General Public
+License (and no later version) are only accepted for the following files
+or directories: bsd-user/, linux-user/, hw/misc/vfio.c, hw/xen/xen_pt*.
 
 3) The Tiny Code Generator (TCG) is released under the BSD license
    (see license headers in files).
 
 4) QEMU is a trademark of Fabrice Bellard.
 
-Fabrice Bellard.
+Fabrice Bellard and the QEMU team