3dd81b0d32
This commit updates Early-Adopters (EA) version of Sculpt to the version for The Curious (TC). Most importantly, it contains the new interactive sculpt-manager component that automates many system management and configuration tasks.
82 lines
2.9 KiB
C++
82 lines
2.9 KiB
C++
/*
|
|
* \brief XML configuration for the depot-download subsystem
|
|
* \author Norman Feske
|
|
* \date 2018-05-08
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2018 Genode Labs GmbH
|
|
*
|
|
* This file is part of the Genode OS framework, which is distributed
|
|
* under the terms of the GNU Affero General Public License version 3.
|
|
*/
|
|
|
|
#include <runtime.h>
|
|
|
|
void Sculpt::gen_update_start_content(Xml_generator &xml)
|
|
{
|
|
gen_common_start_content(xml, "update", Cap_quota{2000}, Ram_quota{64*1024*1024});
|
|
|
|
gen_named_node(xml, "binary", "init");
|
|
|
|
xml.node("route", [&] () {
|
|
|
|
gen_parent_rom_route(xml, "ld.lib.so");
|
|
gen_parent_rom_route(xml, "vfs.lib.so");
|
|
gen_parent_rom_route(xml, "libc.lib.so");
|
|
gen_parent_rom_route(xml, "libm.lib.so");
|
|
gen_parent_rom_route(xml, "extract");
|
|
gen_parent_rom_route(xml, "verify");
|
|
gen_parent_rom_route(xml, "fetchurl");
|
|
gen_parent_rom_route(xml, "chroot");
|
|
gen_parent_rom_route(xml, "curl.lib.so");
|
|
gen_parent_rom_route(xml, "init");
|
|
gen_parent_rom_route(xml, "depot_query");
|
|
gen_parent_rom_route(xml, "depot_download_manager");
|
|
gen_parent_rom_route(xml, "report_rom");
|
|
gen_parent_rom_route(xml, "vfs");
|
|
gen_parent_rom_route(xml, "lxip.lib.so");
|
|
gen_parent_rom_route(xml, "vfs_lxip.lib.so");
|
|
gen_parent_rom_route(xml, "posix.lib.so");
|
|
gen_parent_rom_route(xml, "libssh.lib.so");
|
|
gen_parent_rom_route(xml, "libssl.lib.so");
|
|
gen_parent_rom_route(xml, "libcrypto.lib.so");
|
|
gen_parent_rom_route(xml, "zlib.lib.so");
|
|
gen_parent_rom_route(xml, "libarchive.lib.so");
|
|
gen_parent_rom_route(xml, "liblzma.lib.so");
|
|
gen_parent_rom_route(xml, "pthread.lib.so");
|
|
gen_parent_rom_route(xml, "config", "depot_download.config");
|
|
gen_parent_rom_route(xml, "installation", "config -> managed/installation");
|
|
gen_parent_route<Cpu_session> (xml);
|
|
gen_parent_route<Pd_session> (xml);
|
|
gen_parent_route<Rm_session> (xml);
|
|
gen_parent_route<Timer::Session> (xml);
|
|
gen_parent_route<Report::Session>(xml);
|
|
|
|
typedef String<32> Label;
|
|
auto gen_fs = [&] (Label const &label, Label const &server) {
|
|
gen_service_node<::File_system::Session>(xml, [&] () {
|
|
xml.attribute("label", label);
|
|
gen_named_node(xml, "child", server); }); };
|
|
|
|
/* connect file-system sessions to chroot instances */
|
|
gen_fs("depot", "depot_rw");
|
|
gen_fs("public", "public_rw");
|
|
|
|
auto gen_relabeled_log = [&] (Label const &label, Label const &relabeled) {
|
|
gen_service_node<Log_session>(xml, [&] () {
|
|
xml.attribute("label", label);
|
|
xml.node("parent", [&] () {
|
|
xml.attribute("label", relabeled); }); }); };
|
|
|
|
/* shorten LOG-session labels to reduce the debug-output noise */
|
|
gen_relabeled_log("dynamic -> fetchurl", "fetchurl");
|
|
gen_relabeled_log("dynamic -> verify", "verify");
|
|
gen_relabeled_log("dynamic -> extract", "extract");
|
|
gen_parent_route<Log_session>(xml);
|
|
|
|
gen_service_node<Nic::Session>(xml, [&] () {
|
|
gen_named_node(xml, "child", "nic_router"); });
|
|
});
|
|
}
|