From c5575c46db38e20c82bb7302d574ceeeaa4786e4 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Mon, 9 Apr 2018 22:24:01 +0300 Subject: [PATCH] nixos/make-ext4-fs: Use closureInfo exportReferencesGraph is deprecated and doesn't have the generated initial Nix database contain the SHA256 of the contents of the store paths, which breaks various things under Nix 2.0. (cherry picked from commit 487be791d783c706369a1a0740e03a0bb60d8f1f) --- nixos/lib/make-ext4-fs.nix | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix index 21c69ed560a3..986d80ff1b99 100644 --- a/nixos/lib/make-ext4-fs.nix +++ b/nixos/lib/make-ext4-fs.nix @@ -7,23 +7,22 @@ , volumeLabel }: +let + sdClosureInfo = pkgs.closureInfo { rootPaths = storePaths; }; +in + pkgs.stdenv.mkDerivation { name = "ext4-fs.img"; nativeBuildInputs = with pkgs; [e2fsprogs libfaketime perl]; - # For obtaining the closure of `storePaths'. - exportReferencesGraph = - map (x: [("closure-" + baseNameOf x) x]) storePaths; - buildCommand = '' # Add the closures of the top-level store objects. - storePaths=$(perl ${pkgs.pathsFromGraph} closure-*) + storePaths=$(cat ${sdClosureInfo}/store-paths) - # Also include a manifest of the closures in a format suitable - # for nix-store --load-db. - printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > nix-path-registration + # Also include a manifest of the closures in a format suitable for nix-store --load-db. + cp ${sdClosureInfo}/registration nix-path-registration # Make a crude approximation of the size of the target image. # If the script starts failing, increase the fudge factors here.