Eelco Dolstra
9f4d8c6170
Pluggable fetchers
...
Flakes are now fetched using an extensible mechanism. Also lots of
other flake cleanups.
2020-01-21 22:56:04 +01:00
Eelco Dolstra
1bf9eb21b7
absPath(): Use std::optional
2020-01-21 22:39:43 +01:00
Eelco Dolstra
c7866733d7
Merge remote-tracking branch 'origin/master' into flakes
2019-12-20 12:45:58 +01:00
Eelco Dolstra
c84c843e33
tarfile.cc: Restore timestamps
...
This is needed to get the lastModified attribute of GitHub flakes.
2019-12-19 15:09:54 +01:00
Eelco Dolstra
2550c11373
tarfile.cc: Don't change the cwd
...
Nix is multithreaded so it's not safe to change the cwd.
2019-12-19 15:08:16 +01:00
Eelco Dolstra
be32da0ed0
tarfile.cc: Style fixes
2019-12-19 15:01:58 +01:00
Eelco Dolstra
ee235e764c
Merge branch 'libarchive' of https://github.com/yorickvP/nix
2019-12-19 14:47:18 +01:00
Eelco Dolstra
87873d0d65
Merge remote-tracking branch 'origin/master' into flakes
2019-12-18 14:25:25 +01:00
Eelco Dolstra
f8abbdd456
Add priority setting to stores
...
This allows overriding the priority of substituters, e.g.
$ nix-store --store ~/my-nix/ -r /nix/store/df3m4da96d84ljzxx4mygfshm1p0r2n3-geeqie-1.4 \
--substituters 'http://cache.nixos.org?priority=100 daemon?priority=10'
Fixes #3264 .
2019-12-17 17:17:53 +01:00
Eelco Dolstra
ad6b738ed8
Merge remote-tracking branch 'origin/master' into flakes
2019-12-16 20:17:21 +01:00
Eelco Dolstra
54bf5ba422
nix-store -r: Handle symlinks to store paths
...
Fixes #3270 .
2019-12-16 19:11:47 +01:00
Eelco Dolstra
ac9cc2ec08
Move some code
2019-12-13 19:10:39 +01:00
Eelco Dolstra
b4edc3ca61
Don't leak exceptions
2019-12-13 19:05:26 +01:00
Eelco Dolstra
e6bd88878e
Improve gzip error message
2019-12-13 19:05:26 +01:00
Eelco Dolstra
ca87707c90
Get rid of CBox
2019-12-13 19:05:26 +01:00
Eelco Dolstra
3e787423c2
Remove FIXME
2019-12-13 12:55:52 +01:00
Tom Bereknyei
c6295a3afd
Initial gzip support
...
Closes #3256
2019-12-13 03:34:15 -05:00
Eelco Dolstra
ecb3a1afa2
Merge remote-tracking branch 'origin/master' into flakes
2019-12-11 14:53:30 +01:00
Eelco Dolstra
bbe97dff8b
Make the Store API more type-safe
...
Most functions now take a StorePath argument rather than a Path (which
is just an alias for std::string). The StorePath constructor ensures
that the path is syntactically correct (i.e. it looks like
<store-dir>/<base32-hash>-<name>). Similarly, functions like
buildPaths() now take a StorePathWithOutputs, rather than abusing Path
by adding a '!<outputs>' suffix.
Note that the StorePath type is implemented in Rust. This involves
some hackery to allow Rust values to be used directly in C++, via a
helper type whose destructor calls the Rust type's drop()
function. The main issue is the dynamic nature of C++ move semantics:
after we have moved a Rust value, we should not call the drop function
on the original value. So when we move a value, we set the original
value to bitwise zero, and the destructor only calls drop() if the
value is not bitwise zero. This should be sufficient for most types.
Also lots of minor cleanups to the C++ API to make it more modern
(e.g. using std::optional and std::string_view in some places).
2019-12-10 22:06:05 +01:00
Yorick van Pelt
eba82b7c88
further clean up libarchive code
2019-12-09 17:21:46 +07:00
Puck Meerburg
28ee687adf
Clean up libarchive support
2019-12-07 18:12:21 +00:00
Yorick van Pelt
fe7ec70e6b
remove rust unpack_tarfile ffi
2019-12-07 23:28:31 +07:00
Yorick van Pelt
1355554d12
code 'cleanup'
2019-12-07 23:23:11 +07:00
Yorick van Pelt
f54c168031
add wrapper function around libarchive to c++ errors
2019-12-07 23:10:27 +07:00
Yorick van Pelt
232b390766
fixup! libarchive proof of concept
2019-12-07 23:00:37 +07:00
Yorick van Pelt
9ff5f6492f
libarchive proof of concept
2019-12-07 22:35:14 +07:00
Eelco Dolstra
ab88f4bbd4
Merge remote-tracking branch 'origin/master' into flakes
2019-12-05 20:53:32 +01:00
Eelco Dolstra
5e449b43ed
Initialize Command::_name
...
(cherry picked from commit d0a769cb06
)
2019-12-05 20:21:22 +01:00
Eelco Dolstra
ac67685606
Make subcommand construction in MultiCommand lazy
...
(cherry picked from commit a0de58f471
)
2019-12-05 20:19:26 +01:00
Eelco Dolstra
f964f428fe
Move Command and MultiCommand to libutil
...
(cherry picked from commit f70434b1fb
)
2019-12-05 20:13:47 +01:00
Eelco Dolstra
092af3c826
Eliminate more pass-by-value in variadic calls
2019-12-05 19:58:52 +01:00
Eelco Dolstra
603b2f583c
Revert "Make fmt() non-recursive"
...
This reverts commit 2b761d5f50
.
Also *really* make fmt() take arguments by reference.
2019-12-05 19:58:49 +01:00
Eelco Dolstra
334b8f8af1
fmt(): Pass arguments by reference rather than by value
2019-12-05 17:40:46 +01:00
Eelco Dolstra
c3c23a52ee
Merge remote-tracking branch 'origin/master' into flakes
2019-12-04 00:31:09 +01:00
Eelco Dolstra
949dc84894
Fix segfault on i686-linux
...
https://hydra.nixos.org/build/107467517
Seems that on i686-linux, gcc and rustc disagree on how to return
1-word structs: gcc has the caller pass a pointer to the result, while
rustc has the callee return the result in a register. Work around this
by using a bare pointer.
2019-11-27 14:17:15 +01:00
Eelco Dolstra
8918bae098
Drop remaining uses of external "tar"
...
Also, fetchGit now runs in O(1) memory since we pipe the output of
'git archive' directly into unpackTarball() (rather than first reading
it all into memory).
2019-11-26 22:07:28 +01:00
Eelco Dolstra
d33dd6e6c0
Move code around
2019-11-26 22:07:28 +01:00
Eelco Dolstra
b7fba16613
Move code around
2019-11-26 22:07:28 +01:00
Eelco Dolstra
ba87b08f85
getEnv(): Return std::optional
...
This allows distinguishing between an empty value and no value.
2019-11-22 16:18:13 +01:00
Eelco Dolstra
5ee23c35b9
Merge pull request #3219 from Ericson2314/semicolons
...
Fix extra semicolons warnings
2019-11-11 12:13:51 +01:00
John Ericson
4c34054673
Remove unneeded semicolons
2019-11-10 11:24:47 -05:00
John Ericson
96e6e680c1
Fix extra ; warnings involving MakeError
2019-11-10 11:24:47 -05:00
Eelco Dolstra
2c1e05ae93
Merge remote-tracking branch 'origin/master' into flakes
2019-11-08 15:22:54 +01:00
Eelco Dolstra
0d6774468c
Move editorFor srom libutil to nix
...
libutil should not depend on libexpr.
2019-11-08 15:13:32 +01:00
Eelco Dolstra
f730841db4
Merge remote-tracking branch 'origin/master' into flakes
2019-11-07 11:44:02 +01:00
Eelco Dolstra
39a2e166dd
Cleanup
2019-11-06 16:53:02 +01:00
Eelco Dolstra
88c452d160
Merge remote-tracking branch 'origin/master' into flakes
2019-11-06 10:56:33 +01:00
Eelco Dolstra
852554bb16
Merge branch 'nix-repl-e' of https://github.com/zimbatm/nix
2019-11-05 11:20:53 +01:00
Eelco Dolstra
1b600ecd14
Don't use SOCK_CLOEXEC on macOS
...
https://hydra.nixos.org/build/105428308
2019-11-05 10:25:09 +01:00
Eelco Dolstra
b81d9d26f5
Merge remote-tracking branch 'origin/master' into flakes
2019-11-04 22:29:31 +01:00