Alastair Reid <alastair@reid-consulting-uk.ltd.uk> wrote:
GPL + MIT = GPL # I think this is true. BSD + MIT = BSD # This may also be true x + x = x # This says that we can delete any duplicates
On Friday 23 May 2003 1:37 am, Ashley Yakeley wrote:
By "+" I assume you mean "must comply with at least one" rather than "must comply with both"?
I was thinking of a situation like: Suppose you have a program containing module A and module B. To make it concrete, let's further assume: Module A has license GPL and module B has license MIT. I want to determine: What license governs the complete program? We all know from having seen enough examples that it's the GPL license. That's what I meant when I wrote: GPL + MIT = GPL i.e., if you link 2 modules one governed by GPL and the other governed by MIT then the result has license GPL. That is, '+' means 'must comply with both'. The proposal was that you make a list of all the modules in your program. From this you make a list of all the licenses of all the modules. You then apply simplification rules: - eliminate duplicates - where one license is strictly stronger than another, keep the stronger This results in a list of licenses which the programmer or his lawyer can puzzle over. Notes: 1) Conceivably, there could be a license where it matters whether A imports B or B imports A but I'm not sure how a lawyer would interpret this in the context of higher-order functions and, in any case, I've not seen such a license so, as a first approximation, I'm going to ignore the difference. 2) Similarily, a license might distinguish between dynamic linking and static linking and, again, I'm going to ignore the difference. -- Alastair Reid