Licensing - Wyatt's Notes
sources:
- text: Standard textbook reference
What This Site Covers
Practical software licensing guidance: choosing between MIT, GPL, Apache, and other licenses; understanding copyleft vs permissive models; handling license compatibility when combining third-party code; and navigating compliance requirements for commercial and open-source projects.
Why This Matters
Every piece of software you use, modify, or distribute has a license that defines what you can and cannot do with it. Ignoring licensing can result in legal liability, forced code release, or loss of intellectual property. Understanding licensing is essential for developers working on open-source projects, commercial products, or anything in between.
How to Use These Notes
- Start with the introduction — Understand the basics of copyright, licensing, and open-source models
- Choose the right license — Match your license to your project goals and community expectations
- Handle compatibility — Learn which licenses can be combined and which cannot
- Ensure compliance — Meet the requirements of licenses you use in your projects
Practical Applications
- Open-source projects: Choosing the right license attracts contributors and users. MIT is most popular for libraries; GPL for applications that should remain open.
- Commercial software: Understanding which licenses are compatible with commercial use prevents legal issues. Apache 2.0 and MIT are generally safe choices.
- Enterprise environments: Large organisations need license compliance policies. Understanding SBOMs (Software Bill of Materials) and dependency license scanning is essential.
Key Topics
- License Selection — Matching license to project goals
- Copyleft vs Permissive — Understanding obligations and trade-offs
- Compatibility — Combining code from differently-licensed sources
- Compliance — Meeting license requirements in practice
Resources
- Choose a License (choosealicense.com) — Simple guide to popular open-source licenses
- TLDRLegal (tldrlegal.com) — Plain-language summaries of common licenses
- FOSSA (fossa.com) — License compliance automation tools
Intuition
Licensing is the legal infrastructure of software development: Just as building codes govern construction, software licences govern how code can be used, shared, and modified. Every developer needs to understand licensing basics.
Why it matters: Licensing decisions affect commercial viability, community adoption, and legal exposure for software projects.
The key insight: The choice between copyleft (GPL) and permissive (MIT/Apache) licences has profound consequences for how your code can be used in commercial and open source projects.
Common Mistakes
Assuming “open source” means “no rules”: Open source licenses have specific requirements (attribution, share-alike, patent grants). Violating these requirements is license infringement. Open source is not the same as public domain.
Choosing a license based on popularity rather than needs: MIT is popular but provides no patent protection. Apache 2.0 includes patent grants but is more complex. GPL ensures copyleft but limits commercial use. Choose based on your goals, not what others use.
Forgetting to include license files: A LICENSE file in the repository root is essential. Without it, users cannot determine their rights. Include the full license text, not just a reference to it.