KhronosGroup / KhronosGroup/glslang
Inconsistent file header licensing
- Dominant language
- C++
- Stars
- 3.6k
- Forks
- 989
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 31
Description
It has been observed that we have recently introduced a bunch of new files with varying license headers:
| License Type | File |
|----------------|------------------------------------------------------------------------------------------------------------------------------------------------|
|`Apache-2.0` | [`gtests/HexFloat.cpp`](https://github.com/KhronosGroup/glslang/blob/master/gtests/HexFloat.cpp) |
|`Apache-2.0` | [`ndk_test/test.cpp`](https://github.com/KhronosGroup/glslang/blob/master/ndk_test/test.cpp) |
|`Apache-2.0` | [`SPIRV/bitutils.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/bitutils.h) |
|`Apache-2.0` | [`SPIRV/hex_float.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/hex_float.h) |
|`Apache-2.0` | [`update_glslang_sources.py`](https://github.com/KhronosGroup/glslang/blob/master/update_glslang_sources.py) |
|`BSD-2-Clause` | [`glslang/CInterface/glslang_c_interface.cpp`](https://github.com/KhronosGroup/glslang/blob/master/glslang/CInterface/glslang_c_interface.cpp) |
|`BSD-2-Clause` | [`glslang/Include/glslang_c_interface.h`](https://github.com/KhronosGroup/glslang/blob/master/glslang/Include/glslang_c_interface.h) |
|`BSD-2-Clause` | [`glslang/Include/glslang_c_shader_types.h`](https://github.com/KhronosGroup/glslang/blob/master/glslang/Include/glslang_c_shader_types.h) |
|`BSD-2-Clause` | [`SPIRV/CInterface/spirv_c_interface.cpp`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/CInterface/spirv_c_interface.cpp) |
|`BSD-2-Clause` | [`StandAlone/resource_limits_c.cpp`](https://github.com/KhronosGroup/glslang/blob/master/StandAlone/resource_limits_c.cpp) |
|`BSD-2-Clause` | [`StandAlone/resource_limits_c.h`](https://github.com/KhronosGroup/glslang/blob/master/StandAlone/resource_limits_c.h) |
|`MIT` | [`SPIRV/GLSL.ext.AMD.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/GLSL.ext.AMD.h) |
|`MIT` | [`SPIRV/GLSL.ext.EXT.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/GLSL.ext.EXT.h) |
|`MIT` | [`SPIRV/GLSL.ext.KHR.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/GLSL.ext.KHR.h) |
|`MIT` | [`SPIRV/GLSL.ext.NV.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/GLSL.ext.NV.h) |
|`MIT` | [`SPIRV/GLSL.std.450.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/GLSL.std.450.h) |
|`MIT` | [`SPIRV/NonSemanticDebugPrintf.h`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/NonSemanticDebugPrintf.h) |
|`MIT` | [`SPIRV/spirv.hpp`](https://github.com/KhronosGroup/glslang/blob/master/SPIRV/spirv.hpp) |
|`MIT` | [`glslang/MachineIndependent/gl_types.h`](https://github.com/KhronosGroup/glslang/blob/master/glslang/MachineIndependent/gl_types.h) |
Note the bison generated files [`glslang/MachineIndependent/glslang_tab.cpp`](https://github.com/KhronosGroup/glslang/blob/master/glslang/MachineIndependent/glslang_tab.cpp) and [`glslang/MachineIndependent/glslang_tab.cpp.h`](https://github.com/KhronosGroup/glslang/blob/master/glslang/MachineIndependent/glslang_tab.cpp.h) use yet another license type ([a GPL-3.0 license with a special exemption](https://github.com/KhronosGroup/glslang/blob/b112fac0033c92810ce6c477b2fe36011d184ee0/glslang/MachineIndependent/glslang_tab.cpp.h#L20-L31)). These have always been this way, and this issue does not relate to these files.
Despite the [Khronos CLA](https://cla-assistant.io/KhronosGroup/glslang) suggesting that the project should be using the MIT License, [the standard license used by glslang is BSD-3-clause](https://github.com/KhronosGroup/glslang/blob/b112fac0033c92810ce6c477b2fe36011d184ee0/LICENSE.txt#L26-L60).
We need to either (and/or):
1. Add the new license types to [the `LICENSE.txt` file](https://github.com/KhronosGroup/glslang/blob/master/LICENSE.txt) (done: #2306)
2. Fix up the license headers of the files listed above to be BSD-3-clause.
Contributor guide
Research direction
Start by reviewing LICENSE.txt and the listed source and header files, excluding the two bison-generated files explicitly out of scope. Decide which listed headers need BSD-3-Clause notices, then update the headers consistently and verify that the license types referenced by the files are documented in LICENSE.txt.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- compilers
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100