aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
AgeCommit message (Collapse)Author
2020-07-13Fix 'nix verify --all' on a binary cache and add a testEelco Dolstra
2020-07-10Avoid a redundant hashEelco Dolstra
2020-07-10Factor out commonality between nix-prefetch-url and nix-store --add-fixedEelco Dolstra
2020-07-09LocalStore::addToStore(srcPath): Handle the flat caseEelco Dolstra
This helps nix-prefetch-url when using a local store.
2020-07-08CleanupEelco Dolstra
2020-07-08Make LocalStore::addToStore(srcPath) run in constant memoryEelco Dolstra
This reduces memory consumption of nix-instantiate \ -E 'with import <nixpkgs> {}; runCommand "foo" { src = ./blender; } "echo foo"' \ --option nar-buffer-size 10000 (where ./blender is a 1.1 GiB tree) from 1716 to 36 MiB, while still ensuring that we don't do any write I/O for small source paths (up to 'nar-buffer-size' bytes). The downside is that large paths are now always written to a temporary location in the store, even if they produce an already valid store path. Thus, adding large paths might be slower and run out of disk space. ¯\_(ツ)_/¯ Of course, you can always restore the old behaviour by setting 'nar-buffer-size' to a very high value.
2020-07-08Fix 'got unknown message type 1 from Nix daemon'Eelco Dolstra
Example: $ nix-build -E 'with import <nixpkgs> {}; runCommand "foo" { x = runCommand "bar" {} "exit 1"; } "echo foo; exit 1"' warning: unknown setting 'auto-allocate-uids' these 2 derivations will be built: /nix/store/v4fbdbhcdi949929a67g8farwf72zgam-bar.drv /nix/store/k4fsvrjl7cp2xpz7927iv7g0dqj1zyhs-foo.drv warning: unknown setting 'auto-allocate-uids' building '/nix/store/v4fbdbhcdi949929a67g8farwf72zgam-bar.drv'... error: --- Error ----------------------------------------------------------------------------------------------------------------------------------------------------------------- nix-daemon builder for '/nix/store/v4fbdbhcdi949929a67g8farwf72zgam-bar.drv' failed with exit code 1 error: --- Error ------------------------------------------------------------------------------------------------------------------------------------------------------------------ nix-build got unknown message type 1 from Nix daemon
2020-07-07exportReferencesGraph: Fix support for non-top-level store pathsEelco Dolstra
Fixes #3471.
2020-07-03Merge branch 'master' into add-traceBen Burdette
2020-07-03Shorten the path to the test rootregnat
Fix a socket length failure on the OSX builders
2020-07-02move showTrace to new loggerSettingsBen Burdette
2020-07-01CleanupEelco Dolstra
2020-07-01Merge branch 'remote-query-outputs' of https://github.com/tweag/nixEelco Dolstra
2020-06-30comments and cleanupBen Burdette
2020-06-30Merge branch 'master' into add-traceBen Burdette
2020-06-29showTrace flag in loggersBen Burdette
2020-06-29Merge pull request #3729 from obsidiansystems/simpler-hased-mirrorEelco Dolstra
hashed-mirrors: Use parsed derivation output rather than reconstructing it
2020-06-29Merge pull request #3749 from rodarima/masterEelco Dolstra
Fall back to copyPath if link fails with EPERM
2020-06-25Fix empty std::optional dereference in writeDerivation()Eelco Dolstra
https://hydra.nixos.org/build/123017579
2020-06-25Fall back to copyPath if link fails with EPERMRodrigo
BeeGFS doesn't allow hard-links and returns EPERM, so we fall back to copyPath. See https://github.com/NixOS/nix/issues/3748
2020-06-24Add a way to get all the outputs of a derivation with their labelregnat
Generalize `queryDerivationOutputNames` and `queryDerivationOutputs` by adding a `queryDerivationOutputMap` that returns the map `outputName=>outputPath` (not that this is not equivalent to merging the results of `queryDerivationOutputs` and `queryDerivationOutputNames` as sets don't preserve the order, so we would end up with an incorrect mapping). squash! Add a way to get all the outputs of a derivation with their label Rename StorePathMap to OutputPathMap
2020-06-22hashed-mirrors: Use parsed derivation output rather than reconstructing itJohn Ericson
Now the derivation outputs are parsed up front, we can avoid a reparse by doing it. Also, this just feels a bit better as the `output*` env vars are more of a `libnixexpr` interface than `libnixstore` interface: ultimately, it's the derivation outputs that decide whether the derivation is fixed-output. Yes, hashed mirrors might go away with #3689, but this bit of code would be moved rather than deleted, so it's worth doing a cleanup anyways I think.
2020-06-19More designated initializersJohn Ericson
2020-06-19Merge remote-tracking branch 'me/no-stringly-typed-derivation-output' into ↵John Ericson
validPathInfo-ca-proper-datatype
2020-06-19Remove unneeded constructor for `DerivationOutputHash`John Ericson
2020-06-19Merge remote-tracking branch 'upstream/master' into ↵John Ericson
no-stringly-typed-derivation-output
2020-06-19Use designated initializers for `DerivationOutputHash`John Ericson
2020-06-19FileSystemHash -> DerivationOutputHashJohn Ericson
2020-06-19Remove some `Base::` that crept inJohn Ericson
2020-06-18Merge branch 'validPathInfo-temp' into validPathInfo-ca-proper-datatypeJohn Ericson
2020-06-18Merge branch 'no-hash-type-unknown' into validPathInfo-tempJohn Ericson
2020-06-18Revert the `enum struct` changeJohn Ericson
Not a regular git revert as there have been many merges and things.
2020-06-18Merge branch 'enum-class' into no-hash-type-unknownJohn Ericson
2020-06-18Merge remote-tracking branch 'upstream/master' into enum-classJohn Ericson
2020-06-18Rename content-addressed-paths into ca-derivationsregnat
See <https://github.com/NixOS/nix/pull/3710#issuecomment-645480333>
2020-06-17Merge pull request #3713 from matthewbauer/cleanup-warningsEelco Dolstra
Cleanup class StorePath warning
2020-06-17Merge pull request #3712 from ↵Eelco Dolstra
obsidiansystems/make-http-successful-states-coherent Make successful states coherent
2020-06-17Remove unused narInfoFile in binary-cache-storeMatthew Bauer
2020-06-17Replace struct StorePath with class StorePathMatthew Bauer
also a similar case with struct Goal
2020-06-17Include review commentsCarlo Nucera
2020-06-17Merge pull request #3710 from tweag/reserve_ca_derivationsEelco Dolstra
Reserve the `__contentAddressed` derivation parameter
2020-06-17Merge pull request #3707 from p01arst0rm/outdated-function-fixEelco Dolstra
replaced uncaught_exception with uncaught_exceptions
2020-06-17fixup! Reserve the `__contentAddressed` derivation parameterregnat
2020-06-17Make successful states coherentCarlo Nucera
The successful states used in these two places in the code were slightly different. Should they be the same list?
2020-06-17Reserve the `__contentAddressed` derivation parameterregnat
Not implementing anything here, just throwing an error if a derivation sets `__contentAddressed = true` without `--experimental-features content-addressed-paths` (and also with it as there's nothing implemented yet)
2020-06-17Merge pull request #3657 from ↵Eelco Dolstra
obsidiansystems/sligthly-improve-store-path-documentation Clarify the description of StorePath inputs
2020-06-17Merge remote-tracking branch 'upstream/master' into ↵John Ericson
no-stringly-typed-derivation-output
2020-06-17replaced uncaught_exception with uncaught_exceptionsp01arst0rm
2020-06-16Remove StorePath::clone() and related functionsEelco Dolstra
2020-06-16StorePath: Rewrite in C++Eelco Dolstra
On nix-env -qa -f '<nixpkgs>', this reduces maximum RSS by 20970 KiB and runtime by 0.8%. This is mostly because we're not parsing the hash part as a hash anymore (just validating that it consists of base-32 characters). Also, replace storePathToHash() by StorePath::hashPart().