Copyleft Licenses
Open source licenses that require derivative works to be distributed under the same or compatible license terms, ensuring that modifications remain freely available to the community.
What are Copyleft Licenses?
Copyleft licenses are a category of open source software licenses that use copyright law to ensure that derivative works of the licensed software remain free and open. Unlike permissive licenses, copyleft licenses require that any modified versions or derivative works be distributed under the same or compatible license terms as the original work.
This licensing approach creates a "viral" effect, requiring that the freedoms granted by the original license be preserved in derivative works. The core philosophy is to create an expanding commons of freely available software that cannot be incorporated into proprietary, closed-source products without making the entire product open source.
Types of Copyleft Licenses
Strong Copyleft
Licenses with expansive scope:
- GNU General Public License (GPL): The canonical strong copyleft license
- GNU Affero General Public License (AGPL): Extends copyleft to network services
- Common Development and Distribution License (CDDL): Strong copyleft with file-level scope
- Eclipse Public License (EPL): Strong copyleft with commercial-friendly provisions
- Open Software License (OSL): Strong copyleft covering distribution and network use
Weak Copyleft
Licenses with more limited scope:
- GNU Lesser General Public License (LGPL): Permits linking with non-free software
- Mozilla Public License (MPL): File-based copyleft allowing mixed licensing
- Eclipse Public License (EPL): Sometimes considered weak due to linking exceptions
- Common Public License (CPL): Allows certain types of combining with proprietary code
- GNU Classpath Exception: Modification of the GPL for certain libraries
Network Copyleft
Licenses addressing the "SaaS loophole":
- GNU Affero General Public License (AGPL): Extends GPL to network service deployment
- Open Software License (OSL): Includes network use as triggering distribution
- European Union Public License (EUPL): Includes network service provisions
- Commons Clause: Add-on restricting commercial hosting (not OSI-approved)
- Server Side Public License (SSPL): MongoDB's controversial network copyleft (not OSI-approved)
Core Copyleft Provisions
Source Code Requirements
Requirements for source code availability:
- Complete Source: Requirement to provide complete and corresponding source code
- Preferred Form: Source must be in the preferred form for making modifications
- Complete Machine-Readable Copy: Requirements for complete machine-readable copies
- Build Instructions: Requirements for build scripts and instructions
- Availability Duration: How long source code must remain available
Distribution Triggers
What actions trigger copyleft obligations:
- Conveying Covered Works: Defining what constitutes distribution
- Propagation vs. Conveying: Different types of sharing under GPL
- Network Use: When network use triggers obligations
- Internal Use Exception: When internal use is exempt
- Sublicensing: How sublicensing relates to distribution
Derivative Works
Determining what constitutes a derivative work:
- Derivative Work Definition: How licenses define derivative works
- Modification Scope: What constitutes a modification
- Collective Works: Distinguishing collective works from derivatives
- Combined Works: Specific provisions for combined works
- Aggregation: When separate programs are merely aggregated
License Compatibility
Compatible Licenses
Understanding license compatibility:
- GPL Compatibility: Licenses compatible with the GPL
- One-Way Compatibility: When code can flow in only one direction
- Permissive to Copyleft: Using permissively licensed code in copyleft projects
- Copyleft to Copyleft: Compatibility between different copyleft licenses
- Compatibility Charts: Resources for determining license compatibility
License Exceptions
Special exceptions to copyleft requirements:
- System Library Exception: Exception for system libraries
- Classpath Exception: Java-specific linking exception
- Runtime Library Exception: Exception for runtime libraries
- Linking Exceptions: General exceptions for various forms of linking
- Special Purpose Exceptions: Other specialized exceptions
Multi-licensing
Managing multiple licenses:
- Dual Licensing: Making code available under multiple licenses
- License Selection: User's right to choose among available licenses
- Commercial Dual Licensing: Business models based on dual licensing
- Contributor Agreements: Managing contributions in dual-licensed projects
- License Compatibility in Multi-licensed Works: Handling compatibility with multiple licenses
Technical Implications
Linking and Integration
How linking affects license obligations:
- Static Linking: License implications of static linking
- Dynamic Linking: License implications of dynamic linking
- Inter-Process Communication: Using IPC to connect components
- Plugins and Extensions: License considerations for plugin architectures
- APIs and Interfaces: Copyright status of APIs and interfaces
System Boundaries
Defining technical boundaries:
- Separate Programs: When programs are considered separate
- Aggregation vs. Combination: Technical distinctions between aggregating and combining
- Module Boundaries: Using modules to define license boundaries
- Process Isolation: Using process boundaries to limit license scope
- Network Separation: Using network boundaries to limit license scope
Language-Specific Considerations
How programming languages affect copyleft:
- Interpreted Languages: Special considerations for interpreted languages
- JVM and CLR: Considerations for virtual machine environments
- Header Files and Libraries: Treatment of headers and libraries
- Template Code: Handling of C++ templates and similar constructs
- Web Technologies: JavaScript, WebAssembly, and other web technologies
Compliance Management
License Identification
Identifying and managing copyleft code:
- License Scanning: Detecting copyleft code in projects
- License Header Requirements: Requirements for source code headers
- Code Provenance Tracking: Tracking the origin of code
- Version Control Integration: Using version control for compliance
- Bill of Materials: Creating and maintaining software BOMs
Compliance Programs
Establishing organizational compliance:
- Compliance Policies: Creating organizational policies
- Developer Guidelines: Guidelines for developers
- Review Processes: Establishing review workflows
- Training Programs: Educating teams about copyleft
- Audit Procedures: Regular compliance audits
Compliance Tools
Tools for managing copyleft compliance:
- License Scanners: Tools for detecting licenses
- Dependency Analyzers: Tools for analyzing dependencies
- Compliance Automation: Automating compliance tasks
- Documentation Generators: Tools for generating compliance documentation
- SBOM Integration: Including license information in SBOMs
Business Considerations
Incorporation in Products
Using copyleft code in commercial products:
- Copyleft-Compatible Business Models: Business models that work with copyleft
- Product Architecture: Designing products with license boundaries in mind
- Mixed-License Products: Managing products with mixed licensing
- Proprietary Add-ons: Creating proprietary additions to copyleft products
- Service-Based Models: Service models around copyleft software
Contributor Management
Managing contributions to copyleft projects:
- Contribution Policies: Policies for accepting contributions
- Contributor License Agreements (CLAs): Using CLAs to manage rights
- Copyright Assignment: When and how to use copyright assignment
- Developer Certificate of Origin (DCO): Alternative to CLAs
- Corporate Contribution Policies: Corporate policies for contributing to copyleft projects
Compliance Costs
Understanding the business impact:
- Compliance Resource Requirements: Resources needed for compliance
- Risk Assessment: Assessing non-compliance risks
- Cost-Benefit Analysis: Weighing the costs and benefits of using copyleft code
- Compliance ROI: Measuring return on compliance investment
- Outsourcing vs. In-house: Deciding between outsourced and in-house compliance
Legal Aspects
Enforcement and Litigation
Understanding enforcement mechanisms:
- Enforcement History: Notable copyleft enforcement cases
- Enforcement Organizations: Groups that enforce copyleft licenses
- Litigation Precedents: Legal precedents in copyleft litigation
- Settlement Patterns: Common settlement approaches
- Compliance Remediation: Approaches to remediate compliance issues
Jurisdictional Considerations
Legal variations across jurisdictions:
- International Applicability: How copyleft applies internationally
- Regional Variations: Regional differences in interpretation
- Legal Traditions: Impact of different legal traditions
- Copyright Law Variations: How copyright law variations affect copyleft
- Contract vs. License: License as contract or unilateral permission
Interpretation Challenges
Resolving ambiguities in copyleft licenses:
- Derivative Work Analysis: Determining derivative work status
- Distribution Definition: Defining what constitutes distribution
- Proprietary Claims: Addressing proprietary claims over open code
- License Text Ambiguities: Resolving textual ambiguities
- Intent vs. Text: Balancing license intent with actual text
Community and Governance
Foundation Governance
Role of foundations in copyleft:
- Free Software Foundation: Role in copyleft development and enforcement
- Software Freedom Conservancy: Approach to compliance and enforcement
- Other Foundations: Other foundations' roles in copyleft governance
- License Stewardship: Ongoing maintenance of license texts
- Community Support: Foundation support for compliance efforts
Community Norms
Community expectations beyond legal requirements:
- Reciprocity Expectations: Community expectations of reciprocity
- Contribution Norms: Norms for contributing to copyleft projects
- Fork Ethics: Ethical considerations when forking projects
- Upstream First: Expectations for contributing upstream
- Attribution Practices: Community norms for attribution
License Evolution
How copyleft licenses evolve:
- License Versioning: Process for updating license versions
- Community Input: How community input shapes license evolution
- Addressing New Technologies: Adapting to technological changes
- Compatibility Improvements: Efforts to improve compatibility
- Simplification Efforts: Making copyleft licenses more accessible
Future of Copyleft
Emerging Challenges
New challenges for copyleft:
- Cloud Services: Addressing the "SaaS loophole"
- Containerization: Impact of container technologies
- Web Applications: Challenges with web-based distribution
- AI and ML: Implications for AI training and models
- IoT and Embedded: Challenges in embedded environments
License Innovation
New approaches to copyleft:
- Network Service Licenses: Evolution of network copyleft
- Ethical Licenses: Adding ethical restrictions to copyleft
- Simplified Copyleft: Efforts to simplify copyleft compliance
- Data Copyleft: Extending copyleft concepts to data
- Non-Software Copyleft: Application to non-software domains
Policy and Advocacy
Influencing the broader ecosystem:
- Regulatory Approaches: Government regulation of open source
- Procurement Policies: Public procurement policies and copyleft
- Educational Initiatives: Educating about copyleft principles
- Standards Organizations: Role of standards bodies in copyleft
- Digital Commons Advocacy: Advocacy for expanding digital commons
Related Terms
GPL License
The GNU General Public License (GPL) is a copyleft open source license that requires derivative works to be distributed under the same license terms, ensuring that software remains free and open.
License Compliance
Ensuring that software usage, distribution, and modification adhere to the legal requirements and obligations specified in software licenses and agreements.
Open Source License
Legal agreements that govern the use, modification, and distribution of open source software, balancing creators' rights with users' freedoms.