Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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 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 :: (warn :: Bool) -> (finalAttrs :: AttrSet) -> List String 16 ``` 17 */ 18 _mkMetaBadPlatforms = 19 warn: finalAttrs: 20 let 21 failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.platformAssertions; 22 hasFailedAssertions = failedAssertionsString != ""; 23 finalStdenv = finalAttrs.finalPackage.stdenv; 24 in 25 lib.warnIf (warn && hasFailedAssertions) 26 "Package ${finalAttrs.finalPackage.name} is unsupported on this platform due to the following failed assertions:${failedAssertionsString}" 27 ( 28 lib.optionals hasFailedAssertions ( 29 lib.unique [ 30 finalStdenv.buildPlatform.system 31 finalStdenv.hostPlatform.system 32 finalStdenv.targetPlatform.system 33 ] 34 ) 35 ); 36 37 /** 38 Returns a boolean indicating whether the package is broken as a result of `finalAttrs.passthru.brokenAssertions`, 39 optionally logging evaluation warnings for each reason. 40 41 NOTE: No guarantees are made about this function's stability. You may use it at your own risk. 42 43 NOTE: This function requires `finalAttrs.passthru.brokenAssertions` to be a list of assertions and 44 `finalAttrs.finalPackage.name` to be available. 45 46 # Type 47 48 ``` 49 _mkMetaBroken :: (warn :: Bool) -> (finalAttrs :: AttrSet) -> Bool 50 ``` 51 52 # Inputs 53 54 `warn` 55 56 : A boolean indicating whether to log warnings 57 58 `finalAttrs` 59 60 : The final attributes of the package 61 */ 62 _mkMetaBroken = 63 warn: finalAttrs: 64 let 65 failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.brokenAssertions; 66 hasFailedAssertions = failedAssertionsString != ""; 67 in 68 lib.warnIf (warn && hasFailedAssertions) 69 "Package ${finalAttrs.finalPackage.name} is marked as broken due to the following failed assertions:${failedAssertionsString}" 70 hasFailedAssertions; 71}