Skip to content

Releases: arighi/virtme-ng

virtme-ng v1.20 is out

03 Feb 10:50

Choose a tag to compare

I am really excited to notice that more and more people are starting to use virtme-ng for their CI. The integration with docker has probably helped a lot to make this tool almost like a natural choice for CI workflows (e.g., github actions), especially for kernel-related projects / subsystems.

Most noticeable changes in this new release:

  • The return code of a command executed in the vng guest is now transparently channeled to the host: this, together with stdin/stdout/stderr redirection, gives the complete illusion to run the command in the guest as if it was executed on the host and it can help to easily integrate vng with other CI tools/scripts (suggested by @itaihandler).
  • NUMA support (suggested by @tehcaster): it is now possible to create multiple NUMA nodes, and assign CPUs to them, inside a vng guest, using the --numa option.
  • A new --quiet option to override --verbose (suggested by @jimc).
  • A new --disable-kvm option to explicitly disable hardware virtualization (KVM) (by @kuba-moo) .
  • lockdep is now disabled by default during the kernel build (by @kuba-moo).
  • Usual fixes and cleanups.

Detailed changelog below.

Cheers,
-Andrea

== virtme-ng ChangeLog ==

Andrea Righi (14):
      Merge pull request #53 from tklauser/readme-fixes
      Merge pull request #55 from nkapron/development
      virtme-ng: introduce NUMA support
      Merge pull request #57 from arighi/numa-support
      virtme-ng: introduce -q/--quiet
      Merge pull request #59 from arighi/vng-quiet-option
      vng: improve documentation of the new option --numa
      virtme-ng: channel the return code of a command to the host
      Merge pull request #62 from kuba-moo/main
      Merge pull request #61 from arighi/vng-channel-retcode
      Merge pull request #64 from kuba-moo/main
      Merge pull request #65 from winnscode/winn-dev-2.2
      virtme-ng: print an explicit error when a valid pts is not found
      virtme-ng v1.20

Jakub Kicinski (3):
      virtme-configkernel: disable lockdep by default
      virtme: pass whether KVM is usable into arch code
      virtme: let user disable KVM accel easily

Neill Kapron (1):
      virtme_ng: update virtme_ng_init submodule to fix network init

Tobias Klauser (1):
      doc: update README.md formatting

Winston Wen (2):
      virtme: use $MODDIR/modules.dep to check the module folder
      virtme-prep-kdir-mods: delete existing $MODDIR/modules.dep at beginning

virtme-ng v1.19 is out!

22 Dec 08:57

Choose a tag to compare

A new release of virtme-ng is out, just before the Christmas holidays.

The most noticeable change is definitely the support for running virtme-ng inside Docker containers. This opens the possibility for many other projects to use virtme-ng to potentially pick any arbitrary kernel to run their tests inside their Docker instances (think, for example, of GitHub workflows).

The other interesting change (this one only for Ubuntu users) is the --root-release argument (used together with --root) that allows bootstrapping a rootfs from scratch, selecting a specific Ubuntu release. The rootfs will be created from the latest Ubuntu cloud image of the target release.

This, together with the Docker support, allows you to quickly deploy an arbitrary Ubuntu release with any arbitrary kernel inside a Docker instance, no matter which distro/kernel the Docker instance is running. This is very powerful in a testing scenario (again, GitHub workflows).

In addition to the above new features, we have the usual set of fixes here and there, thanks to @marcosps and @pinchartl.

Detailed changelog below.

Happy holidays! - Andrea

= virtme-ng ChangeLog =

Andrea Righi (20):
      Merge pull request #42 from marcosps/requests-fix
      Merge pull request #43 from marcosps/requests-fix
      virtme-ng-init: resync the submodule for the secure_path fix
      Merge pull request #46 from pinchartl/fixes
      Merge pull request #47 from marcosps/group-fix
      virtme-ng-init: resync with upstream
      virtme: restore terminal settings on exit
      virtme: coding style fixes
      virtme: use isatty() to check if stdin is a valid terminal
      virtme-ng: introduce argument --root-release
      virtme-init: fix typo in when evaluating virtme_user
      virtme: use kernel modules from the rootfs when --root is used
      virtme: show virtiofsd warnings only in verbose mode
      virtme: do not enable native features if kvm cannot be used
      virtme-init: docker host support
      virtme-ng-init: docker host support
      doc: add a note about running virtme-ng inside docker
      github: add a test run workflow
      Merge pull request #52 from arighi/docker-support
      virtme-ng v1.19

Laurent Pinchart (1):
      virtme: Fix infinite loop when finding kernel modules

Marcos Paulo de Souza (3):
      setup.py: Add requests to install_requires
      virtme-init: Add default secure_path
      virtme-init: Drop usage of group when chwon'ing

= virtme-ng-init Changelog =

Andrea Righi (3):
      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 v1.18 is out!

23 Nov 09:13

Choose a tag to compare

This new version includes a lot of contributions from the community.

This project has gained significant visibility recently, thanks to the participation at the latest Linux Plumbers Conference in Richmond, Virginia, and also thanks to the really nice article on lwn.net (https://lwn.net/Articles/951313).

I am really grateful for all of that and I am very happy to keep maintaining this cool project.

The most noticeable change is probably the support for pre-compiled vanilla kernels (using the Ubuntu mainline builds), that can help to save a bunch of build time and energy in some cases, i.e., when bisecting an issue across major upstream kernel versions.

Now virtme-ng also uses virtme-ng as the default hostname (thanks to Zev Weiss), so it's easier to spot when we are inside a virtme-ng interactive session.

Moreover, we have resumed the possibility to run virtme-ng commands directly from the source directory, as it was in the legacy virtme (thanks to Paul McKinney for the suggestion).

And last but not least, we have a bunch of changes, refactoring, cleanups in virtme-ng-init (thanks to Uli Schlachter), a few small fixes in the legacy virtme-init (thanks to Tycho Andersen) and the usual set of small bug fixes here and there.

Below is the detailed list of changes.

Cheers,
-Andrea

= virtme-ng ChangeLog =

Andrea Righi (11):
      virtme-ng: fix --user behavior
      virtme-ng: allow to run main commands directly from source
      virtme-ng: restore old --run behavior
      doc: update README.md
      virtme-init: resync with upstream virtme-ng-init
      virtme-ng: use pre-compiled mainline kernels
      doc: update README.md
      virtme-ng: fail to run pre-compiled deb if dpkg is not installed
      virtme-ng-init: resync with upstream project
      doc: add more info about potential required packages
      virtme-ng v1.18

Tycho Andersen (2):
      virtme-init: mount devtmpfs before using bash redirects
      virtme-init: touch /etc/sudoers if it doesn't exist

Zev Weiss (4):
      virtme-ng: Don't fail on missing argcomplete
      virtme-init: Add guest hostname to /etc/hosts
      virtme-ng: Set a default for --name
      Add tiny Makefile for building virtme-ng-init

= virtme-ng-init Changelog =

Andrea Righi (5):
      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

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

virtme-ng v1.17 is out

09 Nov 05:06

Choose a tag to compare

Nothing major in this new version, this mostly to test the release feature here on github. 😄

The new changes are:

  • the possibility to use the '--' syntax to run commands in graphic mode (such as vng -g -- glxgears)
  • a small fix to install the bash completion scripts to the proper standard location (/usr/share/bash-completion/completions)