diff --git a/repos/gems/recipes/pkg/sculpt/archives b/repos/gems/recipes/pkg/sculpt/archives index cc7c81ee4..39fc4d66f 100644 --- a/repos/gems/recipes/pkg/sculpt/archives +++ b/repos/gems/recipes/pkg/sculpt/archives @@ -38,7 +38,7 @@ _/src/zlib _/src/log_core _/src/part_block _/src/nic_router -_/src/e2fsprogs-minimal +_/src/fs_utils _/src/nvme_drv _/src/wm _/src/themed_decorator diff --git a/repos/gems/run/leitzentrale.run b/repos/gems/run/leitzentrale.run index e9767bcd8..d99e498b9 100644 --- a/repos/gems/run/leitzentrale.run +++ b/repos/gems/run/leitzentrale.run @@ -33,7 +33,7 @@ import_from_depot [depot_user]/src/[base_src] \ [depot_user]/src/bash-minimal \ [depot_user]/src/vim-minimal \ [depot_user]/src/coreutils-minimal \ - [depot_user]/src/e2fsprogs-minimal \ + [depot_user]/src/fs_utils \ [depot_user]/src/gpt_write \ [depot_user]/src/text_area \ [depot_user]/src/sandbox \ diff --git a/repos/gems/src/app/sculpt_manager/main.cc b/repos/gems/src/app/sculpt_manager/main.cc index 453d71a91..8e4cd17c4 100644 --- a/repos/gems/src/app/sculpt_manager/main.cc +++ b/repos/gems/src/app/sculpt_manager/main.cc @@ -1486,7 +1486,7 @@ void Sculpt::Main::_handle_runtime_state() Storage_target const target { device.label, partition.number }; if (partition.check_in_progress) { - String<64> name(target.label(), ".fsck.ext2"); + String<64> name(target.label(), ".e2fsck"); Child_exit_state exit_state(state, name); if (exit_state.exited) { @@ -1503,7 +1503,7 @@ void Sculpt::Main::_handle_runtime_state() } if (partition.format_in_progress) { - String<64> name(target.label(), ".mkfs.ext2"); + String<64> name(target.label(), ".mke2fs"); Child_exit_state exit_state(state, name); if (exit_state.exited) { diff --git a/repos/gems/src/app/sculpt_manager/runtime/e2fs.cc b/repos/gems/src/app/sculpt_manager/runtime/e2fs.cc index 1ae68e4dc..00bced3a9 100644 --- a/repos/gems/src/app/sculpt_manager/runtime/e2fs.cc +++ b/repos/gems/src/app/sculpt_manager/runtime/e2fs.cc @@ -19,6 +19,11 @@ namespace Sculpt { void gen_e2fs_start_content(Xml_generator &, Storage_target const &, Rom_name const &, GEN_ARGS_FN const &); + template + void gen_arg(Xml_generator &xml, ARG const &arg) + { + xml.node("arg", [&] () { xml.attribute("value", arg); }); + } } @@ -31,31 +36,33 @@ void Sculpt::gen_e2fs_start_content(Xml_generator &xml, gen_common_start_content(xml, String<64>(target.label(), ".", tool), Cap_quota{500}, Ram_quota{100*1024*1024}); - gen_named_node(xml, "binary", "noux"); + gen_named_node(xml, "binary", tool); xml.node("config", [&] () { - xml.attribute("stdout", "/dev/log"); - xml.attribute("stderr", "/dev/log"); - xml.attribute("stdin", "/dev/null"); - xml.node("fstab", [&] () { - gen_named_node(xml, "tar", "e2fsprogs-minimal.tar"); + xml.node("libc", [&] () { + xml.attribute("stdout", "/dev/log"); + xml.attribute("stderr", "/dev/log"); + xml.attribute("stdin", "/dev/null"); + xml.attribute("rtc", "/dev/rtc"); + }); + xml.node("vfs", [&] () { gen_named_node(xml, "dir", "dev", [&] () { gen_named_node(xml, "block", "block", [&] () { xml.attribute("label", "default"); xml.attribute("block_buffer_count", 128); }); + gen_named_node(xml, "inline", "rtc", [&] () { + xml.append("2018-01-01 00:01"); + }); xml.node("null", [&] () {}); xml.node("log", [&] () {}); }); }); - gen_named_node(xml, "start", Rom_name("/bin/", tool), [&] () { - gen_args_fn(xml); }); + gen_args_fn(xml); }); xml.node("route", [&] () { target.gen_block_session_route(xml); - gen_parent_rom_route(xml, "noux"); - gen_parent_rom_route(xml, "ld.lib.so"); gen_parent_route (xml); gen_parent_route (xml); gen_parent_route (xml); @@ -69,11 +76,12 @@ void Sculpt::gen_fsck_ext2_start_content(Xml_generator &xml, Storage_target const &target) { auto gen_args = [&] (Xml_generator &xml) { - xml.node("arg", [&] () { xml.attribute("value", "-yv"); }); - xml.node("arg", [&] () { xml.attribute("value", "/dev/block"); }); + gen_arg(xml, "fsck.ext2"); + gen_arg(xml, "-yv"); + gen_arg(xml, "/dev/block"); }; - gen_e2fs_start_content(xml, target, "fsck.ext2", gen_args); + gen_e2fs_start_content(xml, target, "e2fsck", gen_args); } @@ -81,11 +89,12 @@ void Sculpt::gen_mkfs_ext2_start_content(Xml_generator &xml, Storage_target const &target) { auto gen_args = [&] (Xml_generator &xml) { - xml.node("arg", [&] () { xml.attribute("value", "-F"); }); - xml.node("arg", [&] () { xml.attribute("value", "/dev/block"); }); + gen_arg(xml, "mkfs.ext2"); + gen_arg(xml, "-F"); + gen_arg(xml, "/dev/block"); }; - gen_e2fs_start_content(xml, target, "mkfs.ext2", gen_args); + gen_e2fs_start_content(xml, target, "mke2fs", gen_args); } @@ -93,14 +102,10 @@ void Sculpt::gen_resize2fs_start_content(Xml_generator &xml, Storage_target const &target) { auto gen_args = [&] (Xml_generator &xml) { - - auto gen_arg = [&] (char const *arg) { - xml.node("arg", [&] () { - xml.attribute("value", arg); }); }; - - gen_arg("-f"); - gen_arg("-p"); - gen_arg("/dev/block"); + gen_arg(xml, "resize2fs"); + gen_arg(xml, "-f"); + gen_arg(xml, "-p"); + gen_arg(xml, "/dev/block"); }; gen_e2fs_start_content(xml, target, "resize2fs", gen_args);