[Qemu-devel] [PATCH] hax-interface: Add BSD license

yu.ning@linux.intel.com posted 1 patch 6 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1510815025-27857-1-git-send-email-yu.ning@linux.intel.com
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
target/i386/hax-interface.h | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
[Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by yu.ning@linux.intel.com 6 years, 5 months ago
From: Yu Ning <yu.ning@intel.com>

hax-interface.h defines the interface between the HAXM kernel
module and the HAXM QEMU accelerator. The same code can be found in
the following files of the HAXM kernel module:

 include/hax_interface.h
 include/vcpu_state.h
 core/include/vm.h

These files are now open source under the 3-clause BSD license,
whereas hax-interface.h in QEMU uses GPLv2.

Address this inconsistency by adding the BSD license to the QEMU
file, per Stefan Weil's comment on this HAXM pull request:

 https://github.com/intel/haxm/pull/2

Signed-off-by: Yu Ning <yu.ning@intel.com>
---
 target/i386/hax-interface.h | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/target/i386/hax-interface.h b/target/i386/hax-interface.h
index d141308..9a36c9a 100644
--- a/target/i386/hax-interface.h
+++ b/target/i386/hax-interface.h
@@ -1,4 +1,33 @@
 /*
+ * Copyright (c) 2011 Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright notice,
+ *      this list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *
+ *   3. Neither the name of the copyright holder nor the names of its
+ *      contributors may be used to endorse or promote products derived from
+ *      this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
  * QEMU HAXM support
  *
  * Copyright (c) 2011 Intel Corporation
-- 
2.7.4


Re: [Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by Stefan Weil 6 years, 5 months ago
Am 16.11.2017 um 07:50 schrieb yu.ning@linux.intel.com:
> From: Yu Ning <yu.ning@intel.com>
> 
> hax-interface.h defines the interface between the HAXM kernel
> module and the HAXM QEMU accelerator. The same code can be found in
> the following files of the HAXM kernel module:
> 
>  include/hax_interface.h
>  include/vcpu_state.h
>  core/include/vm.h
> 
> These files are now open source under the 3-clause BSD license,
> whereas hax-interface.h in QEMU uses GPLv2.
> 
> Address this inconsistency by adding the BSD license to the QEMU
> file, per Stefan Weil's comment on this HAXM pull request:
> 
>  https://github.com/intel/haxm/pull/2
> 
> Signed-off-by: Yu Ning <yu.ning@intel.com>
> ---
>  target/i386/hax-interface.h | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/target/i386/hax-interface.h b/target/i386/hax-interface.h
> index d141308..9a36c9a 100644
> --- a/target/i386/hax-interface.h
> +++ b/target/i386/hax-interface.h
> @@ -1,4 +1,33 @@
>  /*
> + * Copyright (c) 2011 Intel Corporation
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are met:
> + *
> + *   1. Redistributions of source code must retain the above copyright notice,
> + *      this list of conditions and the following disclaimer.
> + *
> + *   2. Redistributions in binary form must reproduce the above copyright
> + *      notice, this list of conditions and the following disclaimer in the
> + *      documentation and/or other materials provided with the distribution.
> + *
> + *   3. Neither the name of the copyright holder nor the names of its
> + *      contributors may be used to endorse or promote products derived from
> + *      this software without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +/*
>   * QEMU HAXM support
>   *
>   * Copyright (c) 2011 Intel Corporation
> 

Reviewed-by: Stefan Weil <sw@weilnetz.de>

CC'ing Vincent who added the file to the QEMU code base.

Maybe the two licenses in the header could be re-arranged when merging
that commit.

Regards,
Stefan

Re: [Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by Eduardo Habkost 6 years, 5 months ago
On Thu, Nov 16, 2017 at 07:47:44AM +0100, Stefan Weil wrote:
> Am 16.11.2017 um 07:50 schrieb yu.ning@linux.intel.com:
> > From: Yu Ning <yu.ning@intel.com>
> > 
> > hax-interface.h defines the interface between the HAXM kernel
> > module and the HAXM QEMU accelerator. The same code can be found in
> > the following files of the HAXM kernel module:
> > 
> >  include/hax_interface.h
> >  include/vcpu_state.h
> >  core/include/vm.h
> > 
> > These files are now open source under the 3-clause BSD license,
> > whereas hax-interface.h in QEMU uses GPLv2.

Why is this a problem?


> > 
> > Address this inconsistency by adding the BSD license to the QEMU
> > file, per Stefan Weil's comment on this HAXM pull request:
> > 
> >  https://github.com/intel/haxm/pull/2

The existing code on qemu.git don't match the code on the GitHub
repository above exactly, and its copyright history looks hard to
track[1].  If we really care about consistency between the two
projects, shouldn't we just delete the existing file and copy the
headers from github.com/intel/haxm directly?


[1] https://github.com/qemu/qemu/commit/47c1c8c12f6c8b3c6e0da7bbd93fd4e1724cf114
    https://android.googlesource.com/platform/external/qemu-android/+/2b3098ff27bab079caab9b46b58546b5036f5c0c/target-i386/hax-interface.h

Also, does it even make sense to keep the two licenses in the
file?


> > 
> > Signed-off-by: Yu Ning <yu.ning@intel.com>
> > ---
> >  target/i386/hax-interface.h | 29 +++++++++++++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> > 
> > diff --git a/target/i386/hax-interface.h b/target/i386/hax-interface.h
> > index d141308..9a36c9a 100644
> > --- a/target/i386/hax-interface.h
> > +++ b/target/i386/hax-interface.h
> > @@ -1,4 +1,33 @@
> >  /*
> > + * Copyright (c) 2011 Intel Corporation
> > + *
> > + * Redistribution and use in source and binary forms, with or without
> > + * modification, are permitted provided that the following conditions are met:
> > + *
> > + *   1. Redistributions of source code must retain the above copyright notice,
> > + *      this list of conditions and the following disclaimer.
> > + *
> > + *   2. Redistributions in binary form must reproduce the above copyright
> > + *      notice, this list of conditions and the following disclaimer in the
> > + *      documentation and/or other materials provided with the distribution.
> > + *
> > + *   3. Neither the name of the copyright holder nor the names of its
> > + *      contributors may be used to endorse or promote products derived from
> > + *      this software without specific prior written permission.
> > + *
> > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
> > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> > + * POSSIBILITY OF SUCH DAMAGE.
> > + */
> > +/*
> >   * QEMU HAXM support
> >   *
> >   * Copyright (c) 2011 Intel Corporation
> > 
> 
> Reviewed-by: Stefan Weil <sw@weilnetz.de>
> 
> CC'ing Vincent who added the file to the QEMU code base.
> 
> Maybe the two licenses in the header could be re-arranged when merging
> that commit.

-- 
Eduardo

Re: [Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by Yu Ning 6 years, 5 months ago

On 11/17/2017 2:00, Eduardo Habkost wrote:
> On Thu, Nov 16, 2017 at 07:47:44AM +0100, Stefan Weil wrote:
>> Am 16.11.2017 um 07:50 schrieb yu.ning@linux.intel.com:
>>> From: Yu Ning <yu.ning@intel.com>
>>>
>>> hax-interface.h defines the interface between the HAXM kernel
>>> module and the HAXM QEMU accelerator. The same code can be found in
>>> the following files of the HAXM kernel module:
>>>
>>>   include/hax_interface.h
>>>   include/vcpu_state.h
>>>   core/include/vm.h
>>>
>>> These files are now open source under the 3-clause BSD license,
>>> whereas hax-interface.h in QEMU uses GPLv2.
> Why is this a problem?

I know very little about licenses.  If this is not a problem, I'm happy 
to just abandon this patch.
>
>>> Address this inconsistency by adding the BSD license to the QEMU
>>> file, per Stefan Weil's comment on this HAXM pull request:
>>>
>>>   https://github.com/intel/haxm/pull/2
> The existing code on qemu.git don't match the code on the GitHub
> repository above exactly, and its copyright history looks hard to
> track[1].

Right. I don't know when the QEMU header (hax-interface.h) first 
appeared, but I think it's probably a derivative of the HAXM ones, which 
date back to no later than June 2011.

> If we really care about consistency between the two
> projects, shouldn't we just delete the existing file and copy the
> headers from github.com/intel/haxm directly?

That's a good solution, but not feasible at the moment, because in the 
HAXM kernel module, a small piece of the interface code currently 
resides in an internal header (core/include/vm.h). Probably we should 
clean up the interface headers on the HAXM side, and then push the 
change to QEMU.

> Also, does it even make sense to keep the two licenses in the
> file?

I don't know the answer.  If it doesn't make sense, I can either remove 
the original GPLv2 license, or abandon this patch and later come back 
with another one implementing the above solution.

Re: [Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by Eduardo Habkost 6 years, 5 months ago
On Fri, Nov 17, 2017 at 05:03:27PM +0800, Yu Ning wrote:
> On 11/17/2017 2:00, Eduardo Habkost wrote:
> > On Thu, Nov 16, 2017 at 07:47:44AM +0100, Stefan Weil wrote:
> > > Am 16.11.2017 um 07:50 schrieb yu.ning@linux.intel.com:
> > > > From: Yu Ning <yu.ning@intel.com>
> > > > 
> > > > hax-interface.h defines the interface between the HAXM kernel
> > > > module and the HAXM QEMU accelerator. The same code can be found in
> > > > the following files of the HAXM kernel module:
> > > > 
> > > >   include/hax_interface.h
> > > >   include/vcpu_state.h
> > > >   core/include/vm.h
> > > > 
> > > > These files are now open source under the 3-clause BSD license,
> > > > whereas hax-interface.h in QEMU uses GPLv2.
> > Why is this a problem?
> 
> I know very little about licenses.  If this is not a problem, I'm happy to
> just abandon this patch.

As far as I can see, this is not a problem for the QEMU project
at all, as QEMU as a whole is GPLv2.

It would make sense to update the license if we wanted to keep
our header file in sync with some other source tree (e.g. the one
from Intel), but this doesn't seem to be the case here (yet?).


> > 
> > > > Address this inconsistency by adding the BSD license to the QEMU
> > > > file, per Stefan Weil's comment on this HAXM pull request:
> > > > 
> > > >   https://github.com/intel/haxm/pull/2
> > The existing code on qemu.git don't match the code on the GitHub
> > repository above exactly, and its copyright history looks hard to
> > track[1].
> 
> Right. I don't know when the QEMU header (hax-interface.h) first appeared,
> but I think it's probably a derivative of the HAXM ones, which date back to
> no later than June 2011.
> 
> > If we really care about consistency between the two
> > projects, shouldn't we just delete the existing file and copy the
> > headers from github.com/intel/haxm directly?
> 
> That's a good solution, but not feasible at the moment, because in the HAXM
> kernel module, a small piece of the interface code currently resides in an
> internal header (core/include/vm.h). Probably we should clean up the
> interface headers on the HAXM side, and then push the change to QEMU.

This would be nice, so we wouldn't need to maintain a different
header file in QEMU.  Should we open an issue at
https://github.com/intel/haxm?

-- 
Eduardo

Re: [Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by Yu Ning 6 years, 5 months ago

On 11/20/2017 5:31, Eduardo Habkost wrote:
> On Fri, Nov 17, 2017 at 05:03:27PM +0800, Yu Ning wrote:
>> On 11/17/2017 2:00, Eduardo Habkost wrote:
>>> On Thu, Nov 16, 2017 at 07:47:44AM +0100, Stefan Weil wrote:
>>>> Am 16.11.2017 um 07:50 schrieb yu.ning@linux.intel.com:
>>>>> From: Yu Ning <yu.ning@intel.com>
>>>>>
>>>>> hax-interface.h defines the interface between the HAXM kernel
>>>>> module and the HAXM QEMU accelerator. The same code can be found in
>>>>> the following files of the HAXM kernel module:
>>>>>
>>>>>    include/hax_interface.h
>>>>>    include/vcpu_state.h
>>>>>    core/include/vm.h
>>>>>
>>>>> These files are now open source under the 3-clause BSD license,
>>>>> whereas hax-interface.h in QEMU uses GPLv2.
>>> Why is this a problem?
>> I know very little about licenses.  If this is not a problem, I'm happy to
>> just abandon this patch.
> As far as I can see, this is not a problem for the QEMU project
> at all, as QEMU as a whole is GPLv2.
>
> It would make sense to update the license if we wanted to keep
> our header file in sync with some other source tree (e.g. the one
> from Intel), but this doesn't seem to be the case here (yet?).
>
I see, that makes sense.

>
>>
>>> If we really care about consistency between the two
>>> projects, shouldn't we just delete the existing file and copy the
>>> headers from github.com/intel/haxm directly?
>> That's a good solution, but not feasible at the moment, because in the HAXM
>> kernel module, a small piece of the interface code currently resides in an
>> internal header (core/include/vm.h). Probably we should clean up the
>> interface headers on the HAXM side, and then push the change to QEMU.
> This would be nice, so we wouldn't need to maintain a different
> header file in QEMU.  Should we open an issue at
> https://github.com/intel/haxm?
>
Here: https://github.com/intel/haxm/issues/9

The API headers in the HAXM tree depend on another header, i.e. either 
hax_types_windows.h or hax_types_mac.h, which defines some basic data 
types (uint64_t, etc.) and macros (PACKED, ALIGNED, etc.).  If we want 
to use the same files for QEMU, we'll need to figure out an elegant way 
to provide those definitions.  Any suggestions?

Re: [Qemu-devel] [PATCH] hax-interface: Add BSD license
Posted by Kamil Rytarowski 6 years, 5 months ago
On 20.11.2017 08:17, Yu Ning wrote:
> 
> 
> On 11/20/2017 5:31, Eduardo Habkost wrote:
>> On Fri, Nov 17, 2017 at 05:03:27PM +0800, Yu Ning wrote:
>>> On 11/17/2017 2:00, Eduardo Habkost wrote:
>>>> On Thu, Nov 16, 2017 at 07:47:44AM +0100, Stefan Weil wrote:
>>>>> Am 16.11.2017 um 07:50 schrieb yu.ning@linux.intel.com:
>>>>>> From: Yu Ning <yu.ning@intel.com>
>>>>>>
>>>>>> hax-interface.h defines the interface between the HAXM kernel
>>>>>> module and the HAXM QEMU accelerator. The same code can be found in
>>>>>> the following files of the HAXM kernel module:
>>>>>>
>>>>>>    include/hax_interface.h
>>>>>>    include/vcpu_state.h
>>>>>>    core/include/vm.h
>>>>>>
>>>>>> These files are now open source under the 3-clause BSD license,
>>>>>> whereas hax-interface.h in QEMU uses GPLv2.
>>>> Why is this a problem?
>>> I know very little about licenses.  If this is not a problem, I'm
>>> happy to
>>> just abandon this patch.
>> As far as I can see, this is not a problem for the QEMU project
>> at all, as QEMU as a whole is GPLv2.
>>
>> It would make sense to update the license if we wanted to keep
>> our header file in sync with some other source tree (e.g. the one
>> from Intel), but this doesn't seem to be the case here (yet?).
>>
> I see, that makes sense.

Please keep the whole HAXM as it is (BSD-3clause) as it makes this piece
of software reusable for !Linux (and non-qemu) usage without licensing wars.

If it will be kept BSD, I might try to integrate it with the NetBSD
base-system at one point.