genode/repos/gems/recipes/raw/depot_download/depot_download.config
Norman Feske 677c8e828c depot_download,depot_query: support system images
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
2023-02-27 08:22:47 +01:00

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>