aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-02build: add tests for --check status codesDaiderd Jordan
2019-07-02build: use binary mask for build status flagsDaiderd Jordan
If multiple builds with fail with different errors it will be reflected in the status code. eg. 103 => timeout + hash mismatch 105 => timeout + check mismatch 106 => hash mismatch + check mismatch 107 => timeout + hash mismatch + check mismatch
2019-07-02build: add exit code for hash and check mismatchesDaiderd Jordan
Makes it easier to identify the failure reason in other tooling, eg. differentiate between a non-deterministic --check vs a failed build. $ nix-build '<nix/fetchurl.nix>' --argstr url http://example.org --argstr sha256 0000000000000000000000000000000000000000000000000000 hash mismatch in fixed-output derivation '/nix/store/nzi9ck45rwlxzcwr25is7qlf3hs5xl83-example.org': wanted: sha256:0000000000000000000000000000000000000000000000000000 got: sha256:08y4734bm2zahw75b16bcmcg587vvyvh0n11gwiyir70divwp1rm $ echo $? 102 $ nix-build -E 'with import <nixpkgs> {}; runCommand "foo" {} "date +%s > $out"' --check warning: rewriting hashes in '/nix/store/g3k47g0399fvjmbm0p0mnad74k4w8vkz-foo'; cross fingers error: derivation '/nix/store/mggc8dz13ackb49qca6m23zq4fpq132q-foo.drv' may not be deterministic: output '/nix/store/g3k47g0399fvjmbm0p0mnad74k4w8vkz-foo' differs $ echo $? 104
2019-06-28Merge pull request #2977 from aniketd/2971-cannot-disable-http2Eelco Dolstra
Fix `http2 = false` having no effect.
2019-06-28Fix `http2 = false` having no effect. Fixes #2971.Aniket Deshpande
Setting `http2 = false` in nix config (e.g. /etc/nix/nix.conf) had no effect, and `nix-env -vvvvv -i hello` still downloaded .nar packages using HTTP/2. In `src/libstore/download.cc`, the `CURL_HTTP_VERSION_2TLS` option was being explicitly set when `downloadSettings.enableHttp2` was `true`, but, `CURL_HTTP_VERSION_1_1` option was not being explicitly set when `downloadSettings.enableHttp2` was `false`. This may be because `https://curl.haxx.se/libcurl/c/libcurl-env.html` states: "You have to set this option if you want to use libcurl's HTTP/2 support." but, also, in the changelog, states: "DEFAULT Since curl 7.62.0: CURL_HTTP_VERSION_2TLS Before that: CURL_HTTP_VERSION_1_1" So, the default setting for `libcurl` is HTTP/2 for version >= 7.62.0. In this commit, option `CURLOPT_HTTP_VERSION` is explicitly set to `CURL_HTTP_VERSION_1_1` when `downloadSettings.enableHttp2` nix config setting is `false`. This can be tested by running `nix-env -vvvvv -i hello | grep HTTP`
2019-06-28Fix macOS build failureEelco Dolstra
Issue #2976.
2019-06-25ProgressBar: Fix updatingEelco Dolstra
'updateCV.notify_one()' does nothing if the update thread is not waiting for updateCV (in particular this happens when it is sleeping on quitCV). So also set a variable to ensure that the update isn't lost.
2019-06-25nix-channel: Don't fetch binary-cache-urlEelco Dolstra
This has been ignored since the Perl->C++ rewrite.
2019-06-25Automatically use --no-net if there are no network interfacesEelco Dolstra
(cherry picked from commit 04a59769963fe2a28d10ba15de743fe499333c80)
2019-06-25Add "warning" verbosity levelEelco Dolstra
This ensures that "nix" shows warnings. Previously these were hidden because they were at "info" level. (cherry picked from commit 615a9d031d22a6aee64f8511e15685e47b6f8796)
2019-06-24Fix 32-bit overflow with --no-netEelco Dolstra
--no-net causes tarballTtl to be set to the largest 32-bit integer, which causes comparison like 'time + tarballTtl < other_time' to fail on 32-bit systems. So cast them to 64-bit first. https://hydra.nixos.org/build/95076624 (cherry picked from commit 29ccb2e9697ee2184012dd13854e487928ae4441)
2019-06-24Refactor downloadCached() interfaceEelco Dolstra
(cherry picked from commit df3f5a78d5ab0a1f2dc9d288b271b38a9b8b33b5)
2019-06-24Add '--no-net' convenience flagEelco Dolstra
This flag * Disables substituters. * Sets the tarball-ttl to infinity (ensuring e.g. that the flake registry and any downloaded flakes are considered current). * Disables retrying downloads and sets the connection timeout to the minimum. (So it doesn't completely disable downloads at the moment.) (cherry picked from commit 8ea842260b4fd93315d35c5ba94b1ff99ab391d8)
2019-06-24Fix 'error 9 while decompressing xz file'Eelco Dolstra
Once we've started writing data to a Sink, we can't restart a download request, because then we end up writing duplicate data to the Sink. Therefore we shouldn't handle retries in Downloader but at a higher level (in particular, in copyStorePath()). Fixes #2952. (cherry picked from commit a67cf5a3585c41dd9f219a2c7aa9cf67fa69520b)
2019-06-24Downloader: Propagate exceptions from decompressionSink->finish()Eelco Dolstra
(cherry picked from commit 15fa70cd1b853f5e62662b99ccb9ef3da6cfadff)
2019-06-24CachedDownloadResult: Include store pathEelco Dolstra
Also, make fetchGit and fetchMercurial update allowedPaths properly. (Maybe the evaluator, rather than the caller of the evaluator, should apply toRealPath(), but that's a bigger change.) (cherry picked from commit 5c34d665386f4053d666b0899ecca0639e500fbd)
2019-06-24downloadCached: Return ETagEelco Dolstra
(cherry picked from commit 529add316c5356a8060c35f987643b7bf5c796dc)
2019-06-24Fix abort in fromTOMLEelco Dolstra
Fixes #2969.
2019-06-24Add more fromTOML testsEelco Dolstra
2019-06-20Merge pull request #2963 from backuitist/s3-sdkEelco Dolstra
Nix uses the CPP SDK, not Java
2019-06-20Nix uses the CPP SDK, not JavaBruno Bieth
2019-06-17Merge pull request #2878 from NixOS/run-in-ptsEelco Dolstra
Run builds in a pseudo-terminal
2019-06-17Merge pull request #2746 from bjornfor/install-multi-user-defaultsEelco Dolstra
install-multi-user: reduce max-jobs from 32 to 1
2019-06-17Another attempt at getting pseudoterminals to work on macOSEelco Dolstra
2019-06-16Hopefully fix macOS testsEelco Dolstra
2019-06-16Set $TERMEelco Dolstra
2019-06-16Run builds in a pseudo-terminalEelco Dolstra
This allows many programs (e.g. gcc, clang, cmake) to print colorized log output (assuming $TERM is set to a value like "xterm"). There are other ways to get colors, in particular setting CLICOLOR_FORCE, but they're less widely supported and can break programs that parse tool output.
2019-06-16Style fixEelco Dolstra
2019-06-15nix: Add -L alias for --print-build-logsEelco Dolstra
2019-06-15Fix test failures when $TMPDIR changesEelco Dolstra
(cherry picked from commit c38c726eb5d447c7e9d894d57cd05ac46c173ddd)
2019-06-15nix: Support -j flagEelco Dolstra
2019-06-15Merge pull request #2931 from NinjaTrappeur/nin-add-warning-setting-untrustedGraham Christensen
Daemon: warn when an untrusted user cannot override a setting
2019-06-15Daemon: warn when an untrusted user cannot override a settingFélix Baylac-Jacqué
In a daemon-based Nix setup, some options cannot be overridden by a client unless the client's user is considered trusted. Currently, if an untrusted user tries to override one of those options, we are silently ignoring it. This can be pretty confusing in certain situations. e.g. a user thinks he disabled the sandbox when in reality he did not. We are now sending a warning message letting know the user some options have been ignored. Related to #1761.
2019-06-04Merge pull request #2918 from JorisE/patch-1Eelco Dolstra
Minor typo
2019-06-04Minor typoJorisE
2019-06-01Fix segfault in builtin fetchurl with hashed mirrors + SRI hashesEelco Dolstra
2019-06-01Merge pull request #2910 from worldofpeace/fundingEelco Dolstra
Add .github/FUNDING.yml
2019-05-31Add .github/FUNDING.ymlworldofpeace
2019-05-31Merge pull request #2905 from ln-nl/patch-1Eelco Dolstra
release-common: fix build with `config.allowAliases = false`
2019-05-30release-common: fix build with `config.allowAliases = false`ln-nl
```sh > nix build -f release.nix build.x86_64-linux error: undefined variable 'docbook5_xsl' at /vcs/nix/release-common.nix:45:7 ```
2019-05-30Merge pull request #2892 from johannes-climacus/masterEelco Dolstra
Replace `type` with `command -v` in install script
2019-05-29Replace `type` with `command -v` in install scriptJohannes Climacus
In POSIX sh, `type` is undefined. cf. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html#tag_20_22_04
2019-05-29Enable more fromTOML testsEelco Dolstra
cpptoml now parses almost all examples from the spec.
2019-05-29Fix eval-okay-fromTOML testEelco Dolstra
Turns out we were mis-parsing single-quoted attributes, e.g. 'key2'.
2019-05-29bump cpptoml to v0.1.1Ding Xiang Fei
2019-05-28Iterate over referencesEelco Dolstra
2019-05-28Merge branch 'attrPaths' of https://github.com/NinjaTrappeur/nixEelco Dolstra
2019-05-22Merge pull request #2880 from Ma27/document-optional-attrs-with-at-patternEelco Dolstra
doc: clarify that optional attrs in a function argument will be ignored unless specified
2019-05-21doc: clarify that optional attrs in a function argument will be ignored ↵Maximilian Bosch
unless specified In `args@{ a ? 1 }: /* ... */` the value `a` won't be a part of `args` unless it's specified when calling the function, the default value will be ignored in this case. My personal point of view is that this behavior is a matter of taste, at least I was pretty sure that unmatched arguments will be a part of `args@` while debugging some Nix code last week. I decided to add a warning to the docs which hopefully reduces the confusion of further Nix developers who thought the same about `args@`.
2019-05-21Merge pull request #2800 from flokli/progress-bar-hide-unknown-expectedEelco Dolstra
progress-bar: hide expected if expected is 0 (unknown)