m/installer/install: move from osbase/build/mkimage/osimage

Move the package osbase/build/mkimage/osimage to
metropolis/installer/install. The package contains "metropolis" in
various strings, so it fits better in //metropolis than in //osbase.
The parent package mkimage no longer exists.

The rename also removes the name clash with osbase/oci/osimage.

Change-Id: Ia228ab94c937f4c7a5b6eb1fcc77993a594d64b6
Reviewed-on: https://review.monogon.dev/c/monogon/+/4296
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/metropolis/node/core/update/BUILD.bazel b/metropolis/node/core/update/BUILD.bazel
index 0ce75b4..73f6773 100644
--- a/metropolis/node/core/update/BUILD.bazel
+++ b/metropolis/node/core/update/BUILD.bazel
@@ -10,11 +10,11 @@
     visibility = ["//visibility:public"],
     deps = [
         "//go/logging",
+        "//metropolis/installer/install",
         "//metropolis/node/abloader/spec",
         "//metropolis/node/core/productinfo",
         "//metropolis/proto/api",
         "//osbase/blockdev",
-        "//osbase/build/mkimage/osimage",
         "//osbase/efivarfs",
         "//osbase/gpt",
         "//osbase/kexec",
diff --git a/metropolis/node/core/update/e2e/BUILD.bazel b/metropolis/node/core/update/e2e/BUILD.bazel
index 19738eb..5960e66 100644
--- a/metropolis/node/core/update/e2e/BUILD.bazel
+++ b/metropolis/node/core/update/e2e/BUILD.bazel
@@ -25,8 +25,8 @@
         "xAbloaderPath": "$(rlocationpath //metropolis/node/abloader )",
     },
     deps = [
+        "//metropolis/installer/install",
         "//osbase/blockdev",
-        "//osbase/build/mkimage/osimage",
         "//osbase/oci",
         "//osbase/oci/osimage",
         "//osbase/oci/registry",
diff --git a/metropolis/node/core/update/e2e/e2e_test.go b/metropolis/node/core/update/e2e/e2e_test.go
index 8bc2bb9..124883e 100644
--- a/metropolis/node/core/update/e2e/e2e_test.go
+++ b/metropolis/node/core/update/e2e/e2e_test.go
@@ -20,10 +20,10 @@
 
 	"github.com/bazelbuild/rules_go/go/runfiles"
 
+	"source.monogon.dev/metropolis/installer/install"
 	"source.monogon.dev/osbase/blockdev"
-	"source.monogon.dev/osbase/build/mkimage/osimage"
 	"source.monogon.dev/osbase/oci"
-	ociosimage "source.monogon.dev/osbase/oci/osimage"
+	"source.monogon.dev/osbase/oci/osimage"
 	"source.monogon.dev/osbase/oci/registry"
 	"source.monogon.dev/osbase/structfs"
 )
@@ -150,7 +150,7 @@
 		t.Fatal(err)
 	}
 
-	osImageY, err := ociosimage.Read(imageY)
+	osImageY, err := osimage.Read(imageY)
 	if err != nil {
 		t.Fatal(err)
 	}
@@ -189,13 +189,13 @@
 		t.Fatal(err)
 	}
 
-	if _, err := osimage.Write(&osimage.Params{
+	if _, err := install.Write(&install.Params{
 		Output:       rootDisk,
 		Architecture: osImageY.Config.ProductInfo.Architecture(),
 		ABLoader:     loader,
 		EFIPayload:   boot,
 		SystemImage:  system,
-		PartitionSize: osimage.PartitionSizeInfo{
+		PartitionSize: install.PartitionSizeInfo{
 			ESP:    128,
 			System: 256,
 			Data:   10,
diff --git a/metropolis/node/core/update/e2e/testos/BUILD.bazel b/metropolis/node/core/update/e2e/testos/BUILD.bazel
index 5301b57..a4011ce 100644
--- a/metropolis/node/core/update/e2e/testos/BUILD.bazel
+++ b/metropolis/node/core/update/e2e/testos/BUILD.bazel
@@ -13,12 +13,12 @@
     importpath = "source.monogon.dev/metropolis/node/core/update/e2e/testos",
     visibility = ["//visibility:private"],
     deps = [
+        "//metropolis/installer/install",
         "//metropolis/node/core/network",
         "//metropolis/node/core/update",
         "//metropolis/proto/api",
         "//osbase/blockdev",
         "//osbase/bringup",
-        "//osbase/build/mkimage/osimage",
         "//osbase/gpt",
         "//osbase/supervisor",
         "@org_golang_x_sys//unix",
diff --git a/metropolis/node/core/update/e2e/testos/main.go b/metropolis/node/core/update/e2e/testos/main.go
index 2cafebc..0b40127 100644
--- a/metropolis/node/core/update/e2e/testos/main.go
+++ b/metropolis/node/core/update/e2e/testos/main.go
@@ -11,11 +11,11 @@
 
 	"golang.org/x/sys/unix"
 
+	"source.monogon.dev/metropolis/installer/install"
 	"source.monogon.dev/metropolis/node/core/network"
 	"source.monogon.dev/metropolis/node/core/update"
 	"source.monogon.dev/osbase/blockdev"
 	"source.monogon.dev/osbase/bringup"
-	"source.monogon.dev/osbase/build/mkimage/osimage"
 	"source.monogon.dev/osbase/gpt"
 	"source.monogon.dev/osbase/supervisor"
 
@@ -57,11 +57,11 @@
 				return fmt.Errorf("unable to mkdir ESP mountpoint: %w", err)
 			}
 			updateSvc.ProvideESP("/esp", uint32(pn+1), p)
-		case osimage.SystemAType:
+		case install.SystemAType:
 			if err := unix.Symlink(fmt.Sprintf("/dev/vda%d", pn+1), "/dev/system-a"); err != nil {
 				return fmt.Errorf("failed to symlink system-a: %w", err)
 			}
-		case osimage.SystemBType:
+		case install.SystemBType:
 			if err := unix.Symlink(fmt.Sprintf("/dev/vda%d", pn+1), "/dev/system-b"); err != nil {
 				return fmt.Errorf("failed to symlink system-b: %w", err)
 			}
diff --git a/metropolis/node/core/update/update.go b/metropolis/node/core/update/update.go
index ee53f90..d37bb38 100644
--- a/metropolis/node/core/update/update.go
+++ b/metropolis/node/core/update/update.go
@@ -26,13 +26,13 @@
 	"google.golang.org/protobuf/proto"
 
 	"source.monogon.dev/go/logging"
+	"source.monogon.dev/metropolis/installer/install"
 	"source.monogon.dev/metropolis/node/core/productinfo"
 	"source.monogon.dev/osbase/blockdev"
-	"source.monogon.dev/osbase/build/mkimage/osimage"
 	"source.monogon.dev/osbase/efivarfs"
 	"source.monogon.dev/osbase/gpt"
 	"source.monogon.dev/osbase/kexec"
-	ociosimage "source.monogon.dev/osbase/oci/osimage"
+	"source.monogon.dev/osbase/oci/osimage"
 	"source.monogon.dev/osbase/oci/registry"
 
 	abloaderpb "source.monogon.dev/metropolis/node/abloader/spec"
@@ -88,9 +88,9 @@
 func (s Slot) EFIBootPath() string {
 	switch s {
 	case SlotA:
-		return osimage.EFIBootAPath
+		return install.EFIBootAPath
 	case SlotB:
-		return osimage.EFIBootBPath
+		return install.EFIBootBPath
 	default:
 		return ""
 	}
@@ -294,7 +294,7 @@
 		return fmt.Errorf("failed to fetch OS image: %w", err)
 	}
 
-	osImage, err := ociosimage.Read(image)
+	osImage, err := osimage.Read(image)
 	if err != nil {
 		return fmt.Errorf("failed to fetch OS image: %w", err)
 	}
@@ -428,7 +428,7 @@
 var abloader []byte
 
 func (s *Service) fixupPreloader() error {
-	efiBootPath, err := osimage.EFIBootPath(productinfo.Get().Info.Architecture())
+	efiBootPath, err := install.EFIBootPath(productinfo.Get().Info.Architecture())
 	if err != nil {
 		return err
 	}
@@ -473,7 +473,7 @@
 // fixupEFI checks for the existence and correctness of the EFI boot entry
 // repairs/recreates it if needed.
 func (s *Service) fixupEFI() error {
-	efiBootPath, err := osimage.EFIBootPath(productinfo.Get().Info.Architecture())
+	efiBootPath, err := install.EFIBootPath(productinfo.Get().Info.Architecture())
 	if err != nil {
 		return err
 	}