about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2017-02-13 Merge pull request #1224 from dezgeg/confighEelco Dolstra16-26/+2
Unbreak 32-bit builds by always implicitly including config.h
2017-02-13 Merge pull request #1233 from dezgeg/spliceEelco Dolstra1-2/+3
nix-daemon: Don't splice with len=SIZE_MAX
2017-02-13 nix-daemon: Don't splice with len=SIZE_MAXTuomas Tynkkynen1-2/+3
Currently, 'nix-daemon --stdio' is always failing for me, due to the splice call always failing with (on a 32-bit host): splice(0, NULL, 3, NULL, 4294967295, SPLICE_F_MOVE) = -1 EINVAL (Invalid argument) With a bit of ftracing (and luck) the problem seems to be that splice() always fails with EINVAL if the len cast as ssize_t is negative: http://lxr.free-electrons.com/source/fs/read_write.c?v=4.4#L384 So use SSIZE_MAX instead of SIZE_MAX.
2017-02-08 Include config.h implicitly with '-include config.h' in CFLAGSTuomas Tynkkynen15-25/+1
Because config.h can #define things like _FILE_OFFSET_BITS=64 and not every compilation unit includes config.h, we currently compile half of Nix with _FILE_OFFSET_BITS=64 and other half with _FILE_OFFSET_BITS unset. This causes major havoc with the Settings class on e.g. 32-bit ARM, where different compilation units disagree with the struct layout. E.g.: diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc @@ -166,6 +166,8 @@ void Settings::update() _get(useSubstitutes, "build-use-substitutes"); + fprintf(stderr, "at Settings::update(): &useSubstitutes = %p\n", &nix::settings.useSubstitutes); _get(buildUsersGroup, "build-users-group"); diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc +++ b/src/libstore/remote-store.cc @@ -138,6 +138,8 @@ void RemoteStore::initConnection(Connection & conn) void RemoteStore::setOptions(Connection & conn) { + fprintf(stderr, "at RemoteStore::setOptions(): &useSubstitutes = %p\n", &nix::settings.useSubstitutes); conn.to << wopSetOptions Gave me: at Settings::update(): &useSubstitutes = 0xb6e5c5cb at RemoteStore::setOptions(): &useSubstitutes = 0xb6e5c5c7 That was not a fun one to debug!
2017-02-08 configure.ac: We require C++14 nowTuomas Tynkkynen1-1/+1
At least in the main Makefile we have: GLOBAL_CXXFLAGS += -std=c++14 -g -Wall
2017-02-07 nix-copy-closure: Use computeFSClosure() and LegacySSHStoreEelco Dolstra1-12/+11
2017-02-07 Merge branch 'nix-copy-closure-c++' of https://github.com/shlevy/nixEelco Dolstra11-114/+98
2017-02-07 Add a LegacySSHStore that uses nix-store --serveEelco Dolstra2-0/+248
This is useful for nix-copy-closure.
2017-02-07 copyStorePath(): Don't require signatures for "trusted" storesEelco Dolstra2-0/+13
For example, SSH stores could be trusted.
2017-02-07 Provide default implementations for a couple of Store methodsEelco Dolstra4-26/+20
2017-02-07 Move SavingSourceAdapter to serialise.hhEelco Dolstra2-15/+15
2017-02-07 Remove unnecessary call to topoSortPaths()Eelco Dolstra1-3/+1
exportPaths() already does this.
2017-02-07 SSHStore: uri -> hostEelco Dolstra1-10/+12
2017-02-07 CleanupEelco Dolstra1-2/+0
2017-02-07 Remove download-via-sshEelco Dolstra4-157/+0
Replaced by SSHStore.
2017-02-07 Remove build-remote.pl.inEelco Dolstra4-279/+1
2017-02-02 exportReferencesGraph: Only export in JSON format when in structured modeEelco Dolstra1-10/+16
This prevents breaking compatibility with builders that read "closure.*", since they would accidentally pick up the new JSON files.
2017-02-01 Restore default signal handling in child processesEelco Dolstra7-35/+33
In particular, this fixes Ctrl-C in nix-shell sessions.
2017-01-27 release.nix: Drop nix-shell referencesEelco Dolstra1-2/+3
2017-01-27 Periodically purge binary-cache.sqliteEelco Dolstra2-1/+31
2017-01-27 Implement TTL for binary cache lookupsEelco Dolstra1-5/+10
2017-01-27 Remove unused NARExistence tableEelco Dolstra1-10/+0
2017-01-26 exportReferencesGraph: Export more complete info in JSON formatEelco Dolstra4-50/+90
This writes info about every path in the closure in the same format as ‘nix path-info --json’. Thus it also includes NAR hashes and sizes. Example: [ { "path": "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10", "narHash": "sha256:0ckdc4z20kkmpqdilx0wl6cricxv90lh85xpv2qljppcmz6vzcxl", "narSize": 197648, "references": [ "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10", "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24" ], "closureSize": 20939776 }, { "path": "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24", "narHash": "sha256:1nfn3m3p98y1c0kd0brp80dn9n5mycwgrk183j17rajya0h7gax3", "narSize": 20742128, "references": [ "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24" ], "closureSize": 20742128 } ] Fixes #1134.
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-25 Merge pull request #1202 from trofi/no-bsddiff_compat_includeDomen Kožar1-1/+0
Makefile.config.in: drop unused bsddiff_compat_include
2017-01-25 Merge pull request #1199 from NixOS/osx-minimal-versionDomen Kožar1-0/+7
Bail out if MacOS 10.9 or lower is used during installer
2017-01-25 bail out if macOS 10.9 or lower is used during installerDomen Kožar1-0/+7
2017-01-24 Makefile.config.in: drop unused bsddiff_compat_includeSergei Trofimovich1-1/+0
bsddiff_compat_include configure.ac substitution was removed in commit 16d9c872e41eb39248d88a3ba7c5706267676153 Signed-off-by: Sergei Trofimovich <siarheit@google.com>
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-24 shell.nix: Add a flag for using clangEelco Dolstra1-1/+3
2017-01-20 nix-copy-closure: Implement in C++.Shea Levy11-116/+101
Tests fail currently because the database is not given proper hashes in the VM
2017-01-19 Merge pull request #981 from shlevy/build-remote-c++Eelco Dolstra12-30/+334
build-remote: Implement in C++
2017-01-19 Kill builds when we get EOF on the log FDEelco Dolstra6-40/+40
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