blob: 29eb04c218aaf1e2c0f1aec8a3170470cb73b53d [file] [log] [blame]
Mateusz Zalega43e21072021-10-08 18:05:29 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Jan Schäre6c0c322025-05-12 16:14:25 +00002load("//osbase/build/genproductinfo:defs.bzl", "product_info")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01003load("//osbase/build/mkcpio:def.bzl", "node_initramfs")
4load("//osbase/build/mkpayload:def.bzl", "efi_unified_kernel_image")
Mateusz Zalega43e21072021-10-08 18:05:29 +02005
6go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02007 name = "installer_lib",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +02008 srcs = ["main.go"],
Lorenz Brun54a5a052023-10-02 16:40:11 +02009 embedsrcs = [
Jan Schär36f3b6d2025-05-20 09:05:12 +000010 "//build:copyright_line.txt", #keep
Jan Schär69b76872025-05-14 16:39:47 +000011 "//metropolis/node/abloader", #keep
Lorenz Brun54a5a052023-10-02 16:40:11 +020012 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010013 importpath = "source.monogon.dev/metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020014 visibility = ["//visibility:private"],
15 deps = [
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020016 "//osbase/blockdev",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020017 "//osbase/bringup",
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020018 "//osbase/build/mkimage/osimage",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020019 "//osbase/efivarfs",
Jan Schär5fdca562025-04-14 11:33:29 +000020 "//osbase/oci",
21 "//osbase/oci/osimage",
Jan Schärc1b6df42025-03-20 08:52:18 +000022 "//osbase/structfs",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020023 "//osbase/supervisor",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020024 "//osbase/sysfs",
Lorenz Brund13c1c62022-03-30 19:58:58 +020025 "@org_golang_x_sys//unix",
Mateusz Zalega43e21072021-10-08 18:05:29 +020026 ],
27)
28
29go_binary(
30 name = "installer",
Lorenz Brund13c1c62022-03-30 19:58:58 +020031 embed = [":installer_lib"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020032 visibility = ["//visibility:private"],
33)
34
35node_initramfs(
36 name = "initramfs",
37 files = {
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010038 "/init": "//metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020039 },
Serge Bazanskia3938142022-04-04 17:04:47 +020040 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020041 "//osbase/build:earlydev.fsspec",
Serge Bazanskia3938142022-04-04 17:04:47 +020042 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010043 visibility = ["//metropolis/installer/test:__pkg__"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020044)
45
Jan Schäre6c0c322025-05-12 16:14:25 +000046product_info(
47 name = "product_info",
Mateusz Zalega43e21072021-10-08 18:05:29 +020048 os_id = "metropolis-installer",
49 os_name = "Metropolis Installer",
Jan Schäre6c0c322025-05-12 16:14:25 +000050 out_os_release = ":product_info_os_release",
Serge Bazanski30494c12023-11-28 16:27:24 +010051 stamp_var = "STABLE_MONOGON_metropolis_version",
Mateusz Zalega43e21072021-10-08 18:05:29 +020052)
53
54efi_unified_kernel_image(
55 name = "kernel",
Lorenz Brune3420862025-06-05 12:25:03 +020056 cmdline = "console=ttyS0,115200 console=ttyAMA0 console=tty0 quiet",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010057 initrd = [
Tim Windelschmidt65bf3112024-04-08 21:32:14 +020058 "//third_party:ucode",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010059 ":initramfs",
60 ],
Mateusz Zalega43e21072021-10-08 18:05:29 +020061 kernel = "//third_party/linux",
Jan Schäre6c0c322025-05-12 16:14:25 +000062 os_release = ":product_info_os_release",
Mateusz Zalega43e21072021-10-08 18:05:29 +020063 visibility = ["//visibility:public"],
64)