Silvan Mosberger
09471d2680
Make lists be comparable
...
Makes lists comparable using lexicographic comparison.
Increments builtins.langVersion in order for this change to be
detectable
2021-11-24 13:40:46 +01:00
John Ericson
286eb81143
"recursive-nix" system feature only with experimental feature
2021-11-23 20:19:04 +00:00
Farid Zakaria
d41af23a6c
Fix heap use after free in progress-bar.cc
...
Fix some heap-use-after-free in progress-bar.cc
These are somewhat tricky failures here due to temporary variable
creation and string_view
2021-11-23 08:34:55 -08:00
Alex Shabalin
b26cb0c9ac
Fix use after free in content-address.cc
...
Inspired by https://github.com/NixOS/nix/pull/5599
2021-11-23 16:15:34 +01:00
Eelco Dolstra
dbfcaa607a
Merge pull request #5628 from matthewbauer/rosetta2-new-path
...
Set new rosetta 2 path in sandbox
2021-11-23 10:46:50 +01:00
Matthew Bauer
08b1ac3e38
Set new rosetta 2 path in sandbox
...
see:
https://github.com/NixOS/nix/pull/5388
and
https://github.com/NixOS/nix/pull/5251
2021-11-22 14:42:31 -06:00
Eelco Dolstra
b367f1061c
Merge pull request #5624 from rofrol/typo-single-quote
...
Typo: change to normal single quote
2021-11-22 21:33:21 +01:00
Eelco Dolstra
720ed47678
Merge pull request #5613 from tomberek/allow_realpath
...
add real path to allowedPaths
2021-11-22 15:10:47 +01:00
Eelco Dolstra
dcaa8dfd10
Merge pull request #5620 from alyssais/wayland
...
nix-shell --pure: let variables for Wayland through
2021-11-22 15:09:52 +01:00
Alex Shabalin
db2e4489a5
Unify #if linux
2021-11-22 13:57:56 +01:00
Roman Frołow
0768c08d99
Typo: change to normal singlequote
2021-11-22 13:37:38 +01:00
Alyssa Ross
664ee49e0d
nix-shell --pure: let variables for Wayland through
...
We let DISPLAY (X11) through, so we should let the Wayland equivalents
through as well. Similarly, we let HOME through, so it should be okay
to allow XDG_RUNTIME_DIR (which is needed for connecting to Wayland
with WAYLAND_DISPLAY) through as well. Otherwise graphical
applications will either fall back to X11 (if they support it), or
just not work (if they don't).
2021-11-21 16:14:19 +00:00
Tom Bereknyei
4318ba2ec5
add real path to allowedPaths
2021-11-20 00:25:36 -05:00
Alex Shabalin
86b7962807
Use warn to print a warning
2021-11-19 16:29:55 +01:00
Alex Shabalin
a18d9269a5
Fix build warnings on MacOS
2021-11-19 15:22:31 +01:00
Alex Shabalin
4b28798bfc
Offer suggestions for nix-env -i
...
Closes https://github.com/NixOS/nix/issues/972
2021-11-18 15:34:57 +01:00
Eelco Dolstra
0961c1068a
Merge branch 'accept_conf' of https://github.com/tomberek/nix
2021-11-18 12:56:09 +01:00
Eelco Dolstra
0adced4b9e
Merge pull request #5580 from ksonj/fix/non-standard-ssh
...
Fix detection of scp-style URIs to support non-standard SSH ports
2021-11-18 12:30:29 +01:00
Eelco Dolstra
262a3c7ce3
Simplify
2021-11-18 12:12:31 +01:00
Eelco Dolstra
acf381b061
Merge branch 'faridzakaria/fix-stack-buffer-overflow' of https://github.com/fzakaria/nix
2021-11-18 12:10:52 +01:00
Eelco Dolstra
205655e98b
Merge pull request #5586 from tweag/fix-stdout-for-editors-in-repl
...
Fix :e in repl
2021-11-18 11:46:44 +01:00
Eelco Dolstra
1d0c6a4b99
Merge pull request #5583 from jtojnar/patch-1
...
Fix XDG_CONFIG_DIRS fallback
2021-11-18 11:35:18 +01:00
Alex Shabalin
9653858ce6
Fix :e in repl
...
Closes https://github.com/NixOS/nix/issues/5487
Co-authored-by: Alexander Bantyev balsoft@balsoft.ru
2021-11-18 09:03:33 +01:00
Farid Zakaria
bc14465e08
Fix stack buffer overflow
...
Fix a stack buffer overflow found by running MemorySanitizer.
2021-11-18 04:05:25 +00:00
Jan Tojnar
e96faadcd6
Fix XDG_CONFIG_DIRS fallback
...
According to XDG Base Directory Specification,
it should fall back to /etc/xdg when the env var is not present.
2021-11-17 14:31:15 +01:00
Kalle Jepsen
46d2a5a10b
Simplify fix by disallowing / in front of @ to match scp style
2021-11-17 13:49:10 +01:00
Eelco Dolstra
d03e89e5d1
Parse '(f x) y' the same as 'f x y'
...
(cherry picked from commit 5253cb4b68ad248f37b27849c0ebf3614e4f2777)
2021-11-17 09:53:57 +01:00
Kalle Jepsen
6d46b5b609
Fix detection of scp-style URIs to support non-standard SSH ports for git
2021-11-17 08:41:26 +01:00
Eelco Dolstra
d7bae52b9d
Call functors with both arguments at once
...
This is not really useful on its own, but it does recover the
'infinite recursion' error message for '{ __functor = x: x; } 1', and
is more efficient in conjunction with #3718 .
Fixes #5515 .
2021-11-16 22:34:17 +01:00
Eelco Dolstra
e41cf8511f
Don't hang when calling an attrset
...
Fixes #5565 .
2021-11-16 17:44:19 +01:00
Eelco Dolstra
8c93a481af
Ignore errors unsharing/restoring the mount namespace
...
This prevents Nix from barfing when run in a container where it
doesn't have the appropriate privileges.
2021-11-16 14:48:44 +01:00
Eelco Dolstra
ec608e3def
Merge pull request #5452 from Kha/git-extend-lock
...
git: extend cache dir lock over all mutating operations
2021-11-16 12:55:12 +01:00
Eelco Dolstra
6463eaca14
Merge pull request #5472 from NixOS/async-realisation-substitution
...
async realisation substitution
2021-11-16 12:54:20 +01:00
Eelco Dolstra
6d0aa8d175
Merge pull request #5559 from Kloenk/libfetchers-gitlab-headers
...
libfetchers: set free gitlab headers
2021-11-16 12:47:49 +01:00
Eelco Dolstra
9fe0343bfd
Merge branch 'master' of github.com:NixOS/nix
2021-11-15 18:45:20 +01:00
Eelco Dolstra
671817a858
Simplify lockFlake() a bit
2021-11-15 18:44:27 +01:00
Eelco Dolstra
d1d223838b
Merge branch 'balsoft/fix-subinputs-not-getting-updated' of https://github.com/tweag/nix
2021-11-15 18:37:13 +01:00
Domen Kožar
164179983e
Merge pull request #5428 from kreisys/add-pos-to-json-type-error
...
toJSON: report error position for fancier output
2021-11-15 07:57:46 -06:00
kloenk
79d07d0980
libfetchers: set free gitlab headers
2021-11-14 12:23:46 +01:00
Kevin Amado
d0e9e18489
toXML: display errors position
...
- This change applies to builtins.toXML and inner workings
- Proof of concept:
```nix
let e = builtins.toXML e; in e
```
- Before:
```
$ nix-instantiate --eval poc.nix
error: infinite recursion encountered
```
- After:
```
$ nix-instantiate --eval poc.nix
error: infinite recursion encountered
at /data/github/kamadorueda/nix/poc.nix:1:9:
1| let e = builtins.toXML e; in e
|
```
2021-11-13 20:33:34 -05:00
Tom Bereknyei
30496af598
Adds an accept-flake-config flag
2021-11-12 09:50:07 -05:00
Eelco Dolstra
bceda30498
Typo
2021-11-12 13:41:15 +01:00
Eelco Dolstra
44aed58538
Merge pull request #5540 from samueldr/fix/key-subcommand
...
nix key: Fix error message and don't require flakes
2021-11-12 10:38:00 +01:00
Samuel Dionne-Riel
30e5c5c55f
nix registry: Mark experimental
...
This is part of the flakes feature. Mark it as such.
2021-11-12 03:18:31 -05:00
Samuel Dionne-Riel
c1dea92dd6
nix key: Fix error message and don't require flakes
2021-11-11 21:31:26 -05:00
Alexander Bantyev
07bffe7998
Flakes: refetch the input when a follows disappears
...
When an input follows disappears, we can't just reuse the old lock
file entries since we may be missing some required ones. Refetch the
input when this happens.
Closes https://github.com/NixOS/nix/issues/5289
2021-11-11 12:05:18 +03:00
Eelco Dolstra
a218cfd6c7
Merge pull request #5528 from matthewbauer/recognize-nixosModule
...
Recognize singular "nixosModule" in nix flake show
2021-11-10 12:17:11 +01:00
Matthew Bauer
ceeecf2f9e
Recognize singular "nixosModule" in nix flake show
...
This makes nixosModule appears as a "NixOS Module" like nixosModules
does.
2021-11-09 11:14:15 -06:00
Eelco Dolstra
67179472df
Merge pull request #5494 from tweag/balsoft/allow-references-in-addPath
...
Allow references in addPath
2021-11-09 15:57:39 +01:00
Alexander Bantyev
0b005bc9d6
addToStore, addToStoreFromDump: refactor: pass refs by const reference
...
Co-Authored-By: Eelco Dolstra <edolstra@gmail.com>
2021-11-09 12:24:49 +03:00
Eelco Dolstra
ff2af4d64e
Unshare mount namespace in main()
...
Doing it as a side-effect of calling LocalStore::makeStoreWritable()
is very ugly.
Also, make sure that stopping the progress bar joins the update
thread, otherwise that thread should be unshared as well.
2021-11-08 22:00:45 +01:00
Eelco Dolstra
7a71621b7c
Merge branch 'fix-writable-shell' of https://github.com/yorickvP/nix
2021-11-08 21:12:51 +01:00
Eelco Dolstra
6c2af1f201
Merge pull request #5434 from timothyklim/git-url-submodules
...
Support building flakes from a Git repo url with submodules
2021-11-08 14:13:42 +01:00
Eelco Dolstra
736d6ab721
Merge pull request #5504 from NixOS/flake-options-and-daemon
...
Make the flake options work when using the daemon
2021-11-08 13:54:55 +01:00
Andreas Rammhold
8e7359db64
Remove unused "<let-body>" symbol
...
The requirement for the symbol has been removed since at least 7d47498
.
2021-11-07 18:26:43 +01:00
Alexander Bantyev
9d4dcff37a
addPath: allow paths with references
...
Since 4806f2f6b0
, we can't have paths with
references passed to builtins.{path,filterSource}. This prevents many cases
of those functions called on IFD outputs from working. Resolve this by
passing the references found in the original path to the added path.
2021-11-05 22:41:30 +03:00
Théophane Hufschmitt
3d6ee223d6
Merge pull request #5476 from NixOS/ca/fix-build-in-nix-repl
...
Fix `nix repl`’s building of CA derivations
2021-11-05 17:35:18 +01:00
regnat
1f3c3a3785
Make the flake options work when using the daemon
...
When setting flake-local options (with the `nixConfig` field), forward
these options to the daemon in case we’re using one.
This is necessary in particular for options like `binary-caches` or
`post-build-hook` to make sense.
Fix <343239fc8a (r44356843)
>
2021-11-05 16:19:16 +01:00
regnat
1a4c9ba50b
Fix nix repl
’s building of CA derivations
...
When running a `:b` command in the repl, after building the derivations
query the store for its outputs rather than just assuming that they are
known in the derivation itself (which isn’t true for CA derivations)
Fix #5328
2021-11-05 11:04:14 +01:00
Eelco Dolstra
40925337a9
Remove maxPrimOpArity
2021-11-04 15:04:07 +01:00
Eelco Dolstra
acd6bddec7
Fix derivation primop
2021-11-04 15:04:00 +01:00
Eelco Dolstra
cbfbf71e08
Use callFunction() with an array for some calls with arity > 1
2021-11-04 15:03:57 +01:00
Eelco Dolstra
bcf4780006
Add level / displacement types
2021-11-04 15:03:45 +01:00
Eelco Dolstra
81e7c40264
Optimize primop calls
...
We now parse function applications as a vector of arguments rather
than as a chain of binary applications, e.g. 'substring 1 2 "foo"' is
parsed as
ExprCall { .fun = <substring>, .args = [ <1>, <2>, <"foo"> ] }
rather than
ExprApp (ExprApp (ExprApp <substring> <1>) <2>) <"foo">
This allows primops to be called immediately (if enough arguments are
supplied) without having to allocate intermediate tPrimOpApp values.
On
$ nix-instantiate --dry-run '<nixpkgs/nixos/release-combined.nix>' -A nixos.tests.simple.x86_64-linux
this gives a substantial performance improvement:
user CPU time: median = 0.9209 mean = 0.9218 stddev = 0.0073 min = 0.9086 max = 0.9340 [rejected, p=0.00000, Δ=-0.21433±0.00677]
elapsed time: median = 1.0585 mean = 1.0584 stddev = 0.0024 min = 1.0523 max = 1.0623 [rejected, p=0.00000, Δ=-0.20594±0.00236]
because it reduces the number of tPrimOpApp allocations from 551990 to
42534 (i.e. only small minority of primop calls are partially
applied) which in turn reduces time spent in the garbage collector.
2021-11-04 15:03:40 +01:00
Eelco Dolstra
ab35cbd675
StaticEnv: Use std::vector instead of std::map
2021-11-04 15:03:34 +01:00
Eelco Dolstra
c4bd6a15c2
Add helper function to check whether a function arg is 'X' or '_X'
...
Also allow '_'.
2021-11-04 14:52:35 +01:00
Eelco Dolstra
1e7c796e66
Merge pull request #5475 from doronbehar/SQLiteWAL-vfs
...
libstore: Use unix-dotfile vfs if useSQLiteWAL is false
2021-11-03 21:20:27 +01:00
Christopher League
3f070cc417
In checkOverlay, accept underscored names for final/prev args.
...
Resolves #4416 .
2021-11-03 09:25:27 -04:00
Doron Behar
14fcf17277
libstore: Use unix-dotfile vfs if useSQLiteWAL is false
2021-11-03 14:19:11 +02:00
regnat
f4c869977c
Make the DrvOutputSubstitutionGoal more async
2021-11-03 06:51:34 +01:00
regnat
fbc70034b3
Make the realisation fetching from binary caches async
...
That way we can fetch several realisations from the same cache in
parallel
2021-11-03 06:51:34 +01:00
regnat
96670ed216
Expose an async interface for queryRealisation
...
Doesn’t change much so far because everything is still using it
synchronously, but should allow the binary cache to fetch stuff in
parallel
2021-11-03 06:51:34 +01:00
regnat
5b2aa61f1b
Don’t require ca-derivations
when __contentAddressed = false
...
If we explicitely opt-out of it, there’s no need to require the
experimental feature
2021-11-03 06:51:32 +01:00
Sebastian Ullrich
b459a3e856
git: extend cache dir lock over all mutating operations
2021-11-01 09:14:56 +01:00
Eelco Dolstra
e6795c4350
Style
2021-10-29 14:45:13 +02:00
Eelco Dolstra
6e30d9b69f
Merge branch 'master' of https://github.com/alekswn/nix
2021-10-29 14:42:26 +02:00
Eelco Dolstra
33d04e8a8d
Use nix::connect() to connect to the garbage collector
2021-10-28 22:51:11 +02:00
Eelco Dolstra
22c35ea5b8
Remove unused variable
2021-10-28 22:51:11 +02:00
Eelco Dolstra
a7d4f3411e
Merge remote-tracking branch 'origin/master' into non-blocking-gc
2021-10-28 14:56:55 +02:00
Shay Bergmann
a50c027ece
toJSON: improve pos accuracy, add trace
2021-10-27 19:48:48 +00:00
Shay Bergmann
465a167c43
nix-instantiate: pass pos in the --eval --json
code path
2021-10-27 19:01:32 +00:00
Eelco Dolstra
5a160171d0
Remove redundant 'warning:'
2021-10-27 18:14:12 +02:00
Eelco Dolstra
1254e8753c
build-remote: Implicitly add the 'builtin' system type to all machines
...
This makes 'nix-env -i --max-jobs 0' work with remote builders.
2021-10-27 14:25:13 +02:00
Eelco Dolstra
f2280749b1
If max-jobs == 0, do preferLocalBuild on remote builders
2021-10-27 14:21:31 +02:00
Eelco Dolstra
6e684d1b87
daemon: Accept 'repeat' setting from untrusted users
...
Fixes #5352 .
2021-10-27 13:09:13 +02:00
Eelco Dolstra
13a7a24ba5
Style
2021-10-27 13:02:37 +02:00
Shay Bergmann
769de259f0
toJSON: pass pos in case of a list as well
2021-10-26 14:43:15 +00:00
Timothy
8919b81dad
Support building flakes from a Git repo url with submodules query parameter
2021-10-26 20:02:37 +07:00
Eelco Dolstra
0d9e050ba7
parseExperimentalFeature(): Initialize atomically
2021-10-26 14:29:48 +02:00
Eelco Dolstra
9ce84c64c5
Tweak fetchTree docs
2021-10-26 14:21:24 +02:00
regnat
af99941279
Make experimental-features a proper type
...
Rather than having them plain strings scattered through the whole
codebase, create an enum containing all the known experimental features.
This means that
- Nix can now `warn` when an unkwown experimental feature is passed
(making it much nicer to spot typos and spot deprecated features)
- It’s now easy to remove a feature altogether (once the feature isn’t
experimental anymore or is dropped) by just removing the field for the
enum and letting the compiler point us to all the now invalid usages
of it.
2021-10-26 07:02:31 +02:00
Shay Bergmann
ba81e871b2
toJSON: report error position for fancier output
...
Given flake:
```nix
{ description = "nix json error provenance";
inputs = {};
outputs = { self }: {
jsonFunction = _: "function";
json = builtins.toJSON (_: "function");
};
}
```
- Before:
```console
❯ nix eval --json .#jsonFunction
error: cannot convert a function to JSON
```
- After:
```console
❯ nix eval --json .#jsonFunction
error: cannot convert a function to JSON
at /nix/store/b7imf1c2j4jnkg3ys7fsfbj02s5j0i4f-source/testflake/flake.nix:4:5:
3| outputs = { self }: {
4| jsonFunction = _: "function";
| ^
5| json = builtins.toJSON (_: "function");
```
2021-10-25 21:17:52 +00:00
Alexander Bantyev
b9234142f5
addToStore, addToStoreFromDump: add references argument
...
Allow to pass a set of references to be added as info to the added paths.
2021-10-23 21:30:51 +03:00
Kevin Amado
823dce945a
fetch: nicer infinite recursion errors
...
- This change applies to builtins.fetchurl and builtins.fetchTarball
- PoC: `let x = builtins.fetchurl x; in x`
- Before:
```bash
$ nix-instantiate --extra-experimental-features flakes --strict
error: infinite recursion encountered
```
- After:
```bash
$ nix-instantiate --extra-experimental-features flakes --strict
error: infinite recursion encountered
at /data/github/kamadorueda/nix/test.nix:1:9:
1| let x = builtins.fetchurl x; in x
| ^
```
Mentions: #3505
2021-10-17 12:54:53 -05:00
Alexey Novikov
e989c83b44
Add error reporting to machine spec paser
...
Currently machine specification (`/etc/nix/machine`) parser fails
with a vague exception if the file had incorrect format.
This commit adds verbose exceptions and unit-tests for the parser.
2021-10-17 12:45:56 +04:00
Alexey Novikov
64a3b045c1
Fix error detection in 'base64Decode()'
...
Fixed a bug in initialization of 'base64DecodeChars' variable.
Currently decoder do not fail on invalid Base64 strings.
Added test-case to verify the fix.
Also have made 'base64DecodeChars' to be computed at compile time.
And added a test case to encode/decode string with non-printable charactes.
2021-10-17 12:45:26 +04:00
Arthur Gautier
fa4abe46e2
preloadNSS: document the preload mechanism
...
Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
2021-10-16 02:55:25 +00:00
Kevin Amado
e5a27a3b4e
fetchTree: add pos to EvalState::forceValue
...
- This way we improve error messages
on infinite recursion
- Demo:
```nix
let x = builtins.fetchTree {
type = "git";
inherit x;
};
in x
```
- Before:
```bash
$ nix-instantiate --extra-experimental-features flakes --strict
error: infinite recursion encountered
```
- After:
```bash
$ nix-instantiate --extra-experimental-features flakes --strict
error: infinite recursion encountered
at /data/github/kamadorueda/nix/test.nix:3:10:
2| type = "git";
3| inherit x;
| ^
4| };
```
Mentions: #3505
2021-10-15 19:25:19 -05:00
Kevin Amado
18e3d63341
fetchTree: add pos to EvalState::forceValue
...
- This way we improve error messages
on infinite recursion
- Demo:
```nix
let x = builtins.fetchTree x;
in x
```
- Before:
```bash
$ nix-instantiate --extra-experimental-features flakes --strict
error: infinite recursion encountered
```
- After:
```bash
$ nix-instantiate --extra-experimental-features flakes --strict
error: infinite recursion encountered
at /data/github/kamadorueda/nix/test.nix:1:9:
1| let x = builtins.fetchTree x;
| ^
2| in x
```
Mentions: #3505
2021-10-15 19:25:19 -05:00
Eelco Dolstra
10f9a8e77d
Add a test for the non-blocking GC
2021-10-15 16:52:37 +02:00