mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-26 17:01:07 +00:00
677c8e828c
This patch enhances the depot_download subsystem with support for downloading and querying system images. The installation ROM support the following two now download types: <image_index path="<user>/image/index"/> <image path="<user>/image/<name>"/> Internally, the depot-download subsystem employs the depot-query component to determine the missing depot content. This component accepts the following two new queries: <images user="..."/> <image_index user="..."/> If present in the query, depot_query generates reports labeled as "images" and "image_index" respectively. The also tracks the completion of each job depending on the depot- query results, so that the final report contains a result for each installation item requested. Prior this patch, the inactivity of the depot-download manager (indicated by an empty state report) was interpreted as success. But that prevents the proper association of results and requested installation items. Issue #4744
117 lines
4.2 KiB
Plaintext
117 lines
4.2 KiB
Plaintext
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="Timer"/>
|
|
<service name="Report"/>
|
|
<service name="File_system"/>
|
|
<service name="Nic"/>
|
|
</parent-provides>
|
|
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<default caps="100"/>
|
|
|
|
<start name="report_rom">
|
|
<binary name="report_rom"/>
|
|
<resource name="RAM" quantum="2M"/>
|
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
|
<config verbose="no">
|
|
<policy label="dynamic -> config"
|
|
report="manager -> init_config"/>
|
|
<policy label="manager -> dependencies"
|
|
report="dynamic -> depot_query -> dependencies"/>
|
|
<policy label="manager -> index"
|
|
report="dynamic -> depot_query -> index"/>
|
|
<policy label="manager -> image"
|
|
report="dynamic -> depot_query -> image"/>
|
|
<policy label="manager -> image_index"
|
|
report="dynamic -> depot_query -> image_index"/>
|
|
<policy label="manager -> user"
|
|
report="dynamic -> depot_query -> user"/>
|
|
<policy label="manager -> init_state"
|
|
report="dynamic -> state"/>
|
|
<policy label="manager -> verified"
|
|
report="dynamic -> verify -> result"/>
|
|
<policy label="manager -> fetchurl_progress"
|
|
report="dynamic -> fetchurl -> progress"/>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="tcpip" caps="400">
|
|
<binary name="vfs"/>
|
|
<resource name="RAM" quantum="32M" />
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config>
|
|
<vfs>
|
|
<dir name="socket">
|
|
<lxip dhcp="yes"/>
|
|
</dir>
|
|
</vfs>
|
|
<default-policy root="/" writeable="yes"/>
|
|
</config>
|
|
<route> <any-service> <parent/> </any-service> </route>
|
|
</start>
|
|
|
|
<start name="depot_ro">
|
|
<binary name="chroot"/>
|
|
<resource name="RAM" quantum="2M" />
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config> <default-policy path="/" writeable="no"/> </config>
|
|
<route>
|
|
<service name="File_system"> <parent label="depot"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="public_ro">
|
|
<binary name="chroot"/>
|
|
<resource name="RAM" quantum="2M" />
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config> <default-policy path="/" writeable="no"/> </config>
|
|
<route>
|
|
<service name="File_system"> <parent label="public"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="manager">
|
|
<binary name="depot_download_manager"/>
|
|
<resource name="RAM" quantum="2M"/>
|
|
<config/>
|
|
<route>
|
|
<service name="Report" label="state"> <parent label="state"/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="dependencies"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="index"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="image"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="image_index"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="user"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="init_state"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="verified"> <child name="report_rom"/> </service>
|
|
<service name="ROM" label="fetchurl_progress"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="dynamic" caps="1000">
|
|
<resource name="RAM" quantum="24M"/>
|
|
<binary name="init"/>
|
|
<route>
|
|
<service name="ROM" label="config"> <child name="report_rom"/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<service name="File_system" label="depot"> <child name="depot_ro"/> </service>
|
|
<service name="File_system" label="depot_rw"> <parent label="depot"/> </service>
|
|
<service name="File_system" label="public"> <child name="public_ro"/> </service>
|
|
<service name="File_system" label="public_rw"> <parent label="public"/> </service>
|
|
<service name="File_system" label="tcpip"> <child name="tcpip"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
</config>
|