Richard Jones [Mon, 13 Jul 2009 12:06:26 +0000 (13:06 +0100)]
Guestfish feature: remote control of guestfish over a pipe.
The use case is to have a long-running guestfish process in
a shell script, and thus to avoid the overhead of starting
guestfish each time. Do:
eval `guestfish --listen`
guestfish --remote somecmd
guestfish --remote someothercmd
guestfish --remote exit
This patch also supports having multiple guestfish processes
at the same time.
The protocol is simple XDR messages over a Unix domain socket.
Richard W.M. Jones [Tue, 14 Jul 2009 12:47:18 +0000 (13:47 +0100)]
Removed getfattr/setfattr from TODO list, since now implemented.
Richard W.M. Jones [Tue, 14 Jul 2009 10:50:55 +0000 (11:50 +0100)]
Support for Linux extended attributes.
This commit adds six calls to support Linux extended attributes.
They are:
getxattrs list all extended attributes for a file or directory
setxattr add/replace an extended attribute
removexattr remove an extended attribute
lgetxattrs \
lsetxattr (same as above, but operate on symbolic links)
lremovexattr /
See attr(5) for more information.
This also adds support for the FBuffer field type, which maps to
an XDR opaque<> or a C (int, char *) pair.
Richard Jones [Tue, 14 Jul 2009 11:47:53 +0000 (12:47 +0100)]
virt-inspector: Ignore swap partitions marked as "none".
Richard Jones [Tue, 14 Jul 2009 10:48:55 +0000 (11:48 +0100)]
Improve launch error message.
The previous error message was confusing for new users:
libguestfs: error: guestfs_mount: call launch() before using this function
The new error message explains the action that the user must take,
especially if they are using guestfish:
><fs> mount /dev/sda1 /
libguestfs: error: guestfs_mount: call launch before using this function
(in guestfish, don't forget to use the 'run' command)
Richard Jones [Tue, 14 Jul 2009 10:37:05 +0000 (11:37 +0100)]
Add reiserfs module to kernel whitelist.
Richard Jones [Mon, 13 Jul 2009 17:28:45 +0000 (18:28 +0100)]
Only allow virt-v2v to be run on single root guests (ie. no multi-boot).
Richard Jones [Mon, 13 Jul 2009 17:06:10 +0000 (18:06 +0100)]
Ignore old-style initrd which is a compressed ext2 filesystem.
'cpio' chokes on these, taking ages to decide that they are
not cpio files, and producing masses of messages. This was
causing virt-inspector to be very slow (many minutes) on
RHEL 3 guests. With this fix, speed is back to normal.
Richard Jones [Mon, 13 Jul 2009 17:00:07 +0000 (18:00 +0100)]
Implement new 'zfile' command, to show file type inside compressed files.
Richard Jones [Mon, 13 Jul 2009 15:49:12 +0000 (16:49 +0100)]
Ignore java/Makefile.inc (generated file).
Matthew Booth [Mon, 13 Jul 2009 12:51:42 +0000 (13:51 +0100)]
Automatically generate list of built java sources
Matthew Booth [Mon, 13 Jul 2009 11:55:02 +0000 (12:55 +0100)]
Revert "Fix checking of generator being run from the right directory."
This reverts commit
35c646965a21d452cf74ef3683612210a653c36d.
As well as reverting this change, add a comment explaining that
configure must run first.
Richard Jones [Mon, 13 Jul 2009 11:27:35 +0000 (12:27 +0100)]
Move BUILT_SOURCES so the comment is back in the right place.
Richard Jones [Mon, 13 Jul 2009 11:12:34 +0000 (12:12 +0100)]
Order alphabetically the options in guestfish.1 manpage.
Richard W.M. Jones [Sat, 11 Jul 2009 20:35:03 +0000 (21:35 +0100)]
Guestfish: implement -x option, echo commands before executing them.
Richard W.M. Jones [Sat, 11 Jul 2009 20:33:41 +0000 (21:33 +0100)]
Fix: '-D' was not recognized as a parameter to guestfish.
Richard W.M. Jones [Sat, 11 Jul 2009 20:27:23 +0000 (21:27 +0100)]
Regression test: Test reopening the handle in the same process.
Richard W.M. Jones [Sat, 11 Jul 2009 20:20:17 +0000 (21:20 +0100)]
Guestfish: Add 'reopen' command to reopen the libguestfs handle.
Richard W.M. Jones [Sat, 11 Jul 2009 20:07:57 +0000 (21:07 +0100)]
Add missing documentation for "more" command in guestfish help output.
Richard W.M. Jones [Sat, 11 Jul 2009 13:00:53 +0000 (14:00 +0100)]
Add tests to many non-daemon functions.
Tests are added to the following functions:
get_qemu get_path get_append get_autosync
is_ready is_config is_launching is_busy
set_memsize get_memsize get_pid
Richard W.M. Jones [Sat, 11 Jul 2009 12:44:53 +0000 (13:44 +0100)]
Add TestOutputIntOp, CompareWithIntOp.
These constructors allow enhanced tests where we compare
the result of a test against some operator, eg. >= 1 or < 5
Richard W.M. Jones [Sat, 11 Jul 2009 12:38:01 +0000 (13:38 +0100)]
Test for "version" command should be InitNone.
Richard W.M. Jones [Sat, 11 Jul 2009 12:37:24 +0000 (13:37 +0100)]
Add comment to the code about InitNone and InitEmpty.
These two constructors are treated as identical, but they
should be distinct concepts.
Richard W.M. Jones [Sat, 11 Jul 2009 12:36:31 +0000 (13:36 +0100)]
Fix UPDATES and host_cpu in configure.ac.
UPDATES does not need to be propagated into config.h.
host_cpu was AC_DEFINE'd twice.
Richard Jones [Sat, 11 Jul 2009 11:12:33 +0000 (12:12 +0100)]
Documentation for virt-v2v.
Richard Jones [Sat, 11 Jul 2009 10:20:46 +0000 (11:20 +0100)]
V2V outline program.
Richard W.M. Jones [Fri, 10 Jul 2009 22:14:16 +0000 (23:14 +0100)]
Don't list Java files explicitly, since these files are auto-generated.
Richard W.M. Jones [Fri, 10 Jul 2009 21:46:06 +0000 (22:46 +0100)]
Version 1.0.58.
Richard W.M. Jones [Fri, 10 Jul 2009 21:15:53 +0000 (22:15 +0100)]
Proposal to add BufferIn and RBufferOut types (not implemented).
Richard W.M. Jones [Fri, 10 Jul 2009 21:01:50 +0000 (22:01 +0100)]
Sys::Guestfs::Lib: Exit with error if a libvirt domain appears to have no disks.
Richard W.M. Jones [Fri, 10 Jul 2009 20:59:46 +0000 (21:59 +0100)]
virt-df: Recognise libvirt domains with file-backed disks.
File-backed disks (<source file="...">) didn't get recognised
before. This patch fixes the problem.
Richard Jones [Fri, 10 Jul 2009 16:57:41 +0000 (17:57 +0100)]
Add --version options to virt-df, virt-inspector and virt-v2v.
Richard Jones [Fri, 10 Jul 2009 16:52:09 +0000 (17:52 +0100)]
Add 'version' call to get true library version number.
This patch also changes the way that the version is specified
in configure.ac. It is now made out of four parts (major, minor,
release and extra) and constructed for AC_INIT.
Richard Jones [Fri, 10 Jul 2009 15:28:15 +0000 (16:28 +0100)]
Move 'use File::Temp' from virt-inspector program to Sys::Guestfs::Lib.
Richard Jones [Fri, 10 Jul 2009 13:10:31 +0000 (14:10 +0100)]
Version 1.0.57.
Richard Jones [Fri, 10 Jul 2009 13:09:47 +0000 (14:09 +0100)]
Update PO files.
Richard Jones [Fri, 10 Jul 2009 13:09:33 +0000 (14:09 +0100)]
Additional C files for POTFILES.in.
Richard Jones [Fri, 10 Jul 2009 13:02:45 +0000 (14:02 +0100)]
Rename internal subroutines with leading underscore character.
Otherwise Pod::Coverage in the tests will complain that the
internal subroutines are undocumented.
Richard Jones [Fri, 10 Jul 2009 12:04:17 +0000 (13:04 +0100)]
Working version of virt-df.
Richard Jones [Fri, 10 Jul 2009 11:06:11 +0000 (12:06 +0100)]
Fix for returning structures (hashes) from Perl calls.
Calls such as stat and statvfs which returned a single structure
were returning an array of values instead of a full hash of keys +
values.
Fix this by pushing the key names on the stack too.
Richard Jones [Fri, 10 Jul 2009 10:43:17 +0000 (11:43 +0100)]
'$_' should be marked as a local variable in Sys::Guestfs::Lib::open_guest.
Richard Jones [Fri, 10 Jul 2009 10:41:43 +0000 (11:41 +0100)]
Properly close fds and unregister handlers in guestfs_close.
This caused a segfault if you tried to repeatedly open and close
a guestfs handle in the same program. The reason is that the
old handler remained registered (not always - it was racey).
This adds proper cleanup to the guestfs_close path, also for file
descriptors.
Richard Jones [Fri, 10 Jul 2009 09:44:20 +0000 (10:44 +0100)]
Added framework for 'virt-df' command.
Richard Jones [Fri, 10 Jul 2009 09:23:11 +0000 (10:23 +0100)]
Ignore any file called 'localconfigure'.
Developers should put their custom parameters for configure/autogen.sh
into a script called ./localconfigure, and this script will be ignored
by git and the build system.
Richard Jones [Fri, 10 Jul 2009 09:22:47 +0000 (10:22 +0100)]
Added outline of the virt-v2v script.
Richard Jones [Thu, 9 Jul 2009 18:37:09 +0000 (19:37 +0100)]
Remove virt-inspector --force option - it didn't do anything.
Richard Jones [Thu, 9 Jul 2009 18:25:01 +0000 (19:25 +0100)]
Sys::Guestfs::Lib minor documentation clean-up.
Richard Jones [Thu, 9 Jul 2009 17:29:08 +0000 (18:29 +0100)]
Move the inspection analysis code into Sys::Guestfs::Lib library.
Creates new functions:
inspect_all_partitions
inspect_partition
inspect_operating_systems
mount_operating_system
inspect_in_detail
Includes far more documentation for the process.
Richard Jones [Thu, 9 Jul 2009 14:29:28 +0000 (15:29 +0100)]
Move 'resolve_windows_path' to Sys::Guestfs::Lib.
Richard Jones [Thu, 9 Jul 2009 13:35:34 +0000 (14:35 +0100)]
Move 'get_partitions' call into Sys::Guestfs::Lib.
Richard Jones [Thu, 9 Jul 2009 13:01:58 +0000 (14:01 +0100)]
Add Sys::Guestfs::Lib - useful functions for using libguestfs from Perl.
This adds an extra Perl module called Sys::Guestfs::Lib which
adds useful functions for using libguestfs from Perl.
The intention is that common code shared between virt-inspector,
virt-df and virt-v2v will move into this library.
This patch also changes virt-inspector to use this library.
Richard Jones [Thu, 9 Jul 2009 13:01:10 +0000 (14:01 +0100)]
Just whitespace changes in the generator code.
Richard Jones [Wed, 8 Jul 2009 16:20:52 +0000 (17:20 +0100)]
Update with links to the new mailing list.
Richard W.M. Jones [Tue, 7 Jul 2009 19:28:29 +0000 (20:28 +0100)]
Fix checking of generator being run from the right directory.
Originally it was looking for 'config.status', but this file
might not exist until configure has been run. Make it look for
HACKING instead.
Richard W.M. Jones [Tue, 7 Jul 2009 19:06:27 +0000 (20:06 +0100)]
Version 1.0.56.
Richard Jones [Tue, 7 Jul 2009 18:39:58 +0000 (19:39 +0100)]
RHEL 5: Mount squashfs with explicit type.
Richard Jones [Tue, 7 Jul 2009 18:02:59 +0000 (19:02 +0100)]
RHEL 5: Skip 'scrub' test if command is not in the initramfs.
Richard Jones [Tue, 7 Jul 2009 18:01:45 +0000 (19:01 +0100)]
RHEL 5: 'mkswap -U' not supported, check before testing it.
Richard Jones [Tue, 7 Jul 2009 16:34:31 +0000 (17:34 +0100)]
Update ocaml/.depend.
Richard Jones [Tue, 7 Jul 2009 16:33:47 +0000 (17:33 +0100)]
RHEL 5: RHEL kernels don't have $arch at the end, so look for non-arch kernels too.
Richard Jones [Tue, 7 Jul 2009 16:33:09 +0000 (17:33 +0100)]
RHEL 5: $(builddir) did not exist with this old autoconf/automake, so workaround.
Richard Jones [Tue, 7 Jul 2009 16:32:34 +0000 (17:32 +0100)]
RHEL 5: for (int i = ...) is not permitted with this old version of GCC.
Richard Jones [Tue, 7 Jul 2009 15:55:51 +0000 (16:55 +0100)]
Merge branch 'master' of git://git.et.redhat.com/libguestfs
Richard Jones [Tue, 7 Jul 2009 12:42:34 +0000 (13:42 +0100)]
Generate structs and struct lists generically.
This modifies the way that struct and struct lists are generated
(for return values) so that there is no need to add an explicit
new type when adding a new structure.
All tests pass, and the C API should be compatible.
I have also inspected the changes that are made to the generated
code by hand.
Richard Jones [Tue, 7 Jul 2009 12:03:36 +0000 (13:03 +0100)]
Fix for
349814e9d912c4: Get correct path when building Ruby bindings.
Richard Jones [Mon, 6 Jul 2009 15:01:51 +0000 (16:01 +0100)]
Test two (of four) cancellation paths.
Richard Jones [Mon, 6 Jul 2009 15:01:23 +0000 (16:01 +0100)]
Add a debug message to the library cancellation path.
Richard Jones [Mon, 6 Jul 2009 12:10:25 +0000 (13:10 +0100)]
Introduce regression tests for various qemu failures.
Test failure of qemu and recovery of the library:
- mid-command
- between commands
- during launch [test not working yet]
- explicitly killed by guestfs_kill_subprocess
Also this patch cleans up the other tests in this directory
and disables the long-winded test-bootbootboot test.
Richard Jones [Mon, 6 Jul 2009 11:46:44 +0000 (12:46 +0100)]
guestfish: Always fflush stdout between commands.
Richard Jones [Mon, 6 Jul 2009 11:37:14 +0000 (12:37 +0100)]
Whitespace change in ocaml/.depend file.
Richard Jones [Mon, 6 Jul 2009 11:30:59 +0000 (12:30 +0100)]
Add 'get-pid' command.
This is used to get the PID of the qemu subprocess, mainly for
debugging and testing purposes.
Richard Jones [Mon, 6 Jul 2009 11:30:33 +0000 (12:30 +0100)]
Todo: Remote-control guestfish through a pipe.
Richard Jones [Mon, 6 Jul 2009 11:05:55 +0000 (12:05 +0100)]
Sort the .gitignore file (no semantic change).
Richard Jones [Mon, 6 Jul 2009 11:03:35 +0000 (12:03 +0100)]
Remove files generated by autoreconf (Guido Gunter and Matthew Booth).
Richard Jones [Sun, 5 Jul 2009 15:04:50 +0000 (16:04 +0100)]
Don't die if reply message is oversized (RHBZ#509597).
Guido Günther [Sat, 4 Jul 2009 12:41:23 +0000 (14:41 +0200)]
use 'stupid_simple' instead of 'nested' initramfs
speeds up start of the appliance
Guido Günther [Fri, 3 Jul 2009 20:20:05 +0000 (22:20 +0200)]
select proper kernel by architecture
Matthew Booth [Fri, 3 Jul 2009 10:52:50 +0000 (11:52 +0100)]
Make it possible to build in a separate directory
This patch allows you to do:
mkdir build
cd build
../configure ...
make
This will output all generated files to the build directory. Given that
autogen automatically runs configure, you can also do:
BUILDDIR=./build ./autogen.sh
which will do the right thing.
Also:
* Fix a dependency bug which means that guestfs_protocol.h
isn't automatically rebuilt.
* Re-running autogen.sh with no arguments won't blow away your previous
configure arguments.
Jim Meyering [Fri, 3 Jul 2009 12:17:23 +0000 (14:17 +0200)]
generate slightly more "const-correct" code
* src/generator.ml: Add a few "const" attributes.
Jim Meyering [Fri, 3 Jul 2009 10:05:22 +0000 (12:05 +0200)]
avoid leak upon failed realloc
* daemon/guestfsd.c (commandrv): Free original buffer (rather
than leaking it) if realloc fails.
Jim Meyering [Fri, 3 Jul 2009 09:53:49 +0000 (11:53 +0200)]
remove trailing blanks
Jim Meyering [Fri, 3 Jul 2009 09:52:19 +0000 (11:52 +0200)]
daemon/readdir: avoid a small leak
* daemon/readdir.c (do_readdir): Free both p and v.name, in case
only one of the allocations failed.
Guido Günther [Thu, 2 Jul 2009 15:30:40 +0000 (17:30 +0200)]
touch fakeroot.log
indicationg we're done creating the appliance
Guido Günther [Fri, 3 Jul 2009 10:42:38 +0000 (12:42 +0200)]
remove superflous debirf scripts
Richard W.M. Jones [Fri, 3 Jul 2009 11:02:21 +0000 (12:02 +0100)]
Guestfish tab-completion on destination paths, fixed this time.
Tab-completion on destination paths should now work correctly.
Richard W.M. Jones [Fri, 3 Jul 2009 10:31:01 +0000 (11:31 +0100)]
Don't keep rebuilding debirf module symlinks.
Richard W.M. Jones [Fri, 3 Jul 2009 10:10:49 +0000 (11:10 +0100)]
'readdir-and-stat' call is now effectively implemented.
Richard W.M. Jones [Fri, 3 Jul 2009 09:47:10 +0000 (10:47 +0100)]
Add Debian appliance directory to the distfile.
'make dist' won't copy symlinks into the output file, so we
have to add a rule to the Makefile to copy these.
(Issue reported by Guido Gunther).
Richard Jones [Thu, 2 Jul 2009 23:22:14 +0000 (00:22 +0100)]
Merge branch 'master' of git+ssh://192.168.122.1/home/rjones/d/libguestfs
Jim Meyering [Thu, 2 Jul 2009 13:39:08 +0000 (15:39 +0200)]
use safe_malloc and safe_calloc in generated code
* src/generator.ml (safe_malloc): Define to guestfs_safe_malloc.
(safe_calloc): Define to guestfs_safe_calloc.
[most generated code]: Fail immediately upon failure of otherwise-
unchecked malloc and calloc calls.
* src/guestfs.c: Include <stddef.h>.
(xalloc_oversized): Define.
* src/guestfs.h (guestfs_safe_calloc): Declare.
Jim Meyering [Thu, 2 Jul 2009 13:25:58 +0000 (15:25 +0200)]
prefer sizeof *VAR over sizeof TYPE (no semantic change)
* src/generator.ml: Slightly safer, in case the
declared type ever changes.
Richard W.M. Jones [Thu, 2 Jul 2009 20:51:47 +0000 (21:51 +0100)]
Prepare for 1.0.55. PO files also updated.
Richard W.M. Jones [Thu, 2 Jul 2009 20:50:30 +0000 (21:50 +0100)]
Add 'sfdiskM' command.
This command is a saner interface to partitioning.
All partition sizes are specified in megabytes (not cylinders).
You don't need to specify the cyls/heads/secs parameters.
All the test code has been updated to use this, so it is now
CHS-independent (eg. when CHS changes as between IDE and virtio).
Richard W.M. Jones [Thu, 2 Jul 2009 20:48:17 +0000 (21:48 +0100)]
Remove generated files guestfs_protocol.[ch].
These generated files were accidentally left in when we
removed the other generated files in cset
b3cb0b04eb2d38ba32c160a83d8e3894b376907b.
Richard W.M. Jones [Thu, 2 Jul 2009 20:33:51 +0000 (21:33 +0100)]
Don't rebuild the whole appliance if just the /init script has been changed.
Richard W.M. Jones [Thu, 2 Jul 2009 20:32:59 +0000 (21:32 +0100)]
Improve virtio-blk performance (RHBZ#509383).
Richard W.M. Jones [Thu, 2 Jul 2009 16:38:55 +0000 (17:38 +0100)]
Add ./configure --with-drive-if=(ide|scsi|virtio)
With this flag the packager can decide to default to a particular
qemu drive model. The current default is 'ide', however note that
we intend to change this in future to 'virtio' once some upstream
regressions are fixed. Packagers can force a particular drive
model if they wish.
Richard W.M. Jones [Thu, 2 Jul 2009 15:02:32 +0000 (16:02 +0100)]
Add the guestfish 'time' command.
><fs> time sfdisk /dev/sda 0 0 0 ,
elapsed time: 6.12 seconds
Richard W.M. Jones [Thu, 2 Jul 2009 14:11:59 +0000 (15:11 +0100)]
Add list of function_names to the daemon.
Messages which include the proc_nr can now also include the
name of the actual function being called.
Richard W.M. Jones [Thu, 2 Jul 2009 13:11:19 +0000 (14:11 +0100)]
In verbose mode, daemon will display the time elapsed for each command.