Open-source Licensing 101 - alavi.me Published on August 09, 2026Open-source Licensing 101<br>By Alireza Alavi • 12 minutes read • tags:softwarelegal
Table of Contents Types of licensesPermissive Licenses (Lax)Intermediate (Weak copyleft)CopyleftCompatibility and re-licensingPermissive licenses (Lax)Intermediate licenses (Weak copyleft)CopyleftDual licensingCombining code with different licensesChoosing a licensePermissive licensesIntermediate licenses (Weak copyleft)CopyleftOther good resourcesReferences
Disclaimer This isn't legal advice. I'm not a lawyer.<br>Table of Contents<br>Types of licensesPermissive Licenses (Lax)Intermediate (Weak copyleft)CopyleftCompatibility and re-licensingPermissive licenses (Lax)Intermediate licenses (Weak copyleft)CopyleftDual licensingCombining code with different licensesChoosing a licensePermissive licensesIntermediate licenses (Weak copyleft)CopyleftOther good resourcesReferencesA license on your software determines your legal duties and boundaries on:what you can do with your software how you can distribute it how derivative work must be handled and licensed how it can be used within other projects what other projects you can use within your project etc.You must take care when licensing your product, since it can affect:it's usagedistributionmeaning.(proprietary software, source available, FOSS) This is a legal matter, you can't just read a 10min blog post on it and be all set.<br>Take your time, read through established guides (like those on fsf.org), and most importantly, read your final candidate licenses (I know it's boring to death but it's a must)Types of licenses<br>Permissive Licenses (Lax)<br>Permissive licenses or as Richard Stallman and Free Software Foundation(FSF) likes to call them: pushover licenses.we call them “pushover licenses” because they can't say “no” when one user tries to deny freedom to others.<br>They allow almost anything. You can use the code in any way you want and do what ever you want with it, and you will have no obligations.<br>Examples:<br>MIT LicenseApache License 2.0BSD LicenseIntermediate (Weak copyleft)<br>Intermediate licenses are those which have substantive requirements on redistribution but are not copyleft licenses.1<br>What this usually means is that you can use the product without modifications (Verbatim) for anything even In proprietary software. But if you make any changes to it you must release the "modified work" under the same license Examples: LGPL (GNU Lesser General Public License)EPL (Eclipse Public License)MPL (Mozilla Public License)Copyleft<br>Copyleft is a general method for making a program (or other work) free (in the sense of freedom, not “zero price”), and requiring all modified and extended versions of the program to be free as well.2<br>Any derivative of the Copylefted work or any work that directly uses the copylefted work must also be released and copyleftedDefinition and scope of "Uses" depends on the license, but for example, here is how GPL v3 defines them (refer to the GPLv3 license): "Linking" Using the program (eg. import "foo")"Modifying"Is "Covered work"Examples: GPL (GNU General Public License)AGPL (Afferro General Public License)Compatibility and re-licensing<br>Permissive licenses (Lax)<br>In general, they are all compatible with each other and with other licenses , since they don't prohibit anything and allow everything (There are some exceptions1)In a combination of programs under lax licenses, each part carries the license it came with. When the code is merged to the point that the parts can't be distinguished any more, that merged code should carry all the licenses of the merged parts. Since all the licenses are lax anyway, this causes no practical problem except that the list of licenses gets long.3<br>You can usually re-license the derivatives of lax-licensed software to anythingIntermediate licenses (Weak copyleft)<br>Intermediate licenses tend to be incompatible with any copyleft licenses because their requirements don't permit the combined program to be under the copyleft license.1<br>Examples LGPL (GNU Lesser General Public License) The GNU Lesser General Public License, version 3, is really the GNU General Public License version 3 plus some added extra permissions. GPL version 3 (section 7) says you can always remove added permissions, and by doing so you get the same code under the ordinary GNU GPL version 3.<br>If a program permits use under GNU LGPL version 3 or later, you can relicense it to GPL version 3 or later 1<br>it permits linking with non-free modules.It can be re licensed to GPL, so they are compatibleCopyleft<br>Requires all reuse to be in programs under the same license.<br>=> If you use a copyleft library or piece of code, you have to release your whole software under the same copyleft license<br>=> You cannot use software licensed with these in proprietary software<br>=> A Copyleft licensed software will live on forever as a Copyleft licensed softwareIn general, two different copyleft licenses are unavoidably incompatible unless...