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 { config = mkOption {
type = types.str; type = types.path;
description = '' description = ''
Dhall boot configuration. See Dhall boot configuration. See
https://git.sr.ht/~ehmry/dhall-genode/tree/master/Boot/package.dhall 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 = [{ assertions = [{
assertion = builtins.any (s: s == config.nixpkgs.system) assertion = builtins.any (s: s == config.nixpkgs.system)
@ -82,8 +83,6 @@ in {
''; '';
}; };
initInputs = unique config.genode.init.inputs;
mergeManifests = inputs: mergeManifests = inputs:
localPackages.writeTextFile { localPackages.writeTextFile {
name = "manifest.dhall"; name = "manifest.dhall";
@ -100,24 +99,35 @@ in {
in (foldl' f "[" inputs) + "]"; in (foldl' f "[" inputs) + "]";
}; };
storeManifest = storeManifest = mergeManifests (map addManifest initInputs);
mergeManifests (map addManifest initInputs);
storeTarball = localPackages.runCommand "store" { } '' storeTarball = localPackages.runCommand "store" { } ''
mkdir -p $out mkdir -p $out
tar cf "$out/store.tar" --absolute-names ${ tar cf "$out/store.tar" --absolute-names ${toString initInputs}
toString initInputs
}
''; '';
manifest = mergeManifests (map addManifest manifest = mergeManifests (map addManifest
(config.genode.core.basePackages ++ [ storeTarball ] (config.genode.core.basePackages ++ [ storeTarball ]
++ (with pkgs.genodePackages; [ init vfs cached_fs_rom ]))); ++ (with pkgs.genodePackages; [ init vfs cached_fs_rom ])));
in '' in localPackages.runCommand "boot.dhall" { } ''
cat > $out << EOF
${./store-wrapper.dhall} ${./store-wrapper.dhall}
(${config.genode.init.config}) (${config.genode.init.config})
$(stat --format '%s' ${storeTarball}/store.tar) $(stat --format '%s' ${storeTarball}/store.tar)
${storeManifest} ${manifest} ${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
'';
}; };
} }