diff --git a/errata/pkg.mk.awk b/errata/pkg.mk.awk
index 8094d707d..67d99b977 100644
--- a/errata/pkg.mk.awk
+++ b/errata/pkg.mk.awk
@@ -4,7 +4,7 @@
{ print "all: " tar ".sig" }
-{ print tar": depot/local/pkg/"$6"/current/.ARCHIVES pkg.sed" }
+{ print tar": depot/local/pkg/"$6"/current/.ARCHIVES" }
{ print " @echo tar $@" }
{ print " @mkdir -p $(dir $@) "ver }
{ print " @sed -f pkg.sed $< > "ver"/archives" }
diff --git a/index.xml b/index.xml
index 9e76936fa..31a365875 100644
--- a/index.xml
+++ b/index.xml
@@ -35,12 +35,14 @@
-->
-
-
+
+
+
+
@@ -84,5 +86,6 @@
+
diff --git a/runtimes/dummy_block/Tupfile b/runtimes/dummy_block/Tupfile
new file mode 100644
index 000000000..540013765
--- /dev/null
+++ b/runtimes/dummy_block/Tupfile
@@ -0,0 +1,4 @@
+TARGET_NAME = dummy_block
+include_rules
+PKG_DEPENDS += @(PUBLIC_SRC_RAM_BLOCK)
+: runtime |> !collect_pkg_runtime |>
diff --git a/runtimes/dummy_block/runtime b/runtimes/dummy_block/runtime
new file mode 100644
index 000000000..4b12839f0
--- /dev/null
+++ b/runtimes/dummy_block/runtime
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/runtimes/fs_block_4G/Tupfile b/runtimes/fs_block_4G/Tupfile
new file mode 100644
index 000000000..e53d4aa0e
--- /dev/null
+++ b/runtimes/fs_block_4G/Tupfile
@@ -0,0 +1,4 @@
+TARGET_NAME = fs_block_4G
+include_rules
+PKG_DEPENDS += _/src/fs_block
+: runtime |> !collect_pkg_runtime |>
diff --git a/runtimes/fs_block_4G/runtime b/runtimes/fs_block_4G/runtime
new file mode 100644
index 000000000..b721d9845
--- /dev/null
+++ b/runtimes/fs_block_4G/runtime
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/vm/alpine/Tuprules.tup b/vm/alpine/Tuprules.tup
new file mode 100644
index 000000000..72375611f
--- /dev/null
+++ b/vm/alpine/Tuprules.tup
@@ -0,0 +1,3 @@
+ALPINE_VERSION_MAJOR = 3.9
+ALPINE_VERSION_MINOR = 3
+ALPINE_VERSION = $(ALPINE_VERSION_MAJOR).$(ALPINE_VERSION_MINOR)
diff --git a/vm/alpine/media/Tuprules.tup b/vm/alpine/media/Tuprules.tup
new file mode 100644
index 000000000..f796d64fa
--- /dev/null
+++ b/vm/alpine/media/Tuprules.tup
@@ -0,0 +1 @@
+ISO_ROM_RULES = $(TUP_CWD)/iso_rom_rules.tup
diff --git a/vm/alpine/media/iso_rom_rules.tup b/vm/alpine/media/iso_rom_rules.tup
new file mode 100644
index 000000000..693680974
--- /dev/null
+++ b/vm/alpine/media/iso_rom_rules.tup
@@ -0,0 +1,24 @@
+include ../version.tup
+TARGET_NAME = alpine-$(RELEASE_TYPE)-$(RELEASE_ARCH)
+RAW_VERSION = $(ALPINE_VERSION)
+PKG_VERSION = $(ALPINE_VERSION)
+
+include_rules
+
+ISO_NAME = alpine-$(RELEASE_TYPE)-$(ALPINE_VERSION)-$(RELEASE_ARCH).iso
+ISO_URL = http://dl-cdn.alpinelinux.org/alpine/v$(ALPINE_VERSION_MAJOR)/releases/$(RELEASE_ARCH)/$(ISO_NAME)
+
+: |> wget --quiet $(ISO_URL) -O %o |> $(RAW_DIR)/$(ISO_NAME) {iso}
+
+: {iso} |> \
+ wget --quiet $(ISO_URL).asc -O %o; gpg --verify %o; \
+|> $(RAW_DIR)/$(ISO_NAME).asc
+
+: |> !raw |>
+
+PKG_DEPENDS += \
+ @(PUBLIC_SRC_ROM_BLOCK) \
+ _/raw/$(TARGET_NAME) \
+
+: $(TUP_CWD)/runtime.in |> sed 's/@ISO_NAME@/$(ISO_NAME)/' %f > %o |> runtime
+: runtime |> !collect_pkg_runtime |>
diff --git a/vm/alpine/media/runtime.in b/vm/alpine/media/runtime.in
new file mode 100644
index 000000000..516429b08
--- /dev/null
+++ b/vm/alpine/media/runtime.in
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vm/alpine/media/virtual-x86_64/Tupfile b/vm/alpine/media/virtual-x86_64/Tupfile
new file mode 100644
index 000000000..283e2720f
--- /dev/null
+++ b/vm/alpine/media/virtual-x86_64/Tupfile
@@ -0,0 +1,3 @@
+RELEASE_ARCH = x86_64
+RELEASE_TYPE = virt
+include ../iso_rom_rules.tup
diff --git a/vm/alpine/version.tup b/vm/alpine/version.tup
new file mode 100644
index 000000000..72375611f
--- /dev/null
+++ b/vm/alpine/version.tup
@@ -0,0 +1,3 @@
+ALPINE_VERSION_MAJOR = 3.9
+ALPINE_VERSION_MINOR = 3
+ALPINE_VERSION = $(ALPINE_VERSION_MAJOR).$(ALPINE_VERSION_MINOR)
diff --git a/vm/reactos/Tupfile b/vm/reactos/Tupfile
new file mode 100644
index 000000000..db2906ea5
--- /dev/null
+++ b/vm/reactos/Tupfile
@@ -0,0 +1,20 @@
+TARGET_NAME = ReactOS-live
+RAW_VERSION = 0.4.11
+include_rules
+
+ZIP_NAME = ReactOS-$(RAW_VERSION)-live.zip
+ISO_NAME = ReactOS-$(RAW_VERSION)-Live.iso
+
+: |> \
+ wget --quiet https://downloads.sourceforge.net/project/reactos/ReactOS/$(RAW_VERSION)/$(ZIP_NAME) -O %o.zip; \
+ unzip %o.zip -d $(RAW_DIR); rm %o.zip; \
+|> $(RAW_DIR)/$(ISO_NAME) {iso}
+
+: |> !raw |>
+
+PKG_DEPENDS += \
+ @(PUBLIC_SRC_ROM_BLOCK) \
+ _/raw/$(TARGET_NAME) \
+
+: runtime.in |> sed 's/@ISO_NAME@/$(ISO_NAME)/' %f > %o |> runtime
+: runtime |> !collect_pkg_runtime |>
diff --git a/vm/reactos/runtime.in b/vm/reactos/runtime.in
new file mode 100644
index 000000000..516429b08
--- /dev/null
+++ b/vm/reactos/runtime.in
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vm/vbox5-nova/Tupfile b/vm/vbox5-nova/Tupfile
new file mode 100644
index 000000000..f738c01ce
--- /dev/null
+++ b/vm/vbox5-nova/Tupfile
@@ -0,0 +1,20 @@
+TARGET_NAME = vbox5-nova
+include_rules
+
+: foreach machine.vbox primary.vmdk secondary.vmdk |> !collect_raw |>
+: |> !raw |>
+
+PKG_DEPENDS += \
+ @(PUBLIC_SRC_BASE_NOVA) \
+ @(PUBLIC_SRC_INIT) \
+ @(PUBLIC_SRC_LIBC) \
+ @(PUBLIC_SRC_LIBICONV) \
+ @(PUBLIC_SRC_NIT_FB) \
+ @(PUBLIC_SRC_POSIX) \
+ @(PUBLIC_SRC_STDCXX) \
+ @(PUBLIC_SRC_VBOX_NOVA) \
+ @(PUBLIC_SRC_VFS) \
+ @(PUBLIC_SRC_ZLIB) \
+ _/raw/$(TARGET_NAME) \
+
+: runtime |> !collect_pkg_runtime |>
diff --git a/vm/vbox5-nova/machine.vbox b/vm/vbox5-nova/machine.vbox
new file mode 100644
index 000000000..9c4349661
--- /dev/null
+++ b/vm/vbox5-nova/machine.vbox
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vm/vbox5-nova/primary.vmdk b/vm/vbox5-nova/primary.vmdk
new file mode 100644
index 000000000..60a71e5f3
--- /dev/null
+++ b/vm/vbox5-nova/primary.vmdk
@@ -0,0 +1,21 @@
+# Disk DescriptorFile
+version=1
+CID=bca55ee1
+parentCID=ffffffff
+createType="fullDevice"
+
+# Extent description
+RW 2147483648 FLAT "/dev/sda" 0
+
+# The disk Data Base
+#DDB
+
+ddb.virtualHWVersion = "4"
+ddb.adapterType="ide"
+ddb.geometry.cylinders="16383"
+ddb.geometry.heads="16"
+ddb.geometry.sectors="63"
+ddb.uuid.image="42f50c88-42b0-41ed-bc76-28cf026f052c"
+ddb.uuid.parent="00000000-0000-0000-0000-000000000000"
+ddb.uuid.modification="00000000-0000-0000-0000-000000000000"
+ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"
diff --git a/vm/vbox5-nova/runtime b/vm/vbox5-nova/runtime
new file mode 100644
index 000000000..d965b51fd
--- /dev/null
+++ b/vm/vbox5-nova/runtime
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vm/vbox5-nova/secondary.vmdk b/vm/vbox5-nova/secondary.vmdk
new file mode 100644
index 000000000..e0f698702
--- /dev/null
+++ b/vm/vbox5-nova/secondary.vmdk
@@ -0,0 +1,21 @@
+# Disk DescriptorFile
+version=1
+CID=57915c32
+parentCID=ffffffff
+createType="fullDevice"
+
+# Extent description
+RW 2147483648 FLAT "/dev/sdb" 0
+
+# The disk Data Base
+#DDB
+
+ddb.virtualHWVersion = "4"
+ddb.adapterType="ide"
+ddb.geometry.cylinders="16383"
+ddb.geometry.heads="16"
+ddb.geometry.sectors="63"
+ddb.uuid.image="8e1b4241-2e6b-417d-8495-3afbaaecac87"
+ddb.uuid.parent="00000000-0000-0000-0000-000000000000"
+ddb.uuid.modification="00000000-0000-0000-0000-000000000000"
+ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"