Eelco Dolstra
3c28cb1b8f
Improve 'nix flake info' a bit
...
Example:
$ nix flake info dwarffs
ID: dwarffs
URI: github:edolstra/dwarffs/a83d182fe3fe528ed6366a5cec3458bcb1a5f6e1
Description: A filesystem that fetches DWARF debug info from the Internet on demand
Revision: a83d182fe3fe528ed6366a5cec3458bcb1a5f6e1
Path: /nix/store/grgd14kxxk8q4n503j87mpz48gcqpqw7-source
2019-04-16 16:18:19 +02:00
Eelco Dolstra
3d0e81051f
Fix lock file generation
...
Before:
"requires": {
"nixpkgs": {
"uri": "nixpkgs"
}
},
After:
"requires": {
"nixpkgs": {
"uri": "github:edolstra/nixpkgs/f10e8a02eb7fa2b4a070f30cf87f4efcc7f3186d"
}
},
2019-04-16 15:43:55 +02:00
Eelco Dolstra
8c4e759efd
updateLockFile(): Make sure Git can see flake.lock
2019-04-16 15:11:17 +02:00
Eelco Dolstra
cfca793a20
Remove unneeded pureEval flags
2019-04-16 15:06:40 +02:00
Eelco Dolstra
60834492ae
Update lock files from InstallableFlake::toValue()
...
This ensures that the lock file is updated *before* evaluating it, and
that it gets updated for any nix command, not just 'nix build'.
Also, while computing the lock file, allow arbitrary registry lookups,
not just at top-level.
Also, improve some error messages slightly.
2019-04-16 15:02:02 +02:00
Eelco Dolstra
7b312a8762
Pass stuff by reference
2019-04-16 14:27:54 +02:00
Eelco Dolstra
e1d73edb10
writeLockFile(): Emit empty objects rather than null
2019-04-16 14:23:10 +02:00
Eelco Dolstra
ed9d725392
getFlake(): Use impureIsAllowed
...
This fixes 'nix build nixpkgs:hello' without --impure.
2019-04-16 14:16:20 +02:00
Eelco Dolstra
ba66455636
Improve incremental build
2019-04-16 14:10:05 +02:00
Eelco Dolstra
aecf07b1d6
Remove dead function
2019-04-16 14:08:14 +02:00
Eelco Dolstra
035ac44354
Fix makeFlakeValue()
2019-04-16 13:56:08 +02:00
Eelco Dolstra
d8fa2fc429
Add FIXME for pureEval
2019-04-16 12:26:17 +02:00
Eelco Dolstra
3a5493bfe8
Merge remote-tracking branch 'tweag/privateGithub' into flakes
2019-04-16 12:23:56 +02:00
Nick Van den Broeck
7587d62d02
Fixed flake pin issues
2019-04-16 08:38:17 +02:00
Nick Van den Broeck
b3d33b02e3
Added support for private github repositories
2019-04-16 08:14:46 +02:00
Eelco Dolstra
b4e367bf4a
FlakeRef::to_string(): Drop the "flake:" prefix
...
This is unnecessary in most contexts and makes 'nix flake list' output
less readable.
2019-04-15 14:13:10 +02:00
Eelco Dolstra
c179f668e5
Slight cleanup
2019-04-15 14:08:18 +02:00
Eelco Dolstra
f6d684b5e2
getFlakeRegistries(): Return registries regardless of pureEval
...
This makes e.g. 'nix flake list' work.
2019-04-15 13:48:56 +02:00
Eelco Dolstra
84c12dbd7c
Move --impure to MixEvalArgs
2019-04-15 13:45:51 +02:00
Eelco Dolstra
a12cd53567
Merge remote-tracking branch 'tweag/automatedUpdate' into flakes
2019-04-15 12:11:16 +02:00
Nick Van den Broeck
4bf3a8226b
Automated lockfile updating with nix build
2019-04-11 14:34:04 +02:00
Nick Van den Broeck
4ad4e48668
FlakeRegistry = FlakeRef -> FlakeRef
2019-04-11 07:08:04 +02:00
Nick Van den Broeck
c64f98b883
FlakeAlias is implemented
2019-04-09 10:16:02 +02:00
Nick Van den Broeck
f39670c631
Took ref and rev out of FlakeRef
2019-04-09 09:51:42 +02:00
Nick Van den Broeck
3ec0c82fab
Fixed dependency resolution
2019-04-09 09:51:42 +02:00
Nick Van den Broeck
641db127be
FlakeIds are now properly looked up in registries
2019-04-09 09:51:36 +02:00
Nick Van den Broeck
18c019b616
Added nonFlakeRequires and the command nix flake deps
2019-04-09 08:38:09 +02:00
Eelco Dolstra
87033f2c4e
Whitespace
2019-04-08 23:58:33 +02:00
Eelco Dolstra
c996e04aca
Allow relative paths in flakerefs
...
Also allow "." as an installable to refer to the flake in the current
directory. E.g.
$ nix build .
will build 'provides.defaultPackage' in the flake in the current
directory.
2019-04-08 23:52:09 +02:00
Eelco Dolstra
507da65900
Move flake template into a separate file
2019-04-08 23:39:38 +02:00
Eelco Dolstra
47727252ff
Add "nix flake init" command for creating a flake
2019-04-08 23:36:12 +02:00
Eelco Dolstra
ee1254d4f5
nix: Add --impure as a shorter alias of --no-pure-eval
2019-04-08 23:19:19 +02:00
Eelco Dolstra
6a4c7fb975
Add path flakeref variant
...
Unlike file://<path>, this allows the path to be a dirty Git tree, so
nix build /path/to/flake:attr
is a convenient way to test building a local flake.
2019-04-08 23:09:18 +02:00
Eelco Dolstra
4023ae4cdf
nix: Support nixpkgs.<attrpath> for compatibility
2019-04-08 16:22:04 +02:00
Eelco Dolstra
101d964a59
nix: Make -f work for compatibility
2019-04-08 16:11:17 +02:00
Eelco Dolstra
9b7eac332b
Merge remote-tracking branch 'origin/master' into flakes
2019-04-08 14:23:48 +02:00
Eelco Dolstra
154244adc6
nix: New installables syntax
...
The general syntax for an installable is now
<flakeref>:<attrpath>. The attrpath is relative to the flake's
'provides.packages' or 'provides' if the former doesn't yield a
result. E.g.
$ nix build nixpkgs:hello
is equivalent to
$ nix build nixpkgs:packages.hello
Also, '<flakeref>:' can be omitted, in which case it defaults to
'nixpkgs', e.g.
$ nix build hello
2019-04-08 14:21:13 +02:00
Eelco Dolstra
6b0ca8e803
findAlongAttrPath(): Throw AttrPathNotFound
2019-04-08 14:20:58 +02:00
Eelco Dolstra
41ba5135e0
primeCache(): Barf if builds are needed but not allowed
...
Fixes #2753 .
2019-04-01 21:09:49 +02:00
Eelco Dolstra
2bc6304793
getMachines(): Cache result
2019-04-01 21:09:35 +02:00
Eelco Dolstra
f32fbf952d
Fix Bison 3.3 warning
2019-03-27 21:09:31 +01:00
Eelco Dolstra
c101b29133
Merge remote-tracking branch 'tweag/flake-registries' into flakes
2019-03-27 14:40:36 +01:00
Eelco Dolstra
be7fd63595
Remove debug line
2019-03-26 14:25:43 +01:00
Eelco Dolstra
f9c7176a87
nix flake add: Handle ~/.config/nix not existing
...
Fixes
$ nix flake add fnord github:edolstra/fnord
error: opening file '/home/eelco/.config/nix/registry.json': No such file or directory
2019-03-26 12:48:57 +01:00
Eelco Dolstra
42be60c6af
Merge remote-tracking branch 'tweag/flake-add' into flakes
2019-03-26 12:35:27 +01:00
Eelco Dolstra
edb3836696
Merge remote-tracking branch 'tweag/auto-update-flake' into flakes
2019-03-26 11:50:22 +01:00
Eelco Dolstra
b5565a7081
Merge remote-tracking branch 'origin/master' into flakes
2019-03-26 11:44:14 +01:00
Eelco Dolstra
5c05c238e6
Merge pull request #1828 from zimbatm/isPath
...
Add isPath primop
2019-03-25 19:58:11 +01:00
Will Dietz
42e2d5e7b7
store-api.hh: add missing include for unordered_map
2019-03-25 09:18:30 +01:00
Jonas Chevalier
514b3c7f83
Add isPath primop
...
this is added for completeness' sake since all the other possible
`builtins.typeOf` results have a corresponding `builtins.is<Type>`
2019-03-24 11:36:49 +01:00
Nick Van den Broeck
a554f523db
Combining registries properly
2019-03-23 13:42:48 +01:00
Nick Van den Broeck
5e4d92d267
Issue #15 is finished
2019-03-22 15:22:18 +01:00
Nick Van den Broeck
e007f367bd
Fixed minor things
2019-03-22 11:21:49 +01:00
Nick Van den Broeck
d4ee8afd59
Implemented --flake flag for nix build
...
Also fixed Eelco's PR comments
2019-03-22 11:16:20 +01:00
Linus Heckemann
2aa89daab3
eval: improve type description for primops and applied primops
...
This can make type errors a little easier to understand.
2019-03-21 15:31:46 +01:00
Chaker Benhamed
81a23fa7e2
Add a 5 seconds of timeouts to connect to S3.
...
The default is 1000ms, but we can hit it a lot of we don't have direct
link to AWS (e.g. using VPN).
2019-03-15 13:23:58 +01:00
Eelco Dolstra
1f64f4c7c8
pkg-config files: Use c++17
2019-03-14 14:11:12 +01:00
Eelco Dolstra
ef52ccf035
experimental/optional -> optional
2019-03-14 14:10:52 +01:00
Eelco Dolstra
86f3b94c8c
nix-store --gc --print-roots: Sort output
2019-03-14 13:59:10 +01:00
Eelco Dolstra
578ed7a259
findRoots(): Don't censor for trusted users
...
They're pretty much root anyway.
2019-03-14 13:53:34 +01:00
Eelco Dolstra
53522cb6ac
findRoots(): Add 'censor' parameter
...
This is less brittle than filtering paths after the fact in
nix-daemon.
2019-03-14 13:53:34 +01:00
Eelco Dolstra
a3f37d87ea
findRuntimeRoots: Simplify/fix handling of /proc files
...
Scanning of /proc/<pid>/{exe,cwd} was broken because '{memory:' was
prepended twice. Also, get rid of the whole '{memory:...}' thing
because it's unnecessary, we can just list the file in /proc directly.
2019-03-14 13:30:25 +01:00
Guillaume Maudoux
4f4391193c
Fix warning about unused variable
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
38ee16ae9c
Unify internal findRootsXxx() api
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
9d7221183a
unify naming of roots as links & targets
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
5c56570726
Also obfuscate the number of memory roots
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
fc02b1b3ee
Also print rooted path in nix-store -q --roots
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
8574b70342
fixup! Make roots a map of store paths to pinning links
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
ebc86550f9
Make roots a map of store paths to pinning links
...
This new structure makes more sense as there may be many sources rooting
the same store path. Many profiles can reference the same path but this
is even more true with /proc/<pid>/maps where distinct pids can and
often do map the same store path.
This implementation is also more efficient as the `Roots` map contains
only one entry per rooted store path.
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
a17f86ce3a
Obfuscate memory roots for non-root users
2019-03-10 00:56:09 +01:00
Guillaume Maudoux
43331d6344
detail memory roots
2019-03-10 00:56:09 +01:00
Nick Van den Broeck
6542de98c2
Implemented writeRegistry
2019-03-07 12:00:10 +01:00
Nick Van den Broeck
9ff1a9ea65
Implemented json flag for nix flake info
2019-03-07 11:56:43 +01:00
volth
fff8db205c
canBuildLocally: check for features
...
It could happen that the local builder match the system but lacks some features.
Now it results a failure.
The fix gracefully excludes the local builder from the set of available builders for derivation which requires the feature, so the derivation is built on remote builders only (as though it has incompatible system, like ```aarch64-linux``` when local is x86)
2019-03-06 05:03:25 +00:00
Will Dietz
0963479741
archive.cc: ignore more posix_fallocate "not supported" error codes
...
Fixes w/musl.
2019-03-01 10:31:17 +08:00
Nick Van den Broeck
cfb6ab80ce
Implemented "nix flake info"
2019-02-26 13:12:51 +01:00
Dzmitry Zaitsau
06d6335987
fix indentation
2019-02-26 11:07:37 +01:00
Dzmitry Zaitsau
ac200c3678
Apply param values on S3Helper initialization
2019-02-25 18:06:19 +01:00
Dzmitry Zaitsau
56c18c67d9
Extend S3 URL parsing with parameters extraction
2019-02-25 18:00:55 +01:00
Dzmitry Zaitsau
07f992a74b
Extract and expose splitUriAndParams function
...
which splits a URL into localtor and parameter parts
2019-02-25 17:59:26 +01:00
Eelco Dolstra
d342de02b9
fetchFlake: Use infinite TTL when the revision is specified
2019-02-25 23:23:45 +08:00
Eelco Dolstra
529add316c
downloadCached: Return ETag
...
This allows fetchFlake() to return the Git revision of a GitHub
archive.
2019-02-25 23:20:50 +08:00
Eelco Dolstra
d8fe447139
Merge pull request #2579 from catern/dumpdb
...
nix-store: make --dump-db take a list of paths to dump
2019-02-14 13:08:02 +01:00
Eelco Dolstra
6e9182fbc2
Add basic flake lock file support
2019-02-12 22:43:22 +01:00
Eelco Dolstra
e38ec77de8
Interpret all file:// URIs as Git repositories
2019-02-12 22:06:19 +01:00
Eelco Dolstra
beab05851b
nix: Add --flake flag
...
This allows using an arbitrary "provides" attribute from the specified
flake. For example:
nix build --flake nixpkgs packages.hello
(Maybe provides.packages should be used for consistency...)
2019-02-12 21:55:43 +01:00
Eelco Dolstra
272b58220d
Enforce use of immutable flakes in pure mode
...
... plus a temporary hack to allow impure flakes at top-level for the
default installation source.
2019-02-12 21:07:48 +01:00
Eelco Dolstra
ba05f29838
nix: Enable pure mode by default
...
We want to encourage a brave new world of hermetic evaluation for
source-level reproducibility, so flakes should not poke around in the
filesystem outside of their explicit dependencies.
Note that the default installation source remains impure in that it
can refer to mutable flakes, so "nix build nixpkgs.hello" still works
(and fetches the latest nixpkgs, unless it has been pinned by the
user).
A problem with pure evaluation is that builtins.currentSystem is
unavailable. For the moment, I've hard-coded "x86_64-linux" in the
nixpkgs flake. Eventually, "system" should be a flake function
argument.
2019-02-12 20:35:03 +01:00
Eelco Dolstra
91a6a47b0e
Improve flake references
2019-02-12 18:23:11 +01:00
Eelco Dolstra
7a7ec22298
Merge pull request #2628 from shlevy/context-introspection
...
Context introspection
2019-02-12 17:57:35 +01:00
Eelco Dolstra
0cd7f2cd8d
pkg-config files: Use c++17
2019-02-12 13:44:20 +01:00
Eelco Dolstra
c8a0b9d5cb
experimental/optional -> optional
2019-02-12 13:43:32 +01:00
Eelco Dolstra
52419f8db3
Add flake registry
...
This will eventually be moved to nixos.org.
2019-02-11 13:01:39 +01:00
Eelco Dolstra
dcae46ab14
Add github URIs
...
For example, github:edolstra/dwarffs is more-or-less equivalent to
https://github.com/edolstra/dwarffs.git . It's a much faster way to get
GitHub repositories: it fetches tarballs rather than entire Git
repositories. It also allows fetching specific revisions by hash
without specifying a ref (e.g. a branch name):
github:edolstra/dwarffs/41c0c1bf292ea3ac3858ff393b49ca1123dbd553
2019-02-11 12:05:17 +01:00
Eelco Dolstra
ef4cf4e681
Introduce flake URIs
2019-02-11 12:05:13 +01:00
Eelco Dolstra
7a5cf31060
Initial flake support
2019-02-11 12:00:13 +01:00
Eelco Dolstra
f216c76c56
Bindings::get(): Add convenience method
...
This allows writing attribute lookups as
if (auto name = value.attrs->get(state.sName))
...
2019-02-11 11:55:35 +01:00
Eelco Dolstra
c02da99757
EvalState::allocAttr(): Add convenience method
2019-02-11 11:55:29 +01:00
Eelco Dolstra
f70434b1fb
Move Command and MultiCommand to libutil
2019-02-11 11:55:25 +01:00
Eelco Dolstra
15a16e5c05
MultiCommand: Simplify construction
2019-02-11 11:55:22 +01:00