libguestfs.git
12 years agoblkid: Use -c /dev/null option to kill the cache.
Richard W.M. Jones [Wed, 20 Jul 2011 13:41:39 +0000 (14:41 +0100)]
blkid: Use -c /dev/null option to kill the cache.

On recent Debian, /etc/blkid.tab is now a symlink to /dev/.blkid.tab.
Rather than chasing the cache file around (it may move to /run in future)
use the -c /dev/null option to stop blkid from reading the cache.
(cherry picked from commit 1d0f398d8e3c74ce6a70cbbb8d9b8ae07c6d7ef6)

12 years agoblkid: Detect when value not found and return empty string.
Richard W.M. Jones [Wed, 20 Jul 2011 13:25:32 +0000 (14:25 +0100)]
blkid: Detect when value not found and return empty string.

If the blkid command returns 2, that means the value was not found.

Note that this changes the output of the vfs-type API when the
filesystem has no type (eg when it is empty).  Previously this would
return an error.  Now it returns empty string "".

We did not document this either way.  Making it return empty string is
consistent with vfs-label and vfs-uuid.

This change broke list-filesystems, since that code was assuming that
vfs-type could only return a filesystem type or an error.
(cherry picked from commit 168fd4ad5d1e5da93e11388095d41aaa8f804ceb)

12 years agoappliance: Capture stderr from qemu to the event system.
Richard W.M. Jones [Wed, 20 Jul 2011 11:07:30 +0000 (12:07 +0100)]
appliance: Capture stderr from qemu to the event system.
(cherry picked from commit 8b2e60ce4b46e86da093ee64d4e0b0ae3c998d55)

12 years agoappliance: Document pipe fds.
Richard W.M. Jones [Wed, 20 Jul 2011 11:05:40 +0000 (12:05 +0100)]
appliance: Document pipe fds.
(cherry picked from commit 70daccfe4e9939078436c2830928d8e53432dd84)

12 years agobuild: Fix virtio-serial test for qemu 0.15.
Richard W.M. Jones [Tue, 19 Jul 2011 18:55:24 +0000 (19:55 +0100)]
build: Fix virtio-serial test for qemu 0.15.

(Cherry picked and combined
commit d82438431c1551610eb7d9945fa76d6387534582 and
commit 5dec7842655dd872bb0fd9fe07f6a9eab6b13bfd)

12 years agomkfs: Don't die if mke2fs is not available.
Richard W.M. Jones [Thu, 14 Jul 2011 10:27:24 +0000 (11:27 +0100)]
mkfs: Don't die if mke2fs is not available.

Allow other types of filesystems to be created.
(cherry picked from commit c6340f45007b0ab7e1c5391cf78afc10a816553f)

12 years agopart-get-bootable: Fix when partitions are missing or unordered (RHBZ#602997).
Richard W.M. Jones [Tue, 12 Jul 2011 16:18:48 +0000 (17:18 +0100)]
part-get-bootable: Fix when partitions are missing or unordered (RHBZ#602997).
(cherry picked from commit 511c82df46f5c6f4a7f984fdb81d4691038ed6da)

12 years agoVersion 1.8.9. 1.8.9
Richard W.M. Jones [Sat, 16 Jul 2011 08:44:28 +0000 (09:44 +0100)]
Version 1.8.9.

12 years agoDocument that ntfsresize cannot be used multiple times (RHBZ#685009).
Richard W.M. Jones [Tue, 12 Jul 2011 13:13:57 +0000 (14:13 +0100)]
Document that ntfsresize cannot be used multiple times (RHBZ#685009).
(cherry picked from commit 2ba2ddf2113db7bb2afe3f739dc3cbaa5416a4ba)

12 years agoprotocol: Force optargs_bitmask to be passed as 0 for non-opt actions.
Richard W.M. Jones [Tue, 12 Jul 2011 17:17:35 +0000 (18:17 +0100)]
protocol: Force optargs_bitmask to be passed as 0 for non-opt actions.

If the action doesn't take optional arguments, nevertheless force the
optargs_bitmask field in the header to be passed as 0, and give an
error if not.
(cherry picked from commit 0344248af55802bbbd816b349ec1ba9305996f6e)

12 years agoAdd caution subdirectory containing safety and liveness tests.
Richard W.M. Jones [Thu, 30 Jun 2011 11:57:31 +0000 (12:57 +0100)]
Add caution subdirectory containing safety and liveness tests.

Not that I'm paranoid about qemu breaking snapshots of anything like
that ...

Cherry picked from commit f3ada2c7653866f2529c9f18aaa99f76cd984844.

12 years agoinspector: Fix comment in virt-inspector.rng.
Richard W.M. Jones [Tue, 28 Jun 2011 16:02:46 +0000 (17:02 +0100)]
inspector: Fix comment in virt-inspector.rng.

The comment referred to the command line syntax of the old
virt-inspector.
(cherry picked from commit ea96c7acf7a332c08c2214796add647224a2ede0)

12 years agoRevert "Lib.pm: unknown filesystem label SWAP-sda2 (RHBZ#666578)"
Richard W.M. Jones [Mon, 27 Jun 2011 17:14:15 +0000 (18:14 +0100)]
Revert "Lib.pm: unknown filesystem label SWAP-sda2 (RHBZ#666578)"

This reverts commit 5cab0d6c807d8a3bf9690375c663d11a10e21656.
(cherry picked from commit 123610f1b5133a9e541a245467f60d065ea96575)

12 years agotrace: Print empty list correctly.
Richard W.M. Jones [Wed, 22 Jun 2011 09:36:44 +0000 (10:36 +0100)]
trace: Print empty list correctly.

Empty lists returned by RStringList and RHashtable functions
were incorrectly printed as [""].

Fix this so they are printed as [] instead.

Cherry picked from commit 56b94f5f6aa7981533ad867cc908c6e9cca2ba42.

12 years agoperl: Ignore MYMETA.yml.
Richard W.M. Jones [Sat, 18 Jun 2011 12:04:18 +0000 (13:04 +0100)]
perl: Ignore MYMETA.yml.

This file is created by one of the build tools used by Perl 5.14.
(cherry picked from commit cabfaa857fbd325bd0303fa56b28df8ce52aab33)

12 years agoperl: Don't use qw() as parentheses.
Richard W.M. Jones [Sat, 18 Jun 2011 12:00:00 +0000 (13:00 +0100)]
perl: Don't use qw() as parentheses.

In Perl 5.14:

Use of qw(...) as parentheses is deprecated at perl/blib/lib/Sys/Guestfs/Lib.pm line 1111.
(cherry picked from commit 5c3c7e8825341e18c9449976f8a321a04cc78d79)

12 years agogenerator: Rewrite UUIDs that begin with zero byte.
Richard W.M. Jones [Mon, 13 Jun 2011 17:58:53 +0000 (18:58 +0100)]
generator: Rewrite UUIDs that begin with zero byte.

In util-linux <= 2.19, mkswap -U cannot handle the first byte of the
UUID being zero, so we artificially rewrite such UUIDs.

See: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/4273
(cherry picked from commit 4ee190628bc05f0c8fad1f6d9c3e85619a91e8b8)

12 years agoVersion 1.8.8. 1.8.8
Richard W.M. Jones [Mon, 13 Jun 2011 13:13:34 +0000 (14:13 +0100)]
Version 1.8.8.

12 years agodaemon: Keep Coverity happy by ignoring some return values.
Richard W.M. Jones [Thu, 9 Jun 2011 09:10:50 +0000 (10:10 +0100)]
daemon: Keep Coverity happy by ignoring some return values.
(cherry picked from commit f5096dd546ac43c7288b3ab7aec1562f070f78f6)

12 years agoCoverity: Don't return freed pointers from command* along error path.
Richard W.M. Jones [Thu, 9 Jun 2011 08:39:54 +0000 (09:39 +0100)]
Coverity: Don't return freed pointers from command* along error path.

If the external command failed to run, we could free up the allocated
*stdoutput and *stderror pointers, but then return those freed
pointers to the caller.  The caller usually tries to print and free
*stderror, so this is a serious error.

Instead, return *stdoutput as NULL, and *stderror pointing to a
generic error message.
(cherry picked from commit 29453a58d818df24c238d0a08a68886ebe4029dd)

12 years agoCoverity: Missing return on error path.
Richard W.M. Jones [Wed, 8 Jun 2011 21:38:53 +0000 (22:38 +0100)]
Coverity: Missing return on error path.
(cherry picked from commit 7a091a11d7aeddc170e4d1b833fd9d7d18c00841)

12 years agoCoverity: Ensure fp is closed along all error paths.
Richard W.M. Jones [Wed, 8 Jun 2011 21:30:24 +0000 (22:30 +0100)]
Coverity: Ensure fp is closed along all error paths.
(cherry picked from commit 346c5b0ebf58c81f657540eeb72abaa41bfc4e3f)

12 years agoCoverity: Close directory handle along error paths.
Richard W.M. Jones [Wed, 8 Jun 2011 21:27:01 +0000 (22:27 +0100)]
Coverity: Close directory handle along error paths.
(cherry picked from commit 7c020a14802255c966b2b402b983551b86a08bba)

12 years agoCoverity: Don't leak argv arrays.
Richard W.M. Jones [Wed, 8 Jun 2011 21:25:21 +0000 (22:25 +0100)]
Coverity: Don't leak argv arrays.
(cherry picked from commit 869c11b30c72c57e48dd63c4641087a06abe80d5)

12 years agoCoverity: Don't leak error strings.
Richard W.M. Jones [Wed, 8 Jun 2011 21:16:59 +0000 (22:16 +0100)]
Coverity: Don't leak error strings.

(Cherry picked from commit 3135b8c378f9f98ae66e37fd79d305764334980d).

12 years agoCoverity: Check return value of sysroot_path.
Richard W.M. Jones [Wed, 8 Jun 2011 21:14:21 +0000 (22:14 +0100)]
Coverity: Check return value of sysroot_path.

For some reason we were checking the parameter!
(cherry picked from commit 7fae594df719d1d81a043c4d0280b359f750facb)

12 years agoCoverity: Check return value of malloc.
Richard W.M. Jones [Wed, 8 Jun 2011 21:07:36 +0000 (22:07 +0100)]
Coverity: Check return value of malloc.
(cherry picked from commit 3a5bd5aba23583e64bfaabc906ca95b0f9d37578)

12 years agoCoverity: Don't close fd_cwd if fd_cwd == -1.
Richard W.M. Jones [Wed, 8 Jun 2011 21:04:25 +0000 (22:04 +0100)]
Coverity: Don't close fd_cwd if fd_cwd == -1.
(cherry picked from commit 76dfb74324fa0daa343d7edf89bd05e1fe7b4db0)

12 years agoCoverity: Avoid calling sort_strings (NULL, 0) on empty list.
Richard W.M. Jones [Wed, 8 Jun 2011 21:01:41 +0000 (22:01 +0100)]
Coverity: Avoid calling sort_strings (NULL, 0) on empty list.
(cherry picked from commit 3ed8d5122026f37dd96cc7e8503c4f3ecf0afbb7)

12 years agoCoverity: Don't call free_strings (NULL).
Richard W.M. Jones [Wed, 8 Jun 2011 20:56:56 +0000 (21:56 +0100)]
Coverity: Don't call free_strings (NULL).
(cherry picked from commit 48ebf50f3136ac27f4252662e351230ffa2b15e5)

12 years agoCoverity: Remove unreachable code.
Richard W.M. Jones [Wed, 8 Jun 2011 20:53:07 +0000 (21:53 +0100)]
Coverity: Remove unreachable code.
(cherry picked from commit 9160eec4fbf12643d8d5fa13465066822b2fed92)

12 years agoinit: Remove timeout in udevadm settle command.
Richard W.M. Jones [Wed, 8 Jun 2011 12:12:01 +0000 (13:12 +0100)]
init: Remove timeout in udevadm settle command.

The given timeout (10s) was too low if the appliance was
running slowly, which caused a cascade of other failures
during tests.

Note that in udev-171 and above on Fedora, /sbin/start_udev
no longer exists, so now we are using this manual method to
start udevd.
(cherry picked from commit bfc02f78f36d88543f8435e450e28c986b667a94)

12 years agoprotocol: Enhance "unexpected end of file when reading from daemon" error.
Richard W.M. Jones [Tue, 7 Jun 2011 11:36:02 +0000 (12:36 +0100)]
protocol: Enhance "unexpected end of file when reading from daemon" error.

Make this error more informative, since it is a common error when the
appliance fails to start up.
(cherry picked from commit 2f73ea343cc4a3433f20e99a7835152767a70f80)

12 years agoOnly include date, not time, in BUGS file.
Richard W.M. Jones [Sat, 4 Jun 2011 21:47:52 +0000 (22:47 +0100)]
Only include date, not time, in BUGS file.

This is so the file does not change so often when using 'make dist'.
(cherry picked from commit cdd11b758f2601f7eeda4fca684638b0335d531a)

12 years agovirt-ls: Small fix for output of --help option.
Richard W.M. Jones [Fri, 3 Jun 2011 13:49:19 +0000 (14:49 +0100)]
virt-ls: Small fix for output of --help option.
(cherry picked from commit 7177340a6f0e3ac1f238c69b0ad5267e18252fe2)

12 years agodaemon: Fix error message.
Nikita A Menkovich [Fri, 20 May 2011 10:26:09 +0000 (11:26 +0100)]
daemon: Fix error message.
(cherry picked from commit 08bc8e40cea750bd35493ecab514e8e37c883a0a)

12 years agoguestfs-examples(3): Remove link to OCaml homepage.
Richard W.M. Jones [Wed, 18 May 2011 14:32:59 +0000 (15:32 +0100)]
guestfs-examples(3): Remove link to OCaml homepage.
(cherry picked from commit 95368927219f2888aeb1232c7ec950dde538bc39)

12 years agoDocument that guestfs_file output depends on file(1) command.
Richard W.M. Jones [Tue, 17 May 2011 19:57:56 +0000 (20:57 +0100)]
Document that guestfs_file output depends on file(1) command.

And therefore practically it cannot be part of the ABI since
the output of file(1) itself changes from time to time.
(cherry picked from commit ef6f877b9df261fad1fbf361b8ce7af1055dfbb7)

13 years agoVersion 1.8.7. 1.8.7
Richard W.M. Jones [Wed, 18 May 2011 10:34:58 +0000 (11:34 +0100)]
Version 1.8.7.

13 years agoinspect: Look for %systemroot%/system32 for Windows heuristic.
Richard W.M. Jones [Thu, 21 Apr 2011 16:33:48 +0000 (17:33 +0100)]
inspect: Look for %systemroot%/system32 for Windows heuristic.

The virt-v2v transfer ISO had a /windows directory.  The core
inspection code thought this was a Windows root filesystem.

Cherry picked and backported from
commit 0da6f55a6745686ca056c6bc8ebf647f111cb8e8.

13 years agolist-applications: If software hive is missing, this is an error.
Richard W.M. Jones [Thu, 21 Apr 2011 16:29:44 +0000 (17:29 +0100)]
list-applications: If software hive is missing, this is an error.

virt-inspector would exit silently if list-applications failed along
this error path.

Cherry picked and backported from
commit 782f3a36469ca396dbf998ea82af2699153be3ed.

13 years agozero: Disable file test because of bug in file command.
Richard W.M. Jones [Wed, 18 May 2011 09:04:05 +0000 (10:04 +0100)]
zero: Disable file test because of bug in file command.

See: https://bugzilla.redhat.com/show_bug.cgi?id=705499
(cherry picked from commit f55b32b2db83495fc0987f0fe0e979818704dff1)

13 years agoVersion 1.8.6. 1.8.6
Richard W.M. Jones [Mon, 18 Apr 2011 22:13:25 +0000 (23:13 +0100)]
Version 1.8.6.

13 years agopython: Release Python GIL while running libguestfs calls.
Richard W.M. Jones [Mon, 18 Apr 2011 15:56:08 +0000 (16:56 +0100)]
python: Release Python GIL while running libguestfs calls.

Release the Python global interpreter lock while running libguestfs
calls.

We don't release it around guestfs_create() because that is a short
call that just allocates memory.  We do release it around
guestfs_close() since that is a potentially long-running (it can call
wait(2) amongst other things).  We also release it around all the
other generated Python calls.

We don't yet support callbacks into Python code (ie. the new event
API).  But when we do in future, we will need to also handle the GIL
around those callbacks.

This code is adapted from libvirt's python/typewrappers.h.  Thanks to
Dan Berrange for showing us how to do this properly.
(cherry picked from commit 08dc4a87b92435678780e9c49fe3bc1e7465d99f)

13 years agofish: Fix typo in guestfish man page (--format option).
Richard W.M. Jones [Sat, 16 Apr 2011 20:26:15 +0000 (21:26 +0100)]
fish: Fix typo in guestfish man page (--format option).
(cherry picked from commit 4c2bb8b301970e8853a8feaa95e3698224640fba)

13 years agoinspector: Handle write failures when creating example-*.xml.
Richard W.M. Jones [Thu, 14 Apr 2011 17:19:04 +0000 (18:19 +0100)]
inspector: Handle write failures when creating example-*.xml.
(cherry picked from commit 0108d7861d4cc9a1f0d87d89080d1be7750e54b5)

13 years agoinspector: Include <hostname> in output.
Richard W.M. Jones [Thu, 14 Apr 2011 16:58:51 +0000 (17:58 +0100)]
inspector: Include <hostname> in output.

Cherry picked from commit 36d3a4ce53317b104d48b60c9fe1ed679065d1d4
and rebased for stable-1.8 branch.

13 years agoVersion 1.8.5. 1.8.5
Richard W.M. Jones [Mon, 11 Apr 2011 10:36:31 +0000 (11:36 +0100)]
Version 1.8.5.

13 years agoCompile rpcgen-generated files with -fno-strict-aliasing
Matthew Booth [Thu, 7 Apr 2011 14:30:54 +0000 (15:30 +0100)]
Compile rpcgen-generated files with -fno-strict-aliasing

rpcgen generates source which can't be safely compiled with strict-aliasing
enabled.
(cherry picked from commit 3a84e0784e1e3ab7b56850d0f8c9aa42f1ae3da1)

13 years agoRename resolve_windows_path_silently to case_sensitive_path_silently.
Richard W.M. Jones [Tue, 5 Apr 2011 17:44:55 +0000 (18:44 +0100)]
Rename resolve_windows_path_silently to case_sensitive_path_silently.

A more accurate description of what this function does.

This is just code motion.
(cherry picked from commit f3eea44f97340f747e46b0df6931a04b53abaf01)

13 years agoedit: Move 'exit 0' to end of file.
Richard W.M. Jones [Tue, 5 Apr 2011 16:46:23 +0000 (17:46 +0100)]
edit: Move 'exit 0' to end of file.

This is just code motion.
(cherry picked from commit 60cdf446063a0ae61c52140355677d7da2327fa2)

13 years agoedit: Let $root == $roots[0].
Richard W.M. Jones [Tue, 5 Apr 2011 16:45:41 +0000 (17:45 +0100)]
edit: Let $root == $roots[0].

This is just code motion.
(cherry picked from commit aed8f220d279e910e0f398fea6fa674cc6a63783)

13 years agocat, edit: Reference guestfish equivalent commands in the manual pages.
Richard W.M. Jones [Tue, 5 Apr 2011 16:44:41 +0000 (17:44 +0100)]
cat, edit: Reference guestfish equivalent commands in the manual pages.
(cherry picked from commit 4de124debf181ff6af38617b80c2355627e38d35)

13 years agopython: Convert any iterable argument to a list (RHBZ#693324).
Richard W.M. Jones [Mon, 4 Apr 2011 11:48:02 +0000 (12:48 +0100)]
python: Convert any iterable argument to a list (RHBZ#693324).

Thanks to Erez Shinan.
(cherry picked from commit afa17809599f3ebc82c3feef025ca812fb26c9fe)

13 years agodaemon: When running commands, restart select if we receive a signal.
Richard W.M. Jones [Fri, 1 Apr 2011 14:27:46 +0000 (15:27 +0100)]
daemon: When running commands, restart select if we receive a signal.
(cherry picked from commit 6e5f64089631622167e60df25ee009ef83df5170)

13 years agodaemon: Reset SIGPIPE to default before running subprocesses.
Richard W.M. Jones [Fri, 1 Apr 2011 14:26:46 +0000 (15:26 +0100)]
daemon: Reset SIGPIPE to default before running subprocesses.
(cherry picked from commit 42938f6faf9e724130be28f8e67d3c291bb81cba)

13 years agoAdd prototype for timeval_diff.
Richard W.M. Jones [Fri, 1 Apr 2011 12:30:24 +0000 (13:30 +0100)]
Add prototype for timeval_diff.

This is just code motion.

Cherry picked from commit 1e6be6afe58de5bfb1ac056b80d3210888edfead.

13 years agodocs: Progress messages don't necessarily reach 100% in the error case.
Richard W.M. Jones [Fri, 1 Apr 2011 12:54:18 +0000 (13:54 +0100)]
docs: Progress messages don't necessarily reach 100% in the error case.

This should be obvious, and now it is documented to avoid any
confusion.
(cherry picked from commit 05dbe09a5c5be3d5f68dc6eb033c4f642fbac8bf)

13 years agoexamples: Use WARN_CFLAGS, WERROR_CFLAGS macros instead of -Wall
Richard W.M. Jones [Thu, 31 Mar 2011 19:18:23 +0000 (20:18 +0100)]
examples: Use WARN_CFLAGS, WERROR_CFLAGS macros instead of -Wall
(cherry picked from commit b41e73008a939ef493d2bfb82c9bd07b0f74736a)

13 years agoexamples: size_t-correctness change in inspect_vm.c
Richard W.M. Jones [Thu, 31 Mar 2011 19:17:02 +0000 (20:17 +0100)]
examples: size_t-correctness change in inspect_vm.c
(cherry picked from commit d5eb5216aae0cb83fae686f490d1c3c37c2c074e)

13 years agocontrib: Fix URLs in README file.
Richard W.M. Jones [Thu, 31 Mar 2011 17:20:08 +0000 (18:20 +0100)]
contrib: Fix URLs in README file.
(cherry picked from commit 1612201a83e732eec7d98d1679dd9dd426bcd10d)

13 years agorescue: Add -w|--rw option.
Richard W.M. Jones [Wed, 30 Mar 2011 15:33:14 +0000 (16:33 +0100)]
rescue: Add -w|--rw option.

Note this has been backported to the 1.8 branch to allow us to write
documentation which refers to the virt-rescue --rw option.  The option
does nothing in 1.8.

(cherry picked from commit 4155d20014b24b2203c4dd8b00e2e19450a7e3bb)

13 years agofuse: Document -w flag in --help output.
Richard W.M. Jones [Wed, 30 Mar 2011 15:32:33 +0000 (16:32 +0100)]
fuse: Document -w flag in --help output.
(cherry picked from commit 3824935411e8a046f0359578978447dd5a0a1a16)

13 years agoExclude po-docs directory completely if po4a not available.
Richard W.M. Jones [Tue, 29 Mar 2011 15:07:21 +0000 (16:07 +0100)]
Exclude po-docs directory completely if po4a not available.

Lift the if HAVE_PO4A ... endif completely out of the po-docs
subdirectory, and just exclude the whole subdirectory if the po4a
program is not available.
(cherry picked from commit 58f7a5a4ac8cce77dfaded1c29f3ad382b4cc9a8)

13 years agotests: Don't fail when compiled without support for NTFS.
Richard W.M. Jones [Tue, 29 Mar 2011 15:03:29 +0000 (16:03 +0100)]
tests: Don't fail when compiled without support for NTFS.
(cherry picked from commit edb7501d60a03107c21f023b256d2b01cf116437)

13 years agoVersion 1.8.4. 1.8.4
Richard W.M. Jones [Tue, 29 Mar 2011 20:36:00 +0000 (21:36 +0100)]
Version 1.8.4.

13 years agoperl: Canonicalize /dev/vd* paths in old inspection code (RHBZ#691724).
Richard W.M. Jones [Tue, 29 Mar 2011 11:20:57 +0000 (12:20 +0100)]
perl: Canonicalize /dev/vd* paths in old inspection code (RHBZ#691724).
(cherry picked from commit 759f4369de965f46f4a93b3a75dada050f87e223)

13 years agoREADME: Note that getfacl, getfattr are optional dependencies.
Richard W.M. Jones [Mon, 28 Mar 2011 16:18:24 +0000 (17:18 +0100)]
README: Note that getfacl, getfattr are optional dependencies.
(cherry picked from commit d82d6f0633f63d4a884147b1e85851e96ff8f58d)

13 years agofuse: Fix getxattr, listxattr calls and add a regression test (RHBZ#691389).
Richard W.M. Jones [Mon, 28 Mar 2011 13:45:23 +0000 (14:45 +0100)]
fuse: Fix getxattr, listxattr calls and add a regression test (RHBZ#691389).

The documentation for the getxattr and listxattr calls is not very
clear and as a result we were always returning something different
from that which the Linux kernel would usually return.

This fixes these calls, at least far enough that both the 'getfattr'
and 'getfacl' programs now work fine on FUSE-mounted filesystems.

Note that SELinux attrs are *not* passed through.  This appears to be
a known bug between SELinux and FUSE.  For more information see:

http://www.spinics.net/lists/selinux/msg09460.html

Cherry picked from commit 0d6fd9e1d2488841c912c5351086e536772837ef:
  - rebased on stable-1.8 branch
  - removed unintended hunk (which changed -m documentation in
      guestmount --help output)
  - removed parts of test-fuse.sh which will fail because
      there is no support for passing acl,user_xattr options in
      an extended -m option

13 years agoRHEL 5: Use mke4fs on RHEL 5 as replacement for mke2fs.
Richard W.M. Jones [Fri, 25 Mar 2011 14:42:40 +0000 (14:42 +0000)]
RHEL 5: Use mke4fs on RHEL 5 as replacement for mke2fs.
(cherry picked from commit a0e3b2183733c7440ad017c4ffe361935672339b)

13 years agomkfs: Force mke2fs to create a filesystem even on raw IDE device (RHBZ#690819).
Richard W.M. Jones [Fri, 25 Mar 2011 14:34:31 +0000 (14:34 +0000)]
mkfs: Force mke2fs to create a filesystem even on raw IDE device (RHBZ#690819).
(cherry picked from commit 227bea6c7ef89b707fe2c01c4d0d0fb9081e8c04)

13 years agoRename $tmpdir/sock to $tmpdir/guestfsd.sock.
Richard W.M. Jones [Fri, 25 Mar 2011 12:32:08 +0000 (12:32 +0000)]
Rename $tmpdir/sock to $tmpdir/guestfsd.sock.

No functional change; this simply makes the purpose of the
socket clearer.
(cherry picked from commit 110bfe1fcc9964b82acf7df6d4d60774471f9157)

13 years agofish: Add better quick help to --help output.
Richard W.M. Jones [Tue, 22 Mar 2011 11:50:26 +0000 (11:50 +0000)]
fish: Add better quick help to --help output.
(cherry picked from commit 0daf7e81a659bcdc1ce327151cc1207b124a35a1)

13 years agofish: Add -w|--rw option to --help output.
Richard W.M. Jones [Tue, 22 Mar 2011 11:50:03 +0000 (11:50 +0000)]
fish: Add -w|--rw option to --help output.
(cherry picked from commit c8faa5d0b0a17689d27bd33bc787ba0fe9a3f076)

13 years agoinspect: Don't fail for Windows guests with multiple disks (RHBZ#674130).
Richard W.M. Jones [Tue, 22 Mar 2011 11:20:38 +0000 (11:20 +0000)]
inspect: Don't fail for Windows guests with multiple disks (RHBZ#674130).

Cherry picked from commit d06fee159c14d4fe7654a02bae8849c4f82565f8
and backported to stable-1.8 branch.

13 years agoinspect: Simplify Windows root heuristic code.
Richard W.M. Jones [Tue, 22 Mar 2011 11:05:21 +0000 (11:05 +0000)]
inspect: Simplify Windows root heuristic code.

Add special is_file_nocase and is_dir_nocase functions and
remove the duplicate checks for files and directories with
different cases.
(cherry picked from commit 5776c145d411e5ae00072ecf422055f3d0bd29e2)

13 years agoVersion 1.8.3. 1.8.3
Richard W.M. Jones [Mon, 21 Mar 2011 11:58:47 +0000 (11:58 +0000)]
Version 1.8.3.

13 years agoguestfs(3): 'kernel' -> 'supermin appliance'.
Richard W.M. Jones [Sat, 19 Mar 2011 18:41:23 +0000 (18:41 +0000)]
guestfs(3): 'kernel' -> 'supermin appliance'.
(cherry picked from commit 1541f3a564f8ff14c1a63298120e4dc618ea3274)

13 years agoguestfs(3): Indent line to keep code together.
Richard W.M. Jones [Sat, 19 Mar 2011 18:18:56 +0000 (18:18 +0000)]
guestfs(3): Indent line to keep code together.
(cherry picked from commit cf6f380c544456ee3e84fd41a480ea4cab3d94dd)

13 years agofish: Add all stamp-*.pod files to CLEANFILES.
Richard W.M. Jones [Fri, 18 Mar 2011 20:02:29 +0000 (20:02 +0000)]
fish: Add all stamp-*.pod files to CLEANFILES.
(cherry picked from commit c6310bd242ddaa7b0801df9da7e4fba7346dc53e)

13 years agoproto: Fix both-ends-cancel case.
Richard W.M. Jones [Fri, 18 Mar 2011 18:27:21 +0000 (18:27 +0000)]
proto: Fix both-ends-cancel case.

In the case where both ends cancel at the same time (eg. both ends
realize there are errors before or during the transfer), previously we
skipped sending back an error from the daemon, on the spurious basis
that the library would not need it (the library is cancelling because
of its own error).

However this is wrong: we should always send back an error message
from the daemon in order to preserve synchronization of the protocol.

A simple test case is:

  $ guestfish -N fs -m /dev/sda1 upload nosuchfile /
  libguestfs: error: open: nosuchfile: No such file or directory
  libguestfs: error: unexpected procedure number (66/282)

(Notice two things: there are errors at both ends, and the
loss of synchronization).

After applying this commit, the loss of synchronization does not occur
and we just see the library error:

  $ guestfish -N fs -m /dev/sda1 upload nosuchfile /
  libguestfs: error: open: nosuchfile: No such file or directory

The choice of displaying the library or the daemon error is fairly
arbitrary in this case -- it would be valid to display either or even
to combine them into one error.  Displaying the library error only
makes the code considerably simpler.

This commit also (re-)enables a test for this case.

Cherry picked and rebased from
commit f4d996fd26762053d68f46de5790aae893f03d38.

13 years agoproto: Fix FileIn ops that abort during the chunk upload stage.
Richard W.M. Jones [Fri, 18 Mar 2011 17:17:30 +0000 (17:17 +0000)]
proto: Fix FileIn ops that abort during the chunk upload stage.

As a previous, incorrect attempt to fix RHBZ#576879 we tried to
prevent the daemon from sending an error reply if the daemon had
cancelled the transfer.  This is wrong: the daemon should send an
error reply in these cases.

A simple test case is this:

  guestfish -N fs -m /dev/sda1 upload big-file /

(This fails because the target "/" is a directory, not a file.)
Prior to this commit, libguestfs would hang instead of printing an
error.  With this commit, libguestfs prints an error.

What is happening is:

  (1) Library is uploading
  a file                          (2) In the middle of the long
                                  upload, daemon detects an error.
                                  Daemon cancels.
  (3) Library detects cancel,
  sends cancel chunk, then waits
  for the error reply from the
  daemon.                         (4) Daemon is supposed to send
                                  an error reply message.

Because step (4) wasn't happening, uploads that failed like this would
hang in the library (waiting for the error message, while the daemon
was waiting for the next request).

This also adds a regression test.

This temporarily breaks the "both ends cancel" case (RHBZ#576879c5).
Therefore the test for that is disabled, and this is fixed in the next
patch in the series.

This partially reverts commit dc706a639eec16084c0618baf7bfde00c6565f63.

Cherry picked and rebased from
commit 33b638109ed66ea360b53b80b1f407b3a5f5ec39.

13 years agoproto: Don't drop outgoing message when daemon cancels (RHBZ#576879).
Richard Jones [Fri, 18 Mar 2011 16:18:37 +0000 (16:18 +0000)]
proto: Don't drop outgoing message when daemon cancels (RHBZ#576879).

This is a (potential) fix for the long standing protocol bug
which causes loss of synchronization when a FileIn action
fails very early on the daemon side.  The canonical example
would be the 'upload' action failing immediately if no filesystem
is mounted.

What's supposed to happen is this:

  (1) library sends
  request message              (2) daemon processes request
  first chunk of data          and sees that it will fail,
                               sends cancellation
                               (3) discards chunks of data
  (4) library sees daemon
  cancellation and stops
  sending chunks

It was going wrong in step (1), in guestfs___send_to_daemon.
In some (timing related) circumstances, send_to_daemon could
receive the cancellation before sending the first chunk, at
which point it would exit, *discarding the first chunk*.
This causes the daemon to fail in step (3) since it reads the
next request as if it was a chunk, thus losing synchronization.
(The protocol specifies that you always have to send at least
one chunk if there is a FileIn or FileOut parameter).

The patch changes guestfs___send_to_daemon so that if it detects
cancellation, it sends the remaining data in its output buffer
instead of discarding it.  (This also fixes another edge case
to do with sending partial data although I don't think we
ever saw that in practice).
(cherry picked from commit c7368ce167d6dbfd3e69ba208301c5af3f17a8a1)

13 years agoregressions: Enable both tests for bug 576879 (not fixed).
Richard W.M. Jones [Fri, 18 Mar 2011 11:22:25 +0000 (11:22 +0000)]
regressions: Enable both tests for bug 576879 (not fixed).
(cherry picked from commit dc8e4b057ecd3984d7c27c8ece54048b6a06d662)

13 years agohaskell: Small fixes for ghc 7.
Richard W.M. Jones [Fri, 18 Mar 2011 11:19:31 +0000 (11:19 +0000)]
haskell: Small fixes for ghc 7.
(cherry picked from commit 502a98948c1bade2969758aff3db09869481105a)

13 years agoregressions: Rename the file we are uploading too.
Richard W.M. Jones [Thu, 17 Mar 2011 12:46:57 +0000 (12:46 +0000)]
regressions: Rename the file we are uploading too.

This updates commit cbd8da6d4dd2e4cbc3b87fbc7cb7d6129eb69172.
(cherry picked from commit e34fc32092e18b38282306558dcef66263a0fb10)

13 years agoregressions: Split the test rhbz576879.sh into two halves.
Richard W.M. Jones [Thu, 17 Mar 2011 11:57:40 +0000 (11:57 +0000)]
regressions: Split the test rhbz576879.sh into two halves.

We suspect that there are in fact two separate bugs.  In any
case it makes sense for the two tests to be done separately.

Note that these tests still fail.
(cherry picked from commit cbd8da6d4dd2e4cbc3b87fbc7cb7d6129eb69172)

13 years agocheck the pid is > 0 before calling waitpid()
Angus Salkeld [Tue, 15 Mar 2011 11:43:02 +0000 (22:43 +1100)]
check the pid is > 0 before calling waitpid()

Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
(cherry picked from commit d1f1f74e5f45fa5b94ebb096fa65fa33ecc23d09)

13 years agocheck the pid is > 0 before calling waitpid()
Angus Salkeld [Mon, 14 Mar 2011 11:40:12 +0000 (22:40 +1100)]
check the pid is > 0 before calling waitpid()

Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
(cherry picked from commit 6f7c1a9f9d76bdf9f112e12e1508531fb41abfb2)

13 years agoRHEL5: Old pod2man didn't have --stderr or -u options.
Richard W.M. Jones [Fri, 11 Mar 2011 10:47:05 +0000 (10:47 +0000)]
RHEL5: Old pod2man didn't have --stderr or -u options.
(cherry picked from commit eb304e9689ca474834207605ed52c369bcdec6ea)

13 years agoconfigure: Remove unnecessary variable assignment.
Richard W.M. Jones [Fri, 11 Mar 2011 10:23:58 +0000 (10:23 +0000)]
configure: Remove unnecessary variable assignment.

Left over from pre-virtio-serial days.
(cherry picked from commit 97eab125fa8e3dc481c1f1ba1a847cf43d537585)

13 years agoRHEL5: Make use of 'futimens' function optional.
Richard W.M. Jones [Fri, 11 Mar 2011 10:22:58 +0000 (10:22 +0000)]
RHEL5: Make use of 'futimens' function optional.
(cherry picked from commit 003fbdfe5d8b237f42f575199b742c8dde9b8a11)

13 years agoVersion 1.8.2. 1.8.2
Richard W.M. Jones [Tue, 8 Mar 2011 15:27:26 +0000 (15:27 +0000)]
Version 1.8.2.

13 years agoDetect Red Hat Desktop as 'rhel' distro (RHBZ#682979).
Richard W.M. Jones [Tue, 8 Mar 2011 08:10:19 +0000 (08:10 +0000)]
Detect Red Hat Desktop as 'rhel' distro (RHBZ#682979).

/etc/redhat-release on Red Hat Desktop contains the following
string:
  Red Hat Desktop release 4 (Nahant Update 8)

Previously we matched against the string "Red Hat Enterprise Linux"
but since this does not contain that string, this distro wasn't being
detected correctly.

Note this also changes the obsolete Perl code, for the benefit of
virt-v2v.
(cherry picked from commit c1a227a960066fb9552e0c225bc473be365b67b0)

13 years agoInclude <locale.h> in compilation units that use setlocale function.
Richard W.M. Jones [Mon, 7 Mar 2011 19:30:31 +0000 (19:30 +0000)]
Include <locale.h> in compilation units that use setlocale function.

Fix required by gcc 4.6.0.
(cherry picked from commit a9d6b948b590f58023a97dddd76302e40d49d2e2)

13 years agogenerator: Introduce error code (errcode) concept.
Richard W.M. Jones [Mon, 7 Mar 2011 19:28:30 +0000 (19:28 +0000)]
generator: Introduce error code (errcode) concept.

There was a lot of repeated code to map return types (eg. RErr)
to error cases (eg. -1 or NULL).

This commit introduces an error code type and two functions to
map return types to error codes and error codes to strings.

Cherry picked from commit 8037da06feea097716ce700f38c0eac0d5411a7c
and rebased against stable 1.8 branch.

13 years agodebian: Rename nilfs2-tools to nilfs-tools.
Richard W.M. Jones [Sat, 5 Mar 2011 09:17:41 +0000 (09:17 +0000)]
debian: Rename nilfs2-tools to nilfs-tools.
(cherry picked from commit 1c772c921186be34331c7610992f57a69d20d908)

13 years agovirt-make-fs: Round disk size to integer, fix for qemu-img 0.14.
Richard W.M. Jones [Fri, 4 Mar 2011 12:13:32 +0000 (12:13 +0000)]
virt-make-fs: Round disk size to integer, fix for qemu-img 0.14.

qemu-img used to allow you to specify a fractional image size in bytes
(or at least, it used to ignore the part after the decimal place).  In
qemu-img 0.14 it no longer does this so we round down the size to a
whole number of bytes.
(cherry picked from commit eda9826d25336bcf661700270c580d4d62128750)

13 years agovirt-make-fs: In debug mode, print qemu-img command line.
Richard W.M. Jones [Fri, 4 Mar 2011 12:13:12 +0000 (12:13 +0000)]
virt-make-fs: In debug mode, print qemu-img command line.
(cherry picked from commit 29b3ffdad5d6774f988fd0e25f9c8242e5dd577a)

13 years agoFix inspection code when PCRE or hivex is missing.
Richard W.M. Jones [Thu, 3 Mar 2011 13:23:23 +0000 (13:23 +0000)]
Fix inspection code when PCRE or hivex is missing.
(cherry picked from commit 2b26c7f721fc8ed2e6f64963289981ac286c02aa)