Richard W.M. Jones [Thu, 2 Jul 2009 11:23:08 +0000 (12:23 +0100)]
Memoize the output of pod2text function in the generator.
This speeds up the generator greatly.
Richard W.M. Jones [Thu, 2 Jul 2009 11:04:54 +0000 (12:04 +0100)]
Updated PO files.
Richard W.M. Jones [Thu, 2 Jul 2009 10:38:36 +0000 (11:38 +0100)]
Remove generated code from git.
Git users now require the OCaml compiler in order to regenerate
the generated code after a checkout.
Generated code will remain in the tarball, so users of the
source tarball will not need the OCaml compiler.
Richard W.M. Jones [Thu, 2 Jul 2009 10:29:00 +0000 (11:29 +0100)]
Generator now runs automatically when it has changed.
Richard W.M. Jones [Wed, 1 Jul 2009 19:56:58 +0000 (20:56 +0100)]
Add 'readdir' call.
This adds a readdir call (mostly intended for programs). The
return value is a list of guestfs_dirent structures.
This adds the new types 'struct guestfs_dirent' and
'struct guestfs_dirent_list', along with all the code to
return these in the different language bindings.
Also includes additional tests for OCaml and Perl bindings
to test this.
Jim Meyering [Wed, 1 Jul 2009 14:09:33 +0000 (16:09 +0200)]
fish: handle some out-of-memory conditions
* fish/destpaths.c (xalloc_oversized): Define.
(complete_dest_paths_generator): Use size_t as type for a few
variables, rather than int.
Don't deref NULL or undef on failed heap alloc.
Don't leak on failed realloc.
Detect theoretical overflow when count_strings returns a very
large number of strings.
Handle asprintf failure.
(APPEND_STRS_AND_FREE): Rewrite as do {...}while(0), so that each use
can/must be followed by a semicolon. Better for auto-formatters.
Richard W.M. Jones [Wed, 1 Jul 2009 16:15:24 +0000 (17:15 +0100)]
Call 'udevadm settle' after operations which add/remove device nodes.
Because udev operates asynchronously, we found errors which were
caused by a previous command (eg. sfdisk or pvremove) creating
or removing a device, and that change not having happened by the
time the next command was run.
This patch adds calls to '/sbin/udevadm settle' after any commands
which can add or remove device nodes.
If udev is not being used or not available, this should have no
effect. The command fails and this is silently ignored.
Richard W.M. Jones [Wed, 1 Jul 2009 16:13:39 +0000 (17:13 +0100)]
All instances of 'pclose' now check for return value != 0.
We are generally interested that the subcommand ran without
error, ie. had exit status of 0. 'pclose' returns the exit
status, so we now check that pclose (fp) != 0.
Richard W.M. Jones [Wed, 1 Jul 2009 15:36:13 +0000 (16:36 +0100)]
Fix error handling of external sfdisk command.
Should use 'pclose' instead of 'fclose' (although fclose happens
to work because of glibc internals).
The result of pclose is the exit status of the command, so we
need to test this is != 0.
Richard W.M. Jones [Tue, 30 Jun 2009 13:01:40 +0000 (14:01 +0100)]
Generated code for the virtio_blk change.
Richard W.M. Jones [Tue, 30 Jun 2009 12:59:29 +0000 (13:59 +0100)]
Change to use virtio_blk (virtio block device) by default.
virtio_blk is the fast, virt-native block device driver
supported by qemu and KVM. Note that virtio_blk device
names are called /dev/vd*.
Existing scripts should continue working because device name
translation will silently change device names of the form
/dev/sd* to /dev/vd* as required.
See also:
http://libguestfs.org/guestfs.3.html#block_device_naming
Jim Meyering [Wed, 1 Jul 2009 13:45:01 +0000 (15:45 +0200)]
Don't dereference or free undefined "msg" upon OOM.
* src/guestfs.c (guestfs_error): Handle failing vasprintf.
Richard W.M. Jones [Wed, 1 Jul 2009 13:51:06 +0000 (14:51 +0100)]
Add libguestfs(3) as an alias manpage for guestfs(3).
Richard W.M. Jones [Wed, 1 Jul 2009 13:48:35 +0000 (14:48 +0100)]
Updated PO files.
Richard W.M. Jones [Wed, 1 Jul 2009 13:45:52 +0000 (14:45 +0100)]
Reorder the environment variables alphabetically in the documentation.
Richard W.M. Jones [Wed, 1 Jul 2009 13:43:49 +0000 (14:43 +0100)]
Document the $PAGER environment variable.
Richard W.M. Jones [Wed, 1 Jul 2009 13:42:41 +0000 (14:42 +0100)]
Document the LIBGUESTFS_MEMSIZE environment variable.
Richard W.M. Jones [Tue, 30 Jun 2009 14:10:31 +0000 (15:10 +0100)]
Change statvfs test so it doesn't depend on device size.
Current statvfs test depended on a lot of filesystem details
which can change if the CHS of the underlying block device
changes (eg. with the switch from IDE -> virtio). These are
not really necessary to test the call, so instead just check
for filesystem features.
Richard W.M. Jones [Tue, 30 Jun 2009 14:12:48 +0000 (15:12 +0100)]
Clean up the output of the C API test code.
Set output mode to unbuffered so that we see ordinary output
messages and errors at the same time.
Align "skipped" messages.
Richard W.M. Jones [Tue, 30 Jun 2009 16:48:07 +0000 (17:48 +0100)]
Todo: getfattr, setfattr.
Guido Günther [Tue, 30 Jun 2009 10:17:40 +0000 (12:17 +0200)]
Whitelist kernel modules for hardware emulated by QEMU
(Modified from Guido's original patch to use a wildcard to
specify all virtio modules - RWMJ).
Richard W.M. Jones [Tue, 30 Jun 2009 12:09:44 +0000 (13:09 +0100)]
Generated code for mknod, mkfifo, mknod_b, mknod_c, umask.
Richard W.M. Jones [Tue, 30 Jun 2009 12:08:34 +0000 (13:08 +0100)]
New commands: mknod, mkfifo, mknod_b, mknod_c and umask.
These commands are used to create block and char device
nodes or FIFOs (named pipes) in the filesystem.
The umask command is required also because the permissions
used by mknod are masked by the umask.
Also document and guarantee that the umask starts as 022.
Richard W.M. Jones [Tue, 30 Jun 2009 12:07:07 +0000 (13:07 +0100)]
Use octal numbers for modes in the test suite.
We have to use the OCaml convention (0o...). Note that in
OCaml 0777 is a _decimal_ number. It'll catch you out.
Richard W.M. Jones [Tue, 30 Jun 2009 10:17:06 +0000 (11:17 +0100)]
Generated code for 'set_memsize'/'get_memsize' calls.
Richard W.M. Jones [Tue, 30 Jun 2009 10:16:22 +0000 (11:16 +0100)]
Add 'set_memsize'/'get_memsize' calls.
Allow the qemu memory size to be specified either by API
calls or by setting the LIBGUESTFS_MEMSIZE environment
variable.
Guido Günther [Mon, 29 Jun 2009 20:56:54 +0000 (22:56 +0200)]
Use udev if available (Guido Gunter).
Added support for Fedora's udev (Richard Jones).
Guido Günther [Mon, 29 Jun 2009 16:40:00 +0000 (18:40 +0200)]
define REDHAT and DEBIAN
so we can preprocess packagelist.in
Richard W.M. Jones [Mon, 29 Jun 2009 19:39:41 +0000 (20:39 +0100)]
Todo: Suggest an environment variable for memsize configuration.
Richard W.M. Jones [Mon, 29 Jun 2009 19:24:47 +0000 (20:24 +0100)]
Generated code for the 'mkswap*' commands.
Richard W.M. Jones [Mon, 29 Jun 2009 19:23:42 +0000 (20:23 +0100)]
Implement 'mkswap', 'mkswap_L' and 'mkswap_U' commands.
These commands are used to make Linux swap devices. The mkswap_L
command makes one with a label. The mkswap_U command makes one
with a known UUID.
Richard W.M. Jones [Mon, 29 Jun 2009 19:24:38 +0000 (20:24 +0100)]
Todo: Allow memsize to be configured.
Richard W.M. Jones [Mon, 29 Jun 2009 17:52:14 +0000 (18:52 +0100)]
Todo: Investigations into 'binarch' command.
Richard W.M. Jones [Mon, 29 Jun 2009 17:40:42 +0000 (18:40 +0100)]
Rearrange guestfish commands in the manpage.
Richard W.M. Jones [Mon, 29 Jun 2009 16:48:03 +0000 (17:48 +0100)]
Add missing documentation for new 'more' and 'less' commands in guestfish.
Richard W.M. Jones [Mon, 29 Jun 2009 16:33:52 +0000 (17:33 +0100)]
Version 1.0.54
Richard W.M. Jones [Mon, 29 Jun 2009 16:33:32 +0000 (17:33 +0100)]
Check for XML::Writer dependency for virt-inspector.
Richard W.M. Jones [Mon, 29 Jun 2009 16:33:08 +0000 (17:33 +0100)]
Remove generated files in make clean.
Matthew Booth [Mon, 29 Jun 2009 15:27:05 +0000 (16:27 +0100)]
Merge commit 'et/master'
Richard W.M. Jones [Mon, 29 Jun 2009 15:22:10 +0000 (16:22 +0100)]
Fix for 'broken pipe' error when qemu dies (RHBZ#508713).
Richard W.M. Jones [Mon, 29 Jun 2009 15:05:22 +0000 (16:05 +0100)]
Generated code for mount-loop command.
Richard W.M. Jones [Mon, 29 Jun 2009 15:03:54 +0000 (16:03 +0100)]
Add mount-loop command (RHBZ#508668).
Loop device mounts don't work for the generic 'mount' commands
because the first parameter should be a file not a device.
We want to separate out files parameters from device parameters
in the long term, so this adds a new mount-loop command for this
purpose.
Richard W.M. Jones [Mon, 29 Jun 2009 15:00:49 +0000 (16:00 +0100)]
Fix memory leak in daemon/mount.c:do_mount_vfs.
Matthew Booth [Mon, 29 Jun 2009 14:34:29 +0000 (15:34 +0100)]
Output the config filename containing a modprobe alias in XML
This change affects the XML output:
/operatingsystems/operatingsystem/modprobealiases/alias/text() =>
/operatingsystems/operatingsystem/modprobealiases/alias/modulename/text()
Additionally there are two new elements:
/operatingsystems/operatingsystem/modprobealiases/alias/augeas
/operatingsystems/operatingsystem/modprobealiases/alias/file
These contain information about the location of the alias directive.
/augeas is an augeas path. /file is the path of the file containing the
directive.
Richard W.M. Jones [Mon, 29 Jun 2009 14:18:04 +0000 (15:18 +0100)]
Todo list: More suggestions.
Richard W.M. Jones [Mon, 29 Jun 2009 14:18:17 +0000 (15:18 +0100)]
Generated code for 'initrd-list'.
Richard W.M. Jones [Mon, 29 Jun 2009 14:16:40 +0000 (15:16 +0100)]
Add 'initrd-list' command to list contents of initrd images.
Add 'initrd-list' command to list the files inside (new-style)
initrd images. Update virt-inspector to use this instead of
the less efficient download/unpack locally method.
Matthew Booth [Mon, 29 Jun 2009 13:39:27 +0000 (14:39 +0100)]
Add a comment to device naming heuristic
Richard W.M. Jones [Mon, 29 Jun 2009 11:47:20 +0000 (12:47 +0100)]
Generated code for 'du' command.
Richard W.M. Jones [Mon, 29 Jun 2009 11:46:59 +0000 (12:46 +0100)]
Added 'du' command.
This command estimates file usage for files and directories.
Richard W.M. Jones [Mon, 29 Jun 2009 11:26:11 +0000 (12:26 +0100)]
Generated code for df / df-h.
Richard W.M. Jones [Mon, 29 Jun 2009 11:25:31 +0000 (12:25 +0100)]
Add 'df' and 'df-h' commands.
df and df-h commands can be used interactively to show disk
space usage.
Use existing statvfs command from programs.
Richard W.M. Jones [Mon, 29 Jun 2009 11:09:52 +0000 (12:09 +0100)]
Todo: Removed suggestion for short form for pipes.
Richard W.M. Jones [Mon, 29 Jun 2009 11:05:58 +0000 (12:05 +0100)]
Implement "more" and "less" commands in guestfish.
Use commands such as:
more /etc/passwd
less /etc/fstab
These commands are specific to guestfish.
Richard W.M. Jones [Mon, 29 Jun 2009 10:48:50 +0000 (11:48 +0100)]
Todo list: Pipes now implemented, so remove from list.
Richard W.M. Jones [Mon, 29 Jun 2009 10:47:07 +0000 (11:47 +0100)]
Generated code for head/tail commands.
Richard W.M. Jones [Mon, 29 Jun 2009 10:46:19 +0000 (11:46 +0100)]
Implement "head", "head-n", "tail", "tail-n" commands.
These commands let you view parts of a large file without
passing the whole file over the network connection.
Richard W.M. Jones [Mon, 29 Jun 2009 10:18:19 +0000 (11:18 +0100)]
Prevent 'n' being used as a parameter name.
Parameters named 'n' sometimes break the Perl bindings, so
check for this in the generator and prevent it.
Richard W.M. Jones [Mon, 29 Jun 2009 09:09:13 +0000 (10:09 +0100)]
Generated code for 'wc_*' commands.
Richard W.M. Jones [Mon, 29 Jun 2009 09:08:59 +0000 (10:08 +0100)]
Todo: wc command done.
Richard W.M. Jones [Mon, 29 Jun 2009 09:08:25 +0000 (10:08 +0100)]
Implementation of 'wc_c', 'wc_w' and 'wc_l' commands.
These commands count characters, words and lines in a file respectively.
Richard W.M. Jones [Mon, 29 Jun 2009 08:53:51 +0000 (09:53 +0100)]
Implement TEST_ONLY environment variable to run selected tests only.
To run just selected tests, do:
TEST_ONLY="hexdump mkfs" make -C capitests check
Richard W.M. Jones [Mon, 29 Jun 2009 08:43:54 +0000 (09:43 +0100)]
Add large test files with standard content for the C API test.
Large test files with standard content for the C API test, and
add a regression test for previous hexdump failure on large files.
Richard W.M. Jones [Mon, 29 Jun 2009 08:43:38 +0000 (09:43 +0100)]
Todo: RUN_ONLY_FOR
Richard W.M. Jones [Mon, 29 Jun 2009 08:39:08 +0000 (09:39 +0100)]
Todo: 'wc' command.
Richard W.M. Jones [Sat, 27 Jun 2009 13:00:48 +0000 (15:00 +0200)]
Guestfish pipes.
Richard W.M. Jones [Sun, 28 Jun 2009 11:54:22 +0000 (13:54 +0200)]
Haskell bindings: Implement bindtests.
Richard W.M. Jones [Sun, 28 Jun 2009 11:34:11 +0000 (13:34 +0200)]
Haskell bindings: Int and Int64 return types.
Richard W.M. Jones [Sun, 28 Jun 2009 11:28:30 +0000 (13:28 +0200)]
Merge branch 'master' of git+ssh://g-rjones@et.redhat.com/git/libguestfs
Richard W.M. Jones [Sun, 28 Jun 2009 11:27:33 +0000 (13:27 +0200)]
Haskell bindings: fix boolean arguments.
Richard W.M. Jones [Sun, 28 Jun 2009 11:17:23 +0000 (13:17 +0200)]
Haskell bindings: Fix integer arguments.
Matthew Booth [Fri, 26 Jun 2009 10:29:14 +0000 (11:29 +0100)]
Clean up XML output
This change makes XML use XML::Writer, and modifies the output in the
following 2 ways:
* /operatingsystems/operatingsystem/os is renamed to
/operatingsystems/operatingsystem/name
* /operatingsystems/kernels/version becomes an attribute of
/operatingsystems/kernel for consistency with initrds
Matthew Booth [Thu, 25 Jun 2009 16:19:29 +0000 (17:19 +0100)]
Make virt-inspector look in more places for module aliases
Specifically:
/etc/conf.modules
/etc/modules.conf
/etc/modprobe.conf
/etc/modprobe.d/*
Matthew Booth [Thu, 25 Jun 2009 13:33:26 +0000 (14:33 +0100)]
Add yaml output for virt-inspector
Matthew Booth [Thu, 25 Jun 2009 09:17:37 +0000 (10:17 +0100)]
Make run-inspector-locally try to work out where it is installed
This change means that you can run run-inspector-locally from any
directory. You can also symlink to it and it'll do the right thing. This
means you can put a symlink to run-inspectory-locally in your path
called 'virt-inspector', and 'guestfish -i' will work.
Richard W.M. Jones [Wed, 24 Jun 2009 20:18:43 +0000 (21:18 +0100)]
More TODO items for future work.
Richard W.M. Jones [Wed, 24 Jun 2009 19:10:53 +0000 (20:10 +0100)]
Allow guestfish -i / virt-inspector on live domains, in limited circumstances.
Richard W.M. Jones [Wed, 24 Jun 2009 19:04:58 +0000 (20:04 +0100)]
Fix detection of optional libvirt support in virt-inspector.
Richard W.M. Jones [Wed, 24 Jun 2009 19:01:41 +0000 (20:01 +0100)]
Document the guestfish --version option in the manual page.
Richard W.M. Jones [Wed, 24 Jun 2009 18:57:24 +0000 (19:57 +0100)]
Clarify documentation for mkdtemp.
Richard W.M. Jones [Wed, 24 Jun 2009 17:25:09 +0000 (18:25 +0100)]
Generated code for 'mkdtemp' command.
Richard W.M. Jones [Wed, 24 Jun 2009 17:22:37 +0000 (18:22 +0100)]
Add mkdtemp command.
Richard W.M. Jones [Wed, 24 Jun 2009 16:16:17 +0000 (17:16 +0100)]
Version 1.0.53.
Richard W.M. Jones [Wed, 24 Jun 2009 14:36:58 +0000 (15:36 +0100)]
Fix libvirt integration in virt-inspector.
Richard W.M. Jones [Wed, 24 Jun 2009 14:35:59 +0000 (15:35 +0100)]
Fix permissions on generated scripts in the appliance/ directory.
Richard W.M. Jones [Wed, 24 Jun 2009 11:41:24 +0000 (12:41 +0100)]
Version 1.0.52.
Richard W.M. Jones [Wed, 24 Jun 2009 11:15:57 +0000 (12:15 +0100)]
Quote command line arguments to virt-inspector.
Richard W.M. Jones [Wed, 24 Jun 2009 10:55:57 +0000 (11:55 +0100)]
Merge branch 'master' of git+ssh://g-rjones@et.redhat.com/git/libguestfs
Richard W.M. Jones [Wed, 24 Jun 2009 10:54:48 +0000 (11:54 +0100)]
Added guestfish -i option to run virt-inspector.
You can invoke guestfish with:
guestfish -i libvirt-domain
guestfish -i disk-image(s)
Matthew Booth [Wed, 24 Jun 2009 10:50:08 +0000 (11:50 +0100)]
Fix dependencies in perl so it doesn't always rebuild
Richard W.M. Jones [Wed, 24 Jun 2009 08:59:39 +0000 (09:59 +0100)]
Implement guestfish -f option to allow guestfish scripts.
New '-f' option allows scripts to be written using:
#!/usr/bin/guestfish -f
Richard W.M. Jones [Wed, 24 Jun 2009 08:56:34 +0000 (09:56 +0100)]
Incorrect assignment on glob error path.
Richard W.M. Jones [Wed, 24 Jun 2009 08:45:14 +0000 (09:45 +0100)]
Todo items: guestfish options -i and -f.
Richard W.M. Jones [Tue, 23 Jun 2009 21:02:10 +0000 (22:02 +0100)]
Implement libtool library versioning.
Use maximum proc_nr (MAX_PROC_NR) as a surrogate for the
library ABI version, resulting in version numbers such as
libguestfs.so.0.<MAX_PROC_NR>.0 for the final library.
Add ABI guarantee to the documentation.
Matthew Booth [Tue, 23 Jun 2009 16:35:40 +0000 (17:35 +0100)]
Make the supermin helper look for any x86 kernel
If you've got a non-PAE kernel installed on an i686 machine, the kernel
architecture is i586. This change makes sure that supermin finds the
installed kernel.
Richard W.M. Jones [Tue, 23 Jun 2009 14:53:44 +0000 (15:53 +0100)]
Generated code for 'scrub-*' commands.
Richard W.M. Jones [Tue, 23 Jun 2009 14:53:21 +0000 (15:53 +0100)]
Added 'scrub-*' commands for securely scrubbing filesystems.
Richard W.M. Jones [Tue, 23 Jun 2009 14:52:45 +0000 (15:52 +0100)]
Bump up default guest size to 500M.
Richard W.M. Jones [Tue, 23 Jun 2009 09:17:59 +0000 (10:17 +0100)]
Updated Polish translation (RHBZ#502533).
Richard W.M. Jones [Tue, 23 Jun 2009 09:07:46 +0000 (10:07 +0100)]
Command line argument handling.