092064db4c33c04cf9b7546f234273ef8570fdd5
preferLocalBuild = true to bypass max-jobs = 0
When `max-jobs = 0`, our async semaphores have null capacity and therefore no slot token can be acquired. In addition, a derivation with `preferLocalBuild = true` with `max-jobs = 0` which is not a built-in derivation is not considered suitable for being possible to build. Our documentation in `max-jobs` writes: > `0` is useful when using remote builders to prevent any local builds (except for preferLocalBuild derivation attribute which executes locally regardless). A valid interpretation is that `preferLocalBuild` derivations (all of them) will always execute even if `max-jobs = 0`. This CL achieves this promise by enabling `preferLocalBuild = true` derivations to draw in priority capacity from a `preferLocalBuild`-only pool and then fall back to the build pool (`maxBuildJobs`). If there's non-zero max-jobs, we make the `preferLocalBuild`-only pool empty. If there's zero max-jobs, we make the `preferLocalBuild`-only pool non-empty (capacity: 1). Remark 1: if `max-jobs = 0`, no non-`preferLocalBuild = true` derivations can be built without a remote builder and `preferLocalBuild = true` derivations can be built one at a time if `extra-local-jobs` is not overridden. Remark 2: if `max-jobs != 0`, no `preferLocalBuild = true` derivations can bypass capacity limits, i.e. `max-jobs` unless `extra-local-jobs` is overridden. Fixes #855. Change-Id: I00a0acac7375a881aec6281ebb13a4530b26e460 Signed-off-by: Raito Bezarius <raito@lix.systems>
Lix
Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.
Read more about us at https://lix.systems.
Installation
On Linux and macOS the easiest way to install Lix is to run the following shell command (as a user other than root):
$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install
For systems that already have a Nix implementation installed, such as NixOS systems, read our install page
Building And Developing
See our Hacking guide in our manual for instruction on how to set up a development environment and build Lix from source.
Additional Resources
- The Lix reference manual:
- Our wiki
- Matrix - #space:lix.systems
License
Lix is released under LGPL-2.1-or-later.
Description
Working fork of Lix - carries the adaptive load-aware build-remote patch. Upstream: gerrit.lix.systems
92 MiB
Languages
C++
74.9%
Python
11.7%
Nix
6.1%
Shell
3.6%
Meson
2%
Other
1.6%