diff --git a/repos/gems/run/aes_cbc_4k.run b/repos/gems/run/aes_cbc_4k.run
index c2e6950583..28727021b9 100644
--- a/repos/gems/run/aes_cbc_4k.run
+++ b/repos/gems/run/aes_cbc_4k.run
@@ -8,7 +8,7 @@ if {[get_cmd_switch --autopilot] && [have_board virt_qemu_riscv]} {
exit 0
}
-build "core init test/aes_cbc_4k"
+build { core lib/ld init lib/libc lib/vfs lib/libcrypto test/aes_cbc_4k }
create_boot_directory
@@ -132,10 +132,8 @@ if {$debug_steps} { exit 0 }
#
# build and boot image
#
-set boot_modules { core ld.lib.so init }
-append boot_modules { libc.lib.so vfs.lib.so libcrypto.lib.so test-aes_cbc_4k }
-build_boot_image $boot_modules
+build_boot_image [build_artifacts]
append qemu_args "-nographic "
diff --git a/repos/gems/run/cpu_load_display.run b/repos/gems/run/cpu_load_display.run
index cc3d640df4..2a5b7b4ce5 100644
--- a/repos/gems/run/cpu_load_display.run
+++ b/repos/gems/run/cpu_load_display.run
@@ -147,6 +147,7 @@ install_config {
}
-build_boot_image {}
+build_boot_image [build_artifacts]
+
append qemu_args " -smp 4,cores=4 "
run_genode_until forever
diff --git a/repos/gems/run/cpu_sampler.run b/repos/gems/run/cpu_sampler.run
index 9c09b73cf2..31ada1f0c9 100644
--- a/repos/gems/run/cpu_sampler.run
+++ b/repos/gems/run/cpu_sampler.run
@@ -5,8 +5,8 @@ if { ![have_spec foc] && ![have_spec hw] && ![have_spec nova] &&
}
set build_components {
- core init timer
- server/cpu_sampler
+ core lib/ld init timer
+ server/cpu_sampler lib/cpu_sampler_platform
test/cpu_sampler
}
@@ -74,11 +74,7 @@ proc binary_name_cpu_sampler_platform_lib_so { } {
}
}
-build_boot_image {
- core ld.lib.so init timer
- cpu_sampler cpu_sampler_platform.lib.so
- test-cpu_sampler
-}
+build_boot_image [build_artifacts]
append qemu_args "-nographic "
diff --git a/repos/gems/run/decorator.run b/repos/gems/run/decorator.run
index 868bc8ccc9..0366a904d7 100644
--- a/repos/gems/run/decorator.run
+++ b/repos/gems/run/decorator.run
@@ -176,6 +176,6 @@ install_config {
build { app/decorator }
-build_boot_image { decorator }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/decorator_stress.run b/repos/gems/run/decorator_stress.run
index 5e0a9451e2..76675c72bd 100644
--- a/repos/gems/run/decorator_stress.run
+++ b/repos/gems/run/decorator_stress.run
@@ -103,7 +103,6 @@ install_config {
build { app/decorator test/decorator_stress }
-build_boot_image { decorator test-decorator_stress }
-
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/depot_autopilot.run b/repos/gems/run/depot_autopilot.run
index 195eb2b59e..1bbe141c40 100644
--- a/repos/gems/run/depot_autopilot.run
+++ b/repos/gems/run/depot_autopilot.run
@@ -447,7 +447,7 @@ proc prepare_to_run_genode { } {
# Build boot image from boot modules
#
- set boot_modules { depot_autopilot }
+ set boot_modules [build_artifacts]
append boot_modules $test_modules
build_boot_image $boot_modules
diff --git a/repos/gems/run/depot_deploy.run b/repos/gems/run/depot_deploy.run
index d8647b1335..97c2fc6b6e 100644
--- a/repos/gems/run/depot_deploy.run
+++ b/repos/gems/run/depot_deploy.run
@@ -293,7 +293,7 @@ set noswapfile
set viminfo=}
close $vimrc_fd
-build_boot_image { depot_query depot_deploy }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/depot_download.run b/repos/gems/run/depot_download.run
index 435ea954f1..c68e25b3d5 100644
--- a/repos/gems/run/depot_download.run
+++ b/repos/gems/run/depot_download.run
@@ -164,9 +164,7 @@ copy_file [genode_dir]/repos/gems/recipes/raw/depot_download/depot_download.conf
build { app/depot_download_manager app/depot_query }
-append boot_modules { depot_download_manager depot_query }
-
-build_boot_image $boot_modules
+build_boot_image [build_artifacts]
append qemu_args " -nographic "
append_qemu_nic_args
diff --git a/repos/gems/run/depot_query.run b/repos/gems/run/depot_query.run
index 19af356b77..7a20e20085 100644
--- a/repos/gems/run/depot_query.run
+++ b/repos/gems/run/depot_query.run
@@ -136,7 +136,7 @@ install_config {
}
-build_boot_image { init depot_query depot_deploy vfs.lib.so }
+build_boot_image [build_artifacts]
append qemu_args " -nographic "
diff --git a/repos/gems/run/driver_manager.run b/repos/gems/run/driver_manager.run
index 8efad0b9a0..1c034d01cd 100644
--- a/repos/gems/run/driver_manager.run
+++ b/repos/gems/run/driver_manager.run
@@ -138,16 +138,10 @@ set fd [open [run_dir]/genode/usb_policy "w"]
puts $fd {}
close $fd
-
-#
-# Override 'drivers.config' as supplied with the 'drivers_managed-pc' pkg
-# with the (possibly modified) version found in the source tree. This avoids
-# the need to re-create the pkg while testing modifications of this file.
-#
-copy_file [genode_dir]/repos/gems/recipes/raw/drivers_managed-pc/drivers.config \
+copy_file [genode_dir]/repos/gems/sculpt/drivers/pc \
[run_dir]/genode/drivers.config
-build_boot_image { driver_manager test-driver_manager ld.lib.so }
+build_boot_image [build_artifacts]
#
# Build ext2 file-system images to be supplied to Qemu
diff --git a/repos/gems/run/file_vault.inc b/repos/gems/run/file_vault.inc
index 659301a3ac..940353d866 100644
--- a/repos/gems/run/file_vault.inc
+++ b/repos/gems/run/file_vault.inc
@@ -393,12 +393,7 @@ if {[have_board linux]} {
exec mkdir -p bin/file_vault_dir/trust_anchor
}
-append boot_modules {
-
- file_vault
- file_vault-sync_to_tresor_vfs_init
- file_vault-truncate_file
-}
+append boot_modules [build_artifacts]
lappend_if [have_board linux] boot_modules file_vault_dir
diff --git a/repos/gems/run/fs_query.run b/repos/gems/run/fs_query.run
index fec0651a92..7116c586ab 100644
--- a/repos/gems/run/fs_query.run
+++ b/repos/gems/run/fs_query.run
@@ -225,7 +225,7 @@ install_config {
build { app/sequence app/fs_query }
-build_boot_image { sequence fs_query }
+build_boot_image [build_artifacts]
append qemu_args " -nographic "
diff --git a/repos/gems/run/gpt_write.run b/repos/gems/run/gpt_write.run
index 776ccc693f..3993a4ba9a 100644
--- a/repos/gems/run/gpt_write.run
+++ b/repos/gems/run/gpt_write.run
@@ -6,7 +6,7 @@ assert_spec linux
#
# Build
#
-build { core init timer server/lx_block app/gpt_write }
+build { core lib/ld init timer server/lx_block app/gpt_write }
create_boot_directory
@@ -60,13 +60,7 @@ install_config {
#
catch { exec dd if=/dev/zero of=bin/gpt.img bs=1M count=256 }
-#
-# Boot modules
-#
-build_boot_image {
- core ld.lib.so init timer lx_block gpt_write
- gpt.img
-}
+build_boot_image [list {*}[build_artifacts] gpt.img]
run_genode_until {child "gpt_write" exited with exit value 0.*\n} 10
diff --git a/repos/gems/run/gui_fader.run b/repos/gems/run/gui_fader.run
index 027b2e1f5c..b8912ee71f 100644
--- a/repos/gems/run/gui_fader.run
+++ b/repos/gems/run/gui_fader.run
@@ -125,6 +125,6 @@ install_config {
build { server/gui_fader }
-build_boot_image { gui_fader }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/menu_view.run b/repos/gems/run/menu_view.run
index b7225f7f86..b684798cb0 100644
--- a/repos/gems/run/menu_view.run
+++ b/repos/gems/run/menu_view.run
@@ -330,6 +330,6 @@ install_config {
build { app/menu_view }
-build_boot_image { menu_view menu_view_styles.tar }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/mixer_gui_qt_test.run b/repos/gems/run/mixer_gui_qt_test.run
index 313cb7d10d..d8ea2f2a4f 100644
--- a/repos/gems/run/mixer_gui_qt_test.run
+++ b/repos/gems/run/mixer_gui_qt_test.run
@@ -7,20 +7,16 @@ import_from_depot [depot_user]/src/dynamic_rom \
# Generate config
#
-append config {
+install_config {
- }
-append config [qt5_parent_provides]
-append config {
+
+ } [qt5_parent_provides] {
- }
-
-append config [qt5_start_nodes]
-
-append config {
+
+ } [qt5_start_nodes] {
@@ -80,15 +76,7 @@ append config {
}
-install_config $config
-
-#
-# Boot modules
-#
-
-append boot_modules [qt5_boot_modules]
-
-build_boot_image $boot_modules
+build_boot_image [qt5_boot_modules]
run_genode_until forever
diff --git a/repos/gems/run/nano3d.run b/repos/gems/run/nano3d.run
index a839ba50c3..d4cebff5c0 100644
--- a/repos/gems/run/nano3d.run
+++ b/repos/gems/run/nano3d.run
@@ -8,7 +8,7 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/src/dynamic_rom \
[depot_user]/src/nitpicker
-append config {
+install_config {
@@ -112,10 +112,8 @@ append config {
}
-install_config $config
-
build { app/nano3d }
-build_boot_image { nano3d }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/tcp_terminal.run b/repos/gems/run/tcp_terminal.run
index 7fcaa65f31..ea611fc24f 100644
--- a/repos/gems/run/tcp_terminal.run
+++ b/repos/gems/run/tcp_terminal.run
@@ -115,10 +115,7 @@ install_config {
}
-build_boot_image { tcp_terminal }
-
-
-# qemu config
+build_boot_image [build_artifacts]
append qemu_args " -nographic "
append_qemu_nic_args "hostfwd=tcp::5555-:8888"
diff --git a/repos/gems/run/terminal_echo.run b/repos/gems/run/terminal_echo.run
index bce277ff49..8e2f43aa1b 100644
--- a/repos/gems/run/terminal_echo.run
+++ b/repos/gems/run/terminal_echo.run
@@ -77,7 +77,7 @@ close $fd
build { server/terminal }
-build_boot_image { terminal }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/terminal_log.run b/repos/gems/run/terminal_log.run
index c29495e8f8..5b752fcf0d 100644
--- a/repos/gems/run/terminal_log.run
+++ b/repos/gems/run/terminal_log.run
@@ -94,6 +94,6 @@ install_config {
build { server/terminal_log test/nitpicker }
-build_boot_image { terminal_log testnit }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/text_area.run b/repos/gems/run/text_area.run
index 049ff118a6..d0573d5a94 100644
--- a/repos/gems/run/text_area.run
+++ b/repos/gems/run/text_area.run
@@ -147,8 +147,8 @@ set fd [open [run_dir]/genode/focus w]
puts $fd " \"/>"
close $fd
-build { app/text_area app/menu_view }
+build { app/text_area app/menu_view lib/vfs lib/sandbox }
-build_boot_image { text_area sandbox.lib.so vfs.lib.so menu_view menu_view_styles.tar }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/text_painter.run b/repos/gems/run/text_painter.run
index abbebde446..87d6c24f12 100644
--- a/repos/gems/run/text_painter.run
+++ b/repos/gems/run/text_painter.run
@@ -99,6 +99,6 @@ set fd [open [run_dir]/genode/focus w]
puts $fd " \" domain=\"default\"/>"
close $fd
-build_boot_image { vfs test-text_painter vfs_ttf.lib.so }
+build_boot_image [build_artifacts]
run_genode_until forever
diff --git a/repos/gems/run/tiled_wm.run b/repos/gems/run/tiled_wm.run
index c57f740e83..f96b91379f 100644
--- a/repos/gems/run/tiled_wm.run
+++ b/repos/gems/run/tiled_wm.run
@@ -33,7 +33,7 @@ proc qt5_decorator_config { } {
}
}
-append config {
+install_config {
} [qt5_parent_provides] {
@@ -219,18 +219,7 @@ append config {
}
-install_config $config
-
-# for debugging only
-#append build_components { app/window_layouter app/themed_decorator }
-#build $build_components
-
-append boot_modules [qt5_boot_modules]
-
-# for debugging only
-#append boot_modules { window_layouter themed_decorator }
-
-build_boot_image $boot_modules
+build_boot_image [qt5_boot_modules]
run_genode_until forever
diff --git a/repos/gems/run/trace_recorder.run b/repos/gems/run/trace_recorder.run
index f29544d2e9..4f29b4a227 100644
--- a/repos/gems/run/trace_recorder.run
+++ b/repos/gems/run/trace_recorder.run
@@ -149,9 +149,7 @@ install_config {
exec rm -rf bin/fs
exec mkdir -p bin/fs
-build_boot_image { lx_fs
- fs
- ping }
+build_boot_image [list {*}[build_artifacts] fs]
append qemu_args " -nographic "
diff --git a/repos/gems/run/trace_recorder_ctf.run b/repos/gems/run/trace_recorder_ctf.run
index 4310428a11..b25d3b1f65 100644
--- a/repos/gems/run/trace_recorder_ctf.run
+++ b/repos/gems/run/trace_recorder_ctf.run
@@ -159,8 +159,7 @@ install_config {
exec rm -rf bin/fs
exec mkdir -p bin/fs
-build_boot_image { lx_fs
- fs }
+build_boot_image [list {*}[build_artifacts] fs]
append qemu_args " -nographic "
diff --git a/repos/gems/run/trace_recorder_pcapng.run b/repos/gems/run/trace_recorder_pcapng.run
index 27d6770b7c..b3de8a9adf 100644
--- a/repos/gems/run/trace_recorder_pcapng.run
+++ b/repos/gems/run/trace_recorder_pcapng.run
@@ -129,9 +129,7 @@ install_config {
exec rm -rf bin/fs
exec mkdir -p bin/fs/
-build_boot_image { lx_fs
- fs
- ping }
+build_boot_image [list {*}[build_artifacts] fs]
append qemu_args " -nographic "
diff --git a/repos/gems/run/tresor_tester.run b/repos/gems/run/tresor_tester.run
index 5f39f5b5b1..71699c4d12 100644
--- a/repos/gems/run/tresor_tester.run
+++ b/repos/gems/run/tresor_tester.run
@@ -58,10 +58,8 @@ proc jent_avail { } {
}
append build_components {
- core
- init
- timer
- server/vfs
+ core lib/ld init timer
+ server/vfs lib/vfs lib/libc lib/libcrypto
app/tresor_tester
server/log_terminal
server/report_rom
@@ -1115,27 +1113,9 @@ if {[have_board linux]} {
}
}
-append boot_modules {
- core
- init
- timer
- tresor_tester
- ld.lib.so
- log_terminal
- report_rom
- vfs
- libc.lib.so
- libcrypto.lib.so
- vfs.lib.so
- vfs_tresor_trust_anchor.lib.so
- vfs_tresor_crypto_aes_cbc.lib.so
- vfs_import.lib.so
-}
+set boot_modules [build_artifacts]
-append_if [jent_avail] boot_modules { vfs_jitterentropy.lib.so }
-
-append_if [have_board linux] boot_modules { lx_fs }
-append_if [have_board linux] boot_modules [tresor_image_name]
+lappend_if [have_board linux] boot_modules [tresor_image_name]
build_boot_image $boot_modules
diff --git a/repos/gems/run/vfs_import.run b/repos/gems/run/vfs_import.run
index 226378f67c..d2314339ee 100644
--- a/repos/gems/run/vfs_import.run
+++ b/repos/gems/run/vfs_import.run
@@ -3,7 +3,7 @@ if {[get_cmd_switch --autopilot] && [have_board virt_qemu_riscv]} {
exit 0
}
-build { app/sequence server/vfs lib/vfs_import test/libc }
+build { app/sequence server/vfs lib/libc lib/vfs lib/vfs_import test/libc }
create_boot_directory
@@ -104,7 +104,7 @@ install_config {
}
-build_boot_image { vfs_import.lib.so libc.lib.so vfs vfs.lib.so sequence }
+build_boot_image [build_artifacts]
append qemu_args " -nographic "
diff --git a/repos/gems/run/vfs_tresor.run b/repos/gems/run/vfs_tresor.run
index 1b0b0d8bd2..10c81a8e0e 100644
--- a/repos/gems/run/vfs_tresor.run
+++ b/repos/gems/run/vfs_tresor.run
@@ -17,9 +17,7 @@ import_from_depot [depot_user]/pkg/[drivers_interactive_pkg] \
build {
- core
- timer
- init
+ core lib/ld timer init
server/lx_fs
lib/vfs_tresor
lib/vfs_tresor_crypto_aes_cbc
@@ -28,6 +26,7 @@ build {
lib/vfs_import
lib/vfs_jitterentropy
lib/vfs_pipe
+ lib/vfs lib/libc lib/posix lib/libcrypto
test/vfs_stress
test/libc
server/log_terminal
@@ -295,35 +294,10 @@ set shell_script "run/vfs_tresor.sh"
set repo "[repository_contains $shell_script]"
exec cp $repo/$shell_script bin/
-append boot_modules {
- lx_fs
- tresor_init_trust_anchor
- vfs_tresor.lib.so
- vfs_tresor_crypto_aes_cbc.lib.so
- vfs_tresor_crypto_memcopy.lib.so
- vfs_tresor_trust_anchor.lib.so
- vfs_tresor.sh
- vfs.lib.so
- vfs_import.lib.so
- vfs_jitterentropy.lib.so
- vfs_pipe.lib.so
- posix.lib.so
- libc.lib.so
- libcrypto.lib.so
- log_terminal
- fs_rom
- report_rom
- sequence
- init
- core
- timer
- ld.lib.so
-}
+set boot_modules [build_artifacts]
-append boot_modules {
- encrypted_private_key superblock_hash
-}
-append boot_modules [tresor_image_file]
+append boot_modules { vfs_tresor.sh encrypted_private_key superblock_hash }
+lappend boot_modules [tresor_image_file]
set fd [open [run_dir]/genode/focus w]
puts $fd " \" domain=\"default\"/>"
diff --git a/repos/gems/run/vfs_tresor_init.run b/repos/gems/run/vfs_tresor_init.run
index 67cf44e1f0..3007541865 100644
--- a/repos/gems/run/vfs_tresor_init.run
+++ b/repos/gems/run/vfs_tresor_init.run
@@ -11,11 +11,11 @@ proc tresor_image_size_mb { } {
return $image_size
}
-append build_components {
- core init timer
+build {
+ core lib/ld init timer
server/lx_block
server/lx_fs
- server/vfs
+ server/vfs lib/vfs
app/sequence
app/tresor_init_trust_anchor
@@ -27,8 +27,6 @@ append build_components {
lib/libcrypto
}
-build $build_components
-
create_boot_directory
append config {
@@ -147,28 +145,7 @@ install_config $config
exec rm -rf bin/[tresor_image_file]
exec truncate -s [tresor_image_size_mb]M bin/[tresor_image_file]
-append boot_modules {
- core
- init
- timer
- lx_block
- lx_fs
- sequence
- vfs
- vfs.lib.so
- vfs_jitterentropy.lib.so
- ld.lib.so
- libcrypto.lib.so
- libc.lib.so
- tresor_init_trust_anchor
- tresor_init
- vfs_tresor_trust_anchor.lib.so
- vfs_tresor_crypto_aes_cbc.lib.so
-}
-
-append boot_modules [tresor_image_file]
-
-build_boot_image $boot_modules
+build_boot_image [list {*}[build_artifacts] [tresor_image_file]]
run_genode_until {.*child "initialize_tresor" exited with exit value 0.*\n} 240
diff --git a/repos/gems/run/wm.run b/repos/gems/run/wm.run
index 0032922587..9db7234587 100644
--- a/repos/gems/run/wm.run
+++ b/repos/gems/run/wm.run
@@ -158,6 +158,6 @@ copy_file [genode_dir]/repos/gems/recipes/raw/motif_wm/wm.config [run_dir]/genod
build { app/window_layouter app/decorator server/nitpicker server/wm test/nitpicker }
-build_boot_image { window_layouter decorator nitpicker wm testnit }
+build_boot_image [build_artifacts]
run_genode_until forever