about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2018-02-15 Set backup MANPATH in case man path isn’t set correctly.Matthew Bauer3-0/+5
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-13 Enable specifying directories in plugin-files.Shea Levy1-6/+18
2018-02-13 Merge branch 'plugins' of https://github.com/shlevy/nixEelco Dolstra3-0/+25
2018-02-12 Fix hang in build-remoteEelco Dolstra2-1/+3
2018-02-12 Fix 'deadlock: trying to re-acquire self-held lock'Eelco Dolstra4-22/+24
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-09 nix: Ensure that the user sees errors from substitutersEelco Dolstra1-3/+3
2018-02-09 getDefaultSubstituters(): Skip broken substitutersEelco Dolstra1-1/+5
Fixes #1340.
2018-02-08 Add plugins to make Nix more extensible.Shea Levy3-0/+25
All plugins in plugin-files will be dlopened, allowing them to statically construct instances of the various Register* types Nix supports.
2018-02-07 move the parallel-compression setting to binary-cache-store, the settingAmineChikhaoui3-4/+3
can be done now from the url e.g s3://nix-cache?parallel-compression=1 instead of nix.conf.
2018-02-07 make multi threaded compression configurable and use single threadedAmineChikhaoui2-1/+4
by default.
2018-02-07 Improve filtering of ANSI escape sequences in build logsEelco Dolstra1-1/+1
All ANSI sequences except color setting are now filtered out. In particular, terminal resets (such as from NixOS VM tests) are filtered out. Also, fix the completely broken tab character handling.
2018-02-07 Merge pull request #1816 from shlevy/add-pathEelco Dolstra2-6/+5
Add path primop.
2018-02-06 Add path primop.Shea Levy2-6/+5
builtins.path allows specifying the name of a path (which makes paths with store-illegal names now addable), allows adding paths with flat instead of recursive hashes, allows specifying a filter (so is a generalization of filterSource), and allows specifying an expected hash (enabling safe path adding in pure mode).
2018-02-05 Allow substituters to be marked as trustedEelco Dolstra2-2/+7
This is needed by nixos-install, which uses the Nix store on the installation CD as a substituter. We don't want to disable signature checking entirely because substitutes from cache.nixos.org should still be checked. So now we can pas "local?trusted=1" to mark only the Nix store in /nix as not requiring signatures. Fixes #1819.
2018-02-05 Fix segfault using non-binary cache stores as substitutersEelco Dolstra1-1/+1
2018-02-03 Remove nix-build --hashEelco Dolstra2-21/+28
Instead, if a fixed-output derivation produces has an incorrect output hash, we now unconditionally move the outputs to the path corresponding with the actual hash and register it as valid. Thus, after correcting the hash in the Nix expression (e.g. in a fetchurl call), the fixed-output derivation doesn't have to be built again. It would still be good to have a command for reporting the actual hash of a fixed-output derivation (instead of throwing an error), but "nix-build --hash" didn't do that.
2018-02-01 Merge branch 'master' of git://github.com/catern/nixShea Levy1-0/+3
2018-02-01 Remove obsolete references to manifestsEelco Dolstra1-3/+1
Closes #323.
2018-01-31 document ability to set NIX_REMOTE=unix://path/to/socketSpencer Baugh1-0/+3
2018-01-31 Merge pull request #1801 from catern/masterEelco Dolstra2-2/+26
remote_store: register for NIX_REMOTE=unix://path
2018-01-31 Fix building without aws-sdk-cppEelco Dolstra1-4/+5
2018-01-31 Rename 1.12 -> 2.0Eelco Dolstra1-1/+1
Following discussion with Shea and Graham. It's a big enough change from the last release. Also, from a semver perspective, 2.0 makes more sense because we did remove some interfaces (like nix-pull/nix-push).
2018-01-31 CleanupEelco Dolstra2-5/+6
2018-01-31 Merge branch 'http-binary-cache-put-upsert' of https://github.com/adelbertc/nixEelco Dolstra3-4/+38
2018-01-31 Indent properlyEelco Dolstra1-3/+3
2018-01-26 remote_store: register for NIX_REMOTE=unix://pathSpencer Baugh2-2/+26
This allows overriding the socket path so the daemon may be listening at an arbitrary Unix domain socket location. Fixes #1800
2018-01-26 HttpBinaryCacheStore: Support upsertFile with PUT.Shea Levy3-4/+38
Some servers, such as Artifactory, allow uploading with PUT and BASIC auth. This allows nix copy to work to upload binaries to those servers. Worked on together with @adelbertc
2018-01-26 Remove signed-binary-caches as the default for require-sigsEelco Dolstra1-4/+1
This was for backward compatibility. However, with security-related configuration settings, it's best not to have any confusion. Issue #495.
2018-01-23 Fix obscure corner case in name resolution for builtin:fetchurl in sandboxed ↵Dan Peebles1-0/+17
environments
2018-01-19 Rewrite builtin derivation environmentEelco Dolstra1-1/+6
Also add a test. Fixes #1803. Closes #1805.
2018-01-19 Don't retry CURLE_URL_MALFORMATEelco Dolstra1-0/+1
2018-01-16 Make show-trace a config settingEelco Dolstra1-1/+2
2018-01-16 Add pure evaluation modeEelco Dolstra1-0/+3
In this mode, the following restrictions apply: * The builtins currentTime, currentSystem and storePath throw an error. * $NIX_PATH and -I are ignored. * fetchGit and fetchMercurial require a revision hash. * fetchurl and fetchTarball require a sha256 attribute. * No file system access is allowed outside of the paths returned by fetch{Git,Mercurial,url,Tarball}. Thus 'nix build -f ./foo.nix' is not allowed. Thus, the evaluation result is completely reproducible from the command line arguments. E.g. nix build --pure-eval '( let nix = fetchGit { url = https://github.com/NixOS/nixpkgs.git; rev = "9c927de4b179a6dd210dd88d34bda8af4b575680"; }; nixpkgs = fetchGit { url = https://github.com/NixOS/nixpkgs.git; ref = "release-17.09"; rev = "66b4de79e3841530e6d9c6baf98702aa1f7124e4"; }; in (import (nix + "/release.nix") { inherit nix nixpkgs; }).build.x86_64-linux )' The goal is to enable completely reproducible and traceable evaluation. For example, a NixOS configuration could be fully described by a single Git commit hash. 'nixos-rebuild' would do something like nix build --pure-eval '( (import (fetchGit { url = file:///my-nixos-config; rev = "..."; })).system ') where the Git repository /my-nixos-config would use further fetchGit calls or Git externals to fetch Nixpkgs and whatever other dependencies it has. Either way, the commit hash would uniquely identify the NixOS configuration and allow it to reproduced.
2018-01-15 Barf when using a diverted store on macOSEelco Dolstra1-2/+7
Fixes #1792.
2018-01-12 import, builtins.readFile: Handle diverted storesEelco Dolstra1-2/+8
Fixes #1791
2018-01-09 nix.conf: builders-use-substitutesRenzo Carbonara1-0/+5
Fixes #937
2018-01-04 Rename "use-substitutes" to "substitute"Eelco Dolstra1-1/+1
Commit c2154d4c8422ddc1c201d503bb52edff854af2ad renamed "build-use-substitutes" to "use-substitutes", but that broke "nix-copy-closure --use-substitutes".
2017-12-22 Check aws-sdk-cpp versionEelco Dolstra1-1/+9
2017-12-16 Fix build on gcc 7Eelco Dolstra1-0/+2
Fixes #1738.
2017-12-14 Fix build against current aws-sdk-cppEelco Dolstra1-1/+1
2017-12-12 Merge pull request #1722 from bhipple/fix-for-older-libcurlEelco Dolstra1-1/+3
Fix for builds with system libcurl < 7.30
2017-12-11 Mark comparison call operator as constWill Dietz1-2/+2
2017-12-09 Fix for builds with system libcurl < 7.30Benjamin Hipple1-1/+3
CentOS 7.4 and RHEL 7.4 ship with libcurl-devel-7.29.0-42.el7.x86_64; this flag was added in 7.30.0 https://curl.haxx.se/libcurl/c/CURLMOPT_MAX_TOTAL_CONNECTIONS.html
2017-12-07 Provide random access to cached NARsEelco Dolstra5-104/+198
E.g. $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nars \ /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79/share/icons/hicolor/scalable/apps/blender.svg > /dev/null real 0m4.139s $ time nix cat-store --store https://cache.nixos.org?local-nar-cache=/tmp/nars \ /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79/share/icons/hicolor/scalable/apps/blender.svg > /dev/null real 0m0.024s (Before, the second call took ~0.220s.) This will use a NAR listing in /tmp/nars/b0w2hafndl09h64fhb86kw6bmhbmnpm1.ls containing all metadata, including the offsets of regular files inside the NAR. Thus, we don't need to read the entire NAR. (We do read the entire listing, but that's generally pretty small. We could use a SQLite DB by borrowing some more code from nixos-channel-scripts/file-cache.hh.) This is primarily useful when Hydra is serving files from an S3 binary cache, in particular when you have giant NARs. E.g. we had some 12 GiB NARs, so accessing individuals files was pretty slow.
2017-12-07 nix ls-{nar,store}: Return offset of files in the NAR if knownEelco Dolstra2-7/+10
E.g. $ nix ls-store --json --recursive --store https://cache.nixos.org /nix/store/b0w2hafndl09h64fhb86kw6bmhbmnpm1-blender-2.79 \ | jq .entries.bin.entries.blender.narOffset 400
2017-12-06 ssh-store: fix length when writing narDaiderd Jordan1-3/+3
This fixes nix copy and other things that use copyStorePath.
2017-11-28 Show log tail when a remote build failsEelco Dolstra1-2/+2
2017-11-24 nix path-info: Show URL of NARs in binary cachesEelco Dolstra1-0/+2
2017-11-21 Propagate flags like --sandbox to the daemon properlyEelco Dolstra1-3/+3
2017-11-20 signed-binary-caches -> require-sigsEelco Dolstra2-1/+6
Unlike signed-binary-caches (which could only be '*' or ''), require-sigs is a proper Boolean option. The default is true.