mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-21 14:37:50 +00:00
344831ec06
This commits updates the contrib sources to version 8.7.1. This version requires more random entropy as it queries OpenSSL about the current random state and will bail if it is not sufficient. Doubling the content of the '<inline>' VFS plugin as used in static configurations seems satisfactory. Furthermore DNS resolving needs a configured '<pipe>' plugin to work properly. Fixes #5184.
183 lines
5.4 KiB
Plaintext
183 lines
5.4 KiB
Plaintext
create_boot_directory
|
|
|
|
if {[have_board linux] || [have_board rpi3] || [have_board imx53_qsb_tz]} {
|
|
puts "Run script does not support this platform."
|
|
exit 0
|
|
}
|
|
|
|
if {[get_cmd_switch --autopilot] && [have_board virt_qemu_riscv]} {
|
|
puts "Autopilot mode is not supported on this platform."
|
|
exit 0
|
|
}
|
|
|
|
import_from_depot [depot_user]/src/[base_src] \
|
|
[depot_user]/pkg/[drivers_nic_pkg] \
|
|
[depot_user]/src/report_rom \
|
|
[depot_user]/src/fs_rom \
|
|
[depot_user]/src/vfs \
|
|
[depot_user]/src/vfs_lxip \
|
|
[depot_user]/src/vfs_pipe \
|
|
[depot_user]/src/fetchurl \
|
|
[depot_user]/src/libc \
|
|
[depot_user]/src/libssh \
|
|
[depot_user]/src/openssl \
|
|
[depot_user]/src/zlib \
|
|
[depot_user]/src/curl \
|
|
[depot_user]/src/init \
|
|
[depot_user]/src/chroot \
|
|
[depot_user]/src/extract \
|
|
[depot_user]/src/nic_router \
|
|
[depot_user]/src/libarchive \
|
|
[depot_user]/src/liblzma \
|
|
[depot_user]/src/verify
|
|
|
|
set config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
</parent-provides>
|
|
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<default caps="100"/>}
|
|
|
|
proc depot_user_download { user } {
|
|
return [exec cat [select_from_repositories sculpt/depot/$user/download]] }
|
|
|
|
proc depot_user_pubkey { user } {
|
|
return [exec cat [select_from_repositories sculpt/depot/$user/pubkey]] }
|
|
|
|
append config {
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Timer"/> </provides>
|
|
</start>
|
|
|
|
<start name="drivers" caps="1200" managing_system="yes">
|
|
<resource name="RAM" quantum="32M"/>
|
|
<binary name="init"/>
|
|
<route>
|
|
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
|
<service name="Timer"> <child name="timer"/> </service>
|
|
<service name="Uplink"> <child name="nic_router"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
<start name="nic_router" caps="200">
|
|
<resource name="RAM" quantum="10M"/>
|
|
<provides>
|
|
<service name="Nic"/>
|
|
<service name="Uplink"/>
|
|
</provides>
|
|
<config verbose_domain_state="yes">
|
|
|
|
<policy label_prefix="depot_download" domain="downlink"/>
|
|
<policy label_prefix="drivers" domain="uplink"/>
|
|
|
|
<domain name="uplink">
|
|
|
|
<nat domain="downlink"
|
|
tcp-ports="16384"
|
|
udp-ports="16384"
|
|
icmp-ids="16384"/>
|
|
|
|
</domain>
|
|
|
|
<domain name="downlink" interface="10.0.3.1/24">
|
|
|
|
<dhcp-server ip_first="10.0.3.2" ip_last="10.0.3.2" dns_config_from="uplink"/>
|
|
|
|
<tcp dst="0.0.0.0/0"><permit-any domain="uplink" /></tcp>
|
|
<udp dst="0.0.0.0/0"><permit-any domain="uplink" /></udp>
|
|
<icmp dst="0.0.0.0/0" domain="uplink"/>
|
|
|
|
</domain>
|
|
|
|
</config>
|
|
</start>
|
|
|
|
<start name="vfs">
|
|
<resource name="RAM" quantum="20M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config>
|
|
<vfs>
|
|
<dir name="depot">
|
|
<dir name="genodelabs">
|
|
<ram/>
|
|
<inline name="download">} [depot_user_download genodelabs] {</inline>
|
|
<inline name="pubkey">} [depot_user_pubkey genodelabs] {</inline>
|
|
</dir>
|
|
</dir>
|
|
<dir name="public"> <ram/> </dir>
|
|
</vfs>
|
|
<policy label="depot_download -> depot" root="/depot" writeable="yes"/>
|
|
<policy label="depot_download -> public" root="/public" writeable="yes"/>
|
|
</config>
|
|
</start>
|
|
|
|
<start name="report_rom">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
|
<config verbose="yes">
|
|
</config>
|
|
</start>
|
|
|
|
<start name="depot_download" caps="2000">
|
|
<binary name="init"/>
|
|
<resource name="RAM" quantum="70M"/>
|
|
<route>
|
|
<service name="ROM" label="config">
|
|
<parent label="depot_download.config"/> </service>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<service name="Nic"> <child name="nic_router"/> </service>
|
|
<service name="File_system"> <child name="vfs"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
|
|
</config>}
|
|
|
|
|
|
set fd [open [run_dir]/genode/installation w]
|
|
puts $fd {
|
|
<installation arch="x86_64">
|
|
<archive path="genodelabs/pkg/wm/2019-03-17"/>
|
|
<archive path="genodelabs/bin/x86_64/backdrop/2019-03-17"/>
|
|
<index path="genodelabs/index/19.02"/>
|
|
<index path="genodelabs/index/19.03"/>
|
|
</installation>}
|
|
close $fd
|
|
|
|
|
|
install_config $config
|
|
|
|
copy_file [genode_dir]/repos/gems/recipes/raw/depot_download/depot_download.config \
|
|
[run_dir]/genode/depot_download.config
|
|
|
|
build { app/depot_download_manager app/depot_query }
|
|
|
|
build_boot_image [build_artifacts]
|
|
|
|
append qemu_args " -nographic "
|
|
append_qemu_nic_args
|
|
|
|
|
|
# watch the state reports generated by the depot-download manager
|
|
set expected_pattern {}
|
|
append expected_pattern {.*path="genodelabs/pkg/wm/2019-03-17" state="done".*}
|
|
append expected_pattern {.*path="genodelabs/bin/x86_64/backdrop/2019-03-17" state="done".*}
|
|
append expected_pattern {.*path="genodelabs/index/19.02" state="done".*}
|
|
append expected_pattern {.*path="genodelabs/index/19.03" state="failed".*}
|
|
|
|
run_genode_until $expected_pattern 150
|