blob: c262164a5e8d8530975a220f918dc6caf5629204 [file] [log] [blame]
Tim Windelschmidtaffe8fa2024-12-02 17:53:24 +01001load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +01002load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01003load("//osbase/build/mkcpio:def.bzl", "node_initramfs")
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +01004
5node_initramfs(
6 name = "initramfs",
7 files = {},
8 fsspecs = [
9 "//osbase/build:earlydev.fsspec",
10 "//third_party:firmware",
11 ],
12 visibility = ["//metropolis/cli/takeover:__subpackages__"],
13)
14
15go_library(
16 name = "takeover_lib",
17 srcs = [
18 "boot.go",
19 "install.go",
20 "main.go",
21 "takeover.go",
22 ],
23 embedsrcs = [
24 "//third_party/linux", #keep
25 "//third_party:ucode", #keep
26 ":initramfs", #keep
27 "//metropolis/node/core/abloader", #keep
28 ],
29 importpath = "source.monogon.dev/metropolis/cli/takeover",
30 visibility = ["//visibility:private"],
31 deps = [
32 "//go/logging",
33 "//metropolis/node/core/devmgr",
34 "//metropolis/proto/api",
35 "//osbase/blockdev",
36 "//osbase/bootparam",
37 "//osbase/bringup",
38 "//osbase/build/mkimage/osimage",
39 "//osbase/efivarfs",
40 "//osbase/kexec",
41 "//osbase/net/dump",
42 "//osbase/net/proto",
Jan Schärc1b6df42025-03-20 08:52:18 +000043 "//osbase/structfs",
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010044 "//osbase/supervisor",
45 "@com_github_cavaliergopher_cpio//:cpio",
46 "@com_github_klauspost_compress//zstd",
47 "@org_golang_google_protobuf//proto",
48 "@org_golang_x_sys//unix",
49 ],
50)
51
52go_binary(
53 name = "takeover_bin",
54 embed = [":takeover_lib"],
Tim Windelschmidt7a1b27d2024-02-22 23:54:58 +010055 visibility = ["//visibility:public"],
56)
57
58platform_transition_binary(
59 name = "takeover",
60 binary = ":takeover_bin",
61 target_platform = "//build/platforms:linux_amd64_static",
62 visibility = ["//visibility:public"],
63)