mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-28 08:36:15 +02:00
eb7d7780b1
This is needed to avoid this https://github.com/mesonbuild/meson/issues/13774 when we go back to making our subproject directory `src`.
92 lines
2.7 KiB
Markdown
92 lines
2.7 KiB
Markdown
# Derivation JSON Format
|
|
|
|
> **Warning**
|
|
>
|
|
> This JSON format is currently
|
|
> [**experimental**](@docroot@/development/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, if it is known in advanced.
|
|
Otherwise, `null`.
|
|
|
|
|
|
* `method`:
|
|
For an output which will be [content addresed], a string representing the [method](@docroot@/store/store-object/content-address.md) of content addressing that is chosen.
|
|
Valid method strings are:
|
|
|
|
- [`flat`](@docroot@/store/store-object/content-address.md#method-flat)
|
|
- [`nar`](@docroot@/store/store-object/content-address.md#method-nix-archive)
|
|
- [`text`](@docroot@/store/store-object/content-address.md#method-text)
|
|
- [`git`](@docroot@/store/store-object/content-address.md#method-git)
|
|
|
|
Otherwise, `null`.
|
|
|
|
* `hashAlgo`:
|
|
For an output which will be [content addresed], the name of the hash algorithm used.
|
|
Valid algorithm strings are:
|
|
|
|
- `md5`
|
|
- `sha1`
|
|
- `sha256`
|
|
- `sha512`
|
|
|
|
* `hash`:
|
|
For fixed-output derivations, the expected content hash in base-16.
|
|
|
|
> **Example**
|
|
>
|
|
> ```json
|
|
> "outputs": {
|
|
> "out": {
|
|
> "path": "/nix/store/2543j7c6jn75blc3drf4g5vhb1rhdq29-source",
|
|
> "method": "nar",
|
|
> "hashAlgo": "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`.
|