Eelco Dolstra
9b9e703df4
restoreSignals() + restoreAffinity() -> restoreProcessContext()
2021-04-07 13:10:02 +02:00
John Ericson
179582872d
Make DerivedPathWithHints
a newtype
...
This allows us to namespace its constructors under it.
2021-04-05 10:05:21 -04:00
John Ericson
9b805d36ac
Rename Buildable
2021-04-05 09:52:25 -04:00
John Ericson
255d145ba7
Use BuildableReq
for buildPaths
and ensurePath
...
This avoids an ambiguity where the `StorePathWithOutputs { drvPath, {}
}` could mean "build `brvPath`" or "substitute `drvPath`" depending on
context.
It also brings the internals closer in line to the new CLI, by
generalizing the `Buildable` type is used there and makes that
distinction already.
In doing so, relegate `StorePathWithOutputs` to being a type just for
backwards compatibility (CLI and RPC).
2021-04-05 08:33:00 -04:00
Eelco Dolstra
4638bcfb2c
Fix some typos
...
Fixes #4671 .
2021-03-26 16:14:38 +01:00
Eelco Dolstra
ef83ced4e1
Restore 'nix flake info' as a deprecated alias
2021-03-19 17:21:37 +01:00
Eelco Dolstra
66fa1c7375
Merge 'nix flake {info,list-inputs}' into 'nix flake metadata'
...
Fixes #4613 .
2021-03-16 17:19:04 +01:00
Eelco Dolstra
77f5d171e1
--override-input: Imply --no-write-lock-file
...
Fixes #3779 .
2021-03-16 16:53:39 +01:00
regnat
89013bdd7e
Add a nix realisation
command for working on realisations
...
Currently only has `nix realisation info`, more to come probably
2021-03-09 10:16:44 +01:00
Eelco Dolstra
453c3a603f
nix flake update: Recreate the lock file
...
This is probably what most people expect it to do. Fixes #3781 .
There is a new command 'nix flake lock' that has the old behaviour of
'nix flake update', i.e. it just adds missing lock file entries unless
overriden using --update-input.
2021-02-26 14:55:54 +01:00
regnat
2e199673a5
Use RealisedPath
s in copyPaths
...
That way we can copy the realisations too (in addition to the store
paths themselves)
2021-02-25 17:18:48 +01:00
Shea Levy
f6c5b05488
Respect command registrations in plugins.
2021-02-24 08:25:45 -05:00
Shea Levy
98d1b64400
Initialize plugins after handling initial command line flags
...
This is technically a breaking change, since attempting to set plugin
files after the first non-flag argument will now throw an error. This
is acceptable given the relative lack of stability in a plugin
interface and the need to tie the knot somewhere once plugins can
actually define new subcommands.
2021-02-24 08:22:17 -05:00
Eelco Dolstra
cd44c0af71
Increase default stack size on Linux
...
Workaround for #4550 .
2021-02-18 19:22:37 +01:00
Eelco Dolstra
1b57825524
Document meta.mainProgram
...
Issue #4498 .
2021-02-17 17:58:47 +01:00
Eelco Dolstra
7bd9898d5c
nix run: Allow program name to be set in meta.mainProgram
...
This is useful when the program name doesn't match the package name
(e.g. ripgrep vs rg).
Fixes #4498 .
2021-02-17 17:55:15 +01:00
Eelco Dolstra
13897afbe6
Throw an error if --arg / --argstr is used with a flake
...
Fixes #3949 .
2021-02-17 17:32:10 +01:00
Eelco Dolstra
f33878b656
Make 'nix --version -vv' work
...
Fixes #3743 .
2021-02-17 17:11:21 +01:00
Eelco Dolstra
cced73496b
nix flake show: Handle 'overlays' output
...
Fixes #4542 .
2021-02-17 16:53:39 +01:00
Eelco Dolstra
063de66909
nix develop: Fix quoted string handling
...
Fixes #4540 .
2021-02-17 16:42:03 +01:00
Eelco Dolstra
37352aa7e1
Support --no-net for backwards compatibility
2021-02-07 20:44:56 +01:00
Eelco Dolstra
d7c27f21ab
Merge pull request #4372 from tweag/ca/drvoutputs-commands
...
Add a new Cmd type working on RealisedPaths
2021-02-05 13:03:50 +01:00
Eelco Dolstra
c77f4a9012
Merge pull request #4515 from matthewbauer/fix-nix-profile-install-first-output
...
Use derivation output name from toDerivation
2021-02-05 12:19:10 +01:00
Matthew Bauer
e38cd5becb
Always enter first level of attrset in nix search
...
This makes nix search always go through the first level of an
attribute set, even if it's not a top level attribute. For instance,
you can now list all GHC compilers with:
$ nix search nixpkgs#haskell.compiler
...
This is similar to how nix-env works when you pass in -A.
2021-02-03 21:22:11 -06:00
Matthew Bauer
3d1bbabe55
Use derivation output name from toDerivation
...
This fixes an issue where derivations with a primary output that is
not "out" would fail with:
$ nix profile install nixpkgs#sqlite
error: opening directory '/nix/store/2a2ydlgyydly5czcc8lg12n6qqkfz863-sqlite-3.34.1-bin': No such file or directory
This happens because while derivations produce every output when
built, you might not have them if you didn't build the derivation
yourself (for instance, the store path was fetch from a binary cache).
This uses outputName provided from DerivationInfo which appears to
match the first output of the derivation.
2021-02-02 19:53:19 -06:00
Domen Kožar
d0b74e2d25
--no-net -> --offline
2021-02-01 13:11:42 +00:00
James Ottaway
991edaace5
Shorten mktemp
flag for macOS
...
Address `mktemp: illegal option -- -`.
2021-01-29 13:55:18 +10:00
regnat
9355ecd543
Add a new Cmd type working on RealisedPaths
...
Where a `RealisedPath` is a store path with its history, meaning either
an opaque path for stuff that has been directly added to the store, or a
`Realisation` for stuff that has been built by a derivation
This is a low-level refactoring that doesn't bring anything by itself
(except a few dozen extra lines of code :/ ), but raising the
abstraction level a bit is important on a number of levels:
- Commands like `nix build` have to query for the realisations after the
build is finished which is fragile (see
27905f12e4a7207450abe37c9ed78e31603b67e1 for example). Having them
oprate directly at the realisation level would avoid that
- Others like `nix copy` currently operate directly on (built) store
paths, but need a bit more information as they will need to register
the realisations on the remote side
2021-01-28 09:38:44 +01:00
Eelco Dolstra
b8f345b29a
Merge pull request #4483 from shlevy/libcmd
...
Move command plugin interface to libnixcmd
2021-01-27 17:17:58 +01:00
Eelco Dolstra
8e758d402b
Remove mkFlag()
2021-01-27 12:06:03 +01:00
Shea Levy
6af6e41df0
Move command plugin interface to libnixcmd
2021-01-26 06:22:24 -05:00
Eelco Dolstra
36c4d6f592
Group common options
2021-01-25 19:03:13 +01:00
Eelco Dolstra
b159d23800
Make '--help' do the same as 'help' (i.e. show a manpage)
2021-01-25 14:38:15 +01:00
Eelco Dolstra
8d4268d190
Improve error formatting
...
Changes:
* The divider lines are gone. These were in practice a bit confusing,
in particular with --show-trace or --keep-going, since then there
were multiple lines, suggesting a start/end which wasn't the case.
* Instead, multi-line error messages are now indented to align with
the prefix (e.g. "error: ").
* The 'description' field is gone since we weren't really using it.
* 'hint' is renamed to 'msg' since it really wasn't a hint.
* The error is now printed *before* the location info.
* The 'name' field is no longer printed since most of the time it
wasn't very useful since it was just the name of the exception (like
EvalError). Ideally in the future this would be a unique, easily
googleable error ID (like rustc).
* "trace:" is now just "…". This assumes error contexts start with
something like "while doing X".
Example before:
error: --- AssertionError ---------------------------------------------------------------------------------------- nix
at: (7:7) in file: /home/eelco/Dev/nixpkgs/pkgs/applications/misc/hello/default.nix
6|
7| x = assert false; 1;
| ^
8|
assertion 'false' failed
----------------------------------------------------- show-trace -----------------------------------------------------
trace: while evaluating the attribute 'x' of the derivation 'hello-2.10'
at: (192:11) in file: /home/eelco/Dev/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
191| // (lib.optionalAttrs (!(attrs ? name) && attrs ? pname && attrs ? version)) {
192| name = "${attrs.pname}-${attrs.version}";
| ^
193| } // (lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix && (attrs ? name || (attrs ? pname && attrs ? version)))) {
Example after:
error: assertion 'false' failed
at: (7:7) in file: /home/eelco/Dev/nixpkgs/pkgs/applications/misc/hello/default.nix
6|
7| x = assert false; 1;
| ^
8|
… while evaluating the attribute 'x' of the derivation 'hello-2.10'
at: (192:11) in file: /home/eelco/Dev/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
191| // (lib.optionalAttrs (!(attrs ? name) && attrs ? pname && attrs ? version)) {
192| name = "${attrs.pname}-${attrs.version}";
| ^
193| } // (lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix && (attrs ? name || (attrs ? pname && attrs ? version)))) {
2021-01-21 11:02:09 +01:00
Eelco Dolstra
259100332f
Fix clang build
2021-01-21 10:29:51 +01:00
Eelco Dolstra
bc90252cec
nix profile install: Support installing non-flakes
...
Fixes #4458 .
2021-01-18 23:08:58 +01:00
Eelco Dolstra
555940f065
Use enumerate()
2021-01-18 22:50:39 +01:00
Eelco Dolstra
ea756b3654
--refresh: Imply setting .narinfo disk cache TTL to 0
2021-01-18 14:38:31 +01:00
regnat
11b63740e3
Fix content-addressed flake outputs
...
Prevent some `nix flake` commands to crash by trying to parse a
placeholder output as a store path
2021-01-18 11:31:59 +01:00
Eelco Dolstra
1acbb61696
Tweak
2021-01-17 19:49:28 +01:00
ryneeverett
1e13c79a91
Document expected output of 'nix store ping'.
...
While interpreting the output is fairly intuitive it would be better to
explicitly specify what a good invocation looks like.
That this isn't completely obvious (or at least causes folks to
second-guess themselves) can be seen in a couple user threads:
- https://discourse.nixos.org/t/nixos-cache-fetching-issue/3575/11
- https://discourse.nixos.org/t/newbie-question-cant-get-trivial-example-of-nixops-to-work-on-my-mac/1125/8
2021-01-16 19:11:10 +00:00
Eelco Dolstra
7a472a76d4
Add 'nix daemon' command
2021-01-14 00:05:04 +01:00
Eelco Dolstra
d33eca8539
Rename 'nix store sign-paths' to 'nix store sign'
2021-01-13 23:32:37 +01:00
Eelco Dolstra
61216d32e1
Add 'nix store repair' command
2021-01-13 23:27:39 +01:00
Eelco Dolstra
3da9a9241c
Convert option descriptions to Markdown
2021-01-13 14:18:04 +01:00
Eelco Dolstra
2f463e90ed
Add 'nix profile history' command
...
Replaces 'nix-env --list-generations'. Similar to 'nix profile
diff-closures' but shows only the changes in top-level packages.
2021-01-12 23:53:53 +01:00
Eelco Dolstra
29007f8bc6
nix profile info -> nix profile list
2021-01-12 19:57:05 +01:00
Eelco Dolstra
6254b1f5d2
Add 'nix store delete' command
2021-01-11 19:46:59 +01:00
Eelco Dolstra
93ad6430ed
nix store prefetch-tarball -> nix flake prefetch
2021-01-11 12:36:39 +01:00
Eelco Dolstra
fdcd62eec5
Add 'nix store gc' command
2021-01-10 23:29:14 +01:00
Eelco Dolstra
6548b89cc4
string2Int(): Return std::optional
2021-01-08 12:22:21 +01:00
Eelco Dolstra
48a9be2aab
Remove mkIntFlag
2021-01-08 10:44:55 +01:00
Eelco Dolstra
0813350349
Add 'nix store prefetch-{file,tarball}'
...
These replace nix-prefetch-url and nix-prefetch-url --unpack,
respectively.
2021-01-07 21:51:46 +01:00
Eelco Dolstra
0df69d96e0
Make sodium a required dependency
2021-01-06 17:56:53 +01:00
Eelco Dolstra
9374c2baea
Add commands for generating secret/public keys
2021-01-06 17:49:31 +01:00
Eelco Dolstra
a93916b190
Merge pull request #4336 from NixOS/manpages
...
Documentation for nix subcommands
2020-12-23 21:10:32 +01:00
Eelco Dolstra
5178211e96
Add 'nix' manpage
2020-12-23 18:33:42 +01:00
Eelco Dolstra
26e502ceb5
Add TODO
2020-12-23 18:26:40 +01:00
Eelco Dolstra
c9279b831e
Add 'nix flake' manpages
2020-12-23 18:26:40 +01:00
Eelco Dolstra
5373f4be3b
chrootHelper: Handle symlinks in the root directory
...
This is necessary on Ubuntu where /bin and /lib* are symlinks.
2020-12-22 12:28:50 +01:00
Eelco Dolstra
16e34085e8
Add 'nix profile' manpage
2020-12-21 13:32:29 +01:00
Eelco Dolstra
0c09f63de8
Add 'nix bundle' manpage
...
Fixes #4375 .
2020-12-21 13:32:29 +01:00
Eelco Dolstra
f4e9d4fcb3
Add 'nix store diff-closures' manpage
2020-12-21 13:32:29 +01:00
Eelco Dolstra
4f3e7f4eec
Add 'nix show-derivation' manpage
2020-12-21 13:32:29 +01:00
Eelco Dolstra
3b123a6ee6
nix show-derivation: Say "system" instead of "platform"
...
There is really no good reason to use "platform" except that that's
what we use internally (also for no good reason).
2020-12-21 13:32:29 +01:00
Eelco Dolstra
daf365b0b7
Add 'nix help' manpage
2020-12-21 13:32:29 +01:00
Eelco Dolstra
e6bea9c9b1
Add 'nix store make-content-addressable' manpage
2020-12-21 13:32:29 +01:00
Eelco Dolstra
cdf20e04b7
Doh
2020-12-21 13:32:29 +01:00
Eelco Dolstra
2e599dbb88
Add 'nix path-info' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
cb25a89f1c
Add 'nix store optimise' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
8dd7d7e9db
Add 'nix store verify' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
6b32551aba
Add 'nix upgrade-nix' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
19540744ad
Add 'nix why-depends' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
c14ed3f8b2
Add 'nix store' NAR-related manpages
2020-12-21 13:32:28 +01:00
Eelco Dolstra
2cc02bbe76
Add 'nix nar' manpages
2020-12-21 13:32:28 +01:00
Eelco Dolstra
a407d14339
Add 'nix eval' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
53ce20eab7
Add 'nix store ping' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
f34b1801a4
Tweak
2020-12-21 13:32:28 +01:00
Eelco Dolstra
58bacc85e7
Add 'nix log' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
6ce393392b
Add 'nix repl' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
b2262be19b
Add 'nix edit' manpage
2020-12-21 13:32:28 +01:00
Eelco Dolstra
4e065229c7
Typo
2020-12-21 13:32:27 +01:00
Eelco Dolstra
e90e745232
Add 'nix registry' manpages
...
This also documents the registry format and matching/unification
semantics (though not quite correctly).
2020-12-21 13:32:27 +01:00
Eelco Dolstra
42cc98f8d6
Add 'nix develop' and `nix print-dev-env' manpages
2020-12-21 13:32:27 +01:00
Eelco Dolstra
e9de689a6e
Add 'nix search' manpage
2020-12-21 13:32:27 +01:00
Eelco Dolstra
28ee307fd8
Add 'nix copy' manpage
2020-12-21 13:32:27 +01:00
Eelco Dolstra
09660b8557
Add 'nix run' and 'nix shell' manpages
2020-12-21 13:32:27 +01:00
Eelco Dolstra
ae7351dbee
Add 'nix build' manpage
2020-12-21 13:32:27 +01:00
Silvan Mosberger
b70d22baca
Replace Value type setters with mk* functions
...
Move clearValue inside Value
mkInt instead of setInt
mkBool instead of setBool
mkString instead of setString
mkPath instead of setPath
mkNull instead of setNull
mkAttrs instead of setAttrs
mkList instead of setList*
mkThunk instead of setThunk
mkApp instead of setApp
mkLambda instead of setLambda
mkBlackhole instead of setBlackhole
mkPrimOp instead of setPrimOp
mkPrimOpApp instead of setPrimOpApp
mkExternal instead of setExternal
mkFloat instead of setFloat
Add note that the static mk* function should be removed eventually
2020-12-18 21:48:22 +01:00
Silvan Mosberger
12e65078ef
Rename Value::normalType() -> Value::type()
2020-12-17 14:45:45 +01:00
Silvan Mosberger
bf98903967
Add ValueType checking functions for types that have the same NormalType
2020-12-12 03:31:50 +01:00
Silvan Mosberger
22ead43a0b
Use Value::normalType on all forced values instead of Value::type
2020-12-12 03:31:48 +01:00
Silvan Mosberger
9f056f7afd
Introduce Value type setters and make use of them
2020-12-12 03:31:48 +01:00
Eelco Dolstra
9c143c411b
Merge pull request #4350 from NixOS/ca/fix-build-with-nix-command
...
Fix the `nix` command with CA derivations
2020-12-11 15:01:49 +01:00
regnat
eb45308109
Fix the nix
command with CA derivations
...
Prevents a crash because most `nix` subcommands assumed that derivations
know their output path, which isn't the case for CA derivations
2020-12-11 10:28:09 +01:00
Eelco Dolstra
c6a1bcd0ec
nix store make-content-addressable: Show rewritten path
2020-12-10 17:11:56 +01:00
Eelco Dolstra
a8f533b664
Add lvlNotice log level
...
This is like syslog's LOG_NOTICE: "normal, but significant,
condition".
2020-12-10 16:41:24 +01:00
Eelco Dolstra
f337aa7099
Split 'nix store add-to-store' into 'add-path' and 'add-file'
...
This makes it consistent with 'nix hash <path|file>'.
2020-12-04 00:59:24 +01:00
Eelco Dolstra
fa8dad10ed
Typo
2020-12-03 23:26:23 +01:00
Eelco Dolstra
ea2062a2d9
Move most store-related commands to 'nix store'
2020-12-03 23:22:22 +01:00
Eelco Dolstra
a1cd805cba
Add 'nix nar dump-path'
...
This only differs from 'nix store dump-path' in that the path doesn't
need to be a store path.
2020-12-03 22:52:01 +01:00
Eelco Dolstra
af373c2ece
Add deprecated aliases for renamed commands
2020-12-03 22:45:44 +01:00
Eelco Dolstra
0c15ae5d4b
Add FIXME
2020-12-03 20:31:45 +01:00
Eelco Dolstra
ef583303f0
Move NAR-related commands to 'nix nar'
2020-12-03 18:09:02 +01:00
Eelco Dolstra
79c1967ded
Introduce 'nix store' command
2020-12-03 18:07:13 +01:00
Eelco Dolstra
5781f45c46
Allow registering subcommands of subcommands
2020-12-03 17:55:55 +01:00
Eelco Dolstra
b2d6c6161e
Move 'nix hash-*' and 'nix to-*' to 'nix hash'
...
From the 'nix' UX review.
2020-12-03 17:55:55 +01:00
Eelco Dolstra
1b0ca3866b
nix add-to-store: Move markdown docs into a separate file
2020-12-03 16:17:58 +01:00
Eelco Dolstra
c3c858ac6d
Make doc() return arbitrary Markdown rather than the contents of the "Description" section
...
Thus we can return the examples section (and any other sections) from
doc() and don't need examples() anymore.
2020-12-03 16:17:58 +01:00
Eelco Dolstra
df552a2645
nix eval: Add option to write a directory
...
This is useful for generating the nix manpages, but it may have other
applications (like generating configuration files without a Nix store).
2020-12-02 23:23:23 +01:00
Eelco Dolstra
148608ba6d
Add 'nix help'
2020-12-02 23:23:23 +01:00
Eelco Dolstra
faa31f4084
Sink: Use std::string_view
2020-12-02 14:17:27 +01:00
regnat
438977731c
shut up clang warnings
...
- Fix some class/struct discrepancies
- Explicit the overloading of `run` in the `Cmd*` classes
- Ignore a warning in the generated lexer
2020-12-01 15:04:03 +01:00
Wil Taylor
07603890d2
Removed reference check from bundler command
2020-11-23 21:19:40 +10:00
Wil Taylor
c3bad73e27
Added switch
2020-11-21 14:28:49 +10:00
Eelco Dolstra
4dbd05e933
Merge pull request #4189 from edolstra/flake-config
...
Allow nix.conf options to be set in flake.nix
2020-11-17 15:39:14 +01:00
Eelco Dolstra
f4e790cc85
Merge pull request #4182 from mkenigs/fix-1930
...
Print built derivations as json for build
2020-11-17 14:59:49 +01:00
Matthew Kenigsberg
8abb80a478
Print built derivations as json for build
...
Add --json option to nix build to allow machine readable output on
stdout with all built derivations
Fixes #1930
2020-11-11 10:27:02 -06:00
Sebastian Ullrich
fb7735e4cf
nix develop: Preserve stdin with -c
2020-11-09 22:43:14 +01:00
Eelco Dolstra
550e11f077
nix repl: Fix handling of multi-line expressions
2020-11-02 19:07:37 +01:00
Matthew Kenigsberg
6a4bf535d8
Capitalize JSON for consistency
2020-10-28 17:54:28 -05:00
Eelco Dolstra
02a1facbdc
Merge pull request #4056 from tweag/non-ca-depending-on-ca
...
Allow non-CA derivations to depend on CA ones
2020-10-27 17:38:29 +01:00
regnat
c092fa4702
Allow non-CA derivations to depend on CA derivations
2020-10-27 07:29:23 +01:00
Eelco Dolstra
343239fc8a
Allow nix.conf options to be set in flake.nix
...
This makes it possible to have per-project configuration in flake.nix,
e.g. binary caches and other stuff:
nixConfig.bash-prompt-suffix = "[1;35mngi# [0m";
nixConfig.substituters = [ "https://cache.ngi0.nixos.org/ " ];
2020-10-26 20:45:39 +01:00
Eelco Dolstra
9d5e9ef0da
Move Explicit
2020-10-26 17:01:20 +01:00
Eelco Dolstra
dc7d1322ef
Make the prompt used in development shells configurable
2020-10-26 14:24:25 +01:00
Eelco Dolstra
750ce500c2
Fix clang build
2020-10-22 13:40:30 +02:00
Eelco Dolstra
f9438fb64a
nix develop: Add --redirect flag to redirect dependencies
...
This is primarily useful if you're hacking simultaneously on a package
and one of its dependencies. E.g. if you're hacking on Hydra and Nix,
you would start a dev shell for Nix, and then a dev shell for Hydra as
follows:
$ nix develop \
--redirect .#hydraJobs.build.x86_64-linux.nix ~/Dev/nix/outputs/out \
--redirect .#hydraJobs.build.x86_64-linux.nix.dev ~/Dev/nix/outputs/dev
(This assumes hydraJobs.build.x86_64-linux has a passthru.nix
attribute. You can also use a store path.)
This causes all references in the environment to those store paths to
be rewritten to ~/Dev/nix/outputs/{out,dev}. Note: unfortunately, you
may need to set LD_LIBRARY_PATH=~/Dev/nix/outputs/out/lib because
Nixpkgs' ld-wrapper only adds -rpath entries for -L flags that point
to the Nix store.
2020-10-22 13:40:30 +02:00
Eelco Dolstra
e556a1beb7
nix develop: Handle 'declare -ax' in bash output
...
Fixes 'nix develop nixpkgs#qpdfview'.
2020-10-21 17:54:21 +02:00
Matthew Kenigsberg
f6aaac2b59
Make bash non-interactive for nix develop --phase
...
Fix #3975 : Currently if Ctrl-C is pressed during a phase, the interactive subshell
is not exited. Removing --rcfile when --phase is present makes bash
non-interactive
2020-10-20 12:00:30 -05:00
John Ericson
fccef6a7fa
Merge remote-tracking branch 'upstream/master' into fix-and-ci-static-builds
2020-10-15 18:55:03 +00:00
Eelco Dolstra
b0fbf3a653
Merge pull request #4135 from obsidiansystems/split-local-fs-store-header
...
Split out `local-fs-store.hh`
2020-10-11 18:49:40 +02:00
John Ericson
6cc1541782
Split out local-fs-store.hh
...
This matches the already-existing `local-fs-store.cc`.
2020-10-09 20:18:08 +00:00
Eelco Dolstra
725488b892
nix develop: Unset $HOSTNAME
...
This is set to "localhost" by stdenv which is probably not what you
want.
2020-10-09 22:03:18 +02:00
Eelco Dolstra
44349064f7
nix develop: Source ~/.bashrc
...
Fixes #4104 .
2020-10-09 22:02:00 +02:00
John Ericson
39de73550d
Merge remote-tracking branch 'upstream/master' into fix-and-ci-static-builds
2020-10-09 18:26:47 +00:00
regnat
04e5d0e704
Add a description in the completion outputs
...
Make nix output completions in the form `completion\tdescription`.
This can't be used by bash (afaik), but other shells like zsh or fish
can display it along the completion choices
2020-10-09 09:39:51 +02:00
Eelco Dolstra
85c8be6286
Remove static variable name clashes
...
This was useful for an experiment with building Nix as a single
compilation unit. It's not very useful otherwise but also doesn't
hurt...
2020-10-06 13:49:20 +02:00
Eelco Dolstra
0419cd2695
Remove unneeded -lboost_* flags
2020-10-06 13:34:58 +02:00
Fabian Möller
d5d196b0a1
Fix profile update in nix command
2020-10-02 12:10:31 +02:00
DavHau
f3280004e2
add more examples to --help of nix run
2020-10-01 11:34:13 +07:00
Eelco Dolstra
64e9b3c83b
nix registry list: Show 'dir' attribute
...
Issue #4050 .
2020-09-29 23:33:16 +02:00
John Ericson
cfe791a638
stdout_ -> cout
...
Better to get creative than just sprinkle arbitrary underscores.
2020-09-25 11:30:04 -04:00
Kevin Quick
bd5f3dbe11
Fixes fall-through to report correct description of hash-file command.
2020-09-24 12:30:03 -07:00
Eelco Dolstra
958bf57123
nix build: find() -> get()
...
find() returns an iterator so "!attr" doesn't work.
2020-09-18 13:10:42 +02:00
Eelco Dolstra
649d3aaf24
Merge pull request #3829 from obsidiansystems/remove-storetype-delegate-regStore
...
Remove storetype delegate reg store -- contains #3736
2020-09-17 13:55:01 +02:00
Eelco Dolstra
787469c7b6
Remove corepkgs/unpack-channel.nix
2020-09-17 09:41:02 +02:00
John Ericson
f60b380a7f
Merge remote-tracking branch 'upstream/master' into remove-storetype-delegate-regStore
2020-09-16 22:35:24 +00:00
Eelco Dolstra
5080d4e7b2
Merge branch 'document-store-options' of https://github.com/tweag/nix
2020-09-16 17:02:30 +02:00
Eelco Dolstra
0066ef6c59
Fix doc generation
2020-09-16 16:56:28 +02:00
regnat
634cb2a5ae
Add a markdown output to nix describe-stores
2020-09-16 13:53:09 +02:00
regnat
b73adacc1e
Add a name to the stores
...
So that it can be printed by `nix describe-stores`
2020-09-16 13:53:09 +02:00
regnat
dae39f0a7a
Make nix describe-stores
functional
...
Using the `*Config` class hierarchy
2020-09-16 13:53:08 +02:00
regnat
7d5bdf8b56
Make the store plugins more introspectable
...
Directly register the store classes rather than a function to build an
instance of them.
This gives the possibility to introspect static members of the class or
choose different ways of instantiating them.
2020-09-16 13:53:08 +02:00
John Ericson
c08c9f08c7
Merge remote-tracking branch 'upstream/master' into remove-storetype-delegate-regStore
2020-09-15 14:08:35 +00:00
John Ericson
e9fad3006b
Fix some of the issues raised by @edolstra
...
- More and better comments
- The easier renames
2020-09-04 15:18:25 +00:00
John Ericson
25f7ff16fa
Merge remote-tracking branch 'upstream/master' into fix-and-ci-static-builds
2020-09-04 02:40:36 +00:00
John Ericson
e7d93e7ece
Merge remote-tracking branch 'upstream/master' into single-ca-drv-build
2020-09-03 15:43:17 +00:00
Eelco Dolstra
82b77a7726
addPermRoot(): Remove indirect flag
2020-09-03 11:29:34 +02:00
Eelco Dolstra
b74f5cdd23
createGeneration(): Take a StorePath
2020-09-03 11:06:56 +02:00
John Ericson
ef278d00f9
Merge remote-tracking branch 'upstream/master' into single-ca-drv-build
2020-09-01 18:01:48 +00:00
Eelco Dolstra
84f5cabbea
Merge remote-tracking branch 'origin/master' into markdown
2020-08-31 14:24:26 +02:00
John Ericson
8017fe7487
Merge remote-tracking branch 'upstream/master' into single-ca-drv-build
2020-08-28 19:59:14 +00:00
Eelco Dolstra
f15651303f
nix develop: Add convenience flags for running specific phases
...
For example, for building the Nix flake, you would do:
$ nix develop --configure
$ nix develop --install
$ nix develop --installcheck
2020-08-28 19:24:29 +02:00
Eelco Dolstra
3156560d41
nix develop: Set output paths to writable locations
...
Currently, they're set to $(pwd)/outputs/$outputName. This allows
commands like 'make install' to work.
2020-08-28 18:16:03 +02:00
Eelco Dolstra
eb75282b8d
Merge pull request #3434 from Ericson2314/derivation-header-include-order
...
Revise division of labor in deserialization of derivations
2020-08-27 16:39:28 +02:00
Eelco Dolstra
c3efef9275
Remove obsolete comment
2020-08-26 09:28:10 +02:00
Eelco Dolstra
4bf5faf416
Merge remote-tracking branch 'origin/master' into markdown
2020-08-25 19:47:34 +02:00
Eelco Dolstra
f53b5f1058
Add getDoc() function
2020-08-25 13:31:11 +02:00
Eelco Dolstra
b42789f013
Fix clang build
2020-08-24 21:13:39 +02:00
Eelco Dolstra
6a67e57019
Add DummyStore (dummy://)
...
DummyStore does not allow building or adding paths. This is useful for
evaluation tests when you don't want to initialize a "proper" store.
2020-08-24 18:54:16 +02:00
Eelco Dolstra
d0690bc311
nix repl ':doc': Render using lowdown
2020-08-24 18:10:33 +02:00
Eelco Dolstra
0f314f3c25
Generate builtins section of the manual
2020-08-24 14:49:30 +02:00
Eelco Dolstra
33b1679d75
Allow primops to have Markdown documentation
2020-08-24 13:16:02 +02:00
John Ericson
35e6288be1
writeDerivation
just needs a plain store reference
2020-08-23 15:01:11 +00:00
John Ericson
27a3f82c0b
Merge remote-tracking branch 'upstream/master' into single-ca-drv-build
2020-08-20 18:28:17 +00:00
John Ericson
45a2f1baab
Rename drv output querying functions, like master
...
- `queryDerivationOutputMapAssumeTotal` -> `queryPartialDerivationOutputMap`
- `queryDerivationOutputMapAssumeTotal` -> `queryDerivationOutputMap
2020-08-20 18:14:12 +00:00
Eelco Dolstra
dc2f278c95
Allow 'nix' subcommands to provide docs in Markdown format
2020-08-20 12:21:46 +02:00
Eelco Dolstra
acb99f03f9
Config: Use nlohmann/json
2020-08-20 11:02:16 +02:00
Ryan Mulligan
f36793c7b9
fix spelling
2020-08-19 20:31:01 -07:00
John Ericson
d5af5763cf
Merge branch 'master' of github.com:NixOS/nix into remove-storetype-delegate-regStore
2020-08-19 15:54:50 +00:00
Eelco Dolstra
34b22e0123
Change option descriptions to Markdown
2020-08-19 14:21:27 +02:00
John Ericson
950ddfdb82
Merge remote-tracking branch 'upstream/master' into derivation-header-include-order
2020-08-18 14:36:44 +00:00
Eelco Dolstra
069340179e
Improve nix.1 manpage generator
2020-08-18 15:15:35 +02:00
Eelco Dolstra
a72a20d68f
Add 'nix dump-args' to dump all commands/flags for manpage generation
2020-08-17 17:44:52 +02:00
John Ericson
f899a7c6d7
Work around clang bug
2020-08-14 18:51:31 +00:00
John Ericson
3c8b5b6219
Merge remote-tracking branch 'upstream/master' into single-ca-drv-build
2020-08-14 17:00:13 +00:00
Eelco Dolstra
13e49be660
Merge pull request #3875 from obsidiansystems/new-interface-for-path-pathOpt
...
Offer a safer interface for path and pathOpt
2020-08-14 17:19:19 +02:00
Eelco Dolstra
d81f13f7cb
Merge pull request #3899 from obsidiansystems/make-narHash-not-optional
...
Make narHash in ValidPathInfo not optional
2020-08-14 17:00:18 +02:00
John Ericson
1b5c24662b
Merge branch 'small-drv-serialize-cleanup' of github.com:obsidiansystems/nix into single-ca-drv-build
2020-08-10 01:57:54 +00:00
John Ericson
bcd0629c2e
Remove name parameter from writeDerivation
...
The name is now stored with the derivation itself.
2020-08-10 01:35:59 +00:00
John Ericson
e913a2989f
Squashed get CA derivations building
2020-08-07 19:51:55 +00:00
John Ericson
39ae9a3d4a
Merge remote-tracking branch 'upstream/master' into fix-and-ci-static-builds
2020-08-07 14:44:47 +00:00
Eelco Dolstra
2ffc058950
Make --no-eval-cache a global setting
2020-08-07 14:13:24 +02:00
John Ericson
e89b5bd0bf
Minimize the usage of Hash::dummy
2020-08-06 18:31:48 +00:00
John Ericson
5e59b25a23
Merge remote-tracking branch 'upstream/master' into make-narHash-not-optional
2020-08-06 15:34:15 +00:00
Eelco Dolstra
6146447842
Merge pull request #3856 from obsidiansystems/buildable-variant
...
Make `Buildable` a `std::variant`
2020-08-06 14:14:06 +02:00
Eelco Dolstra
59067f0f58
repl.cc: Check for HAVE_BOEHMGC
...
Fixes #3906 .
2020-08-06 11:40:41 +02:00
Carlo Nucera
1d2e80ddd6
Merge branch 'master' of github.com:NixOS/nix into new-interface-for-path-pathOpt
2020-08-05 15:45:33 -04:00
Carlo Nucera
be6e1c6457
Merge branch 'master' of github.com:NixOS/nix into make-narHash-not-optional
2020-08-05 15:14:47 -04:00
Carlo Nucera
1d71028f4d
Remove optionality in ValidPathInfo::narInfo
2020-08-05 14:42:48 -04:00
John Ericson
a9bbfaa851
Fix --profile with multiple opaque paths
2020-08-05 16:27:15 +00:00
John Ericson
d89472a912
Merge remote-tracking branch 'upstream/master' into buildable-variant
2020-08-05 15:41:57 +00:00
John Ericson
e7b0847f2d
Make names more consistent
2020-08-05 14:44:39 +00:00
John Ericson
839f0fe095
Merge remote-tracking branch 'upstream/master' into misc-ca
2020-08-05 14:40:01 +00:00
John Ericson
03f4fafc27
Merge remote-tracking branch 'upstream/master' into misc-ca
2020-08-05 14:36:25 +00:00
John Ericson
d3452a5ed6
Merge remote-tracking branch 'upstream/master' into better-ca-parse-errors
2020-08-04 16:13:20 +00:00
John Ericson
fe7e57a80d
tab -> space
2020-08-04 03:47:09 +00:00
John Ericson
9357512d73
Merge remote-tracking branch 'upstream/master' into derivation-header-include-order
2020-08-01 19:38:35 +00:00
Eelco Dolstra
a3f9625818
Tweak description
2020-07-31 17:32:40 +02:00
Eelco Dolstra
935723eb3b
Merge branch 'nix-command-build-check' of https://github.com/Ma27/nix
2020-07-31 17:30:55 +02:00
Eelco Dolstra
f56dfce734
nix bundle: Set category
2020-07-31 17:30:12 +02:00
Maximilian Bosch
5a09eb86f1
nix/build: add --rebuild
option
...
Occasionally, `nix-build --check` is fairly helpful and I'd like to be
able to use this feature for flakes that need to be built with `nix
build` as well.
2020-07-31 17:17:03 +02:00
Eelco Dolstra
0604cfd0eb
Merge pull request #3880 from matthewbauer/nix-bundle
...
Add "bundle" command to Nix
2020-07-31 11:45:53 +02:00
Carlo Nucera
eee6ef86cd
Merge branch 'master' of github.com:NixOS/nix into better-ca-parse-errors
2020-07-30 18:27:25 -04:00
Matthew Bauer
fa2d1fb36e
Pass system to bundler
2020-07-30 15:37:05 -05:00
Matthew Bauer
22fcfdf18a
Address misc review
2020-07-30 15:18:57 -05:00
Matthew Bauer
1a705637ce
Remove single file restriction for bundler
2020-07-30 15:16:29 -05:00
Matthew Bauer
52407f83a1
exporter -> bundler
2020-07-30 15:16:23 -05:00
Matthew Bauer
d7ffe327ae
Merge remote-tracking branch 'origin/master' into fix-and-ci-static-builds
2020-07-30 14:59:57 -05:00
Matthew Bauer
05ac4db39a
Merge remote-tracking branch 'origin/master' into substitute-other-storedir
2020-07-30 12:38:24 -05:00
Matthew Bauer
5d04a4db9b
Handle exporters checking correctly
2020-07-30 11:45:47 -05:00
Matthew Bauer
2f4250a416
Add "export" to Nix
...
This adds a ‘nix export’ command which hooks into nix-bundle. It can
be used in a similar way as nix-bundle, with the benefit of hooking
into the new “app” functionality. For instance,
$ nix export nixpkgs#jq
$ ./jq --help
jq - commandline JSON processor [version 1.6]
...
$ scp jq machine-without-nix:
$ ssh machine-without-nix ./jq
jq - commandline JSON processor [version 1.6]
...
Note that nix-bundle currently requires Linux to run. Other exporters
might not have that requirement.
“exporters” are meant to be reusable, so that, other repos can
implement their own bundling.
Fixes #3705
2020-07-30 11:33:22 -05:00
Eelco Dolstra
3f6e88a552
unsigned long long -> uint64_t
2020-07-30 13:34:04 +02:00
Matthew Bauer
fa8515d7ec
Set regex_constants::match_continuous for quicker search
...
match_continuous limits the search to the current start position,
instead of searching the entire file.
On libc++, this improves performance dramatically:
$ time /nix/store/70ai68dfm6xbzwn26j5n4li9di52ylia-nix-3.0pre20200728_c159f48/bin/nix print-dev-env >/dev/null
/nix/store/70ai68dfm6xbzwn26j5n4li9di52ylia-nix-3.0pre20200728_c159f48/bin/ni 2.39s user 0.19s system 64% cpu 4.032 total
$ time /nix/store/cwjfxxlp83zln4mfyy1d2dbsx7f6s962-nix-3.0pre20200728_dirty/bin/nix print-dev-env >/dev/null
/nix/store/cwjfxxlp83zln4mfyy1d2dbsx7f6s962-nix-3.0pre20200728_dirty/bin/nix 0.09s user 0.05s system 65% cpu 0.204 total
Fixes #3874
2020-07-29 00:57:20 -05:00
Carlo Nucera
c318d398f3
Merge branch 'misc-ca' of github.com:obsidiansystems/nix into new-interface-for-path-pathOpt
2020-07-28 14:22:24 -04:00
Carlo Nucera
7ef1e3cd14
Use the new interface
2020-07-28 13:59:24 -04:00
John Ericson
7cf978440c
Merge branch 'ca-derivation-data-types' of github.com:obsidiansystems/nix into misc-ca
2020-07-27 17:47:40 +00:00
John Ericson
e6115ca004
Merge remote-tracking branch 'upstream/master' into ca-derivation-data-types
2020-07-27 17:41:43 +00:00
John Ericson
1d7d94ceea
Merge branch 'hash-always-has-type' of github.com:obsidiansystems/nix into better-ca-parse-errors
2020-07-27 16:17:50 +00:00
John Ericson
43f2bd8dc5
Merge remote-tracking branch 'upstream/master' into hash-always-has-type
2020-07-27 16:13:57 +00:00
John Ericson
78466bcb2f
Merge branch 'optional-derivation-output-storepath' into ca-derivation-data-types
2020-07-27 14:40:08 +00:00
John Ericson
d5bb67cfa4
Merge remote-tracking branch 'upstream/master' into optional-derivation-output-storepath
2020-07-27 14:29:32 +00:00
John Ericson
699fc89b39
Merge remote-tracking branch 'upstream/master' into hash-always-has-type
2020-07-27 14:22:45 +00:00
John Ericson
e1de1fe0d8
Make Buildable
a std::variant
...
I think this better captures the intent of what's going on: we either
have an opaque store path, or a drv path with some outputs.
Having this structure will also help us support CA derivations: we'll
have to allow the outpath paths to be optional, so the structure we gain
now makes up for the structure we loose then.
2020-07-23 19:02:57 +00:00
John Ericson
6fcd9966bf
Merge remote-tracking branch 'upstream/master' into misc-ca
2020-07-23 15:02:29 +00:00
John Ericson
66a2067288
Merge remote-tracking branch 'upstream/master' into better-ca-parse-errors
2020-07-23 14:56:35 +00:00
Fabian Möller
b9ead08ca8
Save changes made by "nix registry pin" to user registry
2020-07-23 14:21:27 +02:00
John Ericson
cdb3f39b64
Merge remote-tracking branch 'upstream/master' into better-ca-parse-errors
2020-07-21 13:43:20 +00:00
John Ericson
5055c595bd
Merge branch 'fix-and-document-addToStoreSlow' of github.com:obsidiansystems/nix into ca-derivation-data-types
2020-07-21 01:20:53 +00:00
John Ericson
bf0dca7790
Merge branch 'fix-and-document-addToStoreSlow' of github.com:obsidiansystems/nix into misc-ca
2020-07-21 01:18:33 +00:00
Carlo Nucera
0aa79dcc6f
Remove StoreType abstraction and delegate regStore
...
to each Store implementation. The generic regStore implementation will
only be for the ambiguous shorthands, like "" and "auto".
This also could get us close to simplifying the daemon command.
2020-07-17 17:24:02 -04:00
Lars Mühmel
bc73590151
nix edit: call restoreSignals() before execvp
-ing the $EDITOR
...
Currently resizing of the terminal doesn't play nicely with
nix edit when using kakoune as the editor, as it relies on the
SIGWINCH signal which is trapped by nix. How this is not a problem
with e.g. vim is beyond me.
Virtually all other exec* calls are following a call to
restoreSignals(). This commit adds this behavior to nix edit
as well.
2020-07-17 17:35:59 +02:00
Carlo Nucera
a395c12830
Merge branch 'master' of github.com:NixOS/nix into misc-ca
2020-07-17 11:06:54 -04:00
Carlo Nucera
5cb840541b
Merge branch 'multi-output-hashDerivationModulo' of github.com:Ericson2314/nix into misc-ca
2020-07-17 10:28:33 -04:00
Eelco Dolstra
52c8be38e0
nix profile diff-closures: Don't inherit EvalCommand
2020-07-17 12:36:12 +02:00
Carlo Nucera
745a03cef5
Merge branch 'optional-derivation-output-storepath' of github.com:obsidiansystems/nix into ca-derivation-data-types
2020-07-16 13:36:01 -04:00
Carlo Nucera
048e916f64
Merge branch 'master' of github.com:NixOS/nix into optional-derivation-output-storepath
2020-07-16 13:32:28 -04:00
John Ericson
cc0d77f8c9
Merge branch 'hash-always-has-type' of github.com:obsidiansystems/nix into better-ca-parse-errors
2020-07-16 17:28:52 +00:00
Eelco Dolstra
16c9f6762d
Add command 'nix profile diff-closure'
...
This shows all changes between generations of a profile. E.g.
$ nix profile diff-closures --profile /nix/var/nix/profiles/system
Generation 654 -> 655:
nix: 2.4pre20200617_5d69bbf → 2.4pre20200701_6ff9aa8, +42.2 KiB
Generation 655 -> 656:
blender-bin: 2.83.0 → 2.83.1, -294.2 KiB
Generation 656 -> 657:
curl: 7.68.0 → 7.70.0, +19.1 KiB
firmware-linux-nonfree: 2020-01-22 → 2020-05-19, +30827.7 KiB
ibus: -21.8 KiB
initrd-linux: 5.4.46 → 5.4.49
...
2020-07-16 17:00:42 +02:00