treewide: remove direct access to external/
This prepares the repositoriy to be compatible with the flag
--nolegacy_external_runfiles. This reduces runfiles & sandbox creation
times.
Change-Id: I06720be4a3c873d68d8278dcb24271ed874f7134
Reviewed-on: https://review.monogon.dev/c/monogon/+/2747
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/vm/smoketest/BUILD.bazel b/metropolis/vm/smoketest/BUILD.bazel
index 1dce6e4..7264bcf 100644
--- a/metropolis/vm/smoketest/BUILD.bazel
+++ b/metropolis/vm/smoketest/BUILD.bazel
@@ -6,6 +6,7 @@
srcs = ["main.go"],
importpath = "source.monogon.dev/metropolis/vm/smoketest",
visibility = ["//visibility:private"],
+ deps = ["@io_bazel_rules_go//go/runfiles:go_default_library"],
)
node_initramfs(
diff --git a/metropolis/vm/smoketest/main.go b/metropolis/vm/smoketest/main.go
index 103f4d3..d22a578 100644
--- a/metropolis/vm/smoketest/main.go
+++ b/metropolis/vm/smoketest/main.go
@@ -25,6 +25,8 @@
"net"
"os"
"os/exec"
+
+ "github.com/bazelbuild/rules_go/go/runfiles"
)
func main() {
@@ -47,11 +49,21 @@
}
}()
+ qemuPath, err := runfiles.Rlocation("qemu/qemu-x86_64-softmmu")
+ if err != nil {
+ panic(err)
+ }
+
+ // TODO(lorenz): This explicitly doesn't use our own qboot because it cannot be built in a musl configuration.
+ // This will be fixed once we have a proper multi-target toolchain.
+ biosPath, err := runfiles.Rlocation("qemu/pc-bios/qboot.rom")
+ if err != nil {
+ panic(err)
+ }
+
baseArgs := []string{"-nodefaults", "-no-user-config", "-nographic", "-no-reboot",
"-accel", "kvm", "-cpu", "host",
- // TODO(lorenz): This explicitly doesn't use our own qboot because it cannot be built in a musl configuration.
- // This will be fixed once we have a proper multi-target toolchain.
- "-bios", "external/qemu/pc-bios/qboot.rom",
+ "-bios", biosPath,
"-M", "microvm,x-option-roms=off,pic=off,pit=off,rtc=off,isa-serial=off",
"-kernel", "metropolis/test/ktest/linux-testing.elf",
"-append", "reboot=t console=hvc0 quiet",
@@ -62,7 +74,7 @@
"-chardev", "socket,id=test,path=metropolis/vm/smoketest,abstract=on",
"-device", "virtserialport,chardev=test",
}
- qemuCmd := exec.Command("external/qemu/qemu-x86_64-softmmu", baseArgs...)
+ qemuCmd := exec.Command(qemuPath, baseArgs...)
qemuCmd.Stdout = os.Stdout
qemuCmd.Stderr = os.Stderr
if err := qemuCmd.Run(); err != nil {