nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 78 lines 2.6 kB view raw
1{ _cuda, lib }: 2{ 3 /** 4 Returns a list of bad platforms for a given package if assertsions in `finalAttrs.passthru.platformAssertions` 5 fail, optionally logging evaluation warnings with `builtins.traceVerbose` for each reason. 6 7 NOTE: No guarantees are made about this function's stability. You may use it at your own risk. 8 9 NOTE: This function requires `finalAttrs.passthru.platformAssertions` to be a list of assertions and 10 `finalAttrs.finalPackage.name` and `finalAttrs.finalPackage.stdenv` to be available. 11 12 # Type 13 14 ``` 15 _mkMetaBadPlatforms :: (finalAttrs :: AttrSet) -> List String 16 ``` 17 18 # Inputs 19 20 `finalAttrs` 21 22 : The final attributes of the package 23 */ 24 _mkMetaBadPlatforms = 25 finalAttrs: 26 let 27 failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.platformAssertions; 28 hasFailedAssertions = failedAssertionsString != ""; 29 finalStdenv = finalAttrs.finalPackage.stdenv; 30 badPlatforms = lib.optionals hasFailedAssertions ( 31 lib.unique [ 32 finalStdenv.buildPlatform.system 33 finalStdenv.hostPlatform.system 34 finalStdenv.targetPlatform.system 35 ] 36 ); 37 handle = 38 if hasFailedAssertions then 39 builtins.traceVerbose "Package ${finalAttrs.finalPackage.name} is unsupported on this platform due to the following failed assertions:${failedAssertionsString}" 40 else 41 lib.id; 42 in 43 handle badPlatforms; 44 45 /** 46 Returns a boolean indicating whether the package is broken as a result of `finalAttrs.passthru.brokenAssertions`, 47 optionally logging evaluation warnings with `builtins.traceVerbose` for each reason. 48 49 NOTE: No guarantees are made about this function's stability. You may use it at your own risk. 50 51 NOTE: This function requires `finalAttrs.passthru.brokenAssertions` to be a list of assertions and 52 `finalAttrs.finalPackage.name` to be available. 53 54 # Type 55 56 ``` 57 _mkMetaBroken :: (finalAttrs :: AttrSet) -> Bool 58 ``` 59 60 # Inputs 61 62 `finalAttrs` 63 64 : The final attributes of the package 65 */ 66 _mkMetaBroken = 67 finalAttrs: 68 let 69 failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.brokenAssertions; 70 hasFailedAssertions = failedAssertionsString != ""; 71 handle = 72 if hasFailedAssertions then 73 builtins.traceVerbose "Package ${finalAttrs.finalPackage.name} is marked as broken due to the following failed assertions:${failedAssertionsString}" 74 else 75 lib.id; 76 in 77 handle hasFailedAssertions; 78}