+1
doc/build-helpers/special.md
+1
doc/build-helpers/special.md
+36
doc/build-helpers/special/checkpoint-build.section.md
+36
doc/build-helpers/special/checkpoint-build.section.md
···+`pkgs.checkpointBuildTools` provides a way to build derivations incrementally. It consists of two functions to make checkpoint builds using Nix possible.+For hermeticity, Nix derivations do not allow any state to carry over between builds, making a transparent incremental build within a derivation impossible.+However, we can tell Nix explicitly what the previous build state was, by representing that previous state as a derivation output. This allows the passed build state to be used for an incremental build.
+69
pkgs/build-support/checkpoint-build.nix
+69
pkgs/build-support/checkpoint-build.nix
···+* e.G `incrementalBuildArtifacts = (pkgs.checkpointBuildTools.prepareCheckpointBuild pkgs.virtualbox);`+# Afterwards we clean the build directory to copy the previous output files (Including the sources)+# The source difference patch is applied to get the latest changes again to allow short build times.+${pkgs.rsync}/bin/rsync -cutU --chown=$USER:$USER --chmod=+w -r ${previousBuildArtifacts}/outputs/* .
+57
pkgs/test/checkpointBuild/default.nix
+57
pkgs/test/checkpointBuild/default.nix
···+checkpointBuiltHello = checkpointBuildTools.mkCheckpointedBuild patchedHello baseHelloArtifacts;+[ "$(stat --format="%Y" lib/exitfail.o)" = "$(stat --format="%Y" ${baseHelloArtifacts}/outputs/lib/exitfail.o)" ]+baseHelloRemoveFileArtifacts = checkpointBuildTools.prepareCheckpointBuild (hello.overrideAttrs (old: {+checkpointBuiltHelloWithRemovedFile = checkpointBuildTools.mkCheckpointedBuild patchedHelloRemoveFile baseHelloRemoveFileArtifacts;
+67
pkgs/test/checkpointBuild/hello-additionalFile.patch
+67
pkgs/test/checkpointBuild/hello-additionalFile.patch
···
+67
pkgs/test/checkpointBuild/hello-removeFile.patch
+67
pkgs/test/checkpointBuild/hello-removeFile.patch
···
+26
pkgs/test/checkpointBuild/hello.patch
+26
pkgs/test/checkpointBuild/hello.patch
···
+2
pkgs/test/default.nix
+2
pkgs/test/default.nix
+2
pkgs/top-level/all-packages.nix
+2
pkgs/top-level/all-packages.nix
···