From 1d780b6f4c4dc96332cce9b32685f4642e4505e8 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/cgroup.go | 2 ++ spindle/engines/microvm/cgroup_oom_test.go | 2 ++ spindle/engines/microvm/cgroup_test.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 +-- 30 files changed, 87 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 4a6e01f3..b4342e56 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/cgroup.go b/spindle/engines/microvm/cgroup.go index 40f6b736..c6d6970f 100644 --- a/spindle/engines/microvm/cgroup.go +++ b/spindle/engines/microvm/cgroup.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/cgroup_oom_test.go b/spindle/engines/microvm/cgroup_oom_test.go index 5754b96a..07857377 100644 --- a/spindle/engines/microvm/cgroup_oom_test.go +++ b/spindle/engines/microvm/cgroup_oom_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/cgroup_test.go b/spindle/engines/microvm/cgroup_test.go index e8c54108..dadb4518 100644 --- a/spindle/engines/microvm/cgroup_test.go +++ b/spindle/engines/microvm/cgroup_test.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 469e17f7..034af619 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 efe3b6be..7c37152d 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 30f12dfe..81597cbe 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 8333a65c..c5f8f784 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 c9d5c426..c4a61a68 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 65d838c5..8c5ab2fe 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 9ec84325..b10dac2a 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 9b9385d2..4cd65f90 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 a27f9020..039d0532 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 d631c578..7de46342 100644 --- a/spindle/server.go +++ b/spindle/server.go @@ -36,7 +36,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" @@ -352,7 +351,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