All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Lars Kurth <lars.kurth@citrix.com>, Jan Beulich <JBeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wei.liu2@citrix.com>,
	Andrew Cooper <Andrew.Cooper3@citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	Julien Grall <julien.grall@arm.com>,
	"zhaoshenglong@huawei.com" <zhaoshenglong@huawei.com>,
	Ian Jackson <Ian.Jackson@citrix.com>,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: Re: [PATCH v3 00/19] Make ACPI builder available to components other than hvmloader
Date: Fri, 16 Sep 2016 11:53:08 -0400	[thread overview]
Message-ID: <5d05bd58-4448-5ae1-453b-64628eaced0c@oracle.com> (raw)
In-Reply-To: <D401BE72.2DD6C%lars.kurth@citrix.com>

On 09/16/2016 11:22 AM, Lars Kurth wrote:
>
> On 16/09/2016 13:41, "Boris Ostrovsky" <boris.ostrovsky@oracle.com> wrote:
>
>> On 09/16/2016 02:45 AM, Jan Beulich wrote:
>>>>> And then there's the question of whether excluding things from the
>>>>> build, but having them present in the sources actually helps.
>>>> The main reason for this whole relicensing debacle is to prevent
>>>> non-GPL
>>>> binaries from linking against GPL objects, and this patch allows us to
>>>> do that. Yes, there will be be two non-LGPL files (dsdt.asl amd
>>>> mk_dsdt.c, which I will revert back to GPL) in an otherwise LGPL
>>>> directory but that's an in-convenience and not a license violation.
>>> Well, if linking is all this is about, then it's fine of course. I'm
>>> just
>>> not a license expert, so we'd need this acked by someone who is
>>> more familiar with the differences and implications.
>> I think Ian and Lars (added both here) would be the most experienced in
>> this matter.
> It is all about linking. The terms of the GPL "spread" to derivative works
> through both “dynamic” and “static” linking of binaries only. So you can
> have one directory, which contains GPL and non-GPL licensed files, and not
> suffer GPL-contagion as long as you can guarantee that the binaries
> produced are of a specific license and you only link compatible binaries
> with each other. Of course that is brittle and error prone.
>
>> So I looked again at commit 801d469ad8b2b88f669326327df03d03200efbfb
>> (which is the patch from Lenovo) and it only does 2 things (assuming I
>> parsed ASL correctly):
>> * Adds _PIC method
> As far as I can tell, only lines 30-43 of the original code remains.
> Is this correct?

_S5 object still exists but it's content has been modified by subsequent
non-Lenovo changes so I think we can not worry about lines 20-30.

But lines 30-43 are still present in current code.

>
>> * Controls and describes legacy PCI interrupt routing. This
>> functionality has actually been moved into mk_dsdt.c and so this ASL
>> code is now generated.
>
> Has it been 
> a) moved, 
> b) re-implemented in a different language using the ASL code as template,

(b) is probably the best description.


> or 
> c) implemented in C based on the ACPI spec?
>
> Given that mk_dsdt.c is C and the original contribution is entirely ASL
> (note that acpi_dsdt.c was generated from the ASL), a) does not appear to
> be the case.
>
> b) can probably not be excluded, in which case it may be safer to keep
> mk_dsdt.c as GPL. But it would be a grey area.
>
> If we knew for sure or it is plausible enough that it was c), then
> mk_dsdt.c does not need to be GPL. 

Both hand-crafted and mk_dsdt-generated ASL file are *conforming* to
ACPI spec but the values (i.e. the topology that the ASL file describes)
are specifically chosen so I don't think (c) is the right answer.

Having said that it is entirely plausible that the author of the patch
ran iasl on his machine and took the output from it to produce the
patch, possibly with minor tweaks. But we, of course, don't know for sure.

> And then the remaining Lenovo code in
> dsdt.asl may be simple enough to not be copyrightable.
>
> Whatever the answer, I would like to get Ian's opinion.
> And it is still preferable though to have the entire component in LGPL and
> to get a Lenovo ACK.
>
>> I could move these two files into tools/libacpi/gpl subdirectory to
>> emphasize their special licensing.
> That would definitely make things easier and avoid any future mistakes
> which lead to licensing issues.
>
> Another general comment is that the component should have a COPYING file
> and maybe a README.source file in the new component (that will make future
> forensics easier). 

I'll add a COPYING file (we already have a README).


-boris



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2016-09-16 15:53 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-07 18:59 [PATCH v3 00/19] Make ACPI builder available to components other than hvmloader Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 01/19] acpi: Re-license ACPI builder files from GPLv2 to LGPLv2.1 Boris Ostrovsky
2016-09-07 19:48   ` Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 02/19] acpi/hvmloader: Collect processor and NUMA info in hvmloader Boris Ostrovsky
2016-09-08 13:41   ` Jan Beulich
2016-09-07 18:59 ` [PATCH v3 03/19] acpi/hvmloader: Set TIS header address " Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 04/19] acpi/hvmloader: Make providing IOAPIC in MADT optional Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 05/19] acpi/hvmloader: Build WAET optionally Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 06/19] acpi/hvmloader: Replace mem_alloc() and virt_to_phys() with memory ops Boris Ostrovsky
2016-09-08 13:54   ` Jan Beulich
2016-09-07 18:59 ` [PATCH v3 07/19] acpi/hvmloader: Translate all addresses when assigning addresses in ACPI tables Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 08/19] acpi/hvmloader: Link ACPI object files directly Boris Ostrovsky
2016-09-08 13:56   ` Jan Beulich
2016-09-07 18:59 ` [PATCH v3 09/19] acpi/hvmloader: Include file/paths adjustments Boris Ostrovsky
2016-09-08 14:05   ` Jan Beulich
2016-09-08 18:29     ` Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 10/19] acpi: Move ACPI code to tools/libacpi Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 11/19] x86: Allow LAPIC-only emulation_flags for HVM guests Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 12/19] libacpi: Build DSDT for PVH guests Boris Ostrovsky
2016-09-08 14:09   ` Jan Beulich
2016-09-14  4:13   ` Shannon Zhao
2016-09-14 12:47     ` Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 13/19] acpi: Makefile should better tolerate interrupts Boris Ostrovsky
2016-09-08 14:15   ` Jan Beulich
2016-09-08 18:51     ` Boris Ostrovsky
2016-09-09  8:03       ` Jan Beulich
2016-09-09 13:07         ` Boris Ostrovsky
2016-09-09 13:29           ` Jan Beulich
2016-09-09 13:56             ` Boris Ostrovsky
2016-09-09 14:13               ` Ian Jackson
2016-09-09 14:31                 ` Boris Ostrovsky
2016-09-09 14:33                   ` Ian Jackson
2016-09-09 14:38                     ` Boris Ostrovsky
2016-09-09 15:20               ` Jan Beulich
2016-09-09 16:05                 ` Boris Ostrovsky
2016-09-09 16:11                   ` Jan Beulich
2016-09-07 18:59 ` [PATCH v3 14/19] libxc/libxl: Allow multiple ACPI modules Boris Ostrovsky
2016-09-15 10:13   ` Wei Liu
2016-09-07 18:59 ` [PATCH v3 15/19] libxl/acpi: Add ACPI e820 entry Boris Ostrovsky
2016-09-15 10:13   ` Wei Liu
2016-09-07 18:59 ` [PATCH v3 16/19] libxl/pvhv2: Include APIC page in MMIO hole for PVHv2 guests Boris Ostrovsky
2016-09-15 10:13   ` Wei Liu
2016-09-07 18:59 ` [PATCH v3 17/19] ilibxl: Initialize domain build info before calling libxl__domain_make Boris Ostrovsky
2016-09-15 10:13   ` Wei Liu
2016-09-07 18:59 ` [PATCH v3 18/19] libxl/acpi: Build ACPI tables for HVMlite guests Boris Ostrovsky
2016-09-08 14:20   ` Jan Beulich
2016-09-08 18:53     ` Boris Ostrovsky
2016-09-09  8:05       ` Jan Beulich
2016-09-09 13:11         ` Boris Ostrovsky
2016-09-09 13:50           ` Ian Jackson
2016-09-09 14:02             ` Boris Ostrovsky
2016-09-07 18:59 ` [PATCH v3 19/19] libxc/xc_dom_core: Copy ACPI tables to guest space Boris Ostrovsky
2016-09-15 10:13   ` Wei Liu
2016-09-14 15:21 ` [PATCH v3 00/19] Make ACPI builder available to components other than hvmloader Boris Ostrovsky
2016-09-15 10:18   ` Wei Liu
2016-09-15 10:20     ` Julien Grall
2016-09-15 10:22       ` Wei Liu
2016-09-15 12:39         ` Boris Ostrovsky
2016-09-15 13:48           ` Julien Grall
2016-09-15 14:07             ` Boris Ostrovsky
2016-09-15 14:21               ` Jan Beulich
2016-09-15 15:28                 ` Boris Ostrovsky
2016-09-15 16:05                   ` Jan Beulich
2016-09-15 16:40                     ` Boris Ostrovsky
2016-09-16  6:45                       ` Jan Beulich
2016-09-16 12:41                         ` Boris Ostrovsky
2016-09-16 15:22                           ` Lars Kurth
2016-09-16 15:53                             ` Boris Ostrovsky [this message]
2016-09-19 15:30                               ` Ian Jackson
2016-09-19 15:42                                 ` Boris Ostrovsky
2016-09-19 15:49                                   ` Ian Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5d05bd58-4448-5ae1-453b-64628eaced0c@oracle.com \
    --to=boris.ostrovsky@oracle.com \
    --cc=Andrew.Cooper3@citrix.com \
    --cc=Ian.Jackson@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=julien.grall@arm.com \
    --cc=lars.kurth@citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=zhaoshenglong@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.