diff --git a/repos/gems/recipes/pkg/sculpt-pc/README b/repos/gems/recipes/pkg/sculpt-pc/README
new file mode 100644
index 0000000000..f3e32bc16d
--- /dev/null
+++ b/repos/gems/recipes/pkg/sculpt-pc/README
@@ -0,0 +1 @@
+The x86-PC specific parts needed to run sculpt.
diff --git a/repos/gems/recipes/pkg/sculpt-pc/archives b/repos/gems/recipes/pkg/sculpt-pc/archives
new file mode 100644
index 0000000000..877e0b59ff
--- /dev/null
+++ b/repos/gems/recipes/pkg/sculpt-pc/archives
@@ -0,0 +1,7 @@
+_/pkg/drivers_managed-pc
+_/pkg/sculpt
+_/pkg/wifi
+_/src/rtc_drv
+_/src/ipxe_nic_drv
+_/src/nvme_drv
+
diff --git a/repos/gems/recipes/pkg/sculpt-pc/hash b/repos/gems/recipes/pkg/sculpt-pc/hash
new file mode 100644
index 0000000000..cdc7ac464c
--- /dev/null
+++ b/repos/gems/recipes/pkg/sculpt-pc/hash
@@ -0,0 +1 @@
+2020-11-24 3f831fdee6c570eb09e3ad41b7c0c665c2beb50e
diff --git a/repos/gems/recipes/pkg/sculpt/archives b/repos/gems/recipes/pkg/sculpt/archives
index 614505ad6b..5eff5d1e36 100644
--- a/repos/gems/recipes/pkg/sculpt/archives
+++ b/repos/gems/recipes/pkg/sculpt/archives
@@ -1,5 +1,3 @@
-_/pkg/drivers_managed-pc
-_/pkg/wifi
_/pkg/depot_download
_/pkg/terminal
_/pkg/backdrop
@@ -13,7 +11,6 @@ _/src/nitpicker
_/src/global_keys_handler
_/src/gui_fb
_/src/gui_fader
-_/src/rtc_drv
_/src/rom_filter
_/src/terminal_log
_/src/file_terminal
@@ -28,7 +25,6 @@ _/src/vfs_import
_/src/vfs_lxip
_/src/vfs_pipe
_/src/rump
-_/src/ipxe_nic_drv
_/src/chroot
_/src/fetchurl
_/src/curl
@@ -38,7 +34,6 @@ _/src/log_core
_/src/part_block
_/src/nic_router
_/src/fs_utils
-_/src/nvme_drv
_/src/wm
_/src/themed_decorator
_/src/libpng
diff --git a/repos/gems/recipes/raw/drivers_managed-pc/drivers.config b/repos/gems/recipes/raw/drivers_managed-pc/drivers.config
index 17da6f2a53..772dfee9c4 100644
--- a/repos/gems/recipes/raw/drivers_managed-pc/drivers.config
+++ b/repos/gems/recipes/raw/drivers_managed-pc/drivers.config
@@ -32,6 +32,9 @@
+
+
+
@@ -176,6 +179,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run
index 16f2335a94..7c7ccac870 100644
--- a/repos/gems/run/sculpt.run
+++ b/repos/gems/run/sculpt.run
@@ -1,6 +1,6 @@
-if {![have_spec x86] || [have_spec linux]} {
- puts "Platform is unsupported."
- exit 0
+if {![have_spec pc]} {
+ puts "Platform is unsupported.";
+ exit 0;
}
if {[have_spec nova]} {
@@ -10,13 +10,18 @@ if {[have_spec nova]} {
create_boot_directory
import_from_depot [depot_user]/src/[base_src] \
- [depot_user]/pkg/sculpt
+ [depot_user]/pkg/sculpt-[board]
proc config_system_content {} { return {\
} }
+proc nic_drv {} {
+ if {[have_spec pc]} { return ipxe_nic_drv }
+ puts "\n Run script is not supported on this platform. \n";
+ exit 0;
+}
install_config {
@@ -260,6 +265,7 @@ install_config {
+
@@ -429,11 +435,6 @@ install_config {
-
-
-
-
-
@@ -455,6 +456,7 @@ install_config {
+
@@ -483,7 +485,7 @@ install_config {
-
+
@@ -505,27 +507,29 @@ file copy -force [genode_dir]/repos/gems/recipes/pkg/sculpt/README [run_dir]/gen
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_ch.chargen de_de.chargen fr_ch.chargen fr_fr.chargen special.chargen } {
file copy -force [genode_dir]/repos/os/src/server/event_filter/$file \
- [run_dir]/genode/$file }
-
-file copy -force [genode_dir]/repos/gems/recipes/raw/drivers_managed-pc/event_filter.config \
- [run_dir]/genode/event_filter.config
+ [run_dir]/genode/$file }
file copy -force [genode_dir]/repos/gems/recipes/raw/depot_download/depot_download.config \
- [run_dir]/genode/depot_download.config
+ [run_dir]/genode/depot_download.config
file copy -force [genode_dir]/VERSION [run_dir]/genode/
file copy -force [genode_dir]/repos/gems/src/app/backdrop/genode_logo.png [run_dir]/genode/
file copy -force [genode_dir]/repos/gems/run/sculpt/drop_shadow.png [run_dir]/genode/
-exec gzip -dc [genode_dir]/repos/gems/run/sculpt/machine.vdi.gz > [run_dir]/genode/machine.vdi
+if {[have_spec pc]} {
+ file copy -force [genode_dir]/repos/gems/recipes/raw/drivers_managed-pc/event_filter.config \
+ [run_dir]/genode/event_filter.config
+
+ 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
+
+ exec gzip -dc [genode_dir]/repos/gems/run/sculpt/machine.vdi.gz > [run_dir]/genode/machine.vdi
+}
#
diff --git a/repos/gems/src/app/sculpt_manager/main.cc b/repos/gems/src/app/sculpt_manager/main.cc
index 3bd14e0356..b81e46267a 100644
--- a/repos/gems/src/app/sculpt_manager/main.cc
+++ b/repos/gems/src/app/sculpt_manager/main.cc
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
/* included from depot_deploy tool */
#include
diff --git a/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc b/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc
index 634074701d..a5af189824 100644
--- a/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc
+++ b/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc
@@ -17,8 +17,6 @@ void Sculpt::gen_nic_drv_start_content(Xml_generator &xml)
{
gen_common_start_content(xml, "nic_drv", Cap_quota{300}, Ram_quota{16*1024*1024});
- xml.node("binary", [&] () { xml.attribute("name", "ipxe_nic_drv"); });
-
gen_provides(xml);
xml.node("config", [&] () { });
@@ -28,7 +26,7 @@ void Sculpt::gen_nic_drv_start_content(Xml_generator &xml)
xml.node("parent", [&] () {
xml.attribute("label", "nic"); }); });
- gen_parent_rom_route(xml, "ipxe_nic_drv");
+ gen_parent_rom_route(xml, "nic_drv");
gen_parent_rom_route(xml, "ld.lib.so");
gen_parent_route (xml);
gen_parent_route (xml);
diff --git a/repos/gems/src/app/sculpt_manager/target.mk b/repos/gems/src/app/sculpt_manager/target.mk
index 99aa9b5a2b..5a69a43cb7 100644
--- a/repos/gems/src/app/sculpt_manager/target.mk
+++ b/repos/gems/src/app/sculpt_manager/target.mk
@@ -3,4 +3,3 @@ SRC_CC := $(notdir $(wildcard $(PRG_DIR)/*.cc))
SRC_CC += $(addprefix view/, $(notdir $(wildcard $(PRG_DIR)/view/*.cc)))
LIBS += base
INC_DIR += $(PRG_DIR) $(REP_DIR)/src/app/depot_deploy
-REQUIRES = x86