Théophane Hufschmitt
d1cda07ce4
Don't use -load_all on darwin
...
That flag breaks `-lc++fs` (introducing a duplicate symbol for some
reason). Besides, it was apparently needed for bzip2, but we're not using bzip2
anymore.
2022-08-03 10:27:25 +02:00
Théophane Hufschmitt
1ba5b3e001
Make moveFile more atomic
...
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-03 10:27:25 +02:00
Théophane Hufschmitt
90f9680733
Only use renameFile where needed
...
In most places the fallback to copying isn’t needed and can actually be
bad, so we’d rather not transparently fallback
2022-08-03 10:27:25 +02:00
Théophane Hufschmitt
d71d9e9fbf
moveFile -> renameFile
...
`move` tends to have this `mv` connotation of “I will copy it for you if
needs be”
2022-08-03 10:27:25 +02:00
Théophane Hufschmitt
a4f0fd633c
Link against c++fs on darwin
...
Required by the old clang version
2022-08-03 10:27:25 +02:00
Théophane Hufschmitt and Théophane Hufschmitt
c5db1821a9
Re-implement the recursive directory copy
...
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-03 10:27:25 +02:00
Théophane Hufschmitt and Théophane Hufschmitt
6f89fb6008
rename: Fallback to a copy if the filesystems mismatch
...
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-03 10:27:25 +02:00
Théophane Hufschmitt and Théophane Hufschmitt
c2de0a232c
Create a wrapper around stdlib’s rename
...
Directly takes some c++ strings, and gently throws an exception on error
(rather than having to inline this logic everywhere)
2022-08-03 10:27:25 +02:00
Théophane Hufschmitt and Théophane Hufschmitt
8119390abc
Move some fs-related functions to their own file
...
Unclutter `util.cc` a bit
2022-08-03 10:27:25 +02:00
Jörg Thalheim and GitHub
e5b2e5676c
Merge pull request #98 from nix-community/dependabot/github_actions/DeterminateSystems/update-flake-lock-12
...
Bump DeterminateSystems/update-flake-lock from 10 to 12
2022-08-02 12:50:33 +01:00
Théophane Hufschmitt and GitHub
780a479386
Merge pull request #6851 from K900/patch-1
...
doc/distributed-builds: don't use deprecated alias
2022-08-02 07:17:09 +02:00
dependabot[bot] and GitHub
b949dc3606
Bump DeterminateSystems/update-flake-lock from 10 to 12
...
Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock ) from 10 to 12.
- [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases )
- [Commits](https://github.com/DeterminateSystems/update-flake-lock/compare/v10...v12 )
---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-08-01 23:11:32 +00:00
K900 and GitHub
f675ba5331
doc/distributed-builds: don't use deprecated alias
...
`nix ping-store` -> `nix store ping`.
2022-08-01 13:50:35 +03:00
Félix Baylac-Jacqué
1467a98d4c
derivation-goal.cc: remove bmCheck custom return branch on buildDone
...
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-08-01 11:39:19 +02:00
mergify[bot] and GitHub
8ebaa79939
Merge pull request #97 from nix-community/update_flake_lock_action
...
flake.lock: Update
2022-08-01 02:05:26 +00:00
github-actions[bot]
9c779cc520
flake.lock: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/ce49cb7792a7ffd65ef352dda1110a4e4a204eac' (2022-07-26)
→ 'github:NixOS/nixpkgs/7b9be38c7250b22d829ab6effdee90d5e40c6e5c' (2022-07-30)
2022-08-01 02:01:16 +00:00
Jeremy Fleischman
297f6b5d56
Fix link to hacking doc
...
Right now,
https://hydra.nixos.org/job/nix/master/build.x86_64-linux/latest/download-by-type/doc/manual/contributing/hacking.html
redirects to
https://hydra.nixos.org/build/183877779/download/1/manual/contributing/hacking.html ,
which gives me a "500 Internal Server Error". Not super useful =(
Feel free to ignore if someone's working to fix the 500 I was running
into.
2022-07-30 09:12:50 -07:00
Rok Garbas and GitHub
e9178d7d4a
Merge pull request #6844 from centromere/custom-nix-conf
...
docker.nix: Allow Nix configuration to be customized
2022-07-29 13:47:24 +02:00
27138f1ec6
manual: use singular in body, too
...
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com >
2022-07-28 23:30:07 +02:00
Valentin Gagarin
41a3b315fd
manual: values -> data types
2022-07-28 17:25:25 +02:00
Valentin Gagarin
8f4fab8fab
manual: use singular for headings
2022-07-28 17:25:18 +02:00
Valentin Gagarin
4ff48854b8
manual: simple values -> primitives
...
"simple" is a loaded term
2022-07-28 17:23:57 +02:00
Valentin Gagarin
3063e5b94c
manual: use subheadings for primitive types
...
this gives us HTML anchors for each of them
2022-07-28 17:23:57 +02:00
Eelco Dolstra and GitHub
86fcd4f692
Merge pull request #6845 from fricklerhandwerk/attrset
...
manual: set -> attribute set
2022-07-28 16:55:03 +02:00
Valentin Gagarin
85cdaebcd6
manual: set -> attribute set
...
reword description to have shorter sentences.
2022-07-28 16:10:24 +02:00
Valentin Gagarin
be4654c344
manual: fix section title in table of contents
2022-07-28 15:55:41 +02:00
Alex Wied
228028fc1a
docker.nix: Allow Nix configuration to be customized
2022-07-28 03:36:39 -04:00
mergify[bot] and GitHub
a71d7a0c3b
Merge pull request #96 from nix-community/update_flake_lock_action
...
flake.lock: Update
2022-07-28 01:57:40 +00:00
github-actions[bot]
36a57a6658
flake.lock: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/e494a908e8895b9cba18e21d5fc83362f64b3f6a' (2022-07-24)
→ 'github:NixOS/nixpkgs/ce49cb7792a7ffd65ef352dda1110a4e4a204eac' (2022-07-26)
2022-07-28 01:49:12 +00:00
mergify[bot] and GitHub
05b339ae08
Merge pull request #95 from nix-community/update_flake_lock_action
...
flake.lock: Update
2022-07-25 01:56:27 +00:00
github-actions[bot]
1434796429
flake.lock: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/614a842b74b7a1497e8cfca7c61bec38f51911b3' (2022-07-20)
→ 'github:NixOS/nixpkgs/e494a908e8895b9cba18e21d5fc83362f64b3f6a' (2022-07-24)
2022-07-25 01:50:38 +00:00
Théophane Hufschmitt and GitHub
2805439335
Merge pull request #6814 from amjoseph-nixpkgs/pr/sandbox-error-messages
...
local-derivation-goal.cc: improve error messages when sandboxing fails
2022-07-22 13:27:52 +02:00
Théophane Hufschmitt and GitHub
e10807cdbb
Merge pull request #6813 from centromere/cgroup-cpu-detection
...
libstore/globals.cc: Automatically set cores based on cgroup CPU limit
2022-07-22 10:15:32 +02:00
92bae33ca5
nix shell: example shouldn't use an absolute path for the shell
...
Co-authored-by: Eelco Dolstra <edolstra@gmail.com >
2022-07-21 14:25:07 +02:00
mergify[bot] and GitHub
0b4bcf9bbd
Merge pull request #94 from nix-community/update_flake_lock_action
...
flake.lock: Update
2022-07-21 01:59:03 +00:00
github-actions[bot]
76285edc53
flake.lock: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/8f485713f5e6b6883a9b6959afa98688360a3ecb' (2022-07-16)
→ 'github:NixOS/nixpkgs/614a842b74b7a1497e8cfca7c61bec38f51911b3' (2022-07-20)
2022-07-21 01:51:04 +00:00
Solène Rapenne
64404220f5
nix shell: document how to invoke multiple commands from the command line
2022-07-20 14:54:46 +02:00
Théophane Hufschmitt and GitHub
7ed91d6c6a
Merge branch 'master' into parallel-nix-copy
2022-07-20 10:05:34 +02:00
Alex Wied
722de8ddcc
libstore/globals.cc: Move cgroup detection to libutil
2022-07-19 16:25:53 -04:00
Alex Wied
1af5d798a4
libstore/globals.cc: Automatically set cores based on cgroup CPU limit
...
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-19 16:03:58 -04:00
Théophane Hufschmitt
56f6f3725f
Don't ultimately trust the signed paths
...
Like the old implem did (and like you'd want it to be anyways)
2022-07-19 19:46:00 +02:00
Adam Joseph
36e1383b6b
local-derivation-goal.cc: save global errno to the stack before performing tests which might clobber it
2022-07-19 03:53:20 -07:00
Adam Joseph
a9e75eca00
error.hh: add additional constructor with explicit errno argument
2022-07-19 03:49:33 -07:00
Adam Joseph
99fcc91f67
as requested by @thufschmitt https://github.com/NixOS/nix/pull/6814#discussion_r924275777
2022-07-19 03:33:12 -07:00
Adam Joseph
5f51539f88
change warn() to notice()
2022-07-19 03:30:52 -07:00
Théophane Hufschmitt and GitHub
fbd0a6c6e2
Merge pull request #6784 from tweag/completion-test
...
Add some tests for the CLI completion
2022-07-18 20:32:14 +02:00
Eelco Dolstra and GitHub
2584c151bd
Merge pull request #6812 from lovesegfault/rosetta-paths
...
fix(libstore): allow Nix to access all Rosetta 2 paths on MacOS
2022-07-18 14:09:54 +02:00
mergify[bot] and GitHub
32c741a46d
Merge pull request #92 from nix-community/update_flake_lock_action
...
flake.lock: Update
2022-07-18 02:00:33 +00:00
github-actions[bot]
518fd64cef
flake.lock: Update
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/38860c9e91cb00f4d8cd19c7b4e36c45680c89b5' (2022-07-11)
→ 'github:NixOS/nixpkgs/8f485713f5e6b6883a9b6959afa98688360a3ecb' (2022-07-16)
2022-07-18 01:52:22 +00:00
Adam Joseph
c8c6203c2c
local-derivation-goal.cc: detect unprivileged_userns_clone failure mode
...
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-17 01:27:22 -07:00