if {![have_spec x86] || [have_spec linux]} {
puts "Platform is unsupported."
exit 0
}
proc depot_user {} { return [get_cmd_arg --depot-user genodelabs] }
create_boot_directory
import_from_depot [depot_user]/src/[base_src] \
[depot_user]/pkg/sculpt
proc config_system_content {} { return {\
} }
proc config_trace_subject_reporter_content {} { return {\
} }
install_config {
} [config_trace_subject_reporter_content] {
} [config_system_content] {
### start ###}
foreach file [glob "[genode_dir]/repos/gems/run/sculpt/*.config"] {
file copy -force $file [run_dir]/genode/ }
#
# Override files normally obtained from depot archive with the most current
# version found in the Genode source tree. This way, we don't need to
# rebuild the corresponding depot archives each time we tweak one of the
# files. This is just a hack to accelerate the work flow.
#
file copy -force [genode_dir]/repos/gems/recipes/pkg/sculpt/README [run_dir]/genode/
file copy -force [genode_dir]/repos/gems/run/sculpt/vimrc [run_dir]/genode/
file copy -force [genode_dir]/repos/gems/run/sculpt/machine.vbox [run_dir]/genode/
file copy -force [genode_dir]/repos/gems/recipes/raw/drivers_managed-pc/drivers.config \
[run_dir]/genode/drivers.config
foreach file { en_us.chargen de.chargen special.chargen } {
file copy -force [genode_dir]/repos/os/src/server/input_filter/$file \
[run_dir]/genode/$file }
file copy -force [genode_dir]/repos/gems/recipes/raw/drivers_managed-pc/input_filter.config \
[run_dir]/genode/input_filter.config
file copy -force [genode_dir]/repos/gems/recipes/raw/depot_download/depot_download.config \
[run_dir]/genode/depot_download.config
file copy -force [genode_dir]/depot/[depot_user]/pubkey [run_dir]/genode/[depot_user]_pubkey
file copy -force [genode_dir]/depot/[depot_user]/download [run_dir]/genode/[depot_user]_download
file copy -force [genode_dir]/VERSION [run_dir]/genode/
exec gzip -dc [genode_dir]/repos/gems/run/sculpt/machine.vdi.gz > [run_dir]/genode/machine.vdi
#
# Define 'VERSION' ROM module
#
proc sculpt_version { } {
return "[string trim [exec cat [genode_dir]/VERSION]]" }
# write file with newline (for producing nice output when using 'cat /VERSION')
set fd [open [run_dir]/genode/VERSION w]
puts $fd "[sculpt_version]"
close $fd
#
# Package-management support
#
# The package management has two aspects, installation and deployment.
# Packages are installed via the 'install' runtime, which takes the
# information about the packages to install from 'config/installation'.
# Once installed, packages can be deployed via the 'deploy' runtime.
# This runtime can be tailored by modifying 'config/deploy/config'.
#
proc current_pkg { pkg } { return $pkg/[_current_depot_archive_version pkg $pkg] }
#
# Depot packages to be included in the default installation
#
set pkgs_to_install { sculpt-installation }
set fd [open [run_dir]/genode/installation w]
puts $fd ""
foreach pkg $pkgs_to_install {
puts $fd " " }
puts $fd ""
close $fd
#
# Configuration of deploy runtime
#
# This configuration is not provided as a file at run/sculpt/ because some
# parts need to be filled in at run-script execution time, in particular the
# current versions of the packages to deploy.
#
append depot_deploy_config {
}
set fd [open [run_dir]/genode/deploy.config w]
puts $fd $depot_deploy_config
close $fd
#
# Create boot image
#
append boot_modules { }
build_boot_image $boot_modules