lib: Typo in comment.
builder: Missing include of <locale.h>.

Required by setlocale.  For some reason you only see the error
when compiling with -O0.
fish: add test-invalid-params.sh to EXTRA_DIST

Followup of commit 7912759fc331f6e8a0f7c87731f6bfe8c6e96c1f.
build: manually drop flex-/bison-generated files from dist

It seems that Automake cannot handle properly the files generated by
flex and bison, leaving them in the dist tarball.

For now, add a dist-hook to manually prune them from distdir.
p2v: Call the remote libvirt XML file 'guest.xml'.

Previously it was called 'libvirt.conf' which is more than a little
bit confusing.

This is only an internal name, so there is no visible change in
functionality.
p2v: Clean up and fix the code for excluding the root device.
v2v: Don't disable trace/debug set by environment variables.

If the environment variables LIBGUESTFS_TRACE=1 or LIBGUESTFS_DEBUG=1
were set, then the current code would end up disabling trace/debug if
the command line arguments did not contain -x/-v.

Fix this so the effect of enabling trace/debug is cumulative.
v2v: `-o ovirt' is an alias for `-o rhev', document it.
v2v: -o rhev: Fix error message.
v2v: Combine miscellaneous RHEV command line options into a single structure.

At the moment there is just one "miscellaneous RHEV command line
option" (--vmtype), but we may add more in future.  Put them in a
single struct for convenience.

This is just code motion.
v2v: Allow RHEV UUIDs to be specified on the command line.

Currently various UUIDs used by `-o rhev' are generated randomly.
This means they are different on every run of the program.

Allow some of them to be specified on the command line.  (If not
specified they are still generated randomly).

This allows RHEV-M to run virt-v2v several times (eg to examine the
OVF output) while having paths to files and OVF be stable across runs.
v2v: Nothing uses ov_target_file_tmp, remove this.

Previous virt-v2v would write to a temporary destination file then
atomically rename everything at the end.

However this appears to be unnecessary since we write the OVF file
after copying the disks, so (I assume) RHEV-M won't see the disks
before then.

In any case nothing used ov_target_file_tmp so we can remove this
feature to simplify the code.
v2v: Add --no-copy option.

This option allows callers to generate the metadata without copying
the disks.
v2v: Fix libvirt source to parse the format of a disk properly.

Missing '@' means it wasn't looking for the attribute.
tests/guests: Define the disk format of our test guests in the test XML.
v2v: Add fedora to "RHEL family".

The calling code allows Fedora guests to be used when calling
Convert_linux.  However Convert_linux itself would fail with an
assertion error when you did this.
tests/guests: Fix RPM database in phony Fedora guest.

Fix the Name and Packages database so it looks enough like a modern
RPM database to fool inspection.  I'm not sure whether or not the old
version ever worked, but it doesn't work now.

The format is not documented, but in brief:

The Name database contains (Name, link) pairs.  The link is an
arbitrary 32 bit integer.

The Packages database contains (link, RPM-blob) pairs.

The RPM-blob is a binary blob formatted like this:

 * Number of fields               4 bytes, big endian
 * Size in bytes of the store     4 bytes, big endian
 * Field descriptions:
     list of (RPMTAG, 0, offset in store, 0)
                                  4 * 4 * nr_fields bytes, big endian
 * The store                      binary data containing ASCIIZ strings

For the values of RPMTAG_* that we understand, see src/inspect-apps.c.
tests/guests: Add Windows/Drivers directory to phony Windows guest.

Allows virt-v2v to complete.
v2v: Add tests.

The virt-v2v tests here are not meant to be thorough tests of guest
conversion.  There is a test suite used to test conversion which is
kept outside libguestfs because it contains lots of proprietary
unredistributable guests like Windows.

The tests here instead are testing:

- virt-v2v command line arguments
- virt-v2v reads and writes files to the correct places
- valgrind & memory leaks
- any conversion properties that can be tested using just the
  phony guests (but we don't go out of our way here)
- that up to date guests don't crash virt-v2v
Add a separate TODO file for virt-v2v and virt-p2v.