From e3b2f0466a1dce8bac5cee77602e0124264e8029 Mon Sep 17 00:00:00 2001 From: Nick Downs Date: Wed, 13 May 2026 23:13:26 -0700 Subject: [PATCH 1/3] Add --virtiofsd CLI option and VIRTIOFSD_BIN env var support Signed-off-by: Nick Downs --- crates/bcvk-qemu/src/virtiofsd.rs | 55 +++++++++++++++++++------------ crates/kit/Cargo.toml | 2 +- crates/kit/src/run_ephemeral.rs | 9 +++++ 3 files changed, 44 insertions(+), 22 deletions(-) diff --git a/crates/bcvk-qemu/src/virtiofsd.rs b/crates/bcvk-qemu/src/virtiofsd.rs index c993b1f55..539c56ef4 100644 --- a/crates/bcvk-qemu/src/virtiofsd.rs +++ b/crates/bcvk-qemu/src/virtiofsd.rs @@ -21,6 +21,8 @@ pub struct VirtiofsConfig { pub readonly: bool, /// Optional log file path for virtiofsd output. pub log_file: Option, + /// Optional explicit path to virtiofsd binary (overrides auto-detection). + pub virtiofsd_binary: Option, } impl Default for VirtiofsConfig { @@ -32,6 +34,7 @@ impl Default for VirtiofsConfig { // We don't need to write to this, there's a transient overlay readonly: true, log_file: None, + virtiofsd_binary: None, } } } @@ -61,32 +64,42 @@ pub async fn spawn_virtiofsd_async(config: &VirtiofsConfig) -> Result Result, } impl CommonVmOpts { @@ -1171,6 +1178,7 @@ pub(crate) async fn run_impl(opts: RunEphemeralOpts) -> Result<()> { debug: false, readonly: is_readonly, log_file: Some(format!("/run/virtiofsd-{}.log", mount_name_str).into()), + virtiofsd_binary: opts.common.virtiofsd_binary.as_deref().map(Into::into), }; additional_mounts.push((virtiofsd_config, tag.clone())); @@ -1329,6 +1337,7 @@ StandardOutput=file:/dev/virtio-ports/executestatus main_virtiofsd_config.debug = std::env::var("DEBUG_MODE").is_ok(); // Always log virtiofsd output for debugging main_virtiofsd_config.log_file = Some("/run/virtiofsd.log".into()); + main_virtiofsd_config.virtiofsd_binary = opts.common.virtiofsd_binary.as_deref().map(Into::into); std::fs::create_dir_all(CONTAINER_STATEDIR)?; From 0fb84f02ba6b03196a487f7c754a017afe167f34 Mon Sep 17 00:00:00 2001 From: Nick Downs Date: Thu, 14 May 2026 13:25:11 -0700 Subject: [PATCH 2/3] Set the overriden virtiofsd binary path to absolute Signed-off-by: Nick Downs --- .gitignore | 3 ++- crates/bcvk-qemu/src/virtiofsd.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 9f970225a..606639ec7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -target/ \ No newline at end of file +target/ +.flox diff --git a/crates/bcvk-qemu/src/virtiofsd.rs b/crates/bcvk-qemu/src/virtiofsd.rs index 539c56ef4..a4ff848b0 100644 --- a/crates/bcvk-qemu/src/virtiofsd.rs +++ b/crates/bcvk-qemu/src/virtiofsd.rs @@ -69,7 +69,7 @@ pub async fn spawn_virtiofsd_async(config: &VirtiofsConfig) -> Result Date: Thu, 21 May 2026 14:27:50 -0700 Subject: [PATCH 3/3] cargo fmt Signed-off-by: Nick Downs --- crates/kit/src/run_ephemeral.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/kit/src/run_ephemeral.rs b/crates/kit/src/run_ephemeral.rs index 0b872f936..9e4856778 100644 --- a/crates/kit/src/run_ephemeral.rs +++ b/crates/kit/src/run_ephemeral.rs @@ -1337,7 +1337,8 @@ StandardOutput=file:/dev/virtio-ports/executestatus main_virtiofsd_config.debug = std::env::var("DEBUG_MODE").is_ok(); // Always log virtiofsd output for debugging main_virtiofsd_config.log_file = Some("/run/virtiofsd.log".into()); - main_virtiofsd_config.virtiofsd_binary = opts.common.virtiofsd_binary.as_deref().map(Into::into); + main_virtiofsd_config.virtiofsd_binary = + opts.common.virtiofsd_binary.as_deref().map(Into::into); std::fs::create_dir_all(CONTAINER_STATEDIR)?;