about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2017-01-26 Add support for passing structured data to buildersEelco Dolstra4-58/+130
Previously, all derivation attributes had to be coerced into strings so that they could be passed via the environment. This is lossy (e.g. lists get flattened, necessitating configureFlags vs. configureFlagsArray, of which the latter cannot be specified as an attribute), doesn't support attribute sets at all, and has size limitations (necessitating hacks like passAsFile). This patch adds a new mode for passing attributes to builders, namely encoded as a JSON file ".attrs.json" in the current directory of the builder. This mode is activated via the special attribute __structuredAttrs = true; (The idea is that one day we can set this in stdenv.mkDerivation.) For example, stdenv.mkDerivation { __structuredAttrs = true; name = "foo"; buildInputs = [ pkgs.hello pkgs.cowsay ]; doCheck = true; hardening.format = false; } results in a ".attrs.json" file containing (sans the indentation): { "buildInputs": [], "builder": "/nix/store/ygl61ycpr2vjqrx775l1r2mw1g2rb754-bash-4.3-p48/bin/bash", "configureFlags": [ "--with-foo", "--with-bar=1 2" ], "doCheck": true, "hardening": { "format": false }, "name": "foo", "nativeBuildInputs": [ "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10", "/nix/store/4jnvjin0r6wp6cv1hdm5jbkx3vinlcvk-cowsay-3.03" ], "propagatedBuildInputs": [], "propagatedNativeBuildInputs": [], "stdenv": "/nix/store/f3hw3p8armnzy6xhd4h8s7anfjrs15n2-stdenv", "system": "x86_64-linux" } "passAsFile" is ignored in this mode because it's not needed - large strings are included directly in the JSON representation. It is up to the builder to do something with the JSON representation. For example, in bash-based builders, lists/attrsets of string values could be mapped to bash (associative) arrays.
2017-01-26 Bindings: Add a method for iterating in lexicographically sorted orderEelco Dolstra4-28/+28
2017-01-26 Fix assertion failure when a path is lockedEelco Dolstra1-0/+1
Fixes: nix-store: src/libstore/build.cc:3649: void nix::Worker::run(const Goals&): Assertion `!awake.empty()' failed.
2017-01-26 Fix interrupt handlingEelco Dolstra4-14/+42
2017-01-26 UserLock: Fix multi-threaded access to a global variableEelco Dolstra1-30/+40
2017-01-26 openLockFile: Return an AutoCloseFDEelco Dolstra3-7/+7
2017-01-26 UserLock: Make more RAII-ishEelco Dolstra1-53/+38
2017-01-26 Moving more code out of DerivationGoal::startBuilder()Eelco Dolstra1-100/+111
2017-01-26 On HTTP errors, also show the curl errorEelco Dolstra1-1/+1
This is a hopefully temporary measure to diagnose the intermittent "HTTP error 200" failures.
2017-01-26 Move exportReferencesGraph into a separate methodEelco Dolstra1-44/+55
startBuilder() is getting rather obese.
2017-01-24 Revert "Propagate path context via builtins.readFile"Eelco Dolstra1-1/+1
This reverts commit f7f0116dd727ac954fb04d9ef9b9fe7ec034e563. Issue #1174.
2017-01-24 Revert "builtins.readFile: Put the references of the file, not those needed ↵Eelco Dolstra1-3/+0
to realize the file, into the context" Reverting commit 451c223deea17918454ae083dcfc0ea2b6103cab for now because it breaks http://hydra.nixos.org/build/46805136, not clear why.
2017-01-24 Hopefully fix build on older GCCEelco Dolstra1-3/+5
http://hydra.nixos.org/build/46805140
2017-01-24 Fix typoEelco Dolstra1-1/+1
2017-01-24 Enable verbose curl outputEelco Dolstra1-1/+14
Closes #1182.
2017-01-24 build-remote: Use futimes instead of futimens on APPLEShea Levy1-0/+7
2017-01-24 Work around a bug in clang and older versions of gccEelco Dolstra1-1/+1
http://hydra.nixos.org/build/46597440 https://llvm.org/bugs/show_bug.cgi?id=28096
2017-01-19 Merge pull request #981 from shlevy/build-remote-c++Eelco Dolstra9-30/+330
build-remote: Implement in C++
2017-01-19 Kill builds when we get EOF on the log FDEelco Dolstra4-40/+27
This closes a long-time bug that allowed builds to hang Nix indefinitely (regardless of timeouts) simply by doing exec > /dev/null 2>&1; while true; do true; done Now, on EOF, we just send SIGKILL to the child to make sure it's really gone.
2017-01-19 CleanupEelco Dolstra1-5/+4
2017-01-19 Use std::unique_ptr for HookInstanceEelco Dolstra1-5/+4
2017-01-17 Handle SIGINT etc. via a sigwait() signal handler threadEelco Dolstra4-27/+100
This allows other threads to install callbacks that run in a regular, non-signal context. In particular, we can use this to signal the downloader thread to quit. Closes #1183.
2017-01-16 assign environ to a temp variable to ensure livenessJude Taylor1-3/+6
2017-01-16 AutoCloseDir: Use std::unique_ptrEelco Dolstra4-65/+20
2017-01-16 AutoDeleteArray -> std::unique_ptrEelco Dolstra4-23/+9
Also, switch to C++14 for std::make_unique.
2017-01-16 nix-build: Use showManPage() and printVersion()Eelco Dolstra1-7/+3
2017-01-10 builtins.readFile: Put the references of the file, not those needed to ↵Shea Levy1-0/+3
realize the file, into the context
2017-01-10 build-remote: Don't use C++ streams to read the conf fileShea Levy1-29/+29
2017-01-10 build-remote: Use std::set for feature setsShea Levy1-18/+14
2017-01-09 Merge pull request #1139 from Mic92/masterEelco Dolstra1-6/+2
Simplify remouting with MS_PRIVATE in sandbox build
2017-01-07 nix-shell: Fix 'nix-shell --command' doing nothing without TTYTuomas Tynkkynen1-1/+2
Regression from a5f2750e ("Fix early removal of rc-file for nix-shell"). The removal of BASH_ENV causes nothing to be executed by bash if it detects itself in a non-interactive context. Instead, just use the same condition used by bash to launch bash differently. According to bash sources, the condition (stdin and stder both must be TTYs) is specified by POSIX so this should be pretty safe to rely on. Fixes #1171 on master, needs a backport to the Perl code in 1.11.
2017-01-03 nix-shell: In #! mode, pass the last argumentEelco Dolstra1-13/+11
"i < argc - 1" should be "i < argc".
2017-01-03 nix-shell: Don't act interactive in shebangsTuomas Tynkkynen1-0/+1
I had observed that 'bash --rcfile' would do nothing in a non-interactive context and cause nothing to be executed if a script using nix-shell shebangs were run in a non-interactive context.
2017-01-03 nix-shell: Fix 'nix-shell -i'Tuomas Tynkkynen1-1/+1
The 'args' variable here is shadowing one in the outer scope and its contents end up unused. This causes any '#! nix-shell' lines to effectively be ignored. The intention here was to clear the args vector, as far as I can tell (and it seems to work).
2017-01-02 Provide /var/run/nscd/socket in the sandboxEelco Dolstra1-0/+1
Otherwise sandbox builds can fail, e.g. $ NIX_REMOTE=local?root=/tmp/nix nix-build '<nixpkgs>' -A hello --option build-use-substitutes false ... downloading ‘http://ftpmirror.gnu.org/bash/bash-4.3-patches/bash43-047’... error: unable to download ‘http://ftpmirror.gnu.org/bash/bash-4.3-patches/bash43-047’: Couldn't resolve host name (6)
2016-12-22 Call Aws::InitAPIEelco Dolstra1-1/+17
This is required now.
2016-12-22 Add commentEelco Dolstra1-1/+2
2016-12-19 Revert "Merge branch 'seccomp' of https://github.com/aszlig/nix"Eelco Dolstra2-69/+29
This reverts commit 9f3f2e21edb17dbcd674539dff96efb6cceca10c, reversing changes made to 47f587700d646f5b03a42f2fa57c28875a31efbe.
2016-12-19 Revert "Give root a valid home directory"Eelco Dolstra1-3/+3
This reverts commit ec7d498b72b0e283814c27cbc6c064496f95445d.
2016-12-15 Give root a valid home directoryEelco Dolstra1-3/+3
Some programs barf if the current user has a non-writable home directory, e.g. http://hydra.nixos.org/build/44818144.
2016-12-15 Merge branch 'master' of github.com:NixOS/nixEelco Dolstra1-1/+7
2016-12-15 Merge branch 'seccomp' of https://github.com/aszlig/nixEelco Dolstra2-29/+69
2016-12-13 Merge branch 'base32-overflow' of git://github.com/vcunat/nixShea Levy1-1/+7
2016-12-09 Probably fix a segfault in PathLocksEelco Dolstra1-37/+50
2016-12-08 Don't delete .check directories of running buildsEelco Dolstra2-2/+7
We need to keep them around for diffoscope.
2016-12-08 Fix warning on 32-bit systemsEelco Dolstra1-1/+2
http://hydra.nixos.org/build/44628517
2016-12-08 Fix buildEelco Dolstra1-2/+2
http://hydra.nixos.org/build/44628517
2016-12-08 S3BinaryCacheStore: Ensure it only builds on LinuxEelco Dolstra1-0/+2
2016-12-08 Fix S3BinaryCacheStoreEelco Dolstra4-53/+11
It failed with AWS error uploading ‘6gaxphsyhg66mz0a00qghf9nqf7majs2.ls.xz’: Unable to parse ExceptionName: MissingContentLength Message: You must provide the Content-Length HTTP header. possibly because the istringstream_nocopy introduced in 0d2ebb4373e509521f27a6e8f16bfd39d05b2188 doesn't supply the seek method that the AWS library expects. So bring back the old version, but only for S3BinaryCacheStore.
2016-12-07 Add a hook to run diffoscope when non-determinism is detectedEelco Dolstra2-7/+33