aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
AgeCommit message (Collapse)Author
2018-03-29Process --option use-case-hack properlyEelco Dolstra
Fixes https://github.com/NixOS/nix/issues/2009.
2018-03-29ValidPathInfo::isContentAddressed(): Ensure there are no referencesEelco Dolstra
2018-03-22download: improve error for hash mismatch ("store mismatch")Will Dietz
Fixes #1905
2018-03-22download.cc: fix path for cached filesWill Dietz
2018-03-22Merge branch 'fix/avoid-large-stack-buffers' of https://github.com/dtzWill/nixEelco Dolstra
2018-03-21Also make the backwards compatible case of RemoteStore::addToStore run in ↵Eelco Dolstra
constant memory Just because we can.
2018-03-21Make 'nix copy --to daemon' run in constant memoryEelco Dolstra
2018-03-21Make 'nix copy --to ssh://...' run in constant memoryEelco Dolstra
2018-03-21Make 'nix copy --from ssh://...' run in constant memoryEelco Dolstra
For instance, this reduced the memory consumption of $ nix copy --from ssh://localhost --to ~/my-nix /nix/store/1n7x0yv8vq6zi90hfmian84vdhd04bgp-blender-2.79a from 632 MiB to 16 MiB.
2018-03-21LegacySSHStore: Allow overriding the path to nix-storeEelco Dolstra
2018-03-20Make <nix/buildenv.nix> a builtin builderEelco Dolstra
This avoids sandbox annoyances.
2018-03-20Move builtinFetchurl to its own fileEelco Dolstra
2018-03-20Slight simplificationEelco Dolstra
2018-03-20SSHMaster: Optionally pass -v to sshEelco Dolstra
2018-03-20Hack to get SSH error messages from build-remoteEelco Dolstra
E.g. cannot build on 'ssh://mac1': cannot connect to 'mac1': bash: nix-store: command not found cannot build on 'ssh://mac2': cannot connect to 'mac2': Host key verification failed. cannot build on 'ssh://mac3': cannot connect to 'mac3': Received disconnect from 213... port 6001:2: Too many authentication failures Authentication failed.
2018-03-16rename build-extra-platforms -> extra-platformsLinus Heckemann
also document it
2018-03-16Reduce substitution memory consumptionEelco Dolstra
copyStorePath() now pipes the output of srcStore->narFromPath() directly into dstStore->addToStore(). The sink used by the former is converted into a source usable by the latter using boost::coroutine2. This is based on [1]. This reduces the maximum resident size of $ nix build --store ~/my-nix/ /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1 --substituters file:///tmp/binary-cache-xz/ --no-require-sigs from 418592 KiB to 53416 KiB. (The previous commit also reduced the runtime from ~4.2s to ~3.4s, not sure why.) A further improvement will be to download files into a Sink. [1] https://github.com/NixOS/nix/compare/master...Mathnerd314:dump-fix-coroutine#diff-dcbcac55a634031f9cc73707da6e4b18 Issue #1969.
2018-03-16decompress(): Use a Source and SinkEelco Dolstra
This allows decompression to happen in O(1) memory.
2018-03-16Don't retry on CURLE_SSL_CACERT_BADFILEEelco Dolstra
The certificates won't get any better if we retry.
2018-03-15Merge pull request #1965 from masaeedu/masterEelco Dolstra
Wrap thread local in function for Cygwin
2018-03-14Catch more possible instances of passing NULL to memcpy.Shea Levy
Actually fixes #1976.
2018-03-14Use boost::format from the boost packageEelco Dolstra
Note that this only requires headers from boost so it doesn't add a runtime dependency. Also, use Nixpkgs 18.03.
2018-03-13TypoEelco Dolstra
2018-03-12Wrap thread local in function for CygwinAsad Saeeduddin
Fixes #1826. See #1352 for a previous instance of a similar change.
2018-03-07Fix #1957Eelco Dolstra
2018-03-06rand() -> random(), since we use srandom().Will Dietz
rand() requires we call srand() instead, but might as well use random().
2018-03-05ssh-ng: Don't forward options to the daemon.Shea Levy
This can be iterated on and currently leaves out settings we know we want to forward, but it fixes #1713 and fixes #1935 and isn't fundamentally broken like the status quo. Future changes are suggested in a comment.
2018-03-02hoist vector out of loop just in caseWill Dietz
2018-03-02don't allocate large buffers on the stackWill Dietz
2018-03-01only delete things older than current gen and update logic in doc asMatthew O'Gorman
well
2018-03-01remove unused variable and make sure to check that the currentMatthew O'Gorman
generation is not the one we are deleting
2018-03-01this updates issues that were addressed by people in prMatthew O'Gorman
2018-03-01Implement --delete-generations + flag for keeping last N number of generationsMatthew O'Gorman
2018-02-27seccomp: add 32-bit ARM on aarch64-linuxLinus Heckemann
This allows building armv[67]l-linux derivations on compatible aarch64 machines. Failure to add the architecture may result from missing hardware support, in which case we can't run 32-bit binaries and don't need to restrict them with seccomp anyway,
2018-02-27Add build-extra-platforms settingLinus Heckemann
This allows specifying additional systems that a machine is able to build for. This may apply on some armv7-capable aarch64 processors, or on systems using qemu-user with binfmt-misc to support transparent execution of foreign-arch programs. This removes the previous hard-coded assumptions about which systems are ABI-compatible with which other systems, and instead relies on the user to specify any additional platforms that they have ensured compatibility for and wish to build for locally. NixOS should probably add i686-linux on x86_64-linux systems for this setting by default.
2018-02-23Fix downloadCached() with a chroot storeEelco Dolstra
E.g. nix run --store ~/my-nix -f channel:nixos-17.03 hello -c hello This problem was mentioned in #1897.
2018-02-22Revert "Enable sandbox builds on Linux by default"Eelco Dolstra
This reverts commit ddc58e789636e1b94149c342575d92583251fbf6. https://hydra.nixos.org/eval/1435322
2018-02-22Enable sandbox builds on Linux by defaultEelco Dolstra
The overhead of sandbox builds is a problem on NixOS (since building a NixOS configuration involves a lot of small derivations) but not for typical non-NixOS use cases. So outside of NixOS we can enable it. Issue #179.
2018-02-19Fix incorrect (and unnecessary) format stringEelco Dolstra
https://hydra.nixos.org/eval/1434547#tabs-now-fail
2018-02-19Don't silently succeed seccomp setup when !HAVE_SECCOMP.Shea Levy
Running Nix with build users without seccomp on Linux is dangerous, and administrators should very explicitly opt-in to it.
2018-02-19Merge branch 'register-settings' of https://github.com/shlevy/nixEelco Dolstra
2018-02-18configure: Add a flag to disable seccomp.Shea Levy
This is needed for new arches where libseccomp support doesn't exist yet. Fixes #1878.
2018-02-15Set backup MANPATH in case man path isn’t set correctly.Matthew Bauer
Previously, this would fail at startup for non-NixOS installs: nix-env --help The fix for this is to just use "nixManDir" as the value for MANPATH when spawning "man". To test this, I’m using the following: $ nix-build release.nix -A build $ MANPATH= ./result/bin/nix-env --help Fixes #1627
2018-02-13Allow plugins to define new settings.Shea Levy
2018-02-13Enable specifying directories in plugin-files.Shea Levy
2018-02-13Merge branch 'plugins' of https://github.com/shlevy/nixEelco Dolstra
2018-02-12Fix hang in build-remoteEelco Dolstra
2018-02-12Fix 'deadlock: trying to re-acquire self-held lock'Eelco Dolstra
This was caused by derivations with 'allowSubstitutes = false'. Such derivations will be built locally. However, if there is another SubstitionGoal that has the output of the first derivation in its closure, then the path will be simultaneously built and substituted. There was a check to catch this situation (via pathIsLockedByMe()), but it no longer worked reliably because substitutions are now done in another thread. (Thus the comment 'It can't happen between here and the lockPaths() call below because we're not allowing multi-threading' was no longer valid.) The fix is to handle the path already being locked in both SubstitutionGoal and DerivationGoal.
2018-02-09nix: Ensure that the user sees errors from substitutersEelco Dolstra
2018-02-09getDefaultSubstituters(): Skip broken substitutersEelco Dolstra
Fixes #1340.