Revert "makeInitrd: Use closureInfo"

This reverts commit 776a5e6ebf.

Fixes #36268.
This commit is contained in:
Eelco Dolstra 2018-03-05 12:42:31 +01:00
parent 97693915e1
commit 165b32d386
No known key found for this signature in database
GPG Key ID: 8170B4726D7198DE
2 changed files with 11 additions and 4 deletions

View File

@ -12,7 +12,7 @@
# `contents = {object = ...; symlink = /init;}' is a typical
# argument.
{ stdenv, closureInfo, cpio, contents, compressor, prepend, ubootTools
{ stdenv, perl, cpio, contents, compressor, prepend, ubootTools
, hostPlatform
}:
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
makeUInitrd = hostPlatform.platform.kernelTarget == "uImage";
nativeBuildInputs = [ cpio ]
nativeBuildInputs = [ perl cpio ]
++ stdenv.lib.optional makeUInitrd ubootTools;
# !!! should use XML.
@ -30,7 +30,10 @@ stdenv.mkDerivation rec {
symlinks = map (x: x.symlink) contents;
suffices = map (x: if x ? suffix then x.suffix else "none") contents;
closure = closureInfo { rootPaths = (map (x: x.object) contents); };
# For obtaining the closure of `contents'.
exportReferencesGraph =
map (x: [("closure-" + baseNameOf x.symlink) x.object]) contents;
pathsFromGraph = ./paths-from-graph.pl;
inherit compressor prepend;
}

View File

@ -25,9 +25,13 @@ for ((n = 0; n < ${#objects[*]}; n++)); do
done
# Get the paths in the closure of `object'.
storePaths=$(perl $pathsFromGraph closure-*)
# Paths in cpio archives *must* be relative, otherwise the kernel
# won't unpack 'em.
(cd root && cp -prd --parents $(cat $closure/store-paths) .)
(cd root && cp -prd --parents $storePaths .)
# Put the closure in a gzipped cpio archive.