lib: Use stringsbuf at various places in the library to simplify the code.

This is just code refactoring.
launch: libvirt: Move internal_set_libvirt_selinux_* APIs to common launch code.

This is just code motion, but means the libvirt backend no longer has
to export those two internal APIs.
Refactor backends so they are modular.

Instead of hard-coding the list of backends into the core of
libguestfs in many places, make each backend into a true module which
registers itself with the core when the library is loaded.

This is a step towards making backends into loadable modules, but it
doesn't actually do that.

This is just code motion.
launch: Create the direct & uml command lines safely.

Refactor the direct & uml backends to safely create the qemu & vmlinux
command lines.

Don't do malloc-after-fork, which is not safe.  Do all the allocation
in the main process before the fork.

Use stringsbuf to simplify the code.
uml: Add uml_mkcow requirement to README.

This fixes commit 858d6e7176d7b18bc29c8503bbc2887a3b74a272.
cleanups: Use correct types for some cleanup functions.
FAQ: Delete section about Ubuntu 10.04.

The link was broken, and we don't support Ubuntu 10.04 (maybe the
'oldlinux' branch does).
FAQ: Move #debug anchor back to the right place.

This was accidentally moved by this commit:

  commit b8b5ed65c26dd19a0bc9f8282a50c6dff90c456a
  Author: Richard W.M. Jones <rjones@redhat.com>
  Date:   Wed May 23 11:46:23 2012 +0100

    FAQ: Add section about using libguestfs in closed source programs.
FAQ: Replace the debugging section (again) with a checklist of information we need to start to fix bugs.
sysprep: added --mount-options option to mount selected partitions with options.
Fix to src/proto.c in libguestfs so it will compile with portablexdr under mingw.
uml: Exit status 1 is a normal exit code for vmlinux subprocess.

Note you need to apply these patches to the Linux kernel
to get User-Mode Linux to work with libguestfs:

http://marc.info/?l=user-mode-linux-devel&m=137682544009451&w=2
http://marc.info/?l=user-mode-linux-devel&m=137682543809449&w=2
http://marc.info/?l=user-mode-linux-devel&m=137682544209452&w=2
http://marc.info/?l=user-mode-linux-devel&m=137682543809448&w=2
uml: Remove kill_vmlinux subprocess, problem fixed upstream.

Note you need to apply these patches to the Linux kernel to get
User-Mode Linux to work with libguestfs:

http://marc.info/?l=user-mode-linux-devel&m=137682544009451&w=2
http://marc.info/?l=user-mode-linux-devel&m=137682543809449&w=2
http://marc.info/?l=user-mode-linux-devel&m=137682544209452&w=2
http://marc.info/?l=user-mode-linux-devel&m=137682543809448&w=2
launch: direct: Don't try to wait for qemu if parent process forked (RHBZ#998482).

When using guestfish --remote, libguestfs is not the parent of qemu,
so waitpid is expected to return -ECHILD.  And indeed guestfish --remote
would print a bogus error message in this case:

  libguestfs: error: waitpid (qemu): No child processes

If the parent process forked into the background, then it should have
called 'set_recovery_proc 0' so we can use this to determine if we
need to wait for qemu.

Thanks: Kazuya Saito for reporting and identifying the issue.
fish: Document that guestfish --remote --add won't work as expected (RHBZ#998513).
uml: Remove unused function is_numeric.

This fixes commit b607f8628876f4779921047ad29aa9a623e3bde2.
Version 1.23.18.
tests: change noinst to check

This change avoids the hard requirement for qemu-tools during package
build.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
daemon: Document guestfs_verbose=1 and guestfs_channel=<PATH> in man page.
daemon: fix build without systemd-journal

Fix typo in OPTGROUP_JOURNAL_NOT_AVAILABLE
Define empty journal_finalize, called by mount.c

Signed-off-by: Olaf Hering <olaf@aepfle.de>