Julian Stecklina
cc4fe977e5
Link to stdc++fs
...
Some platforms seem to still require linking with stdc++fs to enable
STL std::filesystem support.
2020-03-29 22:29:58 +02:00
Julian Stecklina
435366ed3c
Rename fetchGit fetchSubmodules to just submodules
2020-03-29 22:29:58 +02:00
Julian Stecklina
c8d33de777
Add git submodule fixes from @bjornfor
...
This fixes fetching repositories with no submodules and also cleans up
.git files in checkouts.
2020-03-29 22:29:57 +02:00
Julian Stecklina
f58604ac32
Add fetchSubmodules to builtins.fetchGit
...
There are some downsides to this features:
- Submodules are not cached (unlike the root repo),
- Full checkouts are created in a temporary directory.
2020-03-29 22:29:57 +02:00
Eelco Dolstra
4989c04dd2
nix flake info --json: Dump attr-style flakeref
2020-03-28 22:59:38 +01:00
Eelco Dolstra
2fccef0c59
Warn about --override-input / --update-input flags that don't match an input
2020-03-28 19:09:36 +01:00
Eelco Dolstra
2287e2f279
nix flake info: Show flake subdirectory
2020-03-28 18:05:50 +01:00
Eelco Dolstra
015f8f1c13
Improve lock file generation
...
This is now done in a single pass. Also fixes some issues when
updating flakes with circular dependencies. Finally, when using
'--recreate-lock-file --commit-lock-file', the commit message now
correctly shows the differences.
2020-03-27 21:08:41 +01:00
Eelco Dolstra
3fa1e7dace
Fix diffLockFiles()
2020-03-27 16:15:50 +01:00
Eelco Dolstra
0a10854f85
Misc changes from the flakes branch
2020-03-24 14:34:47 +01:00
Eelco Dolstra
c85097da7c
Fix --refresh with --no-net
...
https://hydra.nixos.org/build/110879699
(cherry picked from commit 5bbe793abf
)
2020-03-24 14:26:23 +01:00
Eelco Dolstra
6b824c78f1
nix: Add --refresh as an alias for --tarball-ttl 0
...
(cherry picked from commit e721f99817
)
2020-03-24 14:26:23 +01:00
Eelco Dolstra
777e21e596
nix path-info --json: Print hash in SRI format
...
(cherry picked from commit 442e665d6d
)
2020-03-24 14:26:23 +01:00
Eelco Dolstra
7a8de57d3e
Pretty-print 'nix why-depends' / 'nix-store -q --tree' output
...
Extracted from 678301072f
.
2020-03-24 14:26:23 +01:00
Eelco Dolstra
4260a22a55
absPath(): Use std::optional
...
(cherry picked from commit 1bf9eb21b7
)
2020-03-24 14:25:28 +01:00
Eelco Dolstra
f9611c7ae4
buildenv: Eliminate global variables, other cleanup
...
(cherry picked from commit b82f75464d
)
2020-03-24 14:06:47 +01:00
Eelco Dolstra
76e7d958ed
Fix coverage build
...
https://hydra.nixos.org/build/110757285
(cherry picked from commit b430a81a1f
)
2020-03-24 14:06:47 +01:00
Eelco Dolstra
231a8aa2c2
nix edit: Support non-derivation attributes
...
E.g.
$ nix edit .#nixosConfigurations.bla
now works.
(cherry picked from commit d2032edb2f
)
2020-03-24 14:06:47 +01:00
Eelco Dolstra
c1ca4f0acc
findAlongAttrPath(): Return position
...
(cherry picked from commit 0b013a54dc
)
2020-03-24 14:06:47 +01:00
Eelco Dolstra
1eb952d27a
findAlongAttrPath(): Throw AttrPathNotFound
...
(cherry picked from commit 6b0ca8e803
)
2020-03-24 14:06:47 +01:00
Eelco Dolstra
edc34cc1a2
Add function for quoting strings
...
(cherry picked from commit 7dcf5b011a
)
2020-03-24 13:44:04 +01:00
Eelco Dolstra
5a7e7fc35f
Use std::string_view
...
(cherry picked from commit 6529490cc1
)
2020-03-24 13:26:37 +01:00
Eelco Dolstra
c34a20e1f6
EvalState::allocAttr(): Add convenience method
...
(cherry picked from commit c02da99757
)
2020-03-24 13:26:37 +01:00
Eelco Dolstra
7abe3bde8a
Merge remote-tracking branch 'origin/master' into flakes
2020-03-23 13:27:54 +01:00
Eelco Dolstra
5885e20404
Merge pull request #3429 from LnL7/darwin-sandbox
...
darwin sandbox
2020-03-23 09:13:36 +01:00
Daiderd Jordan
2e9bc1245c
sandbox: fix /bin/sh on catalina
...
Sadly 10.15 changed /bin/sh to a shim which executes bash, this means it
can't be used anymore without also opening up the sandbox to allow bash.
Failed to exec /bin/bash as variant for /bin/sh (1: Operation not permitted).
2020-03-20 22:12:30 +01:00
Daiderd Jordan
f6c122aaeb
sandbox: allow pty devices
...
Nix now runs builds with a pseudo-terminal to enable colored build
output.
2020-03-20 21:58:45 +01:00
Daiderd Jordan
7f2df903d9
libstore: relax default sandbox-paths on darwin
2020-03-20 21:31:20 +01:00
Daiderd Jordan
afb78ebd34
libstore: disable resolve-system-dependencies hook
...
This is used to determine the dependency tree of impure libraries so nix
knows what paths to open in the sandbox. With the less restrictive
defaults it isn't needed anymore.
2020-03-20 21:21:56 +01:00
Eelco Dolstra
1537e270fb
Merge remote-tracking branch 'origin/master' into flakes
2020-03-20 13:15:11 +01:00
jakobrs
c5a488afc0
Remove the --delete option for --gc
...
Running `nix-store --gc --delete` will, as of Nix 2.3.3, simply fail
because the --delete option conflicts with the --delete operation.
$ nix-store --gc --delete
error: only one operation may be specified
Try 'nix-store --help' for more information.
Furthermore, it has been broken since at least Nix 0.16 (which was
released sometime in 2010), which means that any scripts which depend
on it should have been broken at least nine years ago. This commit
simply formally removes the option. There should be no actual difference
in behaviour as far as the user is concerned: it errors with the exact
same error message. The manual has been edited to remove any references
to the (now gone) --delete option.
Other information:
* Path for Nix 0.16 used:
/nix/store/rp3sgmskn0p0pj1ia2qwd5al6f6pinz4-nix-0.16
2020-03-19 19:41:23 +01:00
Eelco Dolstra
ef74fafc03
nix repl: Put EvalState on the heap
...
See 0629601da1
.
2020-03-19 13:52:28 +01:00
Eelco Dolstra
b244e65cdb
nix repl: Scan NixRepl for GC roots
...
Fixes #3175 .
2020-03-19 13:50:01 +01:00
Eelco Dolstra
8aa354fdfd
Register flake-registry.json as a GC root again
2020-03-19 11:45:34 +01:00
Eelco Dolstra
1c127e6a82
downloadFile(): Use expired file if the download fails
2020-03-19 11:42:50 +01:00
Eelco Dolstra
f6ddf48882
Get rid of downloadCached()
...
Everything uses the generic caching system now.
2020-03-18 17:24:19 +01:00
Eelco Dolstra
c5ec95e2c7
tarball.cc: Use ETags
2020-03-18 15:14:23 +01:00
Eelco Dolstra
1b49479836
Remove flake closure caching
...
This is not compatible with lazy flake input fetching.
2020-03-18 14:11:58 +01:00
Eelco Dolstra
1e7ce1d6da
tarball / github fetchers: Use generic caching system
2020-03-18 14:08:25 +01:00
Eelco Dolstra
38e360154d
Git: Use unified caching system
2020-03-17 22:35:29 +01:00
Eelco Dolstra
d1165d8791
Require shallow clones to be requested explicitly
...
If you do a fetchTree on a Git repository, whether the result contains
a revCount attribute should not depend on whether that repository
happens to be a shallow clone or not. That would complicate caching a
lot and would be semantically messy. So applying fetchTree/fetchGit to
a shallow repository is now an error unless you pass the attribute
'shallow = true'. If 'shallow = true', we don't return revCount, even
if the repository is not actually shallow.
Note that Nix itself is not doing shallow clones at the moment. But it
could do so as an optimisation if the user specifies 'shallow = true'.
Issue #2988 .
2020-03-17 22:35:29 +01:00
Eelco Dolstra
2a4e4f6a6e
Unified fetcher caching system
2020-03-17 22:35:29 +01:00
Eelco Dolstra
fbcb897e21
Add a test for shallow Git clones
...
Also, don't return a revCount anymore for shallow or dirty Git trees,
since it's incorrect.
Closes #2988 .
2020-03-16 13:20:32 +01:00
John Ericson
68fe0d9809
Add missing #include <regex>
2020-03-13 21:24:35 -04:00
Eelco Dolstra
779ef8f5ef
Merge pull request #3380 from contrun/no-attr-path-for-installed
...
display attr-path only when queried available
2020-03-13 19:26:20 +01:00
YI
b6d794fb8d
display attr-path only when queried available
2020-03-14 00:36:26 +08:00
Eelco Dolstra
0c2088d438
Merge remote-tracking branch 'origin/master' into flakes
2020-03-13 17:03:30 +01:00
Eelco Dolstra
b816515f61
Fix ca-references feature check
...
Fixes #3406 .
2020-03-13 13:15:51 +01:00
Eelco Dolstra
ae9119167e
Change the lock file to a graph
...
This enables support for cycles between flakes.
2020-03-12 22:06:57 +01:00
Eelco Dolstra
d048577909
Merge pull request #3403 from hercules-ci/issue-3398-path-info-cache-ttls
...
pathInfoCache: Respect disk cache TTLs #3398
2020-03-12 11:43:31 +01:00
Robert Hensing
3f55f8a8fb
pathInfoCache: Respect disk cache TTLs #3398
2020-03-12 10:30:28 +01:00
Will Dietz
15edd2349e
local.mk: fix user-env.cc dep on buildenv.nix.gen.hh, resolve occasional build failure
2020-03-12 00:51:56 +01:00
Eelco Dolstra
e188fe7c6d
Move call-flake.nix into libexpr
2020-03-11 17:04:51 +01:00
Eelco Dolstra
35f6651735
Merge remote-tracking branch 'origin/master' into flakes
2020-03-11 17:03:38 +01:00
Eelco Dolstra
9950cdec35
Move some corepkgs into the nix binary
2020-03-11 16:57:48 +01:00
Eelco Dolstra
e02481ded2
parseExprFromString(): Use std::string_view
2020-03-11 16:56:29 +01:00
Eelco Dolstra
97d1c7f932
Merge remote-tracking branch 'origin/master' into flakes
2020-03-11 15:17:21 +01:00
Eelco Dolstra
cfc38257cf
Fix flake subdirectory handling
2020-03-10 19:21:47 +01:00
Eelco Dolstra
8a1d8701f6
nix-store -q --graph: Fix edges
...
Fixes #3389 .
2020-03-10 11:11:46 +01:00
Eelco Dolstra
983fab7ea9
dotgraph.cc: Remove dead code
2020-03-10 11:06:55 +01:00
Eelco Dolstra
73769b28e3
Move calling flakes into a Nix helper function (call-flake.nix)
2020-03-09 15:28:41 +01:00
Eelco Dolstra
5a1514adb8
Add 'flake' attribute to lock files to denote non-flakes
2020-03-09 15:27:49 +01:00
Eelco Dolstra
73b6d87e17
Merge remote-tracking branch 'origin/master' into flakes
2020-03-04 13:58:42 +01:00
Eelco Dolstra
d37dc71e3c
nix-build: Fix !<output> handling
...
This was broken by 22a754c091
.
https://hydra.nixos.org/eval/1573669
2020-03-04 13:56:17 +01:00
Eelco Dolstra
75db069f92
Optimise Derivation::unparse()
...
In
nix-instantiate --dry-run '<nixpkgs/nixos/release-combined.nix>' -A nixos.tests.simple.x86_64-linux
this reduces time spent in unparse() from 9.15% to 4.31%. The main
culprit was appending characters one at a time to the destination
string. Even though the string has enough capacity, push_back() still
needs to check this on every call.
2020-03-04 11:44:45 +01:00
Eelco Dolstra
401b5bc541
builtins.cache: Cache regular expressions
...
The evaluator was spending about 1% of its time compiling a small
number of regexes over and over again.
2020-03-04 11:44:33 +01:00
Eelco Dolstra
22a754c091
Fix GC failures on bad store path names
...
It failed on names like '/nix/store/9ip48nkc9rfy0a4yaw98lp6gipqlib1a-'.
2020-02-28 18:07:10 +01:00
Eelco Dolstra
f443d5ca19
Merge remote-tracking branch 'origin/master' into flakes
2020-02-27 15:19:58 +01:00
Eelco Dolstra
2672a28bb4
nix dev-shell: Add --command option
...
Note: like 'nix run', and unlike 'nix-shell', this takes an argv
vector rather than a shell command. So
nix dev-shell -c 'echo $PATH'
doesn't work. Instead you need to do
nix dev-shell -c bash -c 'echo $PATH'
2020-02-27 15:17:37 +01:00
Eelco Dolstra
4a4521f462
Fix nlohmann::json exception
2020-02-20 23:47:02 +01:00
Eelco Dolstra
73c9840569
Restore subdir -> dir
...
Got this mixed up somewhere.
2020-02-20 23:44:06 +01:00
Eelco Dolstra
d068f9ffff
Restore subdir support in registries
...
Hacky...
2020-02-20 22:14:44 +01:00
Eelco Dolstra
890df325c7
fetchTree: Use a feature flag
2020-02-20 13:36:16 +01:00
Eelco Dolstra
2e953b567e
Merge pull request #3325 from xzfc/clean-tmpdir
...
nix-shell: clean up the tmpDir and escape variables
2020-02-19 21:29:18 +01:00
Eelco Dolstra
4ad5826a18
nix eval-hydra-jobs: Remove
...
On second thought, let's move this back to Hydra.
2020-02-19 16:12:49 +01:00
Albert Safin
f2a03acf3f
nix-shell: clean up the tmpDir and escape variables
...
The problem fixed: each nix-shell invocation creates a new temporary
directory (`/tmp/nix-shell-*`) and never cleans up.
And while I'm here, shellescape all variables inlined into the rcfile.
See what might happen without escaping:
$ export TZ="';echo pwned'"
$ nix-shell -p hello --run hello
pwned
Hello, world!
2020-02-19 14:28:49 +00:00
Eelco Dolstra
1d99c4ab25
Merge pull request #3229 from Ma27/flakes-fetchgit-worktree-support
...
builtins.fetchGit: Fix build when fetching a git worktree
2020-02-19 14:11:18 +01:00
Maximilian Bosch
c169ea5904
builtins.fetchGit: Fix build when fetching a git worktree
...
Worktrees[1] are a feature of git which allow you to check out a ref in
a different directory.
While playing around with flakes I realized that git repositories in a
worktree checkout break when trying to build a flake:
```
$ git worktree add ../nixpkgs-flakes nixpkgs-flakes
$ cd ../nixpkgs-flakes
$ nix build .#hello
error: opening directory '/home/ma27/Projects/nixpkgs-flakes/.git/refs/heads': Not a directory
```
This issue has been fixed by determining with `git rev-parse --git-common-dir`
where the actual `.git` directory is.
Please note that this issue only exists on the `flakes` branch, fetching
worktree checkouts with Nix master seems to work fine.
[1] https://git-scm.com/docs/git-worktree
2020-02-19 14:00:36 +01:00
Eelco Dolstra
2a14c28669
Merge pull request #3357 from carlosdagos/pure-nix-shell-proxy-env
...
Pass through http proxy env vars in pure shell
2020-02-19 13:02:02 +01:00
Eelco Dolstra
f3505a7899
Merge remote-tracking branch 'origin/master' into flakes
2020-02-19 12:57:45 +01:00
Eelco Dolstra
30c8297ded
nix eval-hydra-jobs: Add feature
2020-02-19 12:35:03 +01:00
Eelco Dolstra
c4d3674de6
Merge pull request #3353 from tbsmoest/priv_tobias_pr_set_deathsig-1.4
...
Fix PR_SET_PDEATHSIG results in Broken pipe (#2395 )
2020-02-19 12:29:12 +01:00
Eelco Dolstra
95468e3c1e
Fix nixpkgs.<attr> warning
2020-02-19 00:09:42 +01:00
Eelco Dolstra
edee6169bf
nix eval-hydra-jobs: Fix aggregate derivation name
2020-02-18 22:05:49 +01:00
Eelco Dolstra
1351101c28
nix eval-hydra-jobs: Check aggregate jobs in --dry-run mode
2020-02-18 19:26:11 +01:00
Eelco Dolstra
553e584f92
LocalStore::checkDerivationOutputs(): Improve error message
2020-02-18 17:51:48 +01:00
Eelco Dolstra
d8fd31f50f
Disable the progress bar if $TERM == dumb or unset
...
Fixes #3363 .
2020-02-18 17:51:18 +01:00
Eelco Dolstra
8f9dcfc671
Disable the progress bar if $TERM == dumb or unset
...
Fixes #3363 .
2020-02-18 17:47:53 +01:00
Eelco Dolstra
b5e3c04c03
Fix URL parser
...
Fixes #3361 .
2020-02-18 12:51:26 +01:00
Eelco Dolstra
6529490cc1
nix eval-hydra-jobs: Support job names as aggregate constituents
...
Fixes https://github.com/NixOS/hydra/issues/715 .
2020-02-17 15:53:59 +01:00
Eelco Dolstra
8a78bcf6a2
LocalStore::checkDerivationOutputs(): Improve error message
2020-02-17 15:46:07 +01:00
Eelco Dolstra
b0336e7cf7
nix eval-hydra-job: Progress indicator
2020-02-17 14:33:10 +01:00
Eelco Dolstra
c6e63065f3
nix eval-hydra-jobs: Improve error handling
2020-02-17 14:31:29 +01:00
Eelco Dolstra
eb19ff3b82
nix eval-hydra-jobs: Support flakes
2020-02-14 23:23:41 +01:00
Eelco Dolstra
4c24263967
nix eval-hydra-jobs: Support parallel evaluation
...
Example usage:
$ nix eval-hydra-jobs -f '<nixpkgs/pkgs/top-level/release.nix>' '' \
--max-memory-size 2048 --workers 8
2020-02-14 23:05:49 +01:00
Eelco Dolstra
e375da6899
Add 'nix eval-hydra-jobs' command
2020-02-14 23:00:42 +01:00
Eelco Dolstra
46a284263f
Fix build
2020-02-14 22:45:33 +01:00
Eelco Dolstra
6208d24c38
Merge remote-tracking branch 'origin/master' into flakes
2020-02-14 22:42:35 +01:00
Tobias Möst
3e347220c8
Fix PR_SET_PDEATHSIG results in Broken pipe ( #2395 )
...
The ssh client is lazily started by the first worker thread, that
requires a ssh connection. To avoid the ssh client to be killed, when
the worker process is stopped, do not set PR_SET_PDEATHSIG.
2020-02-14 07:51:44 +01:00
Carlos D
d78141a886
Pass through http proxy env vars in pure shell
2020-02-14 16:11:22 +11:00