For Approval: Microsoft Permissive License
Donovan Hawkins
hawkins at cephira.com
Sun Aug 19 21:41:01 UTC 2007
On Sun, 19 Aug 2007, Chris Travers wrote:
> "This product contains code by .... " on a Help/About screen seems like a
> reasonable requirement by section 7b standards if required in other licenses.
> "This product is in part based on code by ..." seems seimilarly allowed.
> Where would the line be drawn?
That is a very good question. I'm afraid "reasonable" is generally one of
those things that is left to the courts to decide. Common usage within the
industry is probably going to weigh heavily on their decision though.
It's pretty trivial to have an option on a menu somewhere to display a
long scroll of attributions and legal notices, so I don't think this is a
big issue for most people. You just cut-paste to the end of the big list
and move on. The user only sees the big list if they select it.
> This doesn't seem to preclude the sort of advertising clauses that Internet
> Explorer must display regarding code from Mosaic. Or am I missing something?
GPL v3 allows requirements to retain notices on your source files and on
the interfaces. I don't see anything that allows requiring notices on
advertisements (in, say, a magazine). That sort of requirement is a
"further restriction" as defined in GPL v3 section 7:
"All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further restriction,
you may remove that term."
So you can put the advertising term in, but it can just be ignored. If the
term came as a result of your using code under a license that contained an
advertising clause, then it is not possible to convey the combination
under section 5c. If this is your original work, then you created
something no one can make use of. If you used other GPL v3 code, then you
violated GPL v3 with respect to that code.
> Are the BSD licenses incompatible with the GPL v3 simply because they have
> weaker copleft than GPL v3?
I'm being very loose with the word "compatible" I'm afraid, but then so
are most people.
BSDL code (without the advertising clause) can be used in a project which
is released under GPL v3. GPL v3 code cannot be used in a project which is
released under BSDL.
<bad analogy alert>
GPL v3 is like having type AB blood: you can get transfusions from almost
anyone but only other AB blood people can get a transfusion from you. BSDL
is like having type O blood: almost everyone can get a transfusion from
you, but you can't accept transfusions from anyone who doesn't also have
type O blood.
</bad analogy alert>
> My argument that optional dependencies might be excluded is that only
> required dependencies are mentioned in the GPL v3 corresponding source
> definition, and optional dependencies do not appear to fall inside the four
> corners of that definition. Did I miss something in the definition of
> "corresponding source?"
Excluding linking for a moment:
If you only convey your derived work in source code form, with an optional
dependency available via conditional compilation, I would agree with you.
Your work compiles (without the optional component), but has bindings to
allow someone to easily enable support for the optional component. I don't
see a problem there.
If you convey in executable form, then your "optional component" isn't
optional anymore. You either compiled it in or you didn't, and the answer
to that question determines whether you have to provide the component
source under GPL or not.
Linking is another matter, and I'll defer to others on that since I think
some people disagree with the FSF on that point.
> Also "corresponding source" includes a number of loopholes which could be
> used to exclude arbitrary components. For example, I *could* make a Linux
> device which used closed source libraries as part of an authentication
> system, create a GPL'd application for that device which used those same
> libraries, and exclude them as "system libraries" (because they interface
> with the authentication system which is arguably a "Major Component"). If
> you want to use the application on a different Linux device, you have to pay
> for the required libraries.
GPL v3 says:
"A "Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system (if
any) on which the executable work runs, or a compiler used to produce the
work, or an object code interpreter used to run it."
So your authentication system is not a "Major Component"...it is not a
component of the OS, nor is it a compiler or object code interpreter.
All this exception is saying is that you don't have to give people a copy
of the source code to gcc and linux just because you use printf() and
fork(). Or worse, give everyone a GPL-licensed copy of the source code to
MS Visual C++ and MS Windows because you use CString and CreateFile().
> Does the MS-PL place any specific requirements on the code that the GPL does
> not allow? If so, what are they exactly?
>From MS-PL:
"If you distribute any portion of the software in source code form, you
may do so only under this license by including a complete copy of this
license with your distribution."
>From GPL v3 section 5c:
"You must license the entire work, as a whole, under this License to
anyone who comes into possession of a copy. This License will therefore
apply, along with any applicable section 7 additional terms, to the whole
of the work, and all its parts, regardless of how they are packaged."
>> Your interpretation of the word "by" seems to be equivalent to "which is
>> accomplished by".
> No actually I don't. I see it as requiring that MS-PL licensed areas to the
> extent that they are identifiable must be licensed under the terms of that
> license. This means including the license and (probably, so as not to run
> amok with GPL code copyright owners) identifying the portions of the code
> with reasonable legal notices such as:
>
> /* The block of code including the below function is licensed under the MS-PL
> license. Please see accompanying ms-pl.txt for details, copyright (c) [yyyy]
> [author_name] */
But is this licensed only under MS-PL, as required by MS-PL, or is it also
licensed under GPL v3, as required by GPL v3?
> Is the license itself a reasonable legal notice? If so, then it meets 7b
> options and one could force the inclusion of the license.
The problem isn't keeping the legal notice. The problem is simultaneously
having the code licensed only under MS-PL and having it licensed under GPL
v3. That equation is only solvable if MS-PL == GPL, which I think we all
agree is not likley. ^^
---------------------------------------------------------------------------
Donovan Hawkins, PhD "The study of physics will always be
Software Engineer safer than biology, for while the
hawkins at cephira.com hazards of physics drop off as 1/r^2,
http://www.cephira.com biological ones grow exponentially."
---------------------------------------------------------------------------
More information about the License-discuss
mailing list