Dump the root init config at config.system.build.initXml
This commit is contained in:
parent
c4a45ea134
commit
3e4644c337
|
@ -34,7 +34,7 @@ in {
|
|||
};
|
||||
|
||||
config = mkOption {
|
||||
type = types.str;
|
||||
type = types.path;
|
||||
description = ''
|
||||
Dhall boot configuration. See
|
||||
https://git.sr.ht/~ehmry/dhall-genode/tree/master/Boot/package.dhall
|
||||
|
@ -56,7 +56,8 @@ in {
|
|||
|
||||
};
|
||||
|
||||
config = {
|
||||
config = let initInputs = unique config.genode.init.inputs;
|
||||
in {
|
||||
|
||||
assertions = [{
|
||||
assertion = builtins.any (s: s == config.nixpkgs.system)
|
||||
|
@ -82,8 +83,6 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
initInputs = unique config.genode.init.inputs;
|
||||
|
||||
mergeManifests = inputs:
|
||||
localPackages.writeTextFile {
|
||||
name = "manifest.dhall";
|
||||
|
@ -100,24 +99,35 @@ in {
|
|||
in (foldl' f "[" inputs) + "]";
|
||||
};
|
||||
|
||||
storeManifest =
|
||||
mergeManifests (map addManifest initInputs);
|
||||
storeManifest = mergeManifests (map addManifest initInputs);
|
||||
|
||||
storeTarball = localPackages.runCommand "store" { } ''
|
||||
mkdir -p $out
|
||||
tar cf "$out/store.tar" --absolute-names ${
|
||||
toString initInputs
|
||||
}
|
||||
tar cf "$out/store.tar" --absolute-names ${toString initInputs}
|
||||
'';
|
||||
|
||||
manifest = mergeManifests (map addManifest
|
||||
(config.genode.core.basePackages ++ [ storeTarball ]
|
||||
++ (with pkgs.genodePackages; [ init vfs cached_fs_rom ])));
|
||||
in ''
|
||||
in localPackages.runCommand "boot.dhall" { } ''
|
||||
cat > $out << EOF
|
||||
${./store-wrapper.dhall}
|
||||
(${config.genode.init.config})
|
||||
$(stat --format '%s' ${storeTarball}/store.tar)
|
||||
${storeManifest} ${manifest}
|
||||
EOF
|
||||
'';
|
||||
|
||||
system.build.initXml = pkgs.buildPackages.runCommand "init.xml" {
|
||||
nativeBuildInputs = with pkgs.buildPackages; [ dhall xorg.lndir ];
|
||||
DHALL_GENODE = "${pkgs.genodePackages.dhallGenode}/binary.dhall";
|
||||
BOOT_CONFIG = config.genode.boot.config;
|
||||
} ''
|
||||
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
||||
lndir -silent \
|
||||
${pkgs.genodePackages.dhallGenode}/.cache \
|
||||
$XDG_CACHE_HOME
|
||||
dhall text <<< "(env:DHALL_GENODE).Init.render (env:BOOT_CONFIG).config" > $out
|
||||
'';
|
||||
|
||||
};
|
||||
|
|
|
@ -118,18 +118,6 @@ in {
|
|||
} }
|
||||
'';
|
||||
|
||||
system.build.initXml = pkgs.buildPackages.runCommand "init.xml" {
|
||||
nativeBuildInputs = with pkgs.buildPackages; [ dhall xorg.lndir ];
|
||||
DHALL_GENODE = "${pkgs.genodePackages.dhallGenode}/binary.dhall";
|
||||
INIT_CONFIG = config.genode.init.config;
|
||||
} ''
|
||||
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
||||
lndir -silent \
|
||||
${pkgs.genodePackages.dhallGenode}/.cache \
|
||||
$XDG_CACHE_HOME
|
||||
dhall text <<< "(env:DHALL_GENODE).Init.render (env:INIT_CONFIG)" > $out
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue