Merge pull request #7768 from ncfavier/fixup-7714

This commit is contained in:
Valentin Gagarin 2023-02-07 16:24:19 +01:00 committed by GitHub
commit 8ab9fdac01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -260,7 +260,7 @@ Derivations can declare some infrequently used optional attributes.
If the special attribute `__structuredAttrs` is set to `true`, the other derivation If the special attribute `__structuredAttrs` is set to `true`, the other derivation
attributes are serialised in JSON format and made available to the attributes are serialised in JSON format and made available to the
builder via the file `.attrs.json` in the builders temporary builder via the file `.attrs.json` in the builders temporary
directory. This obviates the need for `passAsFile` since JSON files directory. This obviates the need for [`passAsFile`](#adv-attr-passAsFile) since JSON files
have no size restrictions, unlike process environments. have no size restrictions, unlike process environments.
It also makes it possible to tweak derivation settings in a structured way; see It also makes it possible to tweak derivation settings in a structured way; see
@ -282,11 +282,13 @@ Derivations can declare some infrequently used optional attributes.
[`disallowedReferences`](#adv-attr-disallowedReferences) and [`disallowedRequisites`](#adv-attr-disallowedRequisites), [`disallowedReferences`](#adv-attr-disallowedReferences) and [`disallowedRequisites`](#adv-attr-disallowedRequisites),
the following attributes are available: the following attributes are available:
- `maxSize` defines the maximum size of the output path. - `maxSize` defines the maximum size of the resulting [store object](../glossary.md#gloss-store-object).
- `maxClosureSize` defines the maximum size of the output's closure. - `maxClosureSize` defines the maximum size of the output's closure.
- `ignoreSelfRefs` controls whether self-references should be considered when - `ignoreSelfRefs` controls whether self-references should be considered when
checking for allowed references/requisites. checking for allowed references/requisites.
Example:
```nix ```nix
__structuredAttrs = true; __structuredAttrs = true;
@ -305,9 +307,20 @@ Derivations can declare some infrequently used optional attributes.
``` ```
- [`unsafeDiscardReferences`]{#adv-attr-unsafeDiscardReferences}\ - [`unsafeDiscardReferences`]{#adv-attr-unsafeDiscardReferences}\
When using [structured attributes](#adv-attr-structuredAttrs), the **experimental** > **Warning**
attribute `unsafeDiscardReferences` is a per-output boolean which, if set to `true`, > This is an experimental feature.
disables scanning the build output for runtime dependencies altogether. >
> To enable it, add the following to [nix.conf](../command-ref/conf-file.md):
>
> ```
> extra-experimental-features = discard-references
> ```
When using [structured attributes](#adv-attr-structuredAttrs), the
attribute `unsafeDiscardReferences` is an attribute set with a boolean value for each output name.
If set to `true`, it disables scanning the output for runtime dependencies.
Example:
```nix ```nix
__structuredAttrs = true; __structuredAttrs = true;
@ -317,5 +330,3 @@ Derivations can declare some infrequently used optional attributes.
This is useful, for example, when generating self-contained filesystem images with This is useful, for example, when generating self-contained filesystem images with
their own embedded Nix store: hashes found inside such an image refer their own embedded Nix store: hashes found inside such an image refer
to the embedded store and not to the host's Nix store. to the embedded store and not to the host's Nix store.
This is only allowed if the `discard-references` experimental feature is enabled.