124 lines
5.3 KiB
Plaintext
124 lines
5.3 KiB
Plaintext
= COPYING.adoc for the Khronos Group OpenXR projects
|
|
|
|
// Copyright (c) 2020-2024, 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 monorepo 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.
|
|
|