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.
This commit is contained in:
parent
83229813b3
commit
487be791d7
|
@ -7,23 +7,22 @@
|
||||||
, volumeLabel
|
, volumeLabel
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
sdClosureInfo = pkgs.closureInfo { rootPaths = storePaths; };
|
||||||
|
in
|
||||||
|
|
||||||
pkgs.stdenv.mkDerivation {
|
pkgs.stdenv.mkDerivation {
|
||||||
name = "ext4-fs.img";
|
name = "ext4-fs.img";
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [e2fsprogs libfaketime perl];
|
nativeBuildInputs = with pkgs; [e2fsprogs libfaketime perl];
|
||||||
|
|
||||||
# For obtaining the closure of `storePaths'.
|
|
||||||
exportReferencesGraph =
|
|
||||||
map (x: [("closure-" + baseNameOf x) x]) storePaths;
|
|
||||||
|
|
||||||
buildCommand =
|
buildCommand =
|
||||||
''
|
''
|
||||||
# Add the closures of the top-level store objects.
|
# 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
|
# Also include a manifest of the closures in a format suitable for nix-store --load-db.
|
||||||
# for nix-store --load-db.
|
cp ${sdClosureInfo}/registration nix-path-registration
|
||||||
printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > nix-path-registration
|
|
||||||
|
|
||||||
# Make a crude approximation of the size of the target image.
|
# Make a crude approximation of the size of the target image.
|
||||||
# If the script starts failing, increase the fudge factors here.
|
# If the script starts failing, increase the fudge factors here.
|
||||||
|
|
Loading…
Reference in a new issue