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

LicenseTypePatent GrantAttribution RequiredSource DisclosureNetwork Copyleft
Apache 2.0PermissiveYesYesNoNo
GPL v3CopyleftYesYesYesNo
Mulan PSL v2PermissiveYesYesNoNo
Mulan PubL v2Network CopyleftYesYesYesYes

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 CaseRecommended LicenseRationale
Commercial hypervisor productsApache 2.0Permissive, well-understood patent grants
Open source hypervisor projectsGPL v3Ensures derivative works remain open
Cloud service platformsMulan PubL v2Network copyleft prevents service exploitation
Research and academiaApache 2.0 or Mulan PSL v2Maximum flexibility for derivative research
Chinese market deploymentMulan PSL v2 or Mulan PubL v2Jurisdiction-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:

ScenarioGPL v3 RequirementMulan PubL v2 Requirement
Binary distributionCorresponding sourceCorresponding source code
Network servicesNo requirementSource for service platform
Derivative worksFull source under GPLSource under Mulan PubL
Installation infoUser products onlyNot specified
DurationAs long as distributedMinimum 3 years

Sources: LICENSE.GPLv3(L245 - L295)  LICENSE.MulanPubL2(L136 - L142) 

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)