mllib: Rewrite text wrapping function so it can handle newlines within the text.
Use -v and -x flags consistently across OCaml virt-* tools.

virt-customize:
virt-sparsify:
virt-sysprep:
virt-v2v:
  - These tools consistently used -v to mean verbose/debugging
    and -x to mean enable libguestfs tracing.

virt-builder:
virt-resize:
  - These two tools did not recognize -x at all, and used -v
    to enable libguestfs tracing and general debugging.
  - This commit changes these two tools to consume -v/-x
    consistently with the other tools.

Unfortunately this has a cascade of effects through the code.
v2v: Modify conversion step to first do proper inspection and data
gathering about the guest.
generator: Sort the structs.

Sort the structs when generating code.  Since the structs are
logically indepedent of each other, this should have no effect except
to make generated files list the structs in a different order.

However this also fixes the following build problem:

  File "convert_linux.ml", line 322, characters 43-50:
  Error: This expression has type G.stat = Guestfs.stat
    but an expression was expected of type G.dirent = Guestfs.dirent

It turns out the OCaml bindings don't like the fact that we have
two structs with a common field name (dirent.ino and stat.ino).

In OCaml < 4.01, this means that any attempt to reference stat.ino
would fail because dirent.ino appears second in the file, overriding
stat.ino.

Sorting the structs has the side effect of making stat.ino appear
second, thus resolving the build failure above.

In OCaml >= 4.01 the compiler now uses some disambiguation rules based
on the known types to resolve this problem, so accessing either field
would work no matter what order they are listed in.

See:

http://ocaml.org/releases/4.01.0.html
http://www.lexifi.com/blog/type-based-selection-label-and-constructors
http://www.lexifi.com/blog/ocaml-extensions-lexifi-overidding-record-labels-and-constructors
v2v: Change source disk into a struct.

Simple code refactoring, allowing us to collect the target/@dev
attribute in this (now) structure.
v2v: When inspecting Linux guests, collect kernel version & location of initrd file too.
v2v: When converting Linux guests, rebuild the initrd.

It probably needs to be rebuilt to add virtio drivers.
v2v: Kill kudzu dead.
v2v: Remap block device names in grub & /etc/fstab.

eg. Change /dev/hda to /dev/vda
v2v: Change fstrim message to warning.

This also ensures it is flushed and translated.
Update gnulib to latest version.
Version 1.27.20.
excludefiles: Exclude various common log files when building the appliance.

These log files can get pretty big, and that causes problems
like this one:

http://linuxforum.ru/viewtopic.php?id=35381

and this one:

https://bugzilla.redhat.com/show_bug.cgi?id=1099172

In both cases the problem was /var/log/lastlog which is apparently a
large sparse file.  Supermin cannot cope with sparseness, so it copies
the whole file non-sparse.  But since this could affect other log
files this commit covers various common log file names and patterns.

Thanks: semperN
journal: Fix binding of sd_journal_get_realtime_usec on 32 bit machines.

sd_journal_get_realtime_usec is defined as:

    int sd_journal_get_realtime_usec(sd_journal* j, uint64_t* usec);

Unfortunately we passed size_t* as the second argument.  This happened
to work on 64 bit machines because size_t is 64 bit there, but failed
on 32 bit machines, where we didn't pass a sufficiently large result
buffer.

This fixes commit 2d996df66c8d67e11a91a89c074c91a233356494.
log: Pass correct parameter to localtime_r on 32 bit platforms.

We were passing an int64_t which happens to be the same as time_t, but
only on 64 bit.  This didn't work on 32 bit (or rather, it works on
little endian, but only by accident).

This fixes commit fb546eaee064b14ad192a4f0390325ba1b4c766a.
tests: qemu: Test force_tcg setting is effective.
mllib: Remove trailing whitespace.

This fixes commit b24b0b17a8ab5854c020cb1172597d805b911c73.
launch: direct: Use -cpu host when using KVM on x86.

This is the same as what the libvirt backend does.
valgrind: Add suppress for libvirt memory leak in virFileFindResourceFull.

https://bugzilla.redhat.com/show_bug.cgi?id=1116427
inspect: ignore /etc/fstab with no entries (RHBZ#1113156).

Just like no /etc/fstab is not an error, having one with no entries
shouldn't be an issue either.

With systemd, this could be a valid setup, with mount points set its own
way.