Licensing - Wyatt's Notes
Welcome to the licensing notes.
Browse the content using the sidebar navigation on the left.
Why Licensing Matters
Section titled “Why Licensing Matters”Every piece of software has a license — even if you did not choose one. Without an explicit license, copyright law gives you “all rights reserved” by default, meaning nobody can use, modify, or distribute your code. Choosing the right license protects you and communicates your intentions to users.
Key Concepts
Section titled “Key Concepts”- Copyright is automatic and grants exclusive rights to the creator. It does not need to be registered.
- Licensing is the act of granting specific permissions to others. An MIT license grants broad permissions; a GPL license grants permissions with conditions.
- Copyleft (GPL, AGPL) requires derivative works to use the same license. Permissive licenses (MIT, BSD, Apache) allow proprietary derivatives.
Common License Families
Section titled “Common License Families”| License | Type | Key Requirement |
|---|---|---|
| MIT | Permissive | Include copyright notice |
| BSD 2-Clause | Permissive | Include copyright notice |
| Apache 2.0 | Permissive | Include notice, state changes, patent grant |
| GPL v3 | Copyleft | Derivative works must be GPL |
| AGPL v3 | Strong Copyleft | Network use triggers copyleft |
| MPL 2.0 | Weak Copyleft | File-level copyleft |
Why This Matters
Section titled “Why This Matters”Choosing the wrong license can have lasting consequences for your project. A GPL license in a commercial product may require you to release your source code. A permissive license without patent protection may leave you vulnerable to patent claims. Understanding the legal implications of each license family is not optional — it is a fundamental part of software development.
Practical Guidance
Section titled “Practical Guidance”- For personal projects: MIT or BSD are simple and permissive. They allow anyone to use, modify, and distribute your code with minimal restrictions.
- For commercial products: Apache 2.0 provides patent grants and explicit contributor licensing. Avoid GPL if you want to keep your code proprietary.
- For community projects: GPL or AGPL ensure that improvements remain open. Choose based on whether you want to allow proprietary forks.
Intuition
Section titled “Intuition”Software licences govern the legal use of code: Every piece of software has a licence, whether explicitly stated or determined by default copyright law. Understanding licensing is essential for developers, companies, and open source contributors.
Why it matters: Incorrect licensing can result in legal disputes, forced code disclosure, or loss of intellectual property rights.
The key insight: There is no such thing as “no licence” — if you do not specify one, default copyright applies, meaning nobody can legally use, modify, or distribute your code.
Common Mistakes
Section titled “Common Mistakes”Confusing copyright with licensing: Copyright is automatic (applied on creation). Licensing is a choice — you decide how others can use your work. An unlicensed work is “all rights reserved” by default, even if you want to share it. Always apply an explicit license.
Using GPL code in proprietary software: GPL requires derivative works to also be GPL. If you incorporate GPL-licensed code into your project, your entire project must be GPL-compatible. Use MIT or Apache 2.0 for permissive licensing if you want proprietary compatibility.
Ignoring license compatibility: Not all licenses can be combined. GPL and Apache 2.0 have compatibility issues. BSD and MIT are broadly compatible. Before combining code from different sources, verify their licenses allow the combination.
Cross-References
Section titled “Cross-References”Detailed Content
Section titled “Detailed Content”This topic covers the fundamental principles and applications in depth. Each concept is explained with clear definitions, worked examples, and practice problems to reinforce understanding.
Core Concepts
Section titled “Core Concepts”Understanding these core concepts is essential for mastering this topic. They form the foundation for more advanced study and are frequently examined.
Worked Examples
Section titled “Worked Examples”Worked examples demonstrate how to apply the concepts to solve problems. Each example is broken down into clear steps with explanations.
Common Mistakes
Section titled “Common Mistakes”- Rushing through foundational material
- Not practising problems after reading
- Failing to connect concepts across topics
Further Reading
Section titled “Further Reading”Consult the recommended textbooks and additional resources for deeper understanding of this topic.
Detailed Content
Section titled “Detailed Content”This topic covers the fundamental principles and applications in depth. Each concept is explained with clear definitions, worked examples, and practice problems to reinforce understanding.
Core Concepts
Section titled “Core Concepts”Understanding these core concepts is essential for mastering this topic. They form the foundation for more advanced study and are frequently examined.
Worked Examples
Section titled “Worked Examples”Worked examples demonstrate how to apply the concepts to solve problems. Each example is broken down into clear steps with explanations.
Common Mistakes
Section titled “Common Mistakes”- Rushing through foundational material
- Not practising problems after reading
- Failing to connect concepts across topics
Further Reading
Section titled “Further Reading”Consult the recommended textbooks and additional resources for deeper understanding of this topic.
Detailed Content
Section titled “Detailed Content”This topic covers the fundamental principles and applications in depth. Each concept is explained with clear definitions, worked examples, and practice problems to reinforce understanding.
Core Concepts
Section titled “Core Concepts”Understanding these core concepts is essential for mastering this topic. They form the foundation for more advanced study and are frequently examined.
Worked Examples
Section titled “Worked Examples”Worked examples demonstrate how to apply the concepts to solve problems. Each example is broken down into clear steps with explanations.
Common Mistakes
Section titled “Common Mistakes”- Rushing through foundational material
- Not practising problems after reading
- Failing to connect concepts across topics
Further Reading
Section titled “Further Reading”Consult the recommended textbooks and additional resources for deeper understanding of this topic.
Detailed Explanation
Section titled “Detailed Explanation”This topic covers the fundamental principles and applications in depth.
Core Concepts
Section titled “Core Concepts”Understanding these core concepts is essential for mastering this topic.
Worked Examples
Section titled “Worked Examples”Worked examples demonstrate how to apply the concepts to solve problems.
Common Mistakes
Section titled “Common Mistakes”- Rushing through foundational material
- Not practising problems after reading
- Failing to connect concepts across topics
Further Reading
Section titled “Further Reading”Consult the recommended textbooks and additional resources.
Summary
Section titled “Summary”This topic provides comprehensive coverage of the subject matter.
Key Takeaways
Section titled “Key Takeaways”- Understanding core principles is essential
- Practice and application reinforce learning
- Connect concepts across related topics
Next Steps
Section titled “Next Steps”- Review the worked examples
- Complete the practice problems
- Explore related topics in other sections
Practice Tips
Section titled “Practice Tips”- Review this material regularly
- Apply concepts to real scenarios
- Connect with related topics
Key Points
Section titled “Key Points”- Review this material regularly
- Apply concepts to real scenarios
- Connect with related topics
Final Notes
Section titled “Final Notes”- Understanding this topic is important for software licensing
- Review the key concepts and practice regularly
- Connect with other licensing topics for a complete understanding
Summary
Section titled “Summary”Review the key concepts and practice regularly to master this topic.