1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-12-14 04:51:05 +01:00
Commit graph

14 commits

Author SHA1 Message Date
Théophane Hufschmitt
d97b9f138c nix-find-roots: Support systemd socket activation 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
f6a30993f0 Rename the find-roots library
Give it a name more in line with the rest
2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
2c47b08e17 Use the standalone gc lib in the default gc 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
fbec849281 Split the root finding in a separate library 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
1d5d30b12f Make the root-tracer directly listen on a socket
Complicates the code quite a bit (compared to letting systemd handle
that for us), but makes things much easier to test
2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
63159dd672 nix-find-roots: Fully disable on darwin
Until I can understand why it’s not working
2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
aadf585ea3 Fix build on darwin 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
35c7d5d2f1 gc: Only track sensible paths from maps file 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
3839eb15d6 Also check the NixOS specific files 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
93739ce006 Dump the whole file when scaning its content
Dumping the fstream to a string just dumps a certain number of bits of
it, causing some references to be missed
2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
5d47c37cbc Track the runtime roots
Everything that’s potentially accessed by a running program (its own
path, its environment, mmapped files, etc..)
2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
2e7f1d24a1 gc: Also track the original roots
Will be required by `--print-roots` and friends
2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
c788718de1 Specialise for searching under $stateDir/{profiles,gcroots} 2022-04-13 10:24:53 +02:00
Théophane Hufschmitt
b4ab02ef13 Add an external executable to trace the gc roots back to the store 2022-04-13 10:24:53 +02:00