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).
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.
Richard W.M. Jones [Thu, 2 Jul 2009 13:10:55 +0000 (14:10 +0100)]
Ignore generated file appliance/debian/debirf.conf
Guido Günther [Tue, 30 Jun 2009 13:01:14 +0000 (15:01 +0200)]
Build Debian based appliance using debirf
Guido Günther [Tue, 16 Jun 2009 21:47:36 +0000 (23:47 +0200)]
add debirf files
Guido Günther [Thu, 2 Jul 2009 08:46:37 +0000 (10:46 +0200)]
unconditionally load dm module
needed for device mapper (LVM)
Guido Günther [Tue, 30 Jun 2009 12:44:09 +0000 (14:44 +0200)]
add missing module
for modularized Debian kernels
Jim Meyering [Thu, 2 Jul 2009 11:36:04 +0000 (13:36 +0200)]
avoid automake failure
* daemon/configure.ac: Use AM_PROG_CC_C_O, not AC_PROG_CC_C_O.
Jim Meyering [Thu, 2 Jul 2009 11:30:07 +0000 (13:30 +0200)]
arrange to build some generated sources
* src/Makefile.am (BUILT_SOURCES): Define.
($(BUILT_SOURCES)): Depend on stamp-generator.
Richard W.M. Jones [Thu, 2 Jul 2009 12:07:07 +0000 (13:07 +0100)]
Re-add src/MAX_PROC_NR (generated file).
This file is required by configure, so we need to add it so
it is available after the git checkout.
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.