Similar to allowUnfreePredicate, sometimes users may want to only allow
specific broken packages to avoid unexpectedly building others.
Some packages may be marked broken for policy reasons (lack of upstream
support) or due to broken or unsupported functionality that the user may
not care about. An example might be forcing ZFS to build on a newer,
unsupported Kernel where compilation succeeds and the user is willing to
take the risk of being unsupported.
nixUnstable was removed in 2b4e18f3d4
but is still referred to from a variety of places, including Hydra's
cross-trunk jobset:
```
in job ‘armv7l-hf.nixUnstable.aarch64-linux’:
error:
… while evaluating a branch condition
at /nix/store/m549zq6lcl10d1jqcdgcdaxxj9xdhxfv-source/lib/customisation.nix:479:5:
478| in
479| if drv == null then null else deepSeq drv' drv';
| ^
480|
… in the left operand of the update (//) operator
at /nix/store/m549zq6lcl10d1jqcdgcdaxxj9xdhxfv-source/lib/meta.nix:43:9:
42| addMetaAttrs = newAttrs: drv:
43| drv // { meta = (drv.meta or {}) // newAttrs; };
| ^
44|
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: nixUnstable has been removed. For bleeding edge (Nix
master, roughly weekly updated) use nixVersions.git, otherwise
use nixVersions.latest.
```
that NixOS manual section talks a lot about Nixpkgs package
configuration, which really should not be there but rather in the
Nixpkgs manual itself. but this is a rabbit hole for another time.
Co-authored-by: Dominic Mills <dominic.millz27@gmail.com>
also updates nixdoc to 2.3.0. the nixdoc update is not a separate commit
because that would leave the manual build broken for one commit,
potentially breaking bisects and rebases.
This section was broken out into its own file in efb55d2a42 but
apparently never actually got included anywhere.
Since then a more detailed section on using unfree packages has been
introduced.
Copied the introduction and removed the rest of the file.