summary refs log tree commit diff
path: root/doc/stdenv
diff options
context:
space:
mode:
authorAdam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>2023-04-24 04:31:38 +0000
committerGitHub <noreply@github.com>2023-04-24 04:31:38 +0000
commit401430319c2a5ceb488cfad9a3e4a6207aa5cad7 (patch)
treeebe8bb1332f09f08cca8bdc3236eaa5d8b62e899 /doc/stdenv
parent467ee31e58ccb79476d815f4131cb283cecd9560 (diff)
Update doc/stdenv/meta.chapter.md
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
Diffstat (limited to 'doc/stdenv')
-rw-r--r--doc/stdenv/meta.chapter.md18
1 files changed, 17 insertions, 1 deletions
diff --git a/doc/stdenv/meta.chapter.md b/doc/stdenv/meta.chapter.md
index 6f58648cdf5db..1ce44a9065feb 100644
--- a/doc/stdenv/meta.chapter.md
+++ b/doc/stdenv/meta.chapter.md
@@ -185,7 +185,23 @@ meta.hydraPlatforms = [];
 If set to `true`, the package is marked as "broken", meaning that it won’t show up in [search.nixos.org](https://search.nixos.org/packages), and cannot be built or installed unless the environment variable [`NIXPKGS_ALLOW_BROKEN`](#opt-allowBroken) is set.
 Such unconditionally-broken packages should be removed from Nixpkgs eventually unless they are fixed.
 
-The value of this attribute can depend on a package's arguments, including `stdenv`.  This means that `broken` can be used to express constraints such as "does not cross compile" (`meta.broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)`) or "broken if all of a certain set of its dependencies are broken".  This makes `broken` strictly more powerful than `meta.badPlatforms`.  However `meta.availableOn` currently examines only `meta.platforms` and `meta.badPlatforms`, so `meta.broken` does not influence the default values for optional dependencies.
+The value of this attribute can depend on a package's arguments, including `stdenv`. 
+This means that `broken` can be used to express constraints, for example:
+
+- Does not cross compile
+
+  ```nix
+   meta.broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)
+  ```
+
+- Broken if all of a certain set of its dependencies are broken
+
+  ```nix
+  meta.broken = lib.all (map (p: p.meta.broken) [ glibc musl ])
+  ```
+
+This makes `broken` strictly more powerful than `meta.badPlatforms`.
+However `meta.availableOn` currently examines only `meta.platforms` and `meta.badPlatforms`, so `meta.broken` does not influence the default values for optional dependencies.
 
 ## Licenses {#sec-meta-license}