2
0
Fork 0

Dump the root init config at config.system.build.initXml

This commit is contained in:
Ehmry - 2020-10-25 22:09:45 +01:00
parent c4a45ea134
commit 3e4644c337
2 changed files with 20 additions and 22 deletions

View File

@ -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
'';
};

View File

@ -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
'';
};
}