about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2018-08-13 dirOf: allow use on non-absolute pathsLinus Heckemann2-2/+2
2018-08-10 Slightly questionable workaround for #2342Eelco Dolstra1-1/+1
2018-08-09 S3BinaryCacheStore: Share TransferManagerEelco Dolstra1-18/+24
TransferManager allocates a lot of memory (50 MiB by default), and it might leak but I'm not sure about that. In any case it was causing OOMs in hydra-queue-runner. So allocate only one TransferManager per S3BinaryCacheStore. Hopefully fixes https://github.com/NixOS/hydra/issues/586.
2018-08-09 nix run: Respect propagated-user-env-packagesEelco Dolstra1-2/+21
Also, add $path/bin to $PATH even if it doesn't exist. This makes 'man' work properly (since it looks for ../share/man relative to $PATH entries).
2018-08-08 S3BinaryCacheStore: Don't use the transfer status callbackEelco Dolstra1-24/+13
This callback is executed on a different thread, so exceptions thrown from the callback are not caught: Aug 08 16:25:48 chef hydra-queue-runner[11967]: terminate called after throwing an instance of 'nix::Error' Aug 08 16:25:48 chef hydra-queue-runner[11967]: what(): AWS error: failed to upload 's3://nix-cache/19dbddlfb0vp68g68y19p9fswrgl0bg7.ls' Therefore, just check the transfer status after it completes. Also include the S3 error message in the exception.
2018-08-06 Merge pull request #2334 from dtzWill/fix/revert-progress-bar-refresh-for-nowEelco Dolstra1-3/+2
Revert "progress-bar: re-draw last update if nothing new for 1sec."
2018-08-06 DohEelco Dolstra1-1/+1
2018-08-06 Fix setting Content-Encoding in S3 uploadsEelco Dolstra2-8/+11
Fixes https://github.com/NixOS/nix/issues/2333 and https://github.com/NixOS/nixpkgs/issues/44337.
2018-08-06 Fix Brotli decompression in 'nix log'Eelco Dolstra7-381/+309
This didn't work anymore since decompression was only done in the non-coroutine case. Decompressors are now sinks, just like compressors. Also fixed a bug in bzip2 API handling (we have to handle BZ_RUN_OK rather than BZ_OK), which we didn't notice because there was a missing 'throw': if (ret != BZ_OK) CompressionError("error while compressing bzip2 file");
2018-08-06 Require libbrotliEelco Dolstra5-65/+3
2018-08-06 Fix reporting of HTTP body size when a result callback is usedEelco Dolstra2-1/+5
2018-08-03 Make adding paths via nix-store --serve run in constant memoryEelco Dolstra4-15/+70
It adds a new operation, cmdAddToStoreNar, that does the same thing as the corresponding nix-daemon operation, i.e. call addToStore(). This replaces cmdImportPaths, which has the major issue that it sends the NAR first and the store path second, thus requiring us to store the incoming NAR either in memory or on disk until we decide what to do with it. For example, this reduces the memory usage of $ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' /nix/store/95cwv4q54dc6giaqv6q6p4r02ia2km35-blender-2.79 from 267 MiB to 12 MiB. Probably fixes #1988.
2018-08-03 Add a test for LegacySSHStore that doesn't require a VMEelco Dolstra2-1/+22
2018-08-03 cmdDumpStorePath: Support chroot storesEelco Dolstra1-1/+1
2018-08-03 Support escaping in store URIsEelco Dolstra1-2/+18
2018-08-03 SSHMaster: Bypass SSH when connecting to localhostEelco Dolstra2-7/+16
This is primarily useful for testing since it removes the need to have SSH working.
2018-08-03 LegacySSHStore: Add remote-store optionEelco Dolstra1-1/+4
This is primarily useful for testing, e.g. $ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' ...
2018-08-03 Merge pull request #2327 from NixOS/grahamc-patch-1Eelco Dolstra1-0/+6
2.1 release notes: Add note about s3-compatible stores
2018-08-03 2.1 release notes: Add note about s3-compatible storesGraham Christensen1-0/+6
2018-08-03 Add Nix 2.1 release notesEelco Dolstra2-0/+48
2018-08-03 Merge pull request #2326 from aszlig/fix-symlink-leakEelco Dolstra2-4/+21
Fix symlink leak in restricted eval mode
2018-08-03 Merge pull request #2323 from samueldr/feature/selective-impurityEelco Dolstra3-1/+21
Allows selectively adding environment variables to pure shells.
2018-08-03 Fix symlink leak in restricted eval modeaszlig2-4/+21
In EvalState::checkSourcePath, the path is checked against the list of allowed paths first and later it's checked again *after* resolving symlinks. The resolving of the symlinks is done via canonPath, which also strips out "../" and "./". However after the canonicalisation the error message pointing out that the path is not allowed prints the symlink target in the error message. Even if we'd suppress the message, symlink targets could still be leaked if the symlink target doesn't exist (in this case the error is thrown in canonPath). So instead, we now do canonPath() without symlink resolving first before even checking against the list of allowed paths and then later do the symlink resolving and checking the allowed paths again. The first call to canonPath() should get rid of all the "../" and "./", so in theory the only way to leak a symlink if the attacker is able to put a symlink in one of the paths allowed by restricted evaluation mode. For the latter I don't think this is part of the threat model, because if the attacker can write to that path, the attack vector is even larger. Signed-off-by: aszlig <aszlig@nix.build>
2018-08-02 Allows selectively adding environment variables to pure shells.Samuel Dionne-Riel3-1/+21
Includes documentation and test.
2018-08-02 s3 binary cache: support specifying an endpointGraham Christensen5-8/+33
Works for uploading and not downloading.
2018-08-02 Merge pull request #2322 from samueldr/fix/removes-unused-variableEelco Dolstra1-1/+0
Removes unused variable from `nix-build/nix-shell`
2018-08-01 Removes unused variable from `nix-build/nix-shell`Samuel Dionne-Riel1-1/+0
This particular `shell` variable wasn't used, since a new one was declared in the only side of the `if` branch that used a `shell` variable. It could realistically confuse developers thinking it could use `$SHELL` under some situations.
2018-08-01 Document s3 substitutionsGraham Christensen2-0/+143
2018-07-31 Merge branch 'prim_mapAttr-fix' of https://github.com/volth/nixEelco Dolstra2-8/+3
2018-07-31 Disable rpm_fedora27x86_64Eelco Dolstra1-1/+1
Fedora 27 provides an incompatible version of Boost (1.64.0).
2018-07-31 Fix race downloading into a sinkEelco Dolstra1-6/+8
This fixes 'error 10 while decompressing xz file'. https://hydra.nixos.org/build/78308551
2018-07-31 Add a check for broken Boost versionsEelco Dolstra1-0/+4
In some Boost versions, coroutines don't propagate exceptions properly, causing Nix to fail with the exception 'coroutine has finished'.
2018-07-31 Attempt to fix the RPM buildEelco Dolstra1-10/+10
2018-07-31 Fix RPM buildEelco Dolstra1-1/+1
https://hydra.nixos.org/build/73991153
2018-07-24 Merge pull request #2305 from lheckemann/copy-keep-goingEelco Dolstra1-2/+12
copyPathsToStore: honour keep-going
2018-07-24 copyPathsToStore: honour keep-goingLinus Heckemann1-2/+12
2018-07-23 Merge pull request #2303 from volth/patch-4Eelco Dolstra1-2/+2
parser.y: fix assoc of -> and < > <= >=
2018-07-23 parser.y: right-associativity of ->volth1-1/+1
2018-07-23 Merge pull request #2302 from volth/patch-3Eelco Dolstra1-6/+7
prim_foldlStrict: call forceValue() before value is copied
2018-07-21 parser.y: fix assoc of -> and < > <= >=volth1-2/+2
The parser allowed senseless `a > b > c` but disallowed `a -> b -> c` which seems valid It might be a typo
2018-07-21 prim_foldlStrict: call forceValue() before value is copiedvolth1-6/+7
forceValue() were called after a value is copied effectively forcing only one of the copies keeping another copy not evaluated. This resulted in its evaluation of the same lazy value more than once (the number of hits is not big though)
2018-07-19 Revert "progress-bar: re-draw last update if nothing new for 1sec."Will Dietz1-3/+2
Not ready for this yet, causes the prompt to disappear in nix repl and more generally can overwrite non-progress-bar messages. This reverts commit 44de71a39624d86d6744062ee36f57170024c9a0.
2018-07-12 nix-prefetch-url: Download file in constant memoryEelco Dolstra1-7/+17
Before: $ command time nix-prefetch-url https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.6.tar.xz 1.19user 1.02system 0:41.96elapsed 5%CPU (0avgtext+0avgdata 182720maxresident)k After: 1.38user 1.05system 0:39.73elapsed 6%CPU (0avgtext+0avgdata 16204maxresident)k Note however that addToStore() can still take a lot of memory (e.g. RemoteStore::addToStore() is constant space, but LocalStore::addToStore() isn't; that's fixed by https://github.com/edolstra/nix/commit/c94b4fc7ee0c7b322a5f3c7ee784063b47a11d98 though). Fixes #1400.
2018-07-11 Fix build on 32-bit systems and macOSEelco Dolstra1-1/+1
Apparently, on macOS, 'long' != 'int64_t'. https://hydra.nixos.org/build/77100756
2018-07-11 Shup up a warningEelco Dolstra1-1/+1
2018-07-11 Remove unused function printStats2()Eelco Dolstra2-15/+0
Closes #2282.
2018-07-07 prim_map, prim_genList: no need to force function argument which will be ↵volth1-2/+0
stored in mkApp
2018-07-06 prim_mapAttrs: `f' must be evaluated lazily to avoid infinite recursionvolth2-6/+3
2018-07-06 Merge pull request #2250 from dtzWill/feature/repl-progress-bar-buildsEelco Dolstra1-1/+1
repl: use `nix build` for building instead of `nix-store -r`
2018-07-05 Merge pull request #2275 from volth/issue-1776Eelco Dolstra1-5/+5
[bugfix] lib.concatMap and lib.mapAttrs to be builtins