p2v: Explain in the man page why the virt-p2v ISO is used.

(cherry picked from commit fab95a52bd307e6be699681de67134788687bf13)
p2v: Ensure we are using virt-v2v >= 1.28.

Must NOT use:

- One of the interim versions of virt-v2v (1.27.x) that we published
  during development.

- Old virt-v2v (0.9.x).

Also use the --version option (instead of -V) since old virt-v2v
required it:

  $ virt-v2v -V
  Option v is ambiguous (version, vmtype)
  Usage:
  [...]
  $ virt-v2v --version
  0.9.1

(cherry picked from commit cb291d7e4642547da5551f8686bbc46a911377af)
v2v: Add bounds check to Xml.xpathobj_node function.

I accidentally called it with an out-of-bounds index, and it caused a
core dump.  Add a bounds check to stop this from happening in
production.

(cherry picked from commit 1470be7f3b36b9ba6862fd04aa66446e89b108a7)
v2v: Ensure --bridge and --network args are documented correctly in --help output.

(cherry picked from commit 39f524d79b10a3654ee4879951a3ef8dcc99a46f)
v2v: -i libvirt vcenter: Change 'esx:' to 'vcenter:' in errors/warnings.

'esx' is inaccurate.

(cherry picked from commit c58d335952194b9556db78abde75637921ab4eca)
v2v: Ignore small filesystems when checking for sufficient free space.

(cherry picked from commit 918dd3705d3d34f28eb3cf30cd79d16358d525e3)
v2v: Document minimum free filesystem space requirements.

(cherry picked from commit 5de06a3571d20d0fd483d26099cc49bc0f08ecf0)
customize: firstboot: make sure to run Linux scripts only once

If a script does not finish, hangs, etc, it would be executed again at
the next boot, since the injected firstboot.sh helper removes it only
after it finished.

Before executing a script, move it to another internal subdirectory
(scripts-done) and execute it from there, so it is not run again by
firstboot.sh.  The downside is that now scripts are executed only once
at all, so if a script fails it will not be attempted at the next boot.

Also, remove all the files found in scripts-done, as they have been run
(or at least attempted) in a previous boot.

This fixes RHBZ#1159651.

(cherry picked from commit f8ed15462fbb03c5b19972361f2a2e6fed4c5f02)
customize: firstboot: fix Linux log output

Pass -a to each tee invocation, otherwise just the last one (so only for
the last script executed) will appear in the log file.

(cherry picked from commit 25cad1e62fa73e9cfd9a0e3d1d330165b19339ec)
RHEL 7: Emphasize libguestfs-winsupport package (RHBZ#627468).

This RHEL-only patch changes the error messages when the
inspection code cannot find an operating system inside the guest
image.  For a Windows guest this may happen because the user has not
installed the separate 'libguestfs-winsupport' package.  Therefore we
emphasize that the user may need to install this package.

Notes:

(1) In RHEL there are two pieces of inspection code, the old Perl code
(deprecated upstream) and the new C core inspection API.  Therefore
this patch has to touch two places with essentially the same change.

(2) This patch doesn't try to be clever and detect if it was a Windows
guest.  This should reduce the chance of failure.

Output from (Perl) virt-inspector now looks like this:

 $ virt-inspector disk.img
 No operating system could be detected inside this disk image.

 This may be because the file is not a disk image, or is not a virtual machine
 image, or because the OS type is not understood by virt-inspector.

 If you feel this is an error, please file a bug report including as much
 information about the disk image as possible.

 RHEL notice
 -------------
 libguestfs will return this error for Microsoft Windows guests if the
 separate 'libguestfs-winsupport' package is not installed. If the
 guest is running Microsoft Windows, please try again after installing
 'libguestfs-winsupport'.

Output from guestfish (ie. C core inspection API) now looks like this:

 $ guestfish -i disk.img
 guestfish: no operating system was found on this disk

 RHEL notice
 -------------
 libguestfs will return this error for Microsoft Windows guests if the
 separate 'libguestfs-winsupport' package is not installed. If the
 guest is running Microsoft Windows, please try again after installing
 'libguestfs-winsupport'.
RHEL 7: Remove libguestfs live (RHBZ#798980).

This isn't supported in RHEL 7.
RHEL 7: Remove 9p APIs from RHEL (RHBZ#921710).
RHEL 7: Disable unsupported remote drive protocols (RHBZ#962113).

This disables support for unsupported remote drive protocols:

 * ftp
 * ftps
 * http
 * https
 * tftp
 * gluster
 * iscsi
 * rbd
 * sheepdog
 * ssh

Note 'nbd' is not disabled, and of course 'file' works.

We hope to gradually add some of these back over the lifetime of RHEL 7.
RHEL 7: Remove User-Mode Linux (RHBZ#1144197).

This isn't supported in RHEL 7.
RHEL 7: v2v: Select correct qemu binary for -o qemu mode (RHBZ#1147313).

RHEL 7 does not have qemu-system-x86_64 (etc), and in addition the
qemu binary is located in /usr/libexec.  Encode the path to this
binary directly in the script.

Note that we don't support people running qemu directly like this.
It's just for quick testing of converted VMs, and to help us with
support cases.
RHEL 7: v2v: Disable the --qemu-boot option (RHBZ#1147313).

This cannot work because there is no Gtk or SDL output mode
in RHEL 7's qemu-kvm.

In addition you will have to edit the -display option in the
qemu script.
RHEL 7: Revert "tests: rsync: Skip this test when the backend is libvirt."

This reverts commit 765dc6237ce7b93dd2f33d99be53eae92e048a7a.
RHEL 7: Revert "appliance: Change example ping lines to ping 8.8.8.8."

This reverts commit 07c0926b588db5c86214917b609c2f477c817c0e.
RHEL 7: Revert "launch: libvirt: Use qemu-bridge-helper to implement a full network (RHBZ#1148012)."

This reverts commit 224de20b9a8d5ea56f6337f19b4ca237bb88eca0.
RHEL 7: Revert "appliance: add dhcp-client on Mageia"

This reverts commit 8f3a2ca5358d5601be7a9247b6d08193c4e2da46.