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
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
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
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.
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
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?
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.
© 2016 - 2024 Red Hat, Inc.