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