Age | Commit message (Collapse) | Author |
|
|
|
|
|
Example:
$ nix app blender-bin -- --version
Blender 2.80 (sub 74)
|
|
I.e. you can write
$ nix app blender-bin:blender_2_80
which is equivalent to
$ nix app blender-bin:apps.blender_2_80
|
|
|
|
Run builds in a pseudo-terminal
|
|
install-multi-user: reduce max-jobs from 32 to 1
|
|
|
|
|
|
|
|
This allows many programs (e.g. gcc, clang, cmake) to print colorized
log output (assuming $TERM is set to a value like "xterm").
There are other ways to get colors, in particular setting
CLICOLOR_FORCE, but they're less widely supported and can break
programs that parse tool output.
|
|
|
|
|
|
(cherry picked from commit c38c726eb5d447c7e9d894d57cd05ac46c173ddd)
|
|
|
|
Daemon: warn when an untrusted user cannot override a setting
|
|
In a daemon-based Nix setup, some options cannot be overridden by a
client unless the client's user is considered trusted.
Currently, if an untrusted user tries to override one of those
options, we are silently ignoring it.
This can be pretty confusing in certain situations.
e.g. a user thinks he disabled the sandbox when in reality he did not.
We are now sending a warning message letting know the user some options
have been ignored.
Related to #1761.
|
|
This makes commands like 'nix run nixpkgs.chromium' work again.
|
|
Fixes #2405.
|
|
Add tests for GitHub flakes
|
|
Fixes #2889.
|
|
|
|
Flake evaluation cache
|
|
|
|
This exploits the hermetic nature of flake evaluation to speed up
repeated evaluations of a flake output attribute.
For example (doing 'nix build' on an already present package):
$ time nix build nixpkgs:firefox
real 0m1.497s
user 0m1.160s
sys 0m0.139s
$ time nix build nixpkgs:firefox
real 0m0.052s
user 0m0.038s
sys 0m0.007s
The cache is ~/.cache/nix/eval-cache-v1.sqlite, which has entries like
INSERT INTO Attributes VALUES(
X'92a907d4efe933af2a46959b082cdff176aa5bfeb47a98fabd234809a67ab195',
'packages.firefox',
1,
'/nix/store/pbalzf8x19hckr8cwdv62rd6g0lqgc38-firefox-67.0.drv /nix/store/g6q0gx0v6xvdnizp8lrcw7c4gdkzana0-firefox-67.0 out');
where the hash 92a9... is a fingerprint over the flake store path and
the contents of the lockfile. Because flakes are evaluated in pure
mode, this uniquely identifies the evaluation result.
|
|
Lazy flake input fetching
|
|
|
|
Fixes #2819.
|
|
|
|
|
|
|
|
Also add a proper test for non-flake inputs.
|
|
|
|
Unfortunately this doesn't work. Maybe we should keep separate roots
for each path.
|
|
|
|
Also use nlohmann::json range-based for.
|
|
|
|
|
|
As long as the flake input is locked, it is now only fetched when it
is evaluated (e.g. "nixpkgs" is fetched when
"inputs.nixpkgs.<something>" is evaluated).
This required adding an "id" attribute to the members of "inputs" in
lockfiles, e.g.
"inputs": {
"nixpkgs/release-19.03": {
"id": "nixpkgs",
"inputs": {},
"narHash": "sha256-eYtxncIMFVmOHaHBtTdPGcs/AnJqKqA6tHCm0UmPYQU=",
"nonFlakeInputs": {},
"uri": "github:edolstra/nixpkgs/e9d5882bb861dc48f8d46960e7c820efdbe8f9c1"
}
}
because the flake ID needs to be known beforehand to construct the
"inputs" attrset.
Fixes #2913.
|
|
Minor typo
|
|
|
|
Clang compiles faster (121s vs 156s for GCC 7) so it's a bit nicer for
development.
|
|
https://hydra.nixos.org/build/94332344
https://stackoverflow.com/questions/46114214/lambda-implicit-capture-fails-with-variable-declared-from-structured-binding
|
|
Made epochs more fine-grained
|
|
Fixes #2894
|
|
Add 'nix app' command
|
|
This is like 'nix run', except that the command to execute is defined
in a flake output, e.g.
defaultApp = {
type = "app";
program = "${packages.blender_2_80}/bin/blender";
};
Thus you can do
$ nix app blender-bin
to start Blender from the 'blender-bin' flake.
In the future, we can extend this with sandboxing. (For example we
would want to be able to specify that Blender should not have network
access by default and should only have access to certain paths in the
user's home directory.)
|
|
|
|
|
|
Subdirectory improvements
|