aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-08-23Merge pull request #6909 from ncfavier/json-pathsEelco Dolstra
JSON: print paths as strings without copying them to the store
2022-08-23Merge pull request #6887 from winterqt/specify-bashinteractive-outputsEelco Dolstra
nix-shell: specify which outputs from bashInteractive to build
2022-08-23Revert to `copyStore = true` for `nix-instantiate` and `nix-env`Naïm Favier
2022-08-22Merge pull request #6937 from edolstra/fix-replEelco Dolstra
nix repl: Stop the progress bar
2022-08-22JSON: add missing newlinesNaïm Favier
after `nix eval --json` and `nix-instantiate --eval --json`.
2022-08-22JSON: print paths as strings without copying them to the storeNaïm Favier
Makes `printValueAsJSON` not copy paths to the store for `nix eval --json`, `nix-instantiate --eval --json` and `nix-env --json`. Fixes https://github.com/NixOS/nix/issues/5612
2022-08-22Merge pull request #6926 from rapenne-s/download_limitEelco Dolstra
add a nix.conf option to set a download speed limit
2022-08-22Merge pull request #6932 from jack1142/patch-1Eelco Dolstra
Fix default profile path for root in nix profile documentation
2022-08-22nix repl: Stop the progress barEelco Dolstra
The repl was broken since c3769c68465bae971ab6bb48cfcdea85b61ea83a. In general, the progress bar is incompatible with the repl.
2022-08-22Merge pull request #6923 from ncfavier/nix-env-incomplete-jsonEelco Dolstra
Avoid producing incomplete JSON
2022-08-22SpellingEelco Dolstra
2022-08-20Better documentation wordingSolène Rapenne
Co-authored-by: Anderson Torres <torres.anderson.85@protonmail.com>
2022-08-20Fix default profile path for root in nix profile documentationJakub Kuczys
2022-08-19add a nix.conf option to set a download speed limitSolene Rapenne
2022-08-19don't read outputs into memory for output rewritingpennae
RewritingSink can handle being fed input where a reference crosses a chunk boundary. we don't need to load the whole source into memory, and in fact *not* loading the whole source lets nix build FODs that do not fit into memory (eg fetchurl'ing data files larger than system memory).
2022-08-19nix-env: don't output incomplete JSONNaïm Favier
2022-08-19json: write null on abnormal placeholder destructionNaïm Favier
Avoids leaving dangling attributes like { "foo": } in case of exceptions.
2022-08-17Don't pass --force to 'git add'Eelco Dolstra
Fixes #5810.
2022-08-17Remove warnLargeDump()Eelco Dolstra
This message was unhelpful (#1184) and probably misleading since memory is O(1) in most cases now.
2022-08-17ProgressBar: Delay before showing a new activityEelco Dolstra
Some activities are numerous but usually very short (e.g. copying a source file to the store) which would cause a lot of flickering. So only show activities that have been running for at least 10 ms.
2022-08-17nix flake metadata: Don't show "Inputs" if there are no inputsEelco Dolstra
2022-08-17Show when we're evaluating a flakeEelco Dolstra
2022-08-10docfix: bundlersDavid Arnold
2022-08-10Merge pull request #6850 from NinjaTrappeur/nin/build-checkThéophane Hufschmitt
Fix Nix build --check flag
2022-08-09nix-shell: specify which outputs from bashInteractive to buildWinter
2022-08-08Merge remote-tracking branch 'upstream/master' into ↵Théophane Hufschmitt
fix-mv-in-different-filesystems
2022-08-08Remove the explicit `c++fs` linkage on darwinThéophane Hufschmitt
Doesn't seem needed on a recent-enough clang anymore (and even seems to break stuff)
2022-08-07Do not spam logs if the owned-homedir check results in a noopDave Nicponski
2022-08-04docs/flake-update: fix exampleErik Arvstedt
2022-08-04libexpr/flake: remove `FIXME`Erik Arvstedt
Line 593 checks that all overrides (i.e. all elements of `lockFlags.inputOverrides`) are members of `overridesUsed`.
2022-08-04flakeref: fix commentErik Arvstedt
2022-08-03Fix NIX_COUNT_CALLS=1Eelco Dolstra
Also, make the JSON writer support std::string_view. Fixes #6857.
2022-08-03Make `moveFile` more atomicThéophane Hufschmitt
Rather than directly copying the source to its dest, copy it first to a temporary location, and eventually move that temporary. That way, the move is at least atomic from the point-of-view of the destination
2022-08-03Only use `renameFile` where neededThéophane Hufschmitt
In most places the fallback to copying isn’t needed and can actually be bad, so we’d rather not transparently fallback
2022-08-03moveFile -> renameFileThéophane Hufschmitt
`move` tends to have this `mv` connotation of “I will copy it for you if needs be”
2022-08-03Link against c++fs on darwinThéophane Hufschmitt
Required by the old clang version
2022-08-03Re-implement the recursive directory copyThéophane Hufschmitt
The recursive copy from the stl doesn’t exactly do what we need because 1. It doesn’t delete things as we go 2. It doesn’t keep the mtime, which change the nars So re-implement it ourselves. A bit dull, but that way we have what we want
2022-08-03rename: Fallback to a copy if the filesystems mismatchThéophane Hufschmitt
In `nix::rename`, if the call to `rename` fails with `EXDEV` (failure because the source and the destination are in a different filesystems) switch to copying and removing the source. To avoid having to re-implement the copy manually, I switched the function to use the c++17 `filesystem` library (which has a `copy` function that should do what we want). Fix #6262
2022-08-03Create a wrapper around stdlib’s `rename`Théophane Hufschmitt
Directly takes some c++ strings, and gently throws an exception on error (rather than having to inline this logic everywhere)
2022-08-03Move some fs-related functions to their own fileThéophane Hufschmitt
Unclutter `util.cc` a bit
2022-08-01derivation-goal.cc: remove bmCheck custom return branch on buildDoneFélix Baylac-Jacqué
Once a derivation goal has been completed, we check whether or not this goal was meant to be repeated to check its output. An early return branch was preventing the worker to reach that repeat code branch, hence breaking the --check command (#2619). It seems like this early return branch is an artifact of a passed refactoring. As far as I can tell, buildDone's main branch also cleanup the tmp directory before returning.
2022-07-22Merge pull request #6814 from amjoseph-nixpkgs/pr/sandbox-error-messagesThéophane Hufschmitt
local-derivation-goal.cc: improve error messages when sandboxing fails
2022-07-19libstore/globals.cc: Move cgroup detection to libutilAlex Wied
2022-07-19libstore/globals.cc: Automatically set cores based on cgroup CPU limitAlex Wied
By default, Nix sets the "cores" setting to the number of CPUs which are physically present on the machine. If cgroups are used to limit the CPU and memory consumption of a large Nix build, the OOM killer may be invoked. For example, consider a GitLab CI pipeline which builds a large software package. The GitLab runner spawns a container whose CPU is limited to 4 cores and whose memory is limited to 16 GiB. If the underlying machine has 64 cores, Nix will invoke the build with -j64. In many cases, that level of parallelism will invoke the OOM killer and the build will completely fail. This change sets the default value of "cores" to be ceil(cpu_quota / cpu_period), with a fallback to std::thread::hardware_concurrency() if cgroups v2 is not detected.
2022-07-19local-derivation-goal.cc: save global errno to the stack before performing ↵Adam Joseph
tests which might clobber it
2022-07-19error.hh: add additional constructor with explicit errno argumentAdam Joseph
2022-07-19as requested by @thufschmitt ↵Adam Joseph
https://github.com/NixOS/nix/pull/6814#discussion_r924275777
2022-07-19change warn() to notice()Adam Joseph
2022-07-17local-derivation-goal.cc: detect unprivileged_userns_clone failure modeAdam Joseph
The workaround for "Some distros patch Linux" mentioned in local-derivation-goal.cc will not help in the `--option sandbox-fallback false` case. To provide the user more helpful guidance on how to get the sandbox working, let's check to see if the `/proc` node created by the aforementioned patch is present and configured in a way that will cause us problems. If so, give the user a suggestion for how to troubleshoot the problem.
2022-07-17local-derivation-goal.cc: add comment re: CLONE_NEWUSERAdam Joseph
local-derivation-goal.cc contains a comment stating that "Some distros patch Linux to not allow unprivileged user namespaces." Let's give a pointer to a common version of this patch for those who want more details about this failure mode.