Hi Wolfgang,

I agree that if a conflict in licenses exist (as in your example) you cannot 
just "AND" the licenses together since that leads to conflicting terms.  IMO 
you are taking the right approach in resolving the conflict and recording a 
non-conflicting license in the file.

If there is no conflict in license terms, however, I do not see an issue in 
using this approach. I run across a large volume of MIT style and BSD style 
licenses mixed in with GPL code, for example.  Using "AND'd" licenses is a 
compact way of stating all of the terms from license A and all of the terms for 
license B apply.

I don't think it is critical to use the same syntax in the tagging as we do in 
the SPDX documents.  I do, however, think it is important that we don't lose 
any embedded licensing information.  For example, if there is an MIT notice 
stuck in the middle of a GPL licensed file, we should retain that information 
and not just call it a "GPL" licensed file.

BTW - the issue of conflicting licenses is still an open issue as to whether we 
use the "AND'd" licenses to record the any conflicting licenses found within 
the same SPDX package or file.

Gary

-----Original Message-----
From: Wolfgang Denk [mailto:w...@denx.de] 
Sent: Monday, October 07, 2013 1:42 AM
To: Gary O'Neall
Cc: 'Wheeler, David A'; 'SPDX-legal'; spdx-t...@lists.spdx.org; 'SPDX-biz'; 
d...@uvic.ca
Subject: Re: meta-tag page - part II

Dear Gary,

In message <001f01cec2e5$9f1d9b20$dd58d160$@com> you wrote:
> 
> The "AND" situation would occur if you have a file which contains code 
> from two or more different sources using two or more different 
> licenses.  In that case, I believe you would need to satisfy the 
> obligations of all licenses
> (note: I'm not a lawyer so I am not proposing or providing a legal 
> interpretation).  Hopefully there is no conflict between the license 
> obligations.

I don't think this could work.

We encountered such cases when we analyzed the U-Boot code while introducing 
license tags.  There were some files that came with a the full GPL-2.0+ license 
header, but further down in the code that had a short comment that some parts 
(a few functions) have been copied from the Linux kernel.  The analysis shows 
that the original Linux kernel files were covered by GPL-2.0 only.

If I follow your argument, this code would now be covered by a "GPL-2.0+ AND 
GPL-2.0" license construct.  This is obviously absurd: I cannot both include 
and exclude the "or later" option simultaneously.


Our understanding of the legal situation left two solutions:  either we remove 
the GPL-2.0 code (and replace it by a clean-room implementation of similar 
functionality), or we change the file's license terms to GPL-2.0.  We did the 
latter:  the files are now licensed under GPL-2.0, i. e. the "or later" option 
had to be dropped for the file as a whole, because it was not available for the 
parts imported from Linux.

There was no way to "AND" both licenses here.


> ---
> For a license set, when there is a choice between licenses 
> ("disjunctive license"), they should be separated with "or" and enclosed in 
> parentheses.
> When multiple licenses apply ("conjunctive license"), they should be 
> separated with an "and" and enclosed in parentheses.  Example: 
> (LGPL-2.1 or MPL-1.1).
> ---

Do you have an example, where such a "conjunctive license" construct actually 
works?

> We were also concerned about the difficulty in parsing the strings.  
> We came up with enclosing them in parenthesis to aid in accurate and 
> unambiguous parsing.  For example, (LGPL-2.1 and (MPL-1.1 or 
> BSD-3-Clause)) would describe the licensing for a file which contains 
> code from an LGPL 2.1 package and code from a package licensed under a 
> choice of MPL-1.1 or BSD-3-Clause.

Understood.  However, I think these are only very few pathological cases, and 
it would be nice to keep the syntax simple for the overwhelming majority of 
practical use cases.  My vote goes for a simple white speace separated list of 
license IDs which should be interpreted as "OR".  Do you think it would be 
possible to extend the spec to allow for the (much easier to parse)

        <lic1> <lic2> [...]

as synonym for

        (<lic1> OR <lic2> [OR ...])

?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Steal 
five dollars and you were a petty  thief.  Steal  thousands  of dollars and you 
are either a government or a hero.
                                   - Terry Pratchett, _Going_Postal_

_______________________________________________
Spdx-legal mailing list
Spdx-legal@lists.spdx.org
https://lists.spdx.org/mailman/listinfo/spdx-legal

Reply via email to