Eelco Dolstra
921a2aeb05
Make "nix repl" build
2017-04-25 18:48:40 +02:00
Eelco Dolstra
c31000bc93
Merge nix-repl repository
2017-04-25 18:14:13 +02:00
Eelco Dolstra
40daf0d800
Cleanup in preparation of merging nix-repl repo into nix repo
2017-04-25 18:13:23 +02:00
Eelco Dolstra
c30330df6f
StorePathCommands: Build installables
...
So for instance "nix copy --to ... nixpkgs.hello" will build
nixpkgs.hello first. It's debatable whether this is a good idea. It
seems desirable for commands like "nix copy" but maybe not for
commands like "nix path-info".
2017-04-25 16:19:22 +02:00
Eelco Dolstra
d48c973ece
Set default installable
...
Thus
$ nix build -f foo.nix
will build foo.nix.
And
$ nix build
will build default.nix. However, this may not be a good idea because
it's kind of inconsistent, given that "nix build foo" will build the
"foo" attribute from the default installation source (i.e. the
synthesis of $NIX_PATH), rather than ./default.nix. So I may revert
this.
2017-04-25 15:18:05 +02:00
Eelco Dolstra
0b6220fbd6
Interpret any installable containing a slash as a path
...
So "nix path-info ./result" now works.
2017-04-25 14:09:01 +02:00
Eelco Dolstra
7ee81f3887
Make StorePathsCommand a subclass of InstallablesCommand
...
This allows commands like 'nix path-info', 'nix copy', 'nix verify'
etc. to work on arbitrary installables. E.g. to copy geeqie to a
binary cache:
$ nix copy -r --to file:///tmp/binary-cache nixpkgs.geeqie
Or to get the closure size of thunderbird:
$ nix path-info -S nixpkgs.thunderbird
2017-04-25 13:20:26 +02:00
Eelco Dolstra
c769841bc4
Move code around
2017-04-25 12:07:31 +02:00
Eelco Dolstra
6267d74889
Add "nix eval" command
...
This replaces "nix-instantiate --eval". The result is evaluated
strictly since this seems more useful.
2017-04-25 11:23:47 +02:00
Eelco Dolstra
bcecc99007
Restructure installables handling in the "nix" command
2017-04-25 11:20:37 +02:00
Eelco Dolstra
1bb87c0487
Remove debug statement
2017-04-24 15:01:28 +02:00
Eelco Dolstra
66577a1c64
Factor out --json
2017-04-24 14:21:36 +02:00
Eelco Dolstra
9b63bb88c8
nix-shell -p: Use runCommandCC
...
This restores pre-17.03 behaviour by making gcc available.
2017-04-24 12:04:01 +02:00
David McFarland
804ac52489
add helper function to set 'interruptThrown'
...
this fixes a linker failure on cygwin 64 due to some bad
interaction between tls and shared libraries.
see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64697
2017-04-21 11:28:14 -03:00
Eelco Dolstra
749696e71c
Detect lsof
...
Also, don't use lsof on Linux since it's not needed.
Fixes #1328 .
2017-04-20 19:11:45 +02:00
Eelco Dolstra
efa4bdbfcd
Improve nix show-config --json
...
In particular, show descriptions. This could be used for manpage
generation etc.
2017-04-20 17:34:47 +02:00
Eelco Dolstra
4410e9d995
Setting: Remove "Tag" template argument
2017-04-20 16:52:53 +02:00
Eelco Dolstra
f05d5f89ff
Read per-user settings from ~/.config/nix/nix.conf
2017-04-20 14:58:16 +02:00
Eelco Dolstra
562585e901
binary-caches-parallel-connections -> http-connections
2017-04-20 14:04:00 +02:00
Eelco Dolstra
76cb3c702c
Reimplement trusted-substituters (aka trusted-binary-caches)
2017-04-20 13:41:29 +02:00
Eelco Dolstra
9cc8047f44
Reimplement connect-timeout
...
Fixes #1339 .
2017-04-19 14:54:52 +02:00
Eelco Dolstra
b0cb117226
getDerivations(): Filter out packages with bad derivation names
...
In particular, this disallows attribute names containing dots or
starting with dots. Hydra already disallowed these. This affects the
following packages in Nixpkgs master:
2048-in-terminal
2bwm
389-ds-base
90secondportraits
lispPackages.3bmd
lispPackages.hu.dwim.asdf
lispPackages.hu.dwim.def
Closes #1342 .
2017-04-19 14:18:26 +02:00
Eelco Dolstra
67fe3e07b2
Merge pull request #1321 from shlevy/channel-direct-tarball-error
...
nix-channel: error out if direct tarball unpack fails.
2017-04-18 16:51:46 +02:00
Eelco Dolstra
f8a2e8a552
Shut up some warnings
2017-04-14 14:42:20 +02:00
Eelco Dolstra
dd3714f6ef
Doh
2017-04-14 14:42:08 +02:00
Eelco Dolstra
6520b757c5
Fix 32-bit build
...
http://hydra.nixos.org/build/51569816
2017-04-14 13:59:39 +02:00
Eelco Dolstra
3872371f25
Minor cleanup
2017-04-14 13:42:22 +02:00
Eelco Dolstra
01dcdfcf33
nix-daemon: Don't set untrusted-* settings
...
These are no longer used anywhere.
2017-04-14 11:59:51 +02:00
Eelco Dolstra
1673c373c9
nix-daemon: Don't die if the user sends an unknown setting
2017-04-14 11:57:02 +02:00
Eelco Dolstra
872ba75d8b
Add "nix show-config" command
...
This dumps the entire Nix configuration, including all options that
have default values.
2017-04-13 20:59:38 +02:00
Eelco Dolstra
ba9ad29fdb
Convert Settings to the new config system
...
This makes all config options self-documenting.
Unknown or unparseable config settings and --option flags now cause a
warning.
2017-04-13 20:53:23 +02:00
Eelco Dolstra
6bd9576aeb
Support arbitrary numeric types for settings
2017-04-13 17:54:05 +02:00
Eelco Dolstra
0bf34de43b
Validate Boolean settings better
2017-04-13 16:31:28 +02:00
Eelco Dolstra
1860070548
Merge branch 'rework-options' of https://github.com/copumpkin/nix
2017-04-13 16:15:51 +02:00
Eelco Dolstra
2040240e23
Add a Config class to simplify adding configuration settings
...
The typical use is to inherit Config and add Setting<T> members:
class MyClass : private Config
{
Setting<int> foo{this, 123, "foo", "the number of foos to use"};
Setting<std::string> bar{this, "blabla", "bar", "the name of the bar"};
MyClass() : Config(readConfigFile("/etc/my-app.conf"))
{
std::cout << foo << "\n"; // will print 123 unless overriden
}
};
Currently, this is used by Store and its subclasses for store
parameters. You now get a warning if you specify a non-existant store
parameter in a store URI.
2017-04-13 16:03:31 +02:00
Eelco Dolstra
568a099c88
canonPath(): Check against empty paths
2017-04-13 16:03:31 +02:00
Eelco Dolstra
6d97d81656
Add warn function
2017-04-13 16:03:31 +02:00
Eelco Dolstra
31cc9366fc
Initialise logger
2017-04-13 16:03:31 +02:00
Eelco Dolstra
23304f527a
Merge pull request #1302 from dtzWill/fix/nix-options
...
Process nix.conf options in "new" commands, add test
2017-04-12 11:03:19 +02:00
Shea Levy
503cc4431b
nix-channel: error out if direct tarball unpack fails.
...
It's very unlikely a path ending in .tar.gz is a directory
Fixes #1318
2017-04-10 18:16:46 -04:00
Eelco Dolstra
1fe1976e0d
Merge pull request #1316 from copumpkin/nix-retries-default
...
Default to 5 download retries
2017-04-10 15:58:57 +02:00
Dan Peebles
d1fdade755
Add CURLE_WRITE_ERROR as a transient error condition
...
We've observed it failing downloads in the wild and retrying the same URL
a few moments later seemed to fix it.
2017-04-10 09:28:44 -04:00
Dan Peebles
e43e8be8e7
Default to 5 download retries
...
This should help certain downloaders that don't request anything special
for the number of retries, like nix-channel.
2017-04-10 09:22:24 -04:00
Eelco Dolstra
105f8ffc98
Minor cleanup
...
Also, possible fix for #1310 on 32-bit systems.
2017-04-10 11:27:33 +02:00
Eelco Dolstra
95295482ea
Allow "auto" as a store URI
...
Using the empty string is likely to be ambiguous in some contexts.
2017-04-10 11:27:29 +02:00
Will Dietz
30f89e0d65
Process nix.conf options in "new" nix commands, add test.
...
Without this (minor) change, the options set using "--option"
or read from nix.conf were parsed but not used.
2017-04-08 12:59:42 -05:00
Dan Peebles
98283915f5
Retry downloads on transient SSL errors too
2017-04-06 18:18:43 +00:00
Eelco Dolstra
ba20730b3f
Implement RemoteStore::queryMissing()
...
This provides a significant speedup, e.g. 64 s -> 12 s for
nix-build --dry-run -I nixpkgs=channel:nixos-16.03 '<nixpkgs/nixos/tests/misc.nix>' -A test
on a cold local and CloudFront cache.
The alternative is to use lots of concurrent daemon connections but
that seems wasteful.
2017-04-06 18:40:19 +02:00
Eelco Dolstra
963f2bf12b
Fix bogus "unexpected Nix daemon error: interrupted by the user"
2017-04-06 17:19:32 +02:00
Eelco Dolstra
6b5e271163
Add a method to allow hydra-queue-runner to flush the path info cache
2017-04-06 15:22:37 +02:00