Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package krunvm for openSUSE:Factory checked in at 2026-10-27 17:06:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/krunvm (Old) and /work/SRC/openSUSE:Factory/.krunvm.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "krunvm" Tue Oct 27 17:06:19 2026 rev:12 rq:1393007 version:0.2.7 Changes: -------- --- /work/SRC/openSUSE:Factory/krunvm/krunvm.changes 2026-03-11 20:52:40.551406492 +0100 +++ /work/SRC/openSUSE:Factory/.krunvm.new.2252680/krunvm.changes 2026-10-27 17:07:25.320865633 +0100 @@ -1,0 +2,8 @@ +Sun Oct 25 16:23:50 UTC 2026 - Andrea Manzini <[email protected]> + +- Update to version 0.2.7: + * Add --vsock option for guest-to-host Unix socket IPC. + * Minor clippy fixes. + * Refresh vendored cargo dependencies. + +------------------------------------------------------------------- Old: ---- krunvm-0.2.6+git59f3673.obscpio New: ---- krunvm-0.2.7.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ krunvm.spec ++++++ --- /var/tmp/diff_new_pack.8j4lY9/_old 2026-10-27 17:07:31.481123670 +0100 +++ /var/tmp/diff_new_pack.8j4lY9/_new 2026-10-27 17:07:31.483123754 +0100 @@ -17,14 +17,13 @@ Name: krunvm -Version: 0.2.6+git59f3673 +Version: 0.2.7 Release: 0 Summary: Manage lightweight VMs created from OCI images License: Apache-2.0 URL: https://github.com/containers/krunvm Source0: krunvm-%{version}.tar.gz Source1: vendor.tar.zst -ExclusiveArch: x86_64 aarch64 BuildRequires: cargo-packaging BuildRequires: libkrun-devel BuildRequires: zstd @@ -32,6 +31,7 @@ Requires: buildah Requires: libkrun1 >= 1.4.4 Conflicts: libkrun0 +ExclusiveArch: x86_64 aarch64 %description Manage lightweight VMs created from OCI images @@ -41,7 +41,7 @@ %doc README.md %doc CODE-OF-CONDUCT.md %doc SECURITY.md -%{_mandir}/man1/krunvm*.1* +%{_mandir}/man1/krunvm*.1%{?ext_man} %{_bindir}/krunvm %prep ++++++ _service ++++++ --- /var/tmp/diff_new_pack.8j4lY9/_old 2026-10-27 17:07:31.524125472 +0100 +++ /var/tmp/diff_new_pack.8j4lY9/_new 2026-10-27 17:07:31.528125639 +0100 @@ -1,9 +1,9 @@ <services> <service name="obs_scm" mode="manual"> <param name="scm">git</param> - <param name="revision">refs/tags/v0.2.6</param> + <param name="revision">refs/tags/v0.2.7</param> <param name="url">https://github.com/containers/krunvm.git</param> - <param name="versionformat">@PARENT_TAG@+git%h</param> + <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.8j4lY9/_old 2026-10-27 17:07:31.552126644 +0100 +++ /var/tmp/diff_new_pack.8j4lY9/_new 2026-10-27 17:07:31.556126812 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/containers/krunvm.git</param> - <param name="changesrevision">59f3673a42625a8cd09c8f34f040a32b74c84452</param></service></servicedata> + <param name="changesrevision">d51d82ae415b3db19243f6a90548efd4e4542bbe</param></service></servicedata> (No newline at EOF) ++++++ krunvm-0.2.6+git59f3673.obscpio -> krunvm-0.2.7.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/.github/actions/setup-build-env/action.yml new/krunvm-0.2.7/.github/actions/setup-build-env/action.yml --- old/krunvm-0.2.6+git59f3673/.github/actions/setup-build-env/action.yml 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/.github/actions/setup-build-env/action.yml 2026-08-25 11:07:33.000000000 +0200 @@ -26,7 +26,7 @@ - name: Install packages (macOS) if: runner.os == 'macOS' shell: bash - run: brew tap slp/krun && brew install asciidoctor libkrun clang-format llvm + run: brew tap libkrun/krun && brew trust libkrun/krun && brew install asciidoctor libkrun clang-format llvm - name: Install packages (Linux) if: runner.os == 'Linux' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/Cargo.lock new/krunvm-0.2.7/Cargo.lock --- old/krunvm-0.2.6+git59f3673/Cargo.lock 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/Cargo.lock 2026-08-25 11:07:33.000000000 +0200 @@ -217,7 +217,7 @@ [[package]] name = "krunvm" -version = "0.2.6" +version = "0.2.7" dependencies = [ "clap", "confy", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/Cargo.toml new/krunvm-0.2.7/Cargo.toml --- old/krunvm-0.2.6+git59f3673/Cargo.toml 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/Cargo.toml 2026-08-25 11:07:33.000000000 +0200 @@ -1,6 +1,6 @@ [package] name = "krunvm" -version = "0.2.6" +version = "0.2.7" authors = ["Sergio Lopez <[email protected]>"] description = "Create microVMs from OCI images" repository = "https://github.com/containers/krunvm" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/src/bindings.rs new/krunvm-0.2.7/src/bindings.rs --- old/krunvm-0.2.6+git59f3673/src/bindings.rs 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/src/bindings.rs 2026-08-25 11:07:33.000000000 +0200 @@ -13,6 +13,7 @@ pub fn krun_set_port_map(ctx: u32, port_map: *const *const c_char) -> i32; pub fn krun_set_workdir(ctx: u32, workdir_path: *const c_char) -> i32; pub fn krun_add_virtiofs(ctx: u32, tag: *const c_char, path: *const c_char) -> i32; + pub fn krun_add_vsock_port(ctx: u32, port: u32, filepath: *const c_char) -> i32; pub fn krun_set_exec( ctx: u32, exec_path: *const c_char, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/src/commands/changevm.rs new/krunvm-0.2.7/src/commands/changevm.rs --- old/krunvm-0.2.6+git59f3673/src/commands/changevm.rs 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/src/commands/changevm.rs 2026-08-25 11:07:33.000000000 +0200 @@ -60,7 +60,7 @@ let mut vmcfg = match cfg.vmconfig_map.remove(&self.name) { None => { - println!("No VM found with name {}", &self.name); + println!("No VM found with name {}", self.name); std::process::exit(-1); } Some(vmcfg) => vmcfg, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/src/commands/list.rs new/krunvm-0.2.7/src/commands/list.rs --- old/krunvm-0.2.6+git59f3673/src/commands/list.rs 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/src/commands/list.rs 2026-08-25 11:07:33.000000000 +0200 @@ -17,7 +17,7 @@ if cfg.vmconfig_map.is_empty() { println!("No microVMs found"); } else { - for (_name, vm) in cfg.vmconfig_map.iter() { + for vm in cfg.vmconfig_map.values() { println!(); printvm(vm); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/krunvm-0.2.6+git59f3673/src/commands/start.rs new/krunvm-0.2.7/src/commands/start.rs --- old/krunvm-0.2.6+git59f3673/src/commands/start.rs 2026-02-09 12:18:59.000000000 +0100 +++ new/krunvm-0.2.7/src/commands/start.rs 2026-08-25 11:07:33.000000000 +0200 @@ -44,6 +44,12 @@ /// env(s) in format "key=value" to be exposed to the VM #[arg(long = "env")] envs: Option<Vec<String>>, + + /// vsock port to host Unix socket mapping(s) in format + /// "PORT:/host/path.sock". Guest connections to AF_VSOCK + /// (CID 2, PORT) are proxied to the Unix socket on the host. + #[arg(long = "vsock")] + vsocks: Option<Vec<String>>, } impl StartCmd { @@ -76,11 +82,39 @@ Vec::new() }; + let vsock_ports: Vec<(u32, String)> = self + .vsocks + .unwrap_or_default() + .into_iter() + .map(|val| match val.split_once(':') { + Some((port, path)) => match port.parse::<u32>() { + Ok(port) => (port, path.to_string()), + Err(_) => { + println!("Invalid vsock port in mapping: {}", val); + std::process::exit(-1); + } + }, + None => { + println!("Invalid vsock mapping (expected PORT:PATH): {}", val); + std::process::exit(-1); + } + }) + .collect(); + set_rlimits(); let _file = set_lock(&rootfs); - unsafe { exec_vm(vmcfg, &rootfs, self.command.as_deref(), vm_args, env_pairs) }; + unsafe { + exec_vm( + vmcfg, + &rootfs, + self.command.as_deref(), + vm_args, + env_pairs, + vsock_ports, + ) + }; umount_container(cfg, vmcfg).expect("Error unmounting container"); } @@ -118,7 +152,7 @@ fn map_volumes(ctx: u32, vmcfg: &VmConfig, rootfs: &str) -> Vec<(String, String)> { let mut mounts = Vec::new(); for (idx, (host_path, guest_path)) in vmcfg.mapped_volumes.iter().enumerate() { - let full_guest = format!("{}{}", &rootfs, guest_path); + let full_guest = format!("{}{}", rootfs, guest_path); let full_guest_path = Path::new(&full_guest); if !full_guest_path.exists() { std::fs::create_dir(full_guest_path) @@ -143,6 +177,7 @@ cmd: Option<&str>, args: Vec<CString>, env_pairs: Vec<CString>, + vsock_ports: Vec<(u32, String)>, ) { //bindings::krun_set_log_level(9); @@ -185,6 +220,15 @@ std::process::exit(-1); } + for (port, path) in vsock_ports.iter() { + let c_path = CString::new(path.as_str()).unwrap(); + let ret = bindings::krun_add_vsock_port(ctx, *port, c_path.as_ptr()); + if ret < 0 { + println!("Error adding vsock port {} -> {}", port, path); + std::process::exit(-1); + } + } + if !vmcfg.workdir.is_empty() { let c_workdir = CString::new(vmcfg.workdir.clone()).unwrap(); let ret = bindings::krun_set_workdir(ctx, c_workdir.as_ptr()); ++++++ krunvm.obsinfo ++++++ --- /var/tmp/diff_new_pack.8j4lY9/_old 2026-10-27 17:07:31.728134017 +0100 +++ /var/tmp/diff_new_pack.8j4lY9/_new 2026-10-27 17:07:31.733134226 +0100 @@ -1,5 +1,5 @@ name: krunvm -version: 0.2.6+git59f3673 -mtime: 1770635939 -commit: 59f3673a42625a8cd09c8f34f040a32b74c84452 +version: 0.2.7 +mtime: 1787648853 +commit: d51d82ae415b3db19243f6a90548efd4e4542bbe ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/krunvm/vendor.tar.zst /work/SRC/openSUSE:Factory/.krunvm.new.2252680/vendor.tar.zst differ: char 7, line 1
