Open Source License Types

Gravity Jack In the Press

Every once in awhile we have to give our professional opinion to clients on what open source license is “safe” for a particular use.
For the most part, MIT, BSD, and the Apache licenses are good for business. GPL, LGPL you need to be very careful.
Either way, you need to follow different guidelines for each license type – you must also make sure that if you change any code that you fully comply. For examples using a dll is a lot different than editing a file in that dll, compiling, and then using the derived work. Lots of little gotcha’s…
Zack Rusin of was kind enough to let me reuse his really handy chart. Thanks Zack!

LicenseProprietary Software linkingDistribution of “the Work”Redistributing of the code with changes
GPLNot allowed (since the linked software is considered a whole)Not allowed with software whose license is not GNU GPL compatible.Only if the derivative is GNU GPL.
LGPLAllowed (since the software that links to the library is not considered a derivative work)Allowed with some restrictions: You have to provide source code of the distributed LGPL library with (if any) modifications, changes to the LGPL library should be allowed to third parties and if BC your app/lib should still work with the modified LGPL lib/app.Only if the derivative is GNU LGPL or GNU GPL.
Apple PublicAllowed (the requirements of Apple License apply only to the Covered Code)Allowed.Only under Apple Public license.
Apache PublicAllowed.Allowed.Allowed (as long as the name “Apache” isn’t used in the name of the derivative work)
Artistic 2.0Allowed.Allowed (as long as C or perl subroutines supplied by you and linked into the Covered Code are not considered a part of the Covered Code)Allowed if one of the following is true:a) modifications are freely available,
b) one uses the modified package only within corporation or organization,
c) rename any non-standard executables,
d) make other distribution arrangements with the Copyright Holder
And the name of the Copyright Holder may not be used to promote derived products without his/hes written permission.
Common PublicLicense not clear on that, but do not mix Code Covered by this license with incompatible licenses.Not clear, but again do not mix it with code licensed under an incompatible license.Only under CPL or a compatible license.
JabberAllowedAllowed. Only the portions of “the Work” licensed under the Jabber license needs to stay licensed as such.Can be under a different license as long as the source code is provided and a few License specific requirements are fulfilled.
MIT (X11)Allowed.Allowed.Allowed.
MPLAllowed.Allowed.Only under MPL.
PythonAllowed (?)Allowed.Allowed, assuming the package includes a list of changes to the original Python and copyright notices on all files.
QPLNot allowed.Only if it’s Open Source.Only in the form of patches to the original code.
Sun PublicAllowed.Allowed.Only under Sun Public.