From 6bf2ec3b3a033586be504c009ed82bf4bc5303b1 Mon Sep 17 00:00:00 2001 From: dawn Date: Sat, 18 Jul 2026 23:49:45 +0300 Subject: [PATCH] spindle/engines/microvm: only build on linux Signed-off-by: dawn --- spindle/engine_microvm_linux.go | 16 ++++++++++++++++ spindle/engine_microvm_other.go | 16 ++++++++++++++++ spindle/engines/microvm/agent.go | 2 ++ spindle/engines/microvm/args.go | 2 ++ spindle/engines/microvm/budget.go | 2 ++ spindle/engines/microvm/dns_proxy.go | 2 ++ spindle/engines/microvm/dns_proxy_test.go | 2 ++ spindle/engines/microvm/engine.go | 2 ++ spindle/engines/microvm/engine_test.go | 2 ++ spindle/engines/microvm/image.go | 2 ++ spindle/engines/microvm/image_test.go | 2 ++ spindle/engines/microvm/models.go | 2 ++ spindle/engines/microvm/models_test.go | 2 ++ spindle/engines/microvm/networking.go | 2 ++ spindle/engines/microvm/nixos_toplevel_cache.go | 2 ++ spindle/engines/microvm/qemu.go | 2 ++ spindle/engines/microvm/read_cache_proxy.go | 2 ++ spindle/engines/microvm/read_cache_proxy_test.go | 2 ++ spindle/engines/microvm/runner.go | 2 ++ spindle/engines/microvm/upload_cache_http.go | 2 ++ spindle/engines/microvm/upload_cache_narinfo.go | 2 ++ .../engines/microvm/upload_cache_nix_store.go | 2 ++ .../microvm/upload_cache_nix_store_test.go | 2 ++ spindle/engines/microvm/upload_cache_proxy.go | 2 ++ .../engines/microvm/upload_cache_proxy_test.go | 2 ++ spindle/engines/microvm/vm.go | 2 ++ spindle/server.go | 3 +-- 27 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 spindle/engine_microvm_linux.go create mode 100644 spindle/engine_microvm_other.go diff --git a/spindle/engine_microvm_linux.go b/spindle/engine_microvm_linux.go new file mode 100644 index 00000000..5c5551b0 --- /dev/null +++ b/spindle/engine_microvm_linux.go @@ -0,0 +1,16 @@ +//go:build linux + +package spindle + +import ( + "context" + + "tangled.org/core/spindle/config" + "tangled.org/core/spindle/db" + "tangled.org/core/spindle/engines/microvm" + "tangled.org/core/spindle/models" +) + +func newMicrovmEngine(ctx context.Context, cfg *config.Config, d *db.DB) (models.Engine, error) { + return microvm.New(ctx, cfg, d) +} diff --git a/spindle/engine_microvm_other.go b/spindle/engine_microvm_other.go new file mode 100644 index 00000000..9da4c9fc --- /dev/null +++ b/spindle/engine_microvm_other.go @@ -0,0 +1,16 @@ +//go:build !linux + +package spindle + +import ( + "context" + "fmt" + + "tangled.org/core/spindle/config" + "tangled.org/core/spindle/db" + "tangled.org/core/spindle/models" +) + +func newMicrovmEngine(context.Context, *config.Config, *db.DB) (models.Engine, error) { + return nil, fmt.Errorf("microvm engine is only supported on Linux") +} diff --git a/spindle/engines/microvm/agent.go b/spindle/engines/microvm/agent.go index ed757810..cfec1aac 100644 --- a/spindle/engines/microvm/agent.go +++ b/spindle/engines/microvm/agent.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/args.go b/spindle/engines/microvm/args.go index 05b370af..0b4f1c42 100644 --- a/spindle/engines/microvm/args.go +++ b/spindle/engines/microvm/args.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/budget.go b/spindle/engines/microvm/budget.go index 20798344..27383266 100644 --- a/spindle/engines/microvm/budget.go +++ b/spindle/engines/microvm/budget.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/dns_proxy.go b/spindle/engines/microvm/dns_proxy.go index 16e6183a..e6b99a0c 100644 --- a/spindle/engines/microvm/dns_proxy.go +++ b/spindle/engines/microvm/dns_proxy.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/dns_proxy_test.go b/spindle/engines/microvm/dns_proxy_test.go index a38b0f4e..cb1de34c 100644 --- a/spindle/engines/microvm/dns_proxy_test.go +++ b/spindle/engines/microvm/dns_proxy_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/engine.go b/spindle/engines/microvm/engine.go index c2f141ab..7bd90c35 100644 --- a/spindle/engines/microvm/engine.go +++ b/spindle/engines/microvm/engine.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/engine_test.go b/spindle/engines/microvm/engine_test.go index 13465cd5..5a5aac7b 100644 --- a/spindle/engines/microvm/engine_test.go +++ b/spindle/engines/microvm/engine_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/image.go b/spindle/engines/microvm/image.go index 71518ce8..e32ad3cd 100644 --- a/spindle/engines/microvm/image.go +++ b/spindle/engines/microvm/image.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/image_test.go b/spindle/engines/microvm/image_test.go index 3c5f66f0..1114937c 100644 --- a/spindle/engines/microvm/image_test.go +++ b/spindle/engines/microvm/image_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/models.go b/spindle/engines/microvm/models.go index 02f3c096..f80772c2 100644 --- a/spindle/engines/microvm/models.go +++ b/spindle/engines/microvm/models.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/models_test.go b/spindle/engines/microvm/models_test.go index b103e4f5..256fe1ec 100644 --- a/spindle/engines/microvm/models_test.go +++ b/spindle/engines/microvm/models_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/networking.go b/spindle/engines/microvm/networking.go index 4a7a8d6c..e79c077f 100644 --- a/spindle/engines/microvm/networking.go +++ b/spindle/engines/microvm/networking.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/nixos_toplevel_cache.go b/spindle/engines/microvm/nixos_toplevel_cache.go index 1617aa2b..a50700ef 100644 --- a/spindle/engines/microvm/nixos_toplevel_cache.go +++ b/spindle/engines/microvm/nixos_toplevel_cache.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/qemu.go b/spindle/engines/microvm/qemu.go index 99f32547..f7ddec42 100644 --- a/spindle/engines/microvm/qemu.go +++ b/spindle/engines/microvm/qemu.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/read_cache_proxy.go b/spindle/engines/microvm/read_cache_proxy.go index 885e5fe7..0c019adb 100644 --- a/spindle/engines/microvm/read_cache_proxy.go +++ b/spindle/engines/microvm/read_cache_proxy.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/read_cache_proxy_test.go b/spindle/engines/microvm/read_cache_proxy_test.go index 29a6bd19..9df05101 100644 --- a/spindle/engines/microvm/read_cache_proxy_test.go +++ b/spindle/engines/microvm/read_cache_proxy_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/runner.go b/spindle/engines/microvm/runner.go index c08e3d84..4ec712d1 100644 --- a/spindle/engines/microvm/runner.go +++ b/spindle/engines/microvm/runner.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_http.go b/spindle/engines/microvm/upload_cache_http.go index 0310ef09..b479616f 100644 --- a/spindle/engines/microvm/upload_cache_http.go +++ b/spindle/engines/microvm/upload_cache_http.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_narinfo.go b/spindle/engines/microvm/upload_cache_narinfo.go index 26645fcf..775d20bc 100644 --- a/spindle/engines/microvm/upload_cache_narinfo.go +++ b/spindle/engines/microvm/upload_cache_narinfo.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_nix_store.go b/spindle/engines/microvm/upload_cache_nix_store.go index 70b9adde..8ec22c47 100644 --- a/spindle/engines/microvm/upload_cache_nix_store.go +++ b/spindle/engines/microvm/upload_cache_nix_store.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_nix_store_test.go b/spindle/engines/microvm/upload_cache_nix_store_test.go index 413fb66d..bf9d4af7 100644 --- a/spindle/engines/microvm/upload_cache_nix_store_test.go +++ b/spindle/engines/microvm/upload_cache_nix_store_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_proxy.go b/spindle/engines/microvm/upload_cache_proxy.go index cc87062f..cc4bf32e 100644 --- a/spindle/engines/microvm/upload_cache_proxy.go +++ b/spindle/engines/microvm/upload_cache_proxy.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_proxy_test.go b/spindle/engines/microvm/upload_cache_proxy_test.go index ef4e6405..5697f12f 100644 --- a/spindle/engines/microvm/upload_cache_proxy_test.go +++ b/spindle/engines/microvm/upload_cache_proxy_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/vm.go b/spindle/engines/microvm/vm.go index 35c85fa3..14386f9f 100644 --- a/spindle/engines/microvm/vm.go +++ b/spindle/engines/microvm/vm.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/server.go b/spindle/server.go index cecd2abd..8b014fd3 100644 --- a/spindle/server.go +++ b/spindle/server.go @@ -39,7 +39,6 @@ import ( "tangled.org/core/spindle/db" "tangled.org/core/spindle/engine" "tangled.org/core/spindle/engines/dummy" - "tangled.org/core/spindle/engines/microvm" "tangled.org/core/spindle/engines/nixery" "tangled.org/core/spindle/git" "tangled.org/core/spindle/models" @@ -357,7 +356,7 @@ func Run(ctx context.Context) error { return err } - microvmEng, err := microvm.New(ctx, cfg, d) + microvmEng, err := newMicrovmEngine(ctx, cfg, d) if err != nil { return err } -- 2.51.2