about summary refs log tree commit diff
path: root/src/libutil
AgeCommit message (Collapse)AuthorFilesLines
2017-05-01 Minor cleanupEelco Dolstra1-2/+2
2017-04-28 Hopefully fix the Darwin buildEelco Dolstra1-0/+1
http://hydra.nixos.org/build/52080911
2017-04-28 Fix hash computation when importing NARs greater than 4 GiBEelco Dolstra1-1/+1
This caused "nix-store --import" to compute an incorrect hash on NARs that don't fit in an unsigned int. The import would succeed, but "nix-store --verify-path" or subsequent exports would detect an incorrect hash. A deeper issue is that the export/import format does not contain a hash, so we can't detect such issues early. Also, I learned that -Wall does not warn about this.
2017-04-26 Add Store nesting to fix import-from-derivation within filterSourceShea Levy1-0/+16
2017-04-25 nix repl: Use $XDG_DATA_HOME for the readline historyEelco Dolstra2-0/+15
2017-04-21 add helper function to set 'interruptThrown'David McFarland2-2/+7
this fixes a linker failure on cygwin 64 due to some bad interaction between tls and shared libraries. see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64697
2017-04-20 Improve nix show-config --jsonEelco Dolstra4-38/+62
In particular, show descriptions. This could be used for manpage generation etc.
2017-04-20 Setting: Remove "Tag" template argumentEelco Dolstra2-50/+51
2017-04-20 Read per-user settings from ~/.config/nix/nix.confEelco Dolstra4-5/+35
2017-04-14 Fix 32-bit buildEelco Dolstra1-1/+3
http://hydra.nixos.org/build/51569816
2017-04-13 Convert Settings to the new config systemEelco Dolstra2-26/+100
This makes all config options self-documenting. Unknown or unparseable config settings and --option flags now cause a warning.
2017-04-13 Support arbitrary numeric types for settingsEelco Dolstra1-4/+17
2017-04-13 Validate Boolean settings betterEelco Dolstra1-1/+6
2017-04-13 Add a Config class to simplify adding configuration settingsEelco Dolstra3-0/+265
The typical use is to inherit Config and add Setting<T> members: class MyClass : private Config { Setting<int> foo{this, 123, "foo", "the number of foos to use"}; Setting<std::string> bar{this, "blabla", "bar", "the name of the bar"}; MyClass() : Config(readConfigFile("/etc/my-app.conf")) { std::cout << foo << "\n"; // will print 123 unless overriden } }; Currently, this is used by Store and its subclasses for store parameters. You now get a warning if you specify a non-existant store parameter in a store URI.
2017-04-13 canonPath(): Check against empty pathsEelco Dolstra1-0/+2
2017-04-13 Add warn functionEelco Dolstra2-1/+16
2017-04-13 Initialise loggerEelco Dolstra1-1/+1
2017-04-06 Fix bogus "unexpected Nix daemon error: interrupted by the user"Eelco Dolstra1-2/+2
2017-04-06 nix-daemon: Disable path info cacheEelco Dolstra2-3/+6
This is useless because the client also caches path info, and can cause problems for long-running clients like hydra-queue-runner (i.e. it may return cached info about paths that have been garbage-collected).
2017-03-22 Fix xz decompressionEelco Dolstra1-4/+1
Fixes #1285.
2017-03-21 LocalFSStore::getBuildLog(): Handle corrupted logsEelco Dolstra2-12/+14
2017-03-21 Don't hang in decompression if bzip2 data ends prematurelyEelco Dolstra1-0/+6
2017-03-21 Move istringstream_nocopy to a separate fileEelco Dolstra3-89/+93
2017-03-20 Merge branch 'darwin-s3-binary-cache-store' of https://github.com/shlevy/nixEelco Dolstra2-1/+88
2017-03-16 Remove "killing process <pid>" messagesEelco Dolstra2-4/+3
They convey no useful information.
2017-03-15 runProgram(): Distinguish between empty input and no inputEelco Dolstra3-12/+27
For example, if we call brotli with an empty input, it shouldn't read from the caller's stdin.
2017-03-15 S3BinaryCacheStore: Support compression of narinfo and log filesEelco Dolstra1-0/+31
You can now set the store parameter "text-compression=br" to compress textual files in the binary cache (i.e. narinfo and logs) using Brotli. This sets the Content-Encoding header; the extension of compressed files is unchanged. You can separately specify the compression of log files using "log-compression=br". This is useful when you don't want to compress narinfo files for backward compatibility.
2017-03-15 Fix assertion failure on SIGINTEelco Dolstra1-2/+0
nix: src/libutil/compression.cc:142: virtual nix::XzSink::~XzSink(): Assertion `finished' failed.
2017-03-15 Fix deadlock in runProgram() when input is larger than the pipe buffer sizeEelco Dolstra1-3/+9
2017-03-15 Add support for brotli compressionEelco Dolstra2-0/+9
Build logs on cache.nixos.org are compressed using Brotli (since this allows them to be decompressed automatically by Chrome and Firefox), so it's handy if "nix log" can decompress them.
2017-03-08 Add missing header <sstream>Adrien Devresse1-0/+1
2017-03-06 istringstream_nocopy: Implement in a standards-compliant way.Shea Levy2-1/+88
Fixes the problem mentioned in e6a61b8da788efbbbb0eb690c49434b6b5fc9741 See #1135
2017-03-06 Revert fa125b9b28bea25a4eeb4d39a71a481563127cb9Eelco Dolstra1-6/+0
This causes quadratic performance.
2017-03-03 Pool: Don't hang if creating a connection failsEelco Dolstra1-0/+1
2017-03-03 Improve SSH handlingEelco Dolstra1-1/+6
* Unify SSH code in SSHStore and LegacySSHStore. * Fix a race starting the SSH master. We now wait synchronously for the SSH master to finish starting. This prevents the SSH clients from starting their own connections. * Don't use a master if max-connections == 1. * Add a "max-connections" store parameter. * Add a "compress" store parameter.
2017-03-01 TeeSink: Pre-reserve string spaceEelco Dolstra1-0/+13
When receiving a very large file, this can prevent the string from having tobe copied, which temporarily doubles memory consumption.
2017-03-01 RemoteStore::addToStore(): Send NAR rather than string containing NAREelco Dolstra1-4/+5
This allows the NAR to be streamed in the future (though we're not doing that yet).
2017-03-01 readString(): Read directly into std::stringEelco Dolstra1-3/+3
When reading a huge string, this halves memory consumption. (Strictly speaking, this appears only valid in C++17, but who cares...)
2017-03-01 Handle importing NARs containing files greater than 4 GiBEelco Dolstra2-44/+53
Also templatize readInt() to work for various integer types.
2017-02-16 Support netrc in <nix/fetchurl.nix>Eelco Dolstra2-3/+3
This allows <nix/fetchurl.nix> to fetch private Git/Mercurial repositories, e.g. import <nix/fetchurl.nix> { url = https://edolstra@bitbucket.org/edolstra/my-private-repo/get/80a14018daed.tar.bz2; sha256 = "1mgqzn7biqkq3hf2697b0jc4wabkqhmzq2srdymjfa6sb9zb6qs7"; } where /etc/nix/netrc contains: machine bitbucket.org login edolstra password blabla... This works even when sandboxing is enabled. To do: add unpacking support (i.e. fetchzip functionality).
2017-02-14 Add support for s3:// URIsEelco Dolstra1-0/+1
This adds support for s3:// URIs in all places where Nix allows URIs, e.g. in builtins.fetchurl, builtins.fetchTarball, <nix/fetchurl.nix> and NIX_PATH. It allows fetching resources from private S3 buckets, using credentials obtained from the standard places (i.e. AWS_* environment variables, ~/.aws/credentials and the EC2 metadata server). This may not be super-useful in general, but since we already depend on aws-sdk-cpp, it's a cheap feature to add.
2017-02-08 Include config.h implicitly with '-include config.h' in CFLAGSTuomas Tynkkynen4-7/+0
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-07 Move SavingSourceAdapter to serialise.hhEelco Dolstra1-0/+15
2017-02-01 Restore default signal handling in child processesEelco Dolstra2-14/+17
In particular, this fixes Ctrl-C in nix-shell sessions.
2017-01-26 Fix interrupt handlingEelco Dolstra3-14/+33
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 Dolstra1-0/+3
build-remote: Implement in C++
2017-01-19 Kill builds when we get EOF on the log FDEelco Dolstra2-28/+16
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-17 Handle SIGINT etc. via a sigwait() signal handler threadEelco Dolstra2-5/+82
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.