This is the first really working version of supermin 5.
This version can prepare a supermin appliance, and build a full
appliance from a supermin appliance. See examples/build-basic-vm.sh
for example usage. Read the updated supermin(1) man page for the
details.
Among the improvements:
- Package names are used instead of hostfiles. This should improve
robustness, since adding a new file to a package or moving files
around won't break the appliance.
From the libguestfs point of view this will also allow us to split
libguestfs dependencies into subpackges (libguestfs-xfs,
libguestfs-ntfs, etc).
- It uses the current package database to do dependency resolution,
(instead of yum/apt). This is considerably faster.
- It only needs to download packages that contain configuration
files, which results in much less network bandwidth used.
(--use-installed is supported as before to completely eliminate
network usage)
- --if-newer and --lock options move the locking into supermin
(previously it was done in libguestfs). This makes supermin much
easier to consume from other programs.
- The --if-newer option checks the RPM database instead of iterating
over the filesystem, making it much faster (a single stat versus
1000s of stats across the filesystem).
- You can create a chroot filesystem from a supermin appliance.
Currently missing:
- support for Debian / dpkg
- support for other distros (that were supported by v4)
I intend to add at least Debian support before pushing anything.
Some dropped features:
- -f cpio is no longer supported. We didn't use this in libguestfs
since 2010. It would not be hard to add this back.
- --user/--group options. We added these for the benefit of virt-v2v
but it's not clear if they are needed. Easy to add back if
required.
- You can no longer create a supermin from package files. This was
never used by callers, as far as I know.
- You can no longer exclude packages after depsolving. However you
can still exclude files, which is nearly the same thing in
practice.
Rich.