aboutsummaryrefslogtreecommitdiffstats
path: root/pkgs/populate
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-12 02:33:44 +0000
committertv <tv@krebsco.de>2026-11-12 02:33:44 +0000
commit81cc4f06abc644b047e0758309cfbd982dac18ed (patch)
tree81ae9e2440212e976086ba7a8d0b4e6295c62e32 /pkgs/populate
parent352dd5ce3107e2547db56802d773b919df03690f (diff)
populate pipe: deliver changed output of the same size
pipe sources get a fixed modification time, so rsync's quick check took changed output of the same size, e.g. a new commit hash or token, for unchanged, and didn't deliver it. pipe sources get synced comparing checksums now. An edge case changes a pipe source's output without changing its size.
Diffstat (limited to 'pkgs/populate')
-rw-r--r--pkgs/populate/default.nix4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix
index 0992b0c..5939742 100644
--- a/pkgs/populate/default.nix
+++ b/pkgs/populate/default.nix
@@ -773,7 +773,9 @@ let
${quote source.command} > "$out"
${coreutils}/bin/touch -t 300001010000 "$out"
- ${rsync' target rsyncDefaultConfig /* sh */ "$out"}
+ # With the fixed modification time, only checksums tell outputs of the
+ # same size apart.
+ ${rsync' target (rsyncDefaultConfig // { useChecksum = true; }) /* sh */ "$out"}
'';
# TODO rm -fR instead of ln -f?