Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
72 lines
2.4 KiB
Nix
72 lines
2.4 KiB
Nix
{ _cuda, lib }:
|
|
{
|
|
/**
|
|
Returns a list of bad platforms for a given package if assertsions in `finalAttrs.passthru.platformAssertions`
|
|
fail, optionally logging evaluation warnings for each reason.
|
|
|
|
NOTE: No guarantees are made about this function's stability. You may use it at your own risk.
|
|
|
|
NOTE: This function requires `finalAttrs.passthru.platformAssertions` to be a list of assertions and
|
|
`finalAttrs.finalPackage.name` and `finalAttrs.finalPackage.stdenv` to be available.
|
|
|
|
# Type
|
|
|
|
```
|
|
_mkMetaBadPlatforms :: (warn :: Bool) -> (finalAttrs :: AttrSet) -> List String
|
|
```
|
|
*/
|
|
_mkMetaBadPlatforms =
|
|
warn: finalAttrs:
|
|
let
|
|
failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.platformAssertions;
|
|
hasFailedAssertions = failedAssertionsString != "";
|
|
finalStdenv = finalAttrs.finalPackage.stdenv;
|
|
in
|
|
lib.warnIf (warn && hasFailedAssertions)
|
|
"Package ${finalAttrs.finalPackage.name} is unsupported on this platform due to the following failed assertions:${failedAssertionsString}"
|
|
(
|
|
lib.optionals hasFailedAssertions (
|
|
lib.unique [
|
|
finalStdenv.buildPlatform.system
|
|
finalStdenv.hostPlatform.system
|
|
finalStdenv.targetPlatform.system
|
|
]
|
|
)
|
|
);
|
|
|
|
/**
|
|
Returns a boolean indicating whether the package is broken as a result of `finalAttrs.passthru.brokenAssertions`,
|
|
optionally logging evaluation warnings for each reason.
|
|
|
|
NOTE: No guarantees are made about this function's stability. You may use it at your own risk.
|
|
|
|
NOTE: This function requires `finalAttrs.passthru.brokenAssertions` to be a list of assertions and
|
|
`finalAttrs.finalPackage.name` to be available.
|
|
|
|
# Type
|
|
|
|
```
|
|
_mkMetaBroken :: (warn :: Bool) -> (finalAttrs :: AttrSet) -> Bool
|
|
```
|
|
|
|
# Inputs
|
|
|
|
`warn`
|
|
|
|
: A boolean indicating whether to log warnings
|
|
|
|
`finalAttrs`
|
|
|
|
: The final attributes of the package
|
|
*/
|
|
_mkMetaBroken =
|
|
warn: finalAttrs:
|
|
let
|
|
failedAssertionsString = _cuda.lib._mkFailedAssertionsString finalAttrs.passthru.brokenAssertions;
|
|
hasFailedAssertions = failedAssertionsString != "";
|
|
in
|
|
lib.warnIf (warn && hasFailedAssertions)
|
|
"Package ${finalAttrs.finalPackage.name} is marked as broken due to the following failed assertions:${failedAssertionsString}"
|
|
hasFailedAssertions;
|
|
}
|