diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-11-20 14:55:32 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-11-20 14:55:32 +0100 |
commit | 34b58aaefccdb5c64b912903973ba729bae58be3 (patch) | |
tree | e18a96bc0f066422356a8da655453403baa97e64 /nixpkgs/doc | |
parent | 7be318098d7fe87d896e8787bfadc0345149cb59 (diff) | |
parent | 3fb937a1e9f4157f57011965b99fcb7f4139d9ad (diff) | |
download | nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.tar nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.tar.gz nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.tar.bz2 nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.tar.lz nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.tar.xz nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.tar.zst nixlib-34b58aaefccdb5c64b912903973ba729bae58be3.zip |
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/doc')
-rw-r--r-- | nixpkgs/doc/functions.md | 1 | ||||
-rw-r--r-- | nixpkgs/doc/functions/fileset.section.md | 48 | ||||
-rw-r--r-- | nixpkgs/doc/stdenv/stdenv.chapter.md | 11 |
3 files changed, 8 insertions, 52 deletions
diff --git a/nixpkgs/doc/functions.md b/nixpkgs/doc/functions.md index 551ba522a904..09033c9e3c19 100644 --- a/nixpkgs/doc/functions.md +++ b/nixpkgs/doc/functions.md @@ -8,5 +8,4 @@ functions/generators.section.md functions/debug.section.md functions/prefer-remote-fetch.section.md functions/nix-gitignore.section.md -functions/fileset.section.md ``` diff --git a/nixpkgs/doc/functions/fileset.section.md b/nixpkgs/doc/functions/fileset.section.md deleted file mode 100644 index c42337feaba4..000000000000 --- a/nixpkgs/doc/functions/fileset.section.md +++ /dev/null @@ -1,48 +0,0 @@ -<!-- TODO: Render this document in front of function documentation in case https://github.com/nix-community/nixdoc/issues/19 is ever supported --> - -# File sets {#sec-fileset} - -The [`lib.fileset`](#sec-functions-library-fileset) library allows you to work with _file sets_. -A file set is a mathematical set of local files that can be added to the Nix store for use in Nix derivations. -File sets are easy and safe to use, providing obvious and composable semantics with good error messages to prevent mistakes. - -See the [function reference](#sec-functions-library-fileset) for function-specific documentation. - -## Implicit coercion from paths to file sets {#sec-fileset-path-coercion} - -All functions accepting file sets as arguments can also accept [paths](https://nixos.org/manual/nix/stable/language/values.html#type-path) as arguments. -Such path arguments are implicitly coerced to file sets containing all files under that path: -- A path to a file turns into a file set containing that single file. -- A path to a directory turns into a file set containing all files _recursively_ in that directory. - -If the path points to a non-existent location, an error is thrown. - -::: {.note} -Just like in Git, file sets cannot represent empty directories. -Because of this, a path to a directory that contains no files (recursively) will turn into a file set containing no files. -::: - -:::{.note} -File set coercion does _not_ add any of the files under the coerced paths to the store. -Only the [`toSource`](#function-library-lib.fileset.toSource) function adds files to the Nix store, and only those files contained in the `fileset` argument. -This is in contrast to using [paths in string interpolation](https://nixos.org/manual/nix/stable/language/values.html#type-path), which does add the entire referenced path to the store. -::: - -### Example {#sec-fileset-path-coercion-example} - -Assume we are in a local directory with a file hierarchy like this: -``` -├─ a/ -│ ├─ x (file) -│ └─ b/ -│ └─ y (file) -└─ c/ - └─ d/ -``` - -Here's a listing of which files get included when different path expressions get coerced to file sets: -- `./.` as a file set contains both `a/x` and `a/b/y` (`c/` does not contain any files and is therefore omitted). -- `./a` as a file set contains both `a/x` and `a/b/y`. -- `./a/x` as a file set contains only `a/x`. -- `./a/b` as a file set contains only `a/b/y`. -- `./c` as a file set is empty, since neither `c` nor `c/d` contain any files. diff --git a/nixpkgs/doc/stdenv/stdenv.chapter.md b/nixpkgs/doc/stdenv/stdenv.chapter.md index 26c43bd9e943..03bb8a9ff790 100644 --- a/nixpkgs/doc/stdenv/stdenv.chapter.md +++ b/nixpkgs/doc/stdenv/stdenv.chapter.md @@ -119,13 +119,18 @@ phases="${prePhases[*]:-} unpackPhase patchPhase" genericBuild ``` Then, run more phases up until the failure is reached. -For example, if the failure is in the build phase, the following phases would be required: +If the failure is in the build or check phase, the following phases would be required: ```bash -phases="${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase" genericBuild +phases="${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase" genericBuild ``` -Re-run a single phase as many times as necessary to examine the failure like so: +Use this command to run all install phases: +```bash +phases="${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase" genericBuild +``` + +Single phase can be re-run as many times as necessary to examine the failure like so: ```bash phases="buildPhase" genericBuild |