Skip to content

cudaPackages: all outPaths should be evaluate-able #273794

@SomeoneSerge

Description

@SomeoneSerge

...even for packages marked "broken".

Reflecting on #273781, our error handling should obviously take Ofborg into account, as well as try not to break interfaces that users outside nixpkgs might expect. One way to go could be:

  • No throws, only meta.broken. Users can override meta.broken
  • Broken packages shall still evaluate with allowBroken = true: they'll have a valid outPath, but their builds would always fail.
  • In particular, when there's a src missing for a sourceProvenance = [ binaryNativeCode ] package (e.g. depending on the platform), we should set src to a valid fake value, e.g.null. In contrast, this fetchurl throws:
    src = fetchurl {
    url = "https://developer.download.nvidia.com/compute/${redistName}/redist/${
    redistribRelease.${redistArch}.relative_path
    }";
    inherit (redistribRelease.${redistArch}) sha256;
    };
  • Optionally: prefer static structure for attribute sets when possible, cf. cudaPackages: keep unsupported attributes, mark unsupported, explain why #266475. This may also be related to recursion issues

@NixOS/cuda-maintainers

Metadata

Metadata

Assignees

Labels

6.topic: cudaParallel computing platform and API

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions