Skip to content

virtme-ng v1.33

Latest
Compare
Choose a tag to compare
@arighi arighi released this 26 Feb 08:55
· 3 commits to main since this release

virtme-ng v1.33 is now available!

While the changelog looks extensive, this release is quite small and stable with only a few bug fixes. The big changelog is due to the merging of virtme-ng-init into the main virtme-ng project (while keeping the virtme-ng-init git history intact). This merge allows us to simplify the project structure and eliminate the need to manage a separate git submodule.

As a result, you may need to run the following commands to remove the submodule also from your local Git repository (in case somehting isn't working in your regular workflow):

$ git submodule deinit virtme_ng_init
$ git rm -rf virtme_ng_init

After that, just fetch, pull, or reset to the main virtme-ng branch as usual.

Most noticeable changes in this release include restricting the SSH port to localhost (to mitigate potential security risks when --ssh is used), support for running amd64 vng instances on non-x86 platforms (e.g., running an x86 vng instance on arm64), and a number of minor fixes here and there.

Big thanks to all the contributors!

Detailed ChangeLog:

Andrea Righi (53):
      initial commit
      virtme-ng-init: initial implementation in Rust
      doc: add a proper README.md
      create rust.yml
      properly handle GUI support
      workaround to be able to start xinit directly from a console session
      doc: README.md: project merged into virtme-ng
      virtme-ng-init: preserve host path
      virtme_ng_init: properly synchronize udev and network startup
      virtme-ng: allow to run snaps inside virtme-ng instances
      virtme-ng: provide --enable-snaps
      virtme-ng-init: initialize XDG_RUNTIME_DIR
      guest-tools: add a script to automatically start the sound subsystem
      virtme-ng: try to automatically fix permissions of snapd state.json
      virtme: init process refactoring
      virtme-ng: pass --exec command via /proc/cmdline
      virtme-ng-init: support 32-bit architectures
      virtme-ng-init: use usize instead of u64 in do_mount()
      virtme-ng-init: minor coding style fixes
      virtme-ng-init: relax 'nix' and 'users' crate dependencies
      remove Cargo.lock
      update README.md
      github: add coding style checks to the workflows
      virtme-ng-init: support base64 encoded commands
      cargo: use fixed versions for nix and users crate
      virtme-ng-init: fail gracefully when executing external commands
      virtme-ng-init: support long commands in graphic mode
      virtme-ng-init: make virtme-script a constant
      virtme-ng: honor virtme_user when running user script
      virtme-ng-init: always set XDG_RUNTIME_DIR
      virtme-ng-init: set proper ownership of the default console device
      virtme-ng-init: set the proper ownership on the virtio-ports devices
      virtme-ng-init: fix build error with older versions of rustc
      virtme-ng-init: add default secure_path to /etc/sudoers
      virtme-ng-init: drop usage of group when chwon'ing
      virtme-ng-init: docker host support
      virtme-ng-init: channel the return code of a command to the host
      virtme-ng-init: allow virtme-ng to specify a console device
      virtme-ng-init: always override sudoers
      virtme-ng-init: handle command line option nr_open
      virtme-ng-init: apply limits after mounting kernel filesystems
      virtme-ng-init: hide additional sudo settings
      virtme-ng-init: print a hint to exit from virtme-ng
      virtme-ng-init: allow to mount legacy cgroupfs (v1)
      virtme-ng-init: properly configure terminal line settings
      add Cargo.lock
      virtme-ng-init: move all temp files to /run/tmp
      virtme-ng-init: overlayfs: fall back to mounting without xino option
      ssh: support virtme.ssh
      virtme-ng-init: always check return code when executing bash
      virtme-ng: enable amd64 architecture support on non-x86 platforms
      virtme: always print kernel panic / oops in interactive mode
      virtme-ng v1.33

Andreas Grapentin (1):
      properly quoting exec string to avoid breaking virtme-run invocation on more complex guest calls

David Carlier (1):
      virtme_ng_init: replace Err(...) instances for is_err()

Marcos Paulo de Souza (1):
      main.rs: Enable lvm usage

Matthieu Baerts (NGI0) (17):
      init: set the HOME env var if root
      net: support multiple interfaces
      net: setup the loopback iface in a thread
      poweroff: fix irrefutable 'if let' pattern warning
      vsock: socat service for remote console
      vsock: mount virtme_vsockmount if needed
      ssh: only export the port to localhost
      virtme-ng-init: remove the submodule
      gh: import and adapt rust workflow
      console/ssh: properly quote the remote cmd
      vng: run: support O= in interactive mode
      vng: run: support O= with full paths
      vng: run: support KBUILD_OUTPUT
      vng: support --debug with --qemu-opts
      vng: support --nvgpu and --qemu-opts
      vng: fail if --arch is used without --root
      vng: arch: list supported arch in case of errors

Neill Kapron (1):
      virtme-ng-init: do not remount /run

Ondrej Mosnáček (2):
      virtme_ng_init: use uzers instead of users (which is unmaintained)
      virtme_ng_init: update dependencies

Thibault Ferrante (2):
      README.md: add building and installation section
      virtme-ng-init: allow /tmp to be mounted from host

Uli Schlachter (34):
      Use ? on Option where possible
      Add a simple test for extract_user_script()
      Simplify extract_user_script()
      Remove use of HashMap
      Remove Option return from run_misc_services()
      Simplify an env var check
      Simplify(?) some environment lookup
      Simplify lookup of $virtme_user
      Simplify(?) some command construction
      Remove useless Some-wrapping
      Remove unnecessary 'static
      Replace e.g. libc::S_IRWXU with Mode::S_IRWXU
      Fix clippy warnings around logging
      Fix clippy warnings about patterns
      Fix clippy warning about unnecessary return
      Fix clippy warnings about reading lines
      Fix clippy warning about "loop never loops"
      Fix clippy warning about "push() after creation"
      Fix clippy warning about unnecessary matching
      Simplify opening of TTYs
      Use uname() from nix instead of libc
      Remove useless to_string()
      Simplify /etc/shadow generation
      Use utils::create_file() to write some file contents
      Remove an unnecessary Vec
      Refactor logic in find_udevd()
      Allow run_cmd() with non-utf8-strings
      Avoid allocations for static strings for run_shell()
      Use nix' flags instead of libc's in one more place
      Avoid temporary allocation for PathBuf
      Add a log!() macro
      (Needlessly) optimise logging
      Use write_all() instead of write()
      Remove unnecessary trim_end_matches('\n')

Zev Weiss (3):
      utils: Don't log mount failures due to ENOENT
      Don't try to run systemd-tmpfiles on non-systemd systems
      Add guest hostname to /etc/hosts