mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-15 18:56:16 +02:00
72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
|
# Derivation JSON Format
|
||
|
|
||
|
> **Warning**
|
||
|
>
|
||
|
> This JSON format is currently
|
||
|
> [**experimental**](@docroot@/contributing/experimental-features.md#xp-feature-nix-command)
|
||
|
> and subject to change.
|
||
|
|
||
|
The JSON serialization of a
|
||
|
[derivations](@docroot@/glossary.md#gloss-store-derivation)
|
||
|
is a JSON object with the following fields:
|
||
|
|
||
|
* `name`:
|
||
|
The name of the derivation.
|
||
|
This is used when calculating the store paths of the derivation's outputs.
|
||
|
|
||
|
* `outputs`:
|
||
|
Information about the output paths of the derivation.
|
||
|
This is a JSON object with one member per output, where the key is the output name and the value is a JSON object with these fields:
|
||
|
|
||
|
* `path`: The output path.
|
||
|
|
||
|
* `hashAlgo`:
|
||
|
For fixed-output derivations, the hashing algorithm (e.g. `sha256`), optionally prefixed by `r:` if `hash` denotes a NAR hash rather than a flat file hash.
|
||
|
|
||
|
* `hash`:
|
||
|
For fixed-output derivations, the expected content hash in base-16.
|
||
|
|
||
|
> **Example**
|
||
|
>
|
||
|
> ```json
|
||
|
> "outputs": {
|
||
|
> "out": {
|
||
|
> "path": "/nix/store/2543j7c6jn75blc3drf4g5vhb1rhdq29-source",
|
||
|
> "hashAlgo": "r:sha256",
|
||
|
> "hash": "6fc80dcc62179dbc12fc0b5881275898f93444833d21b89dfe5f7fbcbb1d0d62"
|
||
|
> }
|
||
|
> }
|
||
|
> ```
|
||
|
|
||
|
* `inputSrcs`:
|
||
|
A list of store paths on which this derivation depends.
|
||
|
|
||
|
* `inputDrvs`:
|
||
|
A JSON object specifying the derivations on which this derivation depends, and what outputs of those derivations.
|
||
|
|
||
|
> **Example**
|
||
|
>
|
||
|
> ```json
|
||
|
> "inputDrvs": {
|
||
|
> "/nix/store/6lkh5yi7nlb7l6dr8fljlli5zfd9hq58-curl-7.73.0.drv": ["dev"],
|
||
|
> "/nix/store/fn3kgnfzl5dzym26j8g907gq3kbm8bfh-unzip-6.0.drv": ["out"]
|
||
|
> }
|
||
|
> ```
|
||
|
|
||
|
specifies that this derivation depends on the `dev` output of `curl`, and the `out` output of `unzip`.
|
||
|
|
||
|
* `system`:
|
||
|
The system type on which this derivation is to be built
|
||
|
(e.g. `x86_64-linux`).
|
||
|
|
||
|
* `builder`:
|
||
|
The absolute path of the program to be executed to run the build.
|
||
|
Typically this is the `bash` shell
|
||
|
(e.g. `/nix/store/r3j288vpmczbl500w6zz89gyfa4nr0b1-bash-4.4-p23/bin/bash`).
|
||
|
|
||
|
* `args`:
|
||
|
The command-line arguments passed to the `builder`.
|
||
|
|
||
|
* `env`:
|
||
|
The environment passed to the `builder`.
|