From 9f4b1064c6c9464194eb47cca6f2f42bdbd5c6da Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Fri, 14 Jun 2024 15:35:15 -0400 Subject: [PATCH] trivial: make pkgs.writeText always fixed output This can prevent a cascade of rebuilds across nixpkgs versions because these small files tend to be found at the leaves of dependency trees. --- pkgs/build-support/trivial-builders/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index ac3898117e8c..2cc4a4e48ff9 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -133,7 +133,14 @@ rec { pkgs.writeText ${lib.strings.escapeNixString name}: The second argument should be a string, but it's a ${builtins.typeOf text} instead.''; lib.warnIf (! lib.isString text) '' pkgs.writeText ${lib.strings.escapeNixString name}: The second argument should be a string, but it's a ${builtins.typeOf text} instead, which is deprecated. Use `toString` to convert the value to a string first.'' - writeTextFile { inherit name text; }; + writeTextFile { + inherit name text; + derivationArgs = rec { + outputHashAlgo = "sha256"; + outputHashMode = "flat"; + outputHash = builtins.hashString outputHashAlgo (builtins.toString text); + }; + }; # See doc/build-helpers/trivial-build-helpers.chapter.md # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing