123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- = COPYING.adoc for the Khronos Group OpenXR projects
- // Copyright (c) 2020-2022, The Khronos Group Inc.
- //
- // SPDX-License-Identifier: CC-BY-4.0
- This document is shared across a number of OpenXR GitHub projects, as the
- set of files in those projects is partially overlapping.
- (There is a single "source of truth" internal Khronos GitLab repo these
- GitHub repositories interact with.)
- == Licenses
- The OpenXR GitHub projects use several licenses.
- In general, we work to maintain compliance with the
- https://reuse.software/spec/[REUSE 3.0 specification] with clear copyright
- holders and license identifier listed for each file, preferably in each
- file.
- Where this is not possible, or e.g. when we are using files unmodified from
- other open-source projects, license data is listed:
- * in an adjacent file of the same name, with the additional extension
- "`.license`"
- * in the repository-wide "`.reuse/dep5`" copyright description
- https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/["DEP5"
- machine-readable copyright data] file.
- The https://github.com/fsfe/reuse-tool["`reuse`" command line tool] can be
- used to create a software bill of materials in SPDX format from this data.
- Note that this tool will typically exclude the generated files, so if the
- BOM is important to you, you may consider using the
- https://github.com/KhronosGroup/OpenXR-SDK[OpenXR-SDK] repository that
- contains the API headers and the loader source with all generated files
- pre-generated.
- The data in/adjacent to each file is the authoritative license and copyright
- data.
- However, for ease of understanding, the following general practices can be
- observed.
- (If in doubt, or if the following summary conflicts with the per-file data,
- the per-file data remains authoritative.)
- * The source files (in asciidoctor and other formats) for the OpenXR
- Specification, reference pages, and supporting documentation are licensed
- under the Creative Commons Attribution 4.0 International License (SPDX
- license identifier "`CC-BY-4.0`").
- * Header files, scripts, programs, XML files, and other tooling used or
- generated as part of the build process is licensed under the Apache
- License, Version 2.0.
- * For compatibility with external developers working in GPLed projects who
- have requested it, the main OpenXR headers, XML registry, and loader
- source are licensed under a dual license with the SPDX license identifier
- "`Apache-2.0 OR MIT`" .
- Relevant files include:
- ** "`specification/registry/xr.xml`"
- ** "`include/openxr/openxr_platform_defines.h`"
- ** The generated OpenXR headers "`openxr.h`", "`openxr_platform.h`", and
- "`openxr_reflection.h`".
- ** Source files in "`src/loader/`", and a few files in "`src/common/`".
- ** Generated source files used by the loader (including pre-generated in
- OpenXR-SDK): "`common_config.h`", "`xr_generated_loader.cpp`", and
- "`xr_generated_loader.hpp`".
- * There are a few files adopted from other open source projects.
- Such files continue under their original licenses, and appropriately
- annotated in accordance with REUSE.
- * Some generated, transient files produced during the course of building the
- specification, headers, or other targets may not have copyrights.
- These are typically very short asciidoc fragments describing parts of the
- OpenXR API, and are incorporated by reference into specification or
- reference page builds.
- Users outside Khronos who create and post OpenXR Specifications, whether
- modified or not, should use the CC-BY-4.0 license on the output documents
- (HTML, PDF, etc.) they generate.
- == Frequently Asked Questions
- Q: Why are the HTML and PDF Specifications posted on Khronos' website under
- a license which is neither CC-BY-4.0 nor Apache 2.0?
- A: The Specifications posted by Khronos in the OpenXR Registry are licensed
- under the proprietary Khronos Specification License.
- Only these Specifications are Ratified by the Khronos Board of Promoters,
- and therefore they are the only Specifications covered by the Khronos
- Intellectual Property Rights Policy.
- Q: Does Khronos allow the creation and distribution of modified versions of
- the OpenXR Specification, such as translations to other languages?
- A: Yes.
- Such modified Specifications, since they are not created by Khronos, should
- be placed under the CC-BY-4.0 license.
- If you believe your modifications are of general interest, consider
- contributing them back by making a pull request (PR) on the OpenXR-Docs
- project.
- Q: Can I contribute changes to the OpenXR Specification?
- A: Yes, by opening an Issue or Pull Request (PR) on the
- link:https://github.com/KhronosGroup/OpenXR-Docs/[OpenXR-Docs] GitHub
- project.
- You must execute a click-through Contributor License Agreement, which brings
- your changes under the umbrella of the Khronos IP policy.
- Q: Can you change the license on your files so they're compatible with my
- license?
- A: We are using a dual license license on `xr.xml`, the main API headers,
- and the loader source files, to make them compatible with GPL-2.0- and
- LGPL-2.0/2.1-licensed projects.
- This replaces earlier approaches of an MIT-like license on the XML and
- Apache 2.0 on all headers, and allows use of the SPDX license identifier
- "`Apache-2.0 OR MIT`" to denote the license.
- If you *require* this same compatibility for use of other Apache-2.0
- licensed files in our repository, please raise an issue identifying the
- files and we will consider changing those specific files to the dual license
- as well.
|