about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2018-01-18 Don't define builtins.{currentSystem,currentTime} in pure modeEelco Dolstra1-6/+2
This makes it easier to provide a default, e.g. system = builtins.currentSystem or "x86_64-linux";
2018-01-17 nix eval: Stop progress bar before printing the resultEelco Dolstra1-0/+4
2018-01-17 nix eval: Take only one argumentEelco Dolstra1-15/+11
Thus --json no longer produces a list.
2018-01-17 TypoEelco Dolstra1-1/+1
2018-01-16 Make show-trace a config settingEelco Dolstra2-4/+2
2018-01-16 Add pure evaluation modeEelco Dolstra10-49/+110
In this mode, the following restrictions apply: * The builtins currentTime, currentSystem and storePath throw an error. * $NIX_PATH and -I are ignored. * fetchGit and fetchMercurial require a revision hash. * fetchurl and fetchTarball require a sha256 attribute. * No file system access is allowed outside of the paths returned by fetch{Git,Mercurial,url,Tarball}. Thus 'nix build -f ./foo.nix' is not allowed. Thus, the evaluation result is completely reproducible from the command line arguments. E.g. nix build --pure-eval '( let nix = fetchGit { url = https://github.com/NixOS/nixpkgs.git; rev = "9c927de4b179a6dd210dd88d34bda8af4b575680"; }; nixpkgs = fetchGit { url = https://github.com/NixOS/nixpkgs.git; ref = "release-17.09"; rev = "66b4de79e3841530e6d9c6baf98702aa1f7124e4"; }; in (import (nix + "/release.nix") { inherit nix nixpkgs; }).build.x86_64-linux )' The goal is to enable completely reproducible and traceable evaluation. For example, a NixOS configuration could be fully described by a single Git commit hash. 'nixos-rebuild' would do something like nix build --pure-eval '( (import (fetchGit { url = file:///my-nixos-config; rev = "..."; })).system ') where the Git repository /my-nixos-config would use further fetchGit calls or Git externals to fetch Nixpkgs and whatever other dependencies it has. Either way, the commit hash would uniquely identify the NixOS configuration and allow it to reproduced.
2018-01-16 parseExprFromFile -> evalFileEelco Dolstra1-4/+2
parseExprFromFile() should be avoided since it doesn't cache anything.
2018-01-15 Barf when using a diverted store on macOSEelco Dolstra1-2/+7
Fixes #1792.
2018-01-12 nix log: use pagerWill Dietz1-0/+1
2018-01-12 import, builtins.readFile: Handle diverted storesEelco Dolstra4-8/+33
Fixes #1791
2018-01-09 nix.conf: builders-use-substitutesRenzo Carbonara2-2/+9
Fixes #937
2018-01-09 fetchGit: fix creation of uninitialized cache dir, let git create itWill Dietz1-1/+0
fetchGit test (as modified in previous commit) now passes.
2018-01-08 Improve error message with --repair for untrusted usersEelco Dolstra1-1/+1
2018-01-04 Rename "use-substitutes" to "substitute"Eelco Dolstra1-1/+1
Commit c2154d4c8422ddc1c201d503bb52edff854af2ad renamed "build-use-substitutes" to "use-substitutes", but that broke "nix-copy-closure --use-substitutes".
2018-01-02 Add hasContext primopShea Levy1-0/+9
2017-12-30 use libbrotli directly when availableWill Dietz2-10/+165
* Look for both 'brotli' and 'bro' as external command, since upstream has renamed it in newer versions. If neither are found, current runtime behavior is preserved: try to find 'bro' on PATH. * Limit amount handed to BrotliEncoderCompressStream to ensure interrupts are processed in a timely manner. Testing shows negligible performance impact. (Other compression sinks don't seem to require this)
2017-12-27 Merge branch 'fix/issue-1757' of git://github.com/dtzWill/nixShea Levy1-1/+10
2017-12-26 nix repl: use linenoiseKeyType to differentiate ^C and ^DWill Dietz1-1/+10
Fixes #1757.
2017-12-22 fetchGit: Fix handling of local repo when not using 'master' branchWill Dietz1-1/+5
Add tests checking this behavior.
2017-12-22 Check aws-sdk-cpp versionEelco Dolstra1-1/+9
2017-12-19 linenoise.cpp: allow completions from empty inputWill Dietz1-7/+0
Fixes #1742.
2017-12-16 Fix build on gcc 7Eelco Dolstra1-0/+2
Fixes #1738.
2017-12-14 edit: Catch stoi exceptions from line number parsingBen Gamari1-1/+6
2017-12-14 json-to-value: Throw sensible error message on invalid numbersBen Gamari1-4/+10
2017-12-14 Fix build against current aws-sdk-cppEelco Dolstra1-1/+1
2017-12-12 Merge pull request #1722 from bhipple/fix-for-older-libcurlEelco Dolstra1-1/+3
Fix for builds with system libcurl < 7.30
2017-12-11 Mark comparison call operator as constWill Dietz1-2/+2
2017-12-11 logging.cc: add missing 'override'Will Dietz1-0/+1
2017-12-11 Fix forward-decl of Bindings as "class", match definition.Will Dietz1-1/+1
(appease clang -Wmismatched-tags warning)
2017-12-11 Merge branch 'feature/linenoise-ng' of git://github.com/dtzWill/nixShea Levy9-1261/+4579
2017-12-09 Fix for builds with system libcurl < 7.30Benjamin Hipple1-1/+3
CentOS 7.4 and RHEL 7.4 ship with libcurl-devel-7.29.0-42.el7.x86_64; this flag was added in 7.30.0 https://curl.haxx.se/libcurl/c/CURLMOPT_MAX_TOTAL_CONNECTIONS.html
2017-12-07 Provide random access to cached NARsEelco Dolstra5-104/+198
E.g. $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nars \ /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79/share/icons/hicolor/scalable/apps/blender.svg > /dev/null real 0m4.139s $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nars \ /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79/share/icons/hicolor/scalable/apps/blender.svg > /dev/null real 0m0.024s (Before, the second call took ~0.220s.) This will use a NAR listing in /tmp/nars/b0w2hafndl09h64fhb86kw6bmhbmnpm1.ls containing all metadata, including the offsets of regular files inside the NAR. Thus, we don't need to read the entire NAR. (We do read the entire listing, but that's generally pretty small. We could use a SQLite DB by borrowing some more code from nixos-channel-scripts/file-cache.hh.) This is primarily useful when Hydra is serving files from an S3 binary cache, in particular when you have giant NARs. E.g. we had some 12 GiB NARs, so accessing individuals files was pretty slow.
2017-12-07 nix ls-{nar,store}: Return offset of files in the NAR if knownEelco Dolstra2-7/+10
E.g. $ nix ls-store --json --recursive --store https://cache.nixos.org /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79 \ | jq .entries.bin.entries.blender.narOffset 400
2017-12-06 ssh-store: fix length when writing narDaiderd Jordan1-3/+3
This fixes nix copy and other things that use copyStorePath.
2017-12-05 Merge branch 'fetchGit-fast-revision-update'Shea Levy1-24/+35
2017-12-04 Simplify build by including nlohmann/json.hppEelco Dolstra1-0/+14723
2017-12-04 Fix #1635.Eelco Dolstra1-3/+18
2017-11-29 Fix "Unexpected EOF reading a line" errorLinus Heckemann1-2/+2
propagated-user-env-packages files in nixpkgs aren't all terminated by newlines, as buildenv expected. Now it does not require a terminating newline; note that this introduces a behaviour change: propagated user env packages may now be spread across multiple lines. However, nix 1.11.x still expects them to be on a single line so this shouldn't be used in nixpkgs for now.
2017-11-28 Show log tail when a remote build failsEelco Dolstra1-2/+2
2017-11-27 no "linenoiseFree" in linenoise-ngWill Dietz1-1/+1
2017-11-27 replace vendored linenoise with linenoise-ngWill Dietz8-1260/+4578
2017-11-25 build-remote: Fix missing log outputaszlig1-1/+1
The storeUri variable in the build-remote hook is declared very much to the start of the main function and a bunch of lines later, the same variable gets checked via hasPrefix() but it gets assigned *after* that check when the most suitable machine for the build was choosen. So I guess this was just a typo in d16fd2497374671c92cb877f9570d65783a7 and what we really want is to either checkd the prefix *after* assigning storeUri or use bestMachine->storeUri directly. I choose the latter, because the former could introduce even more regressions if the try block where the variable gets assigned terminates early. Nevertheless, the reason why the log output didn't work is because hasPrefix() checked for "ssh://" in front of storeUri, but if the storeUri isn't set correctly (or at all), we don't get the log file descriptor set up properly, leading to no log output. I've adjusted the remote-builds test to include a regression test for this, so that we can make sure we get a build output when using remote builds. In addition to that I've tested this with two of my build farms and the build logs are emitted correctly again. Signed-off-by: aszlig <aszlig@nix.build>
2017-11-24 nix path-info: Show URL of NARs in binary cachesEelco Dolstra1-0/+2
2017-11-24 nix-shell/nix-build: Support .drv files againEelco Dolstra3-2/+33
Fixes #1663. Also handle '!<output-name>' (#1694).
2017-11-24 fetchGit: Ignore tarballTtl if rev is set and not in the repo.Shea Levy1-24/+35
Fixes #1697.
2017-11-21 fetchGit/fetchMercurial: Fix directory inclusion checkEelco Dolstra2-4/+6
E.g. the existence of .gitignore would cause .git to be included.
2017-11-21 Propagate flags like --sandbox to the daemon properlyEelco Dolstra3-6/+12
2017-11-20 nix eval --raw: Use coerceToString()Eelco Dolstra1-2/+6
Thus, $ nix eval --raw '("foo")' foo $ nix eval --raw nixpkgs.hello /nix/store/1y6ckg6khrdsvll54s5spcmf3w6ka9k4-hello-2.10 $ nix eval --raw '(/etc/resolv.conf)' /nix/store/vml92ama92i8mz013nny461mlvg8mvap-resolv.conf
2017-11-20 nix run: Fix "flag '--command' requires 2 argument(s)"Eelco Dolstra1-1/+1
2017-11-20 nix run: Fix accidental removal of /nix/store existence checkEelco Dolstra1-1/+1
Parenthetical to #1686, we don't need to create a new root if we can just bind-mount on top of the existing /nix/store.