aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-08-06Fix reporting of HTTP body size when a result callback is usedEelco Dolstra
2018-08-03Make adding paths via nix-store --serve run in constant memoryEelco Dolstra
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-03Add a test for LegacySSHStore that doesn't require a VMEelco Dolstra
2018-08-03cmdDumpStorePath: Support chroot storesEelco Dolstra
2018-08-03Support escaping in store URIsEelco Dolstra
2018-08-03SSHMaster: Bypass SSH when connecting to localhostEelco Dolstra
This is primarily useful for testing since it removes the need to have SSH working.
2018-08-03LegacySSHStore: Add remote-store optionEelco Dolstra
This is primarily useful for testing, e.g. $ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' ...
2018-08-03Merge pull request #2327 from NixOS/grahamc-patch-1Eelco Dolstra
2.1 release notes: Add note about s3-compatible stores
2018-08-032.1 release notes: Add note about s3-compatible storesGraham Christensen
2018-08-03Add Nix 2.1 release notesEelco Dolstra
2018-08-03Merge pull request #2326 from aszlig/fix-symlink-leakEelco Dolstra
Fix symlink leak in restricted eval mode
2018-08-03Merge pull request #2323 from samueldr/feature/selective-impurityEelco Dolstra
Allows selectively adding environment variables to pure shells.
2018-08-03Fix symlink leak in restricted eval modeaszlig
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-02Allows selectively adding environment variables to pure shells.Samuel Dionne-Riel
Includes documentation and test.
2018-08-02s3 binary cache: support specifying an endpointGraham Christensen
Works for uploading and not downloading.
2018-08-02Merge pull request #2322 from samueldr/fix/removes-unused-variableEelco Dolstra
Removes unused variable from `nix-build/nix-shell`
2018-08-01Removes unused variable from `nix-build/nix-shell`Samuel Dionne-Riel
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-01Document s3 substitutionsGraham Christensen
2018-07-31Merge branch 'prim_mapAttr-fix' of https://github.com/volth/nixEelco Dolstra
2018-07-31Disable rpm_fedora27x86_64Eelco Dolstra
Fedora 27 provides an incompatible version of Boost (1.64.0).
2018-07-31Fix race downloading into a sinkEelco Dolstra
This fixes 'error 10 while decompressing xz file'. https://hydra.nixos.org/build/78308551
2018-07-31Add a check for broken Boost versionsEelco Dolstra
In some Boost versions, coroutines don't propagate exceptions properly, causing Nix to fail with the exception 'coroutine has finished'.
2018-07-31Attempt to fix the RPM buildEelco Dolstra
2018-07-31Fix RPM buildEelco Dolstra
https://hydra.nixos.org/build/73991153
2018-07-24Merge pull request #2305 from lheckemann/copy-keep-goingEelco Dolstra
copyPathsToStore: honour keep-going
2018-07-24copyPathsToStore: honour keep-goingLinus Heckemann
2018-07-23Merge pull request #2303 from volth/patch-4Eelco Dolstra
parser.y: fix assoc of -> and < > <= >=
2018-07-23parser.y: right-associativity of ->volth
2018-07-23Merge pull request #2302 from volth/patch-3Eelco Dolstra
prim_foldlStrict: call forceValue() before value is copied
2018-07-21parser.y: fix assoc of -> and < > <= >=volth
The parser allowed senseless `a > b > c` but disallowed `a -> b -> c` which seems valid It might be a typo
2018-07-21prim_foldlStrict: call forceValue() before value is copiedvolth
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-12nix-prefetch-url: Download file in constant memoryEelco Dolstra
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-11Fix build on 32-bit systems and macOSEelco Dolstra
Apparently, on macOS, 'long' != 'int64_t'. https://hydra.nixos.org/build/77100756
2018-07-11Shup up a warningEelco Dolstra
2018-07-11Remove unused function printStats2()Eelco Dolstra
Closes #2282.
2018-07-07prim_map, prim_genList: no need to force function argument which will be ↵volth
stored in mkApp
2018-07-06prim_mapAttrs: `f' must be evaluated lazily to avoid infinite recursionvolth
2018-07-06Merge pull request #2250 from dtzWill/feature/repl-progress-bar-buildsEelco Dolstra
repl: use `nix build` for building instead of `nix-store -r`
2018-07-05Merge pull request #2275 from volth/issue-1776Eelco Dolstra
[bugfix] lib.concatMap and lib.mapAttrs to be builtins
2018-07-05prim_concatMap: no need to force valuevolth
2018-07-05prim_mapAttrs: must be lazy to avoid infinite recursionvolth
2018-07-05Merge pull request #2273 from volth/issue-1776Eelco Dolstra
[wip] lib.concatMap and lib.mapAttrs to be builtins
2018-07-05prim_concatMap: allocate intermediate list on stackvolth
2018-07-05primops.cc: fix commentvolth
2018-07-05lib.concatMap and lib.mapAttrs to be builtinsvolth
2018-07-04Merge pull request #2268 from dtzWill/fix/search-ux-test-breakEelco Dolstra
tests/search.sh: minor fix to unbreak tests after search ux merge
2018-07-03tests/search.sh: minor fix to unbreak tests after search ux mergeWill Dietz
2018-07-03nix-daemon: Respect --storeEelco Dolstra
For example, this allows you to do run nix-daemon as a non-privileged user: eelco$ NIX_STATE_DIR=~/my-nix/nix/var nix-daemon --store ~/my-nix/ The NIX_STATE_DIR is still needed because settings.nixDaemonSocketFile is not derived from settings.storeUri (and we can't derive it from the store's state directory because we don't want to open the store in the parent process).
2018-07-03Include cpptoml for build simplicityEelco Dolstra
2018-07-03Add a fromTOML primopEelco Dolstra
This is primarily useful for processing Cargo.lock files.