about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2018-02-08 Allow using RegisterPrimop to define constants.Shea Levy3-2/+11
This enables plugins to add new constants, as well as new primops.
2018-02-08 Add plugins to make Nix more extensible.Shea Levy15-0/+49
All plugins in plugin-files will be dlopened, allowing them to statically construct instances of the various Register* types Nix supports.
2018-02-07 More completely fix recursive nix, unbreak testsWill Dietz1-1/+1
See: https://github.com/NixOS/nix/commit/88b5d0c8e89afefbc547b6243c5aa5a3ec8176e9#commitcomment-27406365
2018-02-07 Prevent accidental recursive NixEelco Dolstra1-1/+1
2018-02-07 Improve filtering of ANSI escape sequences in build logsEelco Dolstra5-71/+53
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 Dolstra4-25/+81
Add path primop.
2018-02-06 Add path primop.Shea Levy4-25/+81
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-06 Update the progress bar at most 20 times per secondEelco Dolstra2-14/+31
Fixes #1834.
2018-02-06 realiseContext(): Add derivation outputs to the allowed pathsEelco Dolstra1-10/+24
This makes import-from-derivation work in restricted mode again.
2018-02-06 checkURI(): Check file URIs against allowedPathsEelco Dolstra1-0/+12
This makes e.g. 'fetchGit ./.' work (assuming that ./. is an allowed path).
2018-02-05 Tweak progress bar messageEelco Dolstra1-1/+6
Say "copying" instead of "fetching" when copying from another local store. Nice for nixos-install.
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 Dolstra4-25/+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 nix-build: Ignore --indirectEelco Dolstra1-1/+1
Note that nix-build always creates indirect roots. Fixes #1830.
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 Add 'nix upgrade-nix' commandEelco Dolstra3-1/+137
This command upgrades Nix to the latest stable version by installing a store path obtained from https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix which is the same store path that the installer at https://nixos.org/nix/install.sh uses. The upgrade fails if Nix is not installed in a profile (e.g. on NixOS, or when installed outside of the Nix store).
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-24 Merge pull request #1811 from dtzWill/update/json-3.0.1Eelco Dolstra1-781/+932
nlohmann-json: 2.1.1 -> 3.0.1
2018-01-23 Fix obscure corner case in name resolution for builtin:fetchurl in sandboxed ↵Dan Peebles1-0/+17
environments
2018-01-22 nlohmann-json: 2.1.1 -> 3.0.1Will Dietz1-781/+932
2018-01-19 Don't use [[noreturn]]Eelco Dolstra1-6/+3
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-18 Don't define builtins.{currentSystem,currentTime} in pure modeEelco Dolstra1-6/+2
This makes it easier to provide a default, e.g. system = builtins.currentSystem or "x86_64-linux";
2018-01-17 nix eval: Stop progress bar before printing the resultEelco Dolstra1-0/+4
2018-01-17 nix eval: Take only one argumentEelco Dolstra1-15/+11
Thus --json no longer produces a list.
2018-01-17 TypoEelco Dolstra1-1/+1
2018-01-16 Make show-trace a config settingEelco Dolstra2-4/+2
2018-01-16 Add pure evaluation modeEelco Dolstra10-49/+110
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-16 parseExprFromFile -> evalFileEelco Dolstra1-4/+2
parseExprFromFile() should be avoided since it doesn't cache anything.
2018-01-15 Barf when using a diverted store on macOSEelco Dolstra1-2/+7
Fixes #1792.
2018-01-12 nix log: use pagerWill Dietz1-0/+1
2018-01-12 import, builtins.readFile: Handle diverted storesEelco Dolstra4-8/+33
Fixes #1791
2018-01-09 nix.conf: builders-use-substitutesRenzo Carbonara2-2/+9
Fixes #937
2018-01-09 fetchGit: fix creation of uninitialized cache dir, let git create itWill Dietz1-1/+0
fetchGit test (as modified in previous commit) now passes.
2018-01-08 Improve error message with --repair for untrusted usersEelco Dolstra1-1/+1
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".
2018-01-02 Add hasContext primopShea Levy1-0/+9
2017-12-30 use libbrotli directly when availableWill Dietz2-10/+165
* Look for both 'brotli' and 'bro' as external command, since upstream has renamed it in newer versions. If neither are found, current runtime behavior is preserved: try to find 'bro' on PATH. * Limit amount handed to BrotliEncoderCompressStream to ensure interrupts are processed in a timely manner. Testing shows negligible performance impact. (Other compression sinks don't seem to require this)