COPYING.adoc 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. = COPYING.adoc for the Khronos Group OpenXR projects
  2. // Copyright (c) 2020-2022, The Khronos Group Inc.
  3. //
  4. // SPDX-License-Identifier: CC-BY-4.0
  5. This document is shared across a number of OpenXR GitHub projects, as the
  6. set of files in those projects is partially overlapping.
  7. (There is a single "source of truth" internal Khronos GitLab repo these
  8. GitHub repositories interact with.)
  9. == Licenses
  10. The OpenXR GitHub projects use several licenses.
  11. In general, we work to maintain compliance with the
  12. https://reuse.software/spec/[REUSE 3.0 specification] with clear copyright
  13. holders and license identifier listed for each file, preferably in each
  14. file.
  15. Where this is not possible, or e.g. when we are using files unmodified from
  16. other open-source projects, license data is listed:
  17. * in an adjacent file of the same name, with the additional extension
  18. "`.license`"
  19. * in the repository-wide "`.reuse/dep5`" copyright description
  20. https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/["DEP5"
  21. machine-readable copyright data] file.
  22. The https://github.com/fsfe/reuse-tool["`reuse`" command line tool] can be
  23. used to create a software bill of materials in SPDX format from this data.
  24. Note that this tool will typically exclude the generated files, so if the
  25. BOM is important to you, you may consider using the
  26. https://github.com/KhronosGroup/OpenXR-SDK[OpenXR-SDK] repository that
  27. contains the API headers and the loader source with all generated files
  28. pre-generated.
  29. The data in/adjacent to each file is the authoritative license and copyright
  30. data.
  31. However, for ease of understanding, the following general practices can be
  32. observed.
  33. (If in doubt, or if the following summary conflicts with the per-file data,
  34. the per-file data remains authoritative.)
  35. * The source files (in asciidoctor and other formats) for the OpenXR
  36. Specification, reference pages, and supporting documentation are licensed
  37. under the Creative Commons Attribution 4.0 International License (SPDX
  38. license identifier "`CC-BY-4.0`").
  39. * Header files, scripts, programs, XML files, and other tooling used or
  40. generated as part of the build process is licensed under the Apache
  41. License, Version 2.0.
  42. * For compatibility with external developers working in GPLed projects who
  43. have requested it, the main OpenXR headers, XML registry, and loader
  44. source are licensed under a dual license with the SPDX license identifier
  45. "`Apache-2.0 OR MIT`" .
  46. Relevant files include:
  47. ** "`specification/registry/xr.xml`"
  48. ** "`include/openxr/openxr_platform_defines.h`"
  49. ** The generated OpenXR headers "`openxr.h`", "`openxr_platform.h`", and
  50. "`openxr_reflection.h`".
  51. ** Source files in "`src/loader/`", and a few files in "`src/common/`".
  52. ** Generated source files used by the loader (including pre-generated in
  53. OpenXR-SDK): "`common_config.h`", "`xr_generated_loader.cpp`", and
  54. "`xr_generated_loader.hpp`".
  55. * There are a few files adopted from other open source projects.
  56. Such files continue under their original licenses, and appropriately
  57. annotated in accordance with REUSE.
  58. * Some generated, transient files produced during the course of building the
  59. specification, headers, or other targets may not have copyrights.
  60. These are typically very short asciidoc fragments describing parts of the
  61. OpenXR API, and are incorporated by reference into specification or
  62. reference page builds.
  63. Users outside Khronos who create and post OpenXR Specifications, whether
  64. modified or not, should use the CC-BY-4.0 license on the output documents
  65. (HTML, PDF, etc.) they generate.
  66. == Frequently Asked Questions
  67. Q: Why are the HTML and PDF Specifications posted on Khronos' website under
  68. a license which is neither CC-BY-4.0 nor Apache 2.0?
  69. A: The Specifications posted by Khronos in the OpenXR Registry are licensed
  70. under the proprietary Khronos Specification License.
  71. Only these Specifications are Ratified by the Khronos Board of Promoters,
  72. and therefore they are the only Specifications covered by the Khronos
  73. Intellectual Property Rights Policy.
  74. Q: Does Khronos allow the creation and distribution of modified versions of
  75. the OpenXR Specification, such as translations to other languages?
  76. A: Yes.
  77. Such modified Specifications, since they are not created by Khronos, should
  78. be placed under the CC-BY-4.0 license.
  79. If you believe your modifications are of general interest, consider
  80. contributing them back by making a pull request (PR) on the OpenXR-Docs
  81. project.
  82. Q: Can I contribute changes to the OpenXR Specification?
  83. A: Yes, by opening an Issue or Pull Request (PR) on the
  84. link:https://github.com/KhronosGroup/OpenXR-Docs/[OpenXR-Docs] GitHub
  85. project.
  86. You must execute a click-through Contributor License Agreement, which brings
  87. your changes under the umbrella of the Khronos IP policy.
  88. Q: Can you change the license on your files so they're compatible with my
  89. license?
  90. A: We are using a dual license license on `xr.xml`, the main API headers,
  91. and the loader source files, to make them compatible with GPL-2.0- and
  92. LGPL-2.0/2.1-licensed projects.
  93. This replaces earlier approaches of an MIT-like license on the XML and
  94. Apache 2.0 on all headers, and allows use of the SPDX license identifier
  95. "`Apache-2.0 OR MIT`" to denote the license.
  96. If you *require* this same compatibility for use of other Apache-2.0
  97. licensed files in our repository, please raise an issue identifying the
  98. files and we will consider changing those specific files to the dual license
  99. as well.