Nix, the purely functional package manager
Go to file
John Ericson 5e3986f59c Adapt scheduler to work with dynamic derivations
To avoid dealing with an optional `drvPath` (because we might not know
it yet) everywhere, make an `CreateDerivationAndRealiseGoal`. This goal
just builds/substitutes the derivation file, and then kicks of a build
for that obtained derivation; in other words it does the chaining of
goals when the drv file is missing (as can already be the case) or
computed (new case).

This also means the `getDerivation` state can be removed from
`DerivationGoal`, which makes the `BasicDerivation` / in memory case and
`Derivation` / drv file file case closer together.

The map type is factored out for clarity, and because we will soon hvae
a second use for it (`Derivation` itself).

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-08-25 10:01:25 -04:00
.github Bump zeebe-io/backport-action from 1.3.1 to 1.4.0 2023-08-21 22:22:21 +00:00
config Run autoupdate 2021-06-01 11:42:38 +02:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
doc glossary: dedent list and do not use forced line breaks 2023-08-24 10:00:17 +02:00
m4 autoconf: Fix C++17 detection not working on Ubuntu 16.04. 2019-07-03 04:32:25 +02:00
maintainers maintainers: add note on marking PRs as draft 2023-06-19 10:55:34 +02:00
misc Choose a reasonable number similar to LimitNOFile 2023-07-07 07:52:16 -07:00
mk Introduce notion of a test group, use for CA tests 2023-07-18 09:31:13 -04:00
perl Simplify ContentAddress 2023-07-07 07:30:01 -04:00
scripts Merge pull request #8512 from scarf005/install-show-uid 2023-06-15 13:49:44 +02:00
src Adapt scheduler to work with dynamic derivations 2023-08-25 10:01:25 -04:00
tests Adapt scheduler to work with dynamic derivations 2023-08-25 10:01:25 -04:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig Add .editorconfig 2017-06-05 22:57:28 +01:00
.gitignore Merge pull request #8653 from hercules-ci/gitignore-.cache 2023-08-18 15:02:21 +02:00
.version Bump version 2023-07-24 21:30:33 +02:00
boehmgc-coroutine-sp-fallback.diff Always disable GC in a coroutine unless the patch is applied 2023-04-07 14:54:38 +02:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
configure.ac expand on the system type in hacking guide 2023-07-19 10:37:40 +02:00
CONTRIBUTING.md CONTRIBUTING.md: add link to "good first issues" 2023-06-19 10:39:19 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
default.nix GC root for fetched nixpkgs/lib content 2023-08-16 15:46:37 +02:00
docker.nix fix "add an option to include flake-registry..." 2023-05-16 14:35:31 +02:00
flake.lock add flake-compat to flake.nix and use sha256 in default.nix 2023-03-06 21:11:24 +01:00
flake.nix update system definitions 2023-08-23 19:28:24 +01:00
local.mk Enable -Werror=switch-enum 2023-04-03 18:45:20 +02:00
Makefile Introduce notion of a test group, use for CA tests 2023-07-18 09:31:13 -04:00
Makefile.config.in Generate API docs with Doxygen 2023-03-10 12:51:06 -05:00
precompiled-headers.h Config: Use nlohmann/json 2020-08-20 11:02:16 +02:00
README.md Improve hacking.md 2023-02-13 12:00:00 +04:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to to set up a development environment and build Nix from source.

Additional Resources

License

Nix is released under the LGPL v2.1.