python3Packages.cuda-bindings: use the CUDA Python license before 13.4

Releases of cuda-bindings before 13.4 are licensed under the NVIDIA
Software License for NVIDIA CUDA Python (cuda_bindings/LICENSE), which
permits redistribution subject to its distribution requirements.

Add lib.licenses.nvidiaCudaPython and accept it in
allowUnfreeCudaPredicate, so that packages depending on cuda-bindings,
such as python3Packages.transformer-engine, evaluate with the CUDA
predicate instead of requiring allowUnfree.

Assisted-by: Claude Code (Claude Opus 5.5)
This commit is contained in:
Connor Baker
2026-10-08 12:21:52 -07:00
parent cd93248a04
commit ad6467b100
3 changed files with 10 additions and 5 deletions

View File

@@ -1235,6 +1235,14 @@ lib.mapAttrs mkLicense (
redistributable = true;
};
nvidiaCudaPython = {
shortName = "CUDA Python License";
fullName = "NVIDIA Software License for NVIDIA CUDA Python";
url = "https://github.com/NVIDIA/cuda-python/blob/v12.9.7/cuda_bindings/LICENSE";
free = false;
redistributable = true;
};
nvidiaCudnn = {
shortName = "cuDNN EULA";
fullName = "cuDNN SUPPLEMENT TO SOFTWARE LICENSE AGREEMENT FOR NVIDIA SOFTWARE DEVELOPMENT KITS";

View File

@@ -124,6 +124,7 @@
cudaLicenses = [
lib.licenses.nvidiaCuda
lib.licenses.nvidiaCudaRedist
lib.licenses.nvidiaCudaPython
lib.licenses.nvidiaCudnn
lib.licenses.nvidiaCusparse_lt
lib.licenses.nvidiaCutensor

View File

@@ -220,11 +220,7 @@ buildPythonPackage (finalAttrs: {
changelog = "https://nvidia.github.io/cuda-python/cuda-bindings/latest/release/${finalAttrs.version}-notes.html";
license =
# Relicensed from the NVIDIA Software License to Apache-2.0 in 13.4
if cudaAtLeast "13.4" then
lib.licenses.asl20
# NVIDIA Proprietary Software
else
lib.licenses.unfreeRedistributable;
if cudaAtLeast "13.4" then lib.licenses.asl20 else lib.licenses.nvidiaCudaPython;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})