Skip to content

Commit 7c9dc09

Browse files
rparolinclaude
andauthored
chore: fix Apache-2.0 license notice and attribution gaps (#2605)
* chore: fix Apache-2.0 license notice and attribution gaps An open-source license review flagged several Apache-2.0 compliance gaps. This addresses three of them, plus the guard that let one class of them through. Licensing metadata only; no logic changes. Copyright notices (15 files) Two different defects that happened to share a symptom: - 14 files under cuda_bindings/examples/ carried a non-standard notice ("Copyright 2021-2026 NVIDIA Corporation. All rights reserved.") with no (c), no SPDX-FileCopyrightText prefix, and the wrong entity casing. - toolshed/conda_create_for_pathfinder_testing.ps1 had the correct prefix and casing but was truncated before "& AFFILIATES. All rights reserved.". All now carry the canonical string. Years are preserved as found. Header guard (toolshed/check_spdx.py) COPYRIGHT_REGEX made "& AFFILIATES. All rights reserved." optional, so a bare "NVIDIA CORPORATION" satisfied pre-commit. The suffix is now required. (The 14 example files were passing for a different reason: .spdx-ignore excludes cuda_bindings/examples/ entirely. That exclusion is left alone here, but the files now conform, so it can be dropped in a follow-up if desired.) Tightening the regex surfaced two pre-existing files whose notice was split or truncated -- cuda_core/cuda/core/_include/layout.hpp and toolshed/build_static_bitcode_input.py. Both are corrected so the mandated sentence appears verbatim on one line. Third-party attribution (cuda_core/NOTICE) cuda/core/_include/aoti_shim.h is a vendored subset of PyTorch's AOT Inductor stable C ABI, BSD-3-Clause, carrying the upstream Facebook, Idiap, Deepmind, NEC and NYU copyright lines, but NOTICE listed only DLPack. A PyTorch entry is added with the full copyright block. The accompanying aoti_shim.def carries no copyright line of its own and is covered explicitly by that entry rather than given an NVIDIA header, since it declares the same upstream symbol names. The DLPack entry now also records where it is vendored. LICENSE files (all five) Every LICENSE ended at "END OF TERMS AND CONDITIONS", omitting the required "APPENDIX: How to apply the Apache License to your work" and its boilerplate. Appended to all five. The text is verified identical to the canonical Apache 2.0 appendix. Verified: 0 files with a non-conforming copyright string; check_spdx.py passes over all 868 in-scope tracked files with the tightened regex. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Rob Parolin <rparolin@nvidia.com> * docs: document per-subproject license files in root README OSRB (NVBUG 4707569, comment #22) flagged the four sub-component LICENSE files as redundant with the root LICENSE and asked for either their removal or a root README Licensing section naming each subproject, its license and its license path. Each subproject builds an independent wheel and resolves its license file relative to its own root, so the copies are kept and documented instead of removed. Verified that the copies reach the built wheels: building cuda_pathfinder produces dist-info/licenses/LICENSE even though its pyproject.toml declares no explicit license-files (setuptools' default LICEN[CS]E* glob covers it), as is also the case for cuda_core. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Signed-off-by: Rob Parolin <rparolin@nvidia.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 3cd31be commit 7c9dc09

25 files changed

Lines changed: 171 additions & 19 deletions

LICENSE

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,28 @@ Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
176176
of your accepting any such warranty or additional liability.
177177

178178
END OF TERMS AND CONDITIONS
179+
180+
APPENDIX: How to apply the Apache License to your work.
181+
182+
To apply the Apache License to your work, attach the following
183+
boilerplate notice, with the fields enclosed by brackets "[]"
184+
replaced with your own identifying information. (Don't include
185+
the brackets!) The text should be enclosed in the appropriate
186+
comment syntax for the file format. We also recommend that a
187+
file or class name and description of purpose be included on the
188+
same "printed page" as the copyright notice for easier
189+
identification within third-party archives.
190+
191+
Copyright [yyyy] [name of copyright owner]
192+
193+
Licensed under the Apache License, Version 2.0 (the "License");
194+
you may not use this file except in compliance with the License.
195+
You may obtain a copy of the License at
196+
197+
http://www.apache.org/licenses/LICENSE-2.0
198+
199+
Unless required by applicable law or agreed to in writing, software
200+
distributed under the License is distributed on an "AS IS" BASIS,
201+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202+
See the License for the specific language governing permissions and
203+
limitations under the License.

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,14 @@ The list of available interfaces is:
5252

5353
CUDA Python is licensed under the [Apache License 2.0](./LICENSE). Third-party
5454
attributions for `cuda.core` are listed in [`cuda_core/NOTICE`](./cuda_core/NOTICE).
55+
56+
Each subproject is distributed as its own package and ships a copy of the same
57+
license alongside its sources, so that the license accompanies the built wheel.
58+
The root `LICENSE` governs the repository as a whole:
59+
60+
| Subproject | License | License file |
61+
| ---------------- | ---------- | -------------------------------------------------------- |
62+
| `cuda.bindings` | Apache-2.0 | [`cuda_bindings/LICENSE`](./cuda_bindings/LICENSE) |
63+
| `cuda.core` | Apache-2.0 | [`cuda_core/LICENSE`](./cuda_core/LICENSE) |
64+
| `cuda.pathfinder`| Apache-2.0 | [`cuda_pathfinder/LICENSE`](./cuda_pathfinder/LICENSE) |
65+
| `cuda-python` | Apache-2.0 | [`cuda_python/LICENSE`](./cuda_python/LICENSE) |

cuda_bindings/LICENSE

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,28 @@ Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
176176
of your accepting any such warranty or additional liability.
177177

178178
END OF TERMS AND CONDITIONS
179+
180+
APPENDIX: How to apply the Apache License to your work.
181+
182+
To apply the Apache License to your work, attach the following
183+
boilerplate notice, with the fields enclosed by brackets "[]"
184+
replaced with your own identifying information. (Don't include
185+
the brackets!) The text should be enclosed in the appropriate
186+
comment syntax for the file format. We also recommend that a
187+
file or class name and description of purpose be included on the
188+
same "printed page" as the copyright notice for easier
189+
identification within third-party archives.
190+
191+
Copyright [yyyy] [name of copyright owner]
192+
193+
Licensed under the Apache License, Version 2.0 (the "License");
194+
you may not use this file except in compliance with the License.
195+
You may obtain a copy of the License at
196+
197+
http://www.apache.org/licenses/LICENSE-2.0
198+
199+
Unless required by applicable law or agreed to in writing, software
200+
distributed under the License is distributed on an "AS IS" BASIS,
201+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202+
See the License for the specific language governing permissions and
203+
limitations under the License.

cuda_bindings/examples/0_Introduction/clock_nvrtc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

cuda_bindings/examples/0_Introduction/simple_cubemap_texture.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

cuda_bindings/examples/0_Introduction/simple_p2p.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

cuda_bindings/examples/0_Introduction/simple_zero_copy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

cuda_bindings/examples/0_Introduction/system_wide_atomics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

cuda_bindings/examples/0_Introduction/vector_add_drv.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

cuda_bindings/examples/0_Introduction/vector_add_mmap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2026 NVIDIA Corporation. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# ################################################################################

0 commit comments

Comments
 (0)