lib.meta: introduce availableOn to check package availability on given platform#114374
Merged
infinisil merged 1 commit intoNixOS:masterfrom May 8, 2021
Merged
Conversation
Member
|
The name is a bit long, |
f708003 to
5232d32
Compare
Contributor
Author
Renamed. Also added docs for it. |
availableOnPlatformavailableOn to check package availability on given platform
r-burns
approved these changes
Mar 9, 2021
Contributor
r-burns
left a comment
There was a problem hiding this comment.
This is a big help for unbreaking risc-v, and seems useful to have in general
5232d32 to
dfe77bb
Compare
dfe77bb to
354d262
Compare
sternenseemann
approved these changes
Apr 2, 2021
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation for this change
Currently, a pattern
lib.any (lib.meta.platformMatch stdenv.hostPlatform) <some_pkg>.meta.platformsis used to check whether a optional feature should be enabled by default. But it is incorrect since it doesn't checkmeta.badPlatforms. This made package likesystemdon riscv linux havekexectoolsenabled, which doesn't support riscv, leading to an failure. (Related #101651)This PR replace the pattern with a new function
availableOnPlatformto check bothmeta.{platforms,badPlatforms}.This PR does NOT cause any rebuilds for currently non-broken packages.
Things done
sandboxinnix.confon non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"./result/bin/)nix path-info -Sbefore and after)