KhronosGroup / KhronosGroup/glslang

Inconsistent file header licensing

Open
#2,305 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.