Licensing and Legal
Relevant source files
This document outlines the multiple licensing options available for the axvcpu crate and provides guidance on legal compliance requirements for users, contributors, and distributors. The axvcpu crate implements a unique multi-license approach that offers flexibility for different use cases and jurisdictions.
For information about building and dependency management, see Dependencies and Integration. For details about the CI/CD pipeline and testing procedures, see Testing and Continuous Integration.
Multi-License Framework
The axvcpu crate is distributed under four different open-source licenses, allowing users to choose the most appropriate licensing terms for their specific use case. This approach maximizes compatibility with different projects and jurisdictions while maintaining open-source principles.
License Structure Overview
flowchart TD subgraph subGraph1["License Categories"] PERMISSIVE["Permissive Licenses"] COPYLEFT["Copyleft Licenses"] REGIONAL["Regional Variants"] end subgraph subGraph0["AxVCpu Multi-License Options"] AXVCPU["axvcpu Crate"] APACHE["Apache License 2.0LICENSE.Apache2"] GPL["GNU GPL v3LICENSE.GPLv3"] MULAN_PSL["Mulan PSL v2LICENSE.MulanPSL2"] MULAN_PUB["Mulan PubL v2LICENSE.MulanPubL2"] end APACHE --> PERMISSIVE AXVCPU --> APACHE AXVCPU --> GPL AXVCPU --> MULAN_PSL AXVCPU --> MULAN_PUB GPL --> COPYLEFT MULAN_PSL --> PERMISSIVE MULAN_PSL --> REGIONAL MULAN_PUB --> COPYLEFT MULAN_PUB --> REGIONAL
Sources: LICENSE.Apache2(L1 - L202) LICENSE.GPLv3(L1 - L675) LICENSE.MulanPSL2(L1 - L128) LICENSE.MulanPubL2(L1 - L184)
License Selection Matrix
License | Type | Patent Grant | Attribution Required | Source Disclosure | Network Copyleft |
---|---|---|---|---|---|
Apache 2.0 | Permissive | Yes | Yes | No | No |
GPL v3 | Copyleft | Yes | Yes | Yes | No |
Mulan PSL v2 | Permissive | Yes | Yes | No | No |
Mulan PubL v2 | Network Copyleft | Yes | Yes | Yes | Yes |
Individual License Summaries
Apache License 2.0
The Apache License 2.0 is a permissive license that allows broad usage rights while requiring attribution and patent grant protections.
Key Requirements:
- Retain copyright notices and license text
- Include copy of license with distributions
- State changes made to files
- Provide patent grant termination on patent litigation
Key Permissions:
- Commercial use, distribution, modification
- Private use, patent use
- Sublicensing under different terms
Sources: LICENSE.Apache2(L66 - L88) LICENSE.Apache2(L189 - L201)
GNU General Public License v3
GPL v3 is a strong copyleft license ensuring derivative works remain open source.
Key Requirements:
- Provide source code for distributed binaries
- License entire work under GPL v3
- Include installation information for user products
- No additional restrictions on recipients
Key Features:
- Anti-tivoization provisions
- Patent retaliation clauses
- International scope considerations
Sources: LICENSE.GPLv3(L154 - L177) LICENSE.GPLv3(L245 - L295)
Mulan Permissive Software License v2
Mulan PSL v2 is a permissive license designed for Chinese jurisdiction with bilingual terms.
Key Features:
- Perpetual, worldwide, royalty-free rights
- Patent grant with defensive termination
- No trademark license granted
- Chinese/English bilingual text with Chinese precedence
Network Service Provision: Unlike traditional software distribution, includes provisions for providing services over networks.
Sources: LICENSE.MulanPSL2(L84 - L90) LICENSE.MulanPSL2(L104 - L106)
Mulan Public License v2
Mulan PubL v2 extends copyleft requirements to network services, similar to AGPL v3.
Key Requirements:
- Source code provision for network services
- Copyleft applies to derivative works
- AGPLv3 compatibility provisions
- Chinese jurisdiction optimizations
Distribution Mechanisms:
- Direct source code provision
- Download link (minimum 3 years)
- Written offer for source code
Sources: LICENSE.MulanPubL2(L118 - L143) LICENSE.MulanPubL2(L154 - L156)
License Selection Guidance
Decision Flow for License Choice
flowchart TD START["Choosing License for AxVCpu Usage"] JURISDICTION["PrimaryJurisdiction?"] COPYLEFT["RequireCopyleft?"] NETWORK["NetworkServices?"] PATENT["PatentConcerns?"] MULAN_REGION["Consider Mulan Licenses"] WESTERN_REGION["Consider Apache/GPL"] PERMISSIVE_CHOICE["Apache 2.0 or Mulan PSL v2"] MULAN_PUB["Mulan PubL v2"] GPL["GPL v3"] APACHE["Apache 2.0(Explicit Patent Grant)"] EITHER_PERMISSIVE["Apache 2.0 orMulan PSL v2"] COPYLEFT --> NETWORK COPYLEFT --> PERMISSIVE_CHOICE JURISDICTION --> MULAN_REGION JURISDICTION --> WESTERN_REGION MULAN_REGION --> COPYLEFT NETWORK --> GPL NETWORK --> MULAN_PUB PATENT --> APACHE PATENT --> EITHER_PERMISSIVE PERMISSIVE_CHOICE --> PATENT START --> JURISDICTION WESTERN_REGION --> COPYLEFT
Sources: LICENSE.Apache2(L73 - L87) LICENSE.GPLv3(L471 - L490) LICENSE.MulanPSL2(L88 - L90) LICENSE.MulanPubL2(L122 - L124)
Use Case Recommendations
Use Case | Recommended License | Rationale |
---|---|---|
Commercial hypervisor products | Apache 2.0 | Permissive, well-understood patent grants |
Open source hypervisor projects | GPL v3 | Ensures derivative works remain open |
Cloud service platforms | Mulan PubL v2 | Network copyleft prevents service exploitation |
Research and academia | Apache 2.0 or Mulan PSL v2 | Maximum flexibility for derivative research |
Chinese market deployment | Mulan PSL v2 or Mulan PubL v2 | Jurisdiction-optimized terms |
Compliance Requirements
Attribution and Notice Requirements
All licenses require preservation of copyright notices and license attribution:
flowchart TD subgraph subGraph1["Distribution Formats"] SOURCE["Source Distribution"] BINARY["Binary Distribution"] SERVICE["Network Service"] end subgraph subGraph0["Required Attribution Elements"] COPYRIGHT["Copyright Notices"] LICENSE_TEXT["License Text Copy"] CHANGES["Modification Notices"] PATENT_NOTICE["Patent Disclaimers"] TRADEMARK["Trademark Disclaimers"] end CHANGES --> SOURCE COPYRIGHT --> BINARY COPYRIGHT --> SERVICE COPYRIGHT --> SOURCE LICENSE_TEXT --> BINARY LICENSE_TEXT --> SOURCE PATENT_NOTICE --> BINARY TRADEMARK --> SERVICE
Sources: LICENSE.Apache2(L94 - L105) LICENSE.GPLv3(L197 - L203) LICENSE.MulanPSL2(L98) LICENSE.MulanPubL2(L134 - L135)
Source Code Disclosure Requirements
For copyleft licenses (GPL v3, Mulan PubL v2), source code must be provided:
Scenario | GPL v3 Requirement | Mulan PubL v2 Requirement |
---|---|---|
Binary distribution | Corresponding source | Corresponding source code |
Network services | No requirement | Source for service platform |
Derivative works | Full source under GPL | Source under Mulan PubL |
Installation info | User products only | Not specified |
Duration | As long as distributed | Minimum 3 years |
Sources: LICENSE.GPLv3(L245 - L295) LICENSE.MulanPubL2(L136 - L142)
Legal Disclaimers and Limitations
Warranty Disclaimers
All four licenses disclaim warranties and limit liability:
Common Disclaimers:
- No warranties of any kind (express or implied)
- No guarantee of fitness for particular purpose
- No liability for damages from use or inability to use
- "AS IS" basis provision
Patent Litigation Termination: All licenses include patent retaliation clauses that terminate patent grants if the licensee initiates patent litigation against contributors.
Compliance Monitoring
flowchart TD subgraph subGraph0["Compliance Checklist"] CHECK_COPYRIGHT["✓ Copyright notices preserved"] CHECK_LICENSE["✓ License text included"] CHECK_CHANGES["✓ Changes documented"] CHECK_SOURCE["✓ Source available (if required)"] CHECK_PATENTS["✓ Patent grants understood"] end USAGE["AxVCpu Usage"] LICENSE_CHOICE["Select Applicable License"] TRACK_CHANGES["Track Modifications"] ATTRIBUTION["Maintain Attribution"] SOURCE_MGMT["Source Code Management"] ATTRIBUTION --> SOURCE_MGMT LICENSE_CHOICE --> TRACK_CHANGES SOURCE_MGMT --> CHECK_CHANGES SOURCE_MGMT --> CHECK_COPYRIGHT SOURCE_MGMT --> CHECK_LICENSE SOURCE_MGMT --> CHECK_PATENTS SOURCE_MGMT --> CHECK_SOURCE TRACK_CHANGES --> ATTRIBUTION USAGE --> LICENSE_CHOICE
Sources: LICENSE.Apache2(L143 - L152) LICENSE.GPLv3(L591 - L598) LICENSE.MulanPSL2(L100 - L102) LICENSE.MulanPubL2(L158 - L160)
International Considerations
The inclusion of Mulan licenses provides specific advantages for users in Chinese jurisdiction, as these licenses are designed with Chinese legal framework considerations and include authoritative Chinese text alongside English translations.
Language Precedence:
- Mulan licenses: Chinese version takes precedence in case of conflicts
- Apache/GPL: English versions are authoritative
Sources: LICENSE.MulanPSL2(L104 - L106) LICENSE.MulanPubL2(L162 - L164)