blob: 0fb1659de00fdd78401af7065ed0bcd91641673a [file] [log] [blame]
Mateusz Zalega43e21072021-10-08 18:05:29 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidt156248b2025-01-10 00:27:45 +01002load("//osbase/build/genosrelease:defs.bzl", "os_release")
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är69b76872025-05-14 16:39:47 +000010 "//metropolis/node/abloader", #keep
Lorenz Brun54a5a052023-10-02 16:40:11 +020011 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010012 importpath = "source.monogon.dev/metropolis/installer",
Jan Schär10670e52025-04-23 12:54:48 +000013 stampsrcs = ["//build:stabler_status"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020014 visibility = ["//visibility:private"],
Jan Schär10670e52025-04-23 12:54:48 +000015 x_defs = {
16 "copyrightLine": "{STABLER_MONOGON_copyright}",
17 },
Mateusz Zalega43e21072021-10-08 18:05:29 +020018 deps = [
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020019 "//osbase/blockdev",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020020 "//osbase/bringup",
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020021 "//osbase/build/mkimage/osimage",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020022 "//osbase/efivarfs",
Jan Schär5fdca562025-04-14 11:33:29 +000023 "//osbase/oci",
24 "//osbase/oci/osimage",
Jan Schärc1b6df42025-03-20 08:52:18 +000025 "//osbase/structfs",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020026 "//osbase/supervisor",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020027 "//osbase/sysfs",
Lorenz Brund13c1c62022-03-30 19:58:58 +020028 "@org_golang_x_sys//unix",
Mateusz Zalega43e21072021-10-08 18:05:29 +020029 ],
30)
31
32go_binary(
33 name = "installer",
Lorenz Brund13c1c62022-03-30 19:58:58 +020034 embed = [":installer_lib"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020035 visibility = ["//visibility:private"],
36)
37
38node_initramfs(
39 name = "initramfs",
40 files = {
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010041 "/init": "//metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020042 },
Serge Bazanskia3938142022-04-04 17:04:47 +020043 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020044 "//osbase/build:earlydev.fsspec",
Serge Bazanskia3938142022-04-04 17:04:47 +020045 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010046 visibility = ["//metropolis/installer/test:__pkg__"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020047)
48
49os_release(
50 name = "installer-release-info",
51 os_id = "metropolis-installer",
52 os_name = "Metropolis Installer",
Serge Bazanski30494c12023-11-28 16:27:24 +010053 stamp_var = "STABLE_MONOGON_metropolis_version",
Mateusz Zalega43e21072021-10-08 18:05:29 +020054)
55
56efi_unified_kernel_image(
57 name = "kernel",
Lorenz Brun0e057fe2022-01-13 16:19:10 +010058 cmdline = "console=ttyS0,115200 console=tty0 quiet",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010059 initrd = [
Tim Windelschmidt65bf3112024-04-08 21:32:14 +020060 "//third_party:ucode",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010061 ":initramfs",
62 ],
Mateusz Zalega43e21072021-10-08 18:05:29 +020063 kernel = "//third_party/linux",
64 os_release = ":installer-release-info",
65 visibility = ["//visibility:public"],
66)