For Approval: Microsoft Permissive License

Donovan Hawkins hawkins at
Sun Aug 19 23:52:22 UTC 2007

On Sun, 19 Aug 2007, Chris Travers wrote:

<snipped lengthy description of a licensing chain for OpenSSL>

You seem to be right on top of the key question: does linking/dynamic 
linking/using a "plugin"/connecting to an "optional module" invoke the GPL 
requirements that all source be available under GPL. When that question is 
answered, you have the answer to your question. AFAIK, that isn't entirely 
decided currently. FSF says optional doesn't cut it (see their FAQ), and 
many times have rejected linking. IIRC someone just posted to this list a 
few days ago saying otherwise.

BTW, Wikipedia notes in their OpenSSL page why even the "Major Component" 
exception doesn't help distros: GPL (v2 I assume but they don't indicate) 
adds "unless that component itself accompanies the executable" as an 
exception to being a Major Component. That makes it impossible for 
anything included with a distro to make use of the exception, because the 
OS itself accompanies the executable. GPL v3 doesn't appear to contain 
this exception.

>> So your authentication system is not a "Major Component" is not a 
>> component of the OS, nor is it a compiler or object code interpreter.
> So PAM and NSSWITCH are not a part of the OS?  That is news to me.

All you said was that you would use a closed-source authentication system 
and treat your bindings to it as "System Libraries" under GPL v3. I don't 
recally any mention of PAM or NSSWITCH.

GPL v3 seems clear that "Major Components" come with the OS/compiler and 
"System Libraries" are "included in the normal form of packaging a Major 
Component". That means anyone who has the OS and compiler should already 
have a copy of the System Libraries and Major Components.

> But how do you define the OS?  Certainly the device in question might not 
> include any GNU tools and hence not even be something RMS would call 
> "GNU/Linux" but does that make it less of a system component?

Ask RMS. I think availablility to a typical user/developer on that 
platform is going to play a role in defining what is part of the 

The intent of the section is abundantly clear though. If everyone already 
has a copy on their system, you don't need to give them one. Doing 
otherwise would make it impossible to create GPL programs to run on closed 

> In short, is there anything in the MS-PL that precludes use of the code from 
> complying with all of the other terms set in the GPL v3?  I don't see any.


MS-PL says "license this only under MS-PL". It is obvious that you cannot 
license that code under GPL v3 (or any other license).

GPL v3 says "license everything under GPL v3". It is obvious that this 
precludes using MS-PL code in a GPL v3 program.

The only remaining question of yours then is why is new BSDL compatible 
with GPL v3. Note that BSDL doesn't ever say you can ONLY license it under just says "you must do the following N things". GPL v3 is 
capable of ensuring that those N things are done in all derived works, so 
licensing under GPL v3 satisfies the requirements of BSDL and is therefore 

You'll have to talk to a lawyer if you want to debate this point further. 
I merely observe this to be the way things work.

This is getting way beyond the scope of the MS-PL license discussion 
thread though, so I'm going to stop here.

Donovan Hawkins, PhD                 "The study of physics will always be
Software Engineer                     safer than biology, for while the
hawkins at                   hazards of physics drop off as 1/r^2,                biological ones grow exponentially."

More information about the License-discuss mailing list