1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-02 05:11:47 +02:00
Commit graph

2265 commits

Author SHA1 Message Date
Eelco Dolstra
241dd5481e warnOnce(): Fix boost exception when the message contains a format character 2022-09-30 15:21:43 +02:00
Eelco Dolstra
cbade16f9e Handle unlocked overriden inputs
This fixes the error

  in pure evaluation mode, 'fetchTree' requires a locked input

when using '--override-input X Y' where Y is an unlocked input (e.g. a
dirty Git tree).

Also, make LockFile use ref instead of std::shared_ptr.
2022-09-29 16:14:56 +02:00
Eelco Dolstra
c3c0682842 Don't show "from call site" when we don't know the call site
This gets rid of stack trace entries like

       … from call site

       at «stdin»:0: (source not available)
2022-09-28 17:01:16 +02:00
Eelco Dolstra
a291e37b20 Improve error messages from call-flake.nix 2022-09-28 15:09:24 +02:00
Eelco Dolstra
28b62dd3e0 Merge remote-tracking branch 'origin/master' into lazy-trees 2022-09-28 14:13:44 +02:00
Eelco Dolstra
6806f20157
Merge pull request #7089 from NixOS/mention-accept-flake-config-in-warning
Mention `--accept-flake-config` in the related warning
2022-09-26 11:13:02 +02:00
Adam Joseph
dc205c75a2 src/libexpr/primops.cc: correct definition for intersectAttrs
The current definition of `intersectAttrs` is incorrect:

> Return a set consisting of the attributes in the set e2 that also exist in the
> set e1.

Recall that (Nix manual, section 5.1):

> An attribute set is a collection of name-value-pairs (called attributes)

According to the existing description of `intersectAttrs`, the following should
evaluate to the empty set, since no key-value *pair* (i.e. attribute) exists in
both sets:

```
builtins.intersectAttrs { x=3; } {x="foo";}
```

And yet:

```
nix-repl> builtins.intersectAttrs { x=3; } {x="foo";}
{ x = "foo"; }
```

Clearly the intent here was for the *names* of the resulting attribute set to be
the intersection of the *names* of the two arguments, and for the values of the
resulting attribute set to be the values from the second argument.

This commit corrects the definition, making it match the implementation and intent.
2022-09-24 23:51:09 -07:00
Théophane Hufschmitt
371013c08d
Merge pull request #7010 from edolstra/ignore-shell
nix develop: Ignore stdenv's $SHELL
2022-09-24 12:55:53 +02:00
Théophane Hufschmitt
1a5d094be7
Mention --accept-flake-config in the related warning
Make sure that people who run Nix in non-interactive mode (and so don't have the possibility to interactively accept the individual flake configuration settings) are aware of this flag.

Fix #7086
2022-09-24 12:11:26 +02:00
Adam Joseph
fb985f855c fetchurl.nix: change other use of __impure 2022-09-16 01:54:24 -07:00
Adam Joseph
673fd21b7c
Update src/libexpr/fetchurl.nix
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2022-09-16 08:51:14 +00:00
Adam Joseph
b3550d9179 libexpr/fetchurl.nix: allow __impure fetch
This commit adds an optional `__impure` parameter to fetchurl.nix, which allows
the caller to use `libfetcher`'s fetcher in an impure derivation.  This allows
nixpkgs' patch-normalizing fetcher (fetchpatch) to be rewritten to use nix's
internal fetchurl, thereby eliminating the awkward "you can't use fetchpatch
here" banners scattered all over the place.

See also: https://github.com/NixOS/nixpkgs/pull/188587
2022-09-16 00:48:01 -07:00
Eelco Dolstra
2a1c63c785 Support flake references in the old CLI
Fixes #7026.
2022-09-13 19:05:05 +02:00
Eelco Dolstra
432a3a18d2 Move isUri() and resolveUri() out of filetransfer.cc
These are purely related to NIX_PATH / -I command line parsing, so put
them in libexpr.
2022-09-12 15:37:09 +02:00
Eelco Dolstra
85c1959240 Remove some FIXMEs 2022-09-12 15:10:54 +02:00
Eelco Dolstra
1b8065f255 posToXML(): Fix displaying paths 2022-09-12 14:59:15 +02:00
Eelco Dolstra
48a5879b63 Decode virtual paths in user-thrown errors
E.g. instead of

  error: Package ‘steam’ in /__virtual__/4/pkgs/games/steam/steam.nix:43 has an unfree license (‘unfreeRedistributable’), refusing to evaluate.

you now get

  error: Package ‘steam’ in «github:nixos/nixpkgs/b82ccafb54163ab9024e893e578d840577785fea»/pkgs/games/steam/steam.nix:43 has an unfree license (‘unfreeRedistributable’), refusing to evaluate.
2022-09-12 12:52:07 +02:00
Eelco Dolstra
ece12a97d9 lockfile -> lock file for consistency 2022-09-06 19:20:31 +02:00
Eelco Dolstra
2d5cfca98b Fix accessing 'toString path' 2022-09-02 19:30:17 +02:00
Eelco Dolstra
a8b3d777fb Revert "Merge pull request #6621 from Kha/nested-follows"
This reverts commit c530cda345, reversing
changes made to 4adcdff5c1.
2022-09-01 15:26:19 +02:00
Eelco Dolstra
301f388716 Remove FIXME
We don't need to return the accessor here (in fact it rarely makes
sense to return a path from the EvalCache).
2022-08-29 15:43:43 +02:00
Eelco Dolstra
7da3a30c90 Remove no_pos_tag 2022-08-29 15:43:34 +02:00
Eelco Dolstra
30be6445e6 Make EvalState::inputAccessors keyed by the accessor number 2022-08-29 15:35:35 +02:00
Sebastian Ullrich
6f65c11780 Fix overlapping flake follows 2022-08-28 11:50:25 +02:00
Sebastian Ullrich
2b9d381301 Fix nested flake input overrides 2022-08-28 11:47:25 +02:00
Eelco Dolstra
13c0db4d06 Merge remote-tracking branch 'origin/master' into lazy-trees 2022-08-25 17:41:12 +02:00
Eelco Dolstra
a17ce0a8a9 Fix evaluation cache
98e361ad4c introduced a regression where
previously stored attributes were replaced by placeholders. As a
result, a command like 'nix build nixpkgs#hello' had to be executed at
least twice to get caching.

This code does not seem necessary for suggestions to work.
2022-08-24 21:19:43 +02:00
Naïm Favier
062e4fcdde
JSON: print paths as strings without copying them to the store
Makes `printValueAsJSON` not copy paths to the store for `nix eval
--json`, `nix-instantiate --eval --json` and `nix-env --json`.

Fixes https://github.com/NixOS/nix/issues/5612
2022-08-22 15:01:35 +02:00
Eelco Dolstra
a5fd4ea94e parseFlakeRefWithFragment() improvements
In particular, plain paths no longer ignore query parameters
(e.g. '/foo/bar?lock=1').
2022-08-17 15:34:40 +02:00
Eelco Dolstra
18c6daf1a8 Simplify error message 2022-08-17 15:22:58 +02:00
Eelco Dolstra
2e0d63caf6 Add InputAccessor::fetchToStore() 2022-08-11 20:03:22 +02:00
Eelco Dolstra
5ef9008bf3 Merge remote-tracking branch 'origin/master' into lazy-trees 2022-08-04 13:45:22 +02:00
Eelco Dolstra
15f37eeb5a Merge remote-tracking branch 'origin/master' into lazy-trees 2022-08-04 13:34:38 +02:00
Erik Arvstedt
53833dfb40 libexpr/flake: remove FIXME
Line 593 checks that all overrides (i.e. all elements of
`lockFlags.inputOverrides`) are members of `overridesUsed`.
2022-08-04 09:45:29 +02:00
Erik Arvstedt
c9f446ede1 flakeref: fix comment 2022-08-04 09:45:28 +02:00
Eelco Dolstra
ccbd906c86 Fix NIX_COUNT_CALLS=1
Also, make the JSON writer support std::string_view.

Fixes #6857.
2022-08-03 17:46:51 +02:00
Eelco Dolstra
71b155b9e6 Move download stuff into tarball.hh 2022-08-01 16:05:58 +02:00
Eelco Dolstra
48012603b3 Move FSInputAccessor into a separate file 2022-08-01 16:00:12 +02:00
Eelco Dolstra
55c63c9b89 Remove InputScheme::fetchToStore()
InputSchemes now only have a getAccessor(). They could be implemented
internally by fetching the input to the store, but in that case they
will just return a FSInputAccessor.
2022-08-01 15:44:40 +02:00
Eelco Dolstra
59a8e05754 Fix test 2022-07-27 14:41:32 +02:00
Eelco Dolstra
f780539406 Add abstract interface for writing files to an Input 2022-07-27 14:26:15 +02:00
Eelco Dolstra
bb4d35dcca Make 'nix edit' etc. work again 2022-07-26 17:06:45 +02:00
Eelco Dolstra
1790698a74 Rename fetch() -> fetchToStore(), lazyFetch() -> getAccessor() 2022-07-25 16:30:50 +02:00
Eelco Dolstra
7a64bb7f1c Rename Input::fetch() to fetchToStore() 2022-07-25 15:48:31 +02:00
Eelco Dolstra
c0555c8e1f Remove Input::computeStorePath() 2022-07-25 15:35:53 +02:00
Eelco Dolstra
4f8f52ae58 Remove Tree datatype 2022-07-25 15:21:37 +02:00
Eelco Dolstra
e7faf65784 Remove FlakeRef::fetchTree() 2022-07-25 15:12:28 +02:00
Eelco Dolstra
f97489e7ab Remove parent hackery from the path fetcher
Relative paths of subflakes are now handled in lockFlake().
2022-07-22 15:24:41 +02:00
Eelco Dolstra
3d27ce36d0 Restore the evaluation cache 2022-07-22 15:19:30 +02:00
Eelco Dolstra
7edacb6248 Fix case 2022-07-21 16:06:22 +02:00