Richard Jones [Thu, 20 May 2010 10:04:30 +0000 (11:04 +0100)]
ubuntu: Ignore packages in packagelist.in which are missing.
For distros using 'yum', packages which cannot be found are just
ignored. This allows us to include for example 'e4fsprogs' on the
list even though that only exists on RHEL 5.
However for Debian-derived distros, missing packages would cause
apt to fail. This was particularly a problem when building Ubuntu
since it doesn't have as complete a list of packages, and the list
changed a lot between releases.
This commit adds a check first for missing packages, ignoring those
and thus acting more like 'yum'.
Richard Jones [Mon, 21 Dec 2009 15:52:36 +0000 (15:52 +0000)]
Ubuntu: Use apt-get instead of aptitude when installing guestfsd.
Richard Jones [Mon, 21 Dec 2009 15:50:59 +0000 (15:50 +0000)]
Ubuntu: Revert install-kernel to debirf default script.
Richard Jones [Thu, 20 May 2010 09:39:44 +0000 (10:39 +0100)]
generator: Make 'xz' into an optional group.
On Ubuntu <= Karmic, xz-utils was not packaged, and therefore
any xz-related tests would fail. Thus make this an optional
group so that we can test for this and avoid running the tests
if xz utils are not present.
Richard Jones [Wed, 19 May 2010 11:27:00 +0000 (12:27 +0100)]
generator: Check parameters are not NULL (RHBZ#501893).
This adds additional tests to check that several types of parameter
including String are not NULL when passed to the C functions.
Previously this would cause a segfault inside libguestfs. With
this change, you get an error message / exception.
Of the possible pointer parameters, only OptString is now permitted
to be NULL.
This change does not affect the Perl bindings. This is because Perl
XS code was already adding similar checks if you passed undef into
a parameter expecting a string.
Richard Jones [Wed, 19 May 2010 11:25:03 +0000 (12:25 +0100)]
generator: Some String parameters should be OptString (RHBZ#501894).
I haven't checked the list of functions exhaustively, but
these are the obvious ones.
Richard Jones [Tue, 18 May 2010 22:49:43 +0000 (23:49 +0100)]
fuse: Implement write syscall (RHBZ#592883).
Richard Jones [Tue, 18 May 2010 22:20:30 +0000 (23:20 +0100)]
New API: Implement pwrite system call (partial fix for RHBZ#592883).
Richard Jones [Tue, 18 May 2010 20:51:05 +0000 (21:51 +0100)]
New API: write for creating files with fixed content (RHBZ#501889).
The guestfs_write call can be used to create small files with
arbitrary 8 bit content, including \0 bytes.
This replaces and deprecates write-file, which cannot be modified
to use BufferIn because of an unfortunate choice in the ABI: the
size parameter to write-file, if zero, means that the daemon tries
to calculate the length of the buffer using strlen. However this
fails if we pass a zero-length buffer using BufferIn because then
the daemon tries to do strlen on a (really) zero length buffer, not
even containing a terminating \0 character, thus segfaulting.
Richard Jones [Tue, 18 May 2010 20:47:19 +0000 (21:47 +0100)]
generator: Implement BufferIn parameter type (RHBZ#501889).
The BufferIn argument turns into various things:
in C const char *, size_t parameter pair
in XDR an opaque<> type (instead of string) which allows \0 chars
in other bindings
mostly just a string, since most languages except for C
permit strings to contain any 8 bit data
Richard Jones [Thu, 20 May 2010 09:11:18 +0000 (10:11 +0100)]
fish: Fix build error if built without readline.
fish.c:1447: error: 'add_history_line' defined but not used [-Wunused-function]
(Reported by Matt Booth)
Richard Jones [Tue, 18 May 2010 22:18:35 +0000 (23:18 +0100)]
appliance: Fix /etc/resolv.conf
Since changing to use link local address
(commit
fbf29976b33a69c64dc7847c54454bf2cfa5fde6)
we have included an incorrect resolv.conf file in the appliance
which points to the old (qemu) DNS server. This commit changes
to use the new DNS server.
Richard Jones [Tue, 18 May 2010 20:54:17 +0000 (21:54 +0100)]
Update BUGS.
Daniel Cabrera [Tue, 18 May 2010 13:38:57 +0000 (14:38 +0100)]
Update Spanish translations (RHBZ#593292).
Richard Jones [Tue, 18 May 2010 09:02:02 +0000 (10:02 +0100)]
appliance: Ignore utempter unreadable binaries (for RHEL 6).
Richard Jones [Tue, 18 May 2010 09:01:45 +0000 (10:01 +0100)]
appliance: Change comment about unreadable binaries.
Richard Jones [Sat, 15 May 2010 19:54:26 +0000 (20:54 +0100)]
Version 1.3.13.
Richard Jones [Sat, 15 May 2010 12:49:55 +0000 (13:49 +0100)]
Update BUGS
Richard Jones [Sat, 15 May 2010 07:44:04 +0000 (08:44 +0100)]
Update PO files.
Richard Jones [Sat, 15 May 2010 07:43:02 +0000 (08:43 +0100)]
Generate BUGS file from Red Hat Bugzilla database.
Add a script which generates the 'BUGS' file from Red Hat Bugzilla.
This is run whenever we do 'make dist' and deliberately stored in git.
Richard Jones [Fri, 14 May 2010 18:42:48 +0000 (19:42 +0100)]
virt-df: Display domains in sorted order.
Richard Jones [Fri, 14 May 2010 16:41:39 +0000 (17:41 +0100)]
Updated Spanish translations (RHBZ#592360).
Richard Jones [Fri, 14 May 2010 14:15:47 +0000 (15:15 +0100)]
Ensure ordinary appliance is updated before trying to build supermin appliance.
Richard Jones [Fri, 14 May 2010 11:38:39 +0000 (12:38 +0100)]
Version 1.3.12, update PO files.
Richard Jones [Thu, 13 May 2010 16:07:17 +0000 (17:07 +0100)]
Unify supermin appliance building using febootstrap 2.7
Richard Jones [Thu, 13 May 2010 08:56:27 +0000 (09:56 +0100)]
Improve errors from tar-in/tgz-in commands (RHBZ#591155 RHBZ#591250).
This commit improves the error messages from the tar-in, tgz-in (etc)
commands by capturing the stderr from the tar command in a file and
sending that back in the error message.
The method used for the error file is primitive, and there is a case
for a more generic error file mechanism, but this will do for now.
Sample error messages after this change:
$ virt-tar -u /tmp/test1.img /tmp/not.tar /
tar_in: tar subcommand failed on directory: /: tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors at /home/rjones/d/libguestfs/tools/virt-tar line 247.
$ virt-tar -u /tmp/test1.img /tmp/test.tar /
tar_in: tar subcommand failed on directory: /: tar: access.log: Cannot open: Read-only file system
tar: Exiting with failure status due to previous errors at /home/rjones/d/libguestfs/tools/virt-tar line 247.
Richard Jones [Thu, 13 May 2010 09:17:48 +0000 (10:17 +0100)]
Combine common code in daemon/tar.c.
This commit shouldn't result in any change in the semantics
of the code.
Richard Jones [Wed, 12 May 2010 18:55:06 +0000 (19:55 +0100)]
Fix FileIn cmds losing synch if both ends send cancel messages (RHBZ#576879).
During a FileIn command (eg. upload, tar-in) if both sides
experience errors, then both sides could send cancel messages,
the result being lost synchronization.
The reason for the lost synch was because the daemon was ignoring
this case and sending an error message back which the library side
(which had cancelled) was not expecting.
Fix this by checking in the daemon for the case where the library
also cancels during daemon cancellation, and not sending an error
messages.
This also includes an enhanced regression test which checks for this
case.
This extends the original fix in
commit
5922d7084d6b43f0a1a15b664c7082dfeaf584d0.
More details can be found here:
https://bugzilla.redhat.com/show_bug.cgi?id=576879#c5
Richard Jones [Thu, 13 May 2010 16:05:41 +0000 (17:05 +0100)]
guestfish: Fix build error in 'print_shell_quote' function.
Amend commit
1c6ed48bd3cd471dc so the prototype of
'print_shell_quote' function is correct.
Richard Jones [Wed, 12 May 2010 18:01:29 +0000 (19:01 +0100)]
fish: Fix guestfish -N option when called with unknown image type.
Previously it was falling off the end of the loop if you
called it with an unknown image type.
Richard Jones [Wed, 12 May 2010 17:11:37 +0000 (18:11 +0100)]
Improved error if virt-inspector cannot find OSes in image (RHBZ#591142).
Richard Jones [Wed, 12 May 2010 15:55:59 +0000 (16:55 +0100)]
Fix error message in string-e command (RHBZ#588651).
Richard Jones [Wed, 12 May 2010 14:58:00 +0000 (15:58 +0100)]
guestfish -i and virt-inspector work on filenames containing spaces (RHBZ#507810).
This commit fixes a long-standing bug which prevented guestfish -i
and virt-inspector from working on disk images which had a space
in the filename (or other unsafe characters). It works by ensuring
that the strings passed between guestfish -i and virt-inspector are
quoted correctly in both directions.
Note that this commit adds a dependency from virt-inspector to
the perl module String::ShellQuote. We have previously used this
module in virt-make-fs.
Richard Jones [Wed, 12 May 2010 14:01:45 +0000 (15:01 +0100)]
Add version numbers to Perl modules (RHBZ#521674).
Sys::Guestfs now contains a version number which reflects the
ABI that we are compiled against, ie. '0.<MAX_PROC_NR>'. This has
the beneficial side effect of causing an error if the user tries
to mix versions of the Perl module and the XS code.
Sys::Guestfs::Lib now contains a synthetic version number which
will reflect future changes in that module.
Richard Jones [Wed, 12 May 2010 13:26:26 +0000 (14:26 +0100)]
Update PO files, including extra strings from Perl files.
Richard Jones [Wed, 12 May 2010 13:24:23 +0000 (14:24 +0100)]
po: Include strings from Perl programs in the PO files (RHBZ#559963).
xgettext will only recognize '*.pl' as being a Perl file (otherwise
it treats it as a C file and does not correctly find any strings
in it).
This commit also fixes two actual bugs that xgettext found in the
strings in our Perl programs.
Richard Jones [Wed, 12 May 2010 13:19:50 +0000 (14:19 +0100)]
po: Don't generate po/Makevars file and include Perl keywords (RHBZ#559963).
I don't see a reason to autogenerate po/Makevars, and in the
earlier commit which changed this file to being autogenerated
we accidentally lost the special Perl keywords, copyright notice
and bug reporting address. Fix all of that.
This partially reverts commit
febff9d2a35c4f40abbaf8943146476bdeac671e.
Richard Jones [Wed, 12 May 2010 17:10:58 +0000 (18:10 +0100)]
Reduce imported functions in virt-df to ones which are actually used.
Richard Jones [Wed, 12 May 2010 16:32:39 +0000 (17:32 +0100)]
New API: fill-pattern for creating files with predefined patterns.
Richard Jones [Wed, 12 May 2010 15:12:07 +0000 (16:12 +0100)]
Run udev_settle() after swapon/swapoff (RHBZ#516096).
Richard Jones [Wed, 12 May 2010 14:29:03 +0000 (15:29 +0100)]
fish: With both '-x' and '-i', pass through '-x' to inferior process.
Richard Jones [Sat, 8 May 2010 19:12:55 +0000 (20:12 +0100)]
Version 1.3.11.
Richard Jones [Sat, 8 May 2010 18:57:52 +0000 (19:57 +0100)]
virt-rescue: Add extra options.
This commit adds the extra options '--append', '--memsize' and '--selinux'.
Richard Jones [Sat, 8 May 2010 18:55:27 +0000 (19:55 +0100)]
virt-rescue: Refresh documentation.
Richard Jones [Sat, 8 May 2010 08:45:19 +0000 (09:45 +0100)]
Revert "fish: Add 'please wait' message when launching (and interactive)."
This reverts commit
01fedcde05c930c1413e9fe0909fa1da1f360cdf.
Richard Jones [Sat, 8 May 2010 08:37:25 +0000 (09:37 +0100)]
fish: Add 'please wait' message when launching (and interactive).
Richard Jones [Sat, 8 May 2010 08:28:19 +0000 (09:28 +0100)]
launch: Rearrange the code so config check is first.
Move the config state check first in the guestfs_launch function,
so that we don't reset g->launch_t or calculate the temporary
directory in the case where the launch function will immediately
return with an error.
Richard Jones [Sat, 8 May 2010 08:26:57 +0000 (09:26 +0100)]
generator: FishAction is no longer used, remove this feature.
Richard Jones [Sat, 8 May 2010 08:25:32 +0000 (09:25 +0100)]
fish: Make 'launch' function static.
This commit makes the launch function static and private to
'fish.c', and changes the generator so the function is no longer
called for the 'run/launch' command.
Richard Jones [Sat, 8 May 2010 08:14:00 +0000 (09:14 +0100)]
fish: In 'reopen' copy trace setting to new handle.
Richard Jones [Sat, 8 May 2010 08:10:00 +0000 (09:10 +0100)]
Ignore test1.img file in directory.
Richard Jones [Sat, 8 May 2010 08:09:24 +0000 (09:09 +0100)]
fish -N option unconditionally overwrites test*.img files.
This is more convenient and makes it consistent with the
'alloc' and 'sparse' commands.
Richard Jones [Sat, 8 May 2010 08:04:28 +0000 (09:04 +0100)]
fish: Make '-x' option enable traces instead of using separate echo path.
Previously we had separate code paths for echoing commands (-x)
and tracing (guestfs_set_trace). This just unifies that so that
the guestfish -x option enables tracing.
Richard Jones [Fri, 7 May 2010 22:15:40 +0000 (23:15 +0100)]
inspector: Support filesystem-on-image VMs (RHBZ#590167).
$ virt-df /tmp/dbroot.img
Filesystem 1K-blocks Used Available Use%
/tmp/dbroot.img:/dev/vda 3096336 593628 2345424 20%
Richard Jones [Fri, 7 May 2010 21:50:50 +0000 (22:50 +0100)]
daemon: Use 'error' instead of 'perror' before calling 'abort'.
Richard Jones [Fri, 7 May 2010 21:49:49 +0000 (22:49 +0100)]
daemon: gnulib module 'error' is used directly by the daemon.
Richard Jones [Fri, 7 May 2010 21:50:22 +0000 (22:50 +0100)]
daemon: Use parens around code section for safety.
Richard Jones [Fri, 7 May 2010 21:37:55 +0000 (22:37 +0100)]
If qemu dies during launch, set an error message (RHBZ#588851).
Richard Jones [Fri, 7 May 2010 15:34:08 +0000 (16:34 +0100)]
Version 1.3.10.
Richard Jones [Fri, 7 May 2010 12:30:42 +0000 (13:30 +0100)]
daemon: Fix read-file so it fails gracefully for large files (RHBZ#589039).
Pengzhen Cao noticed that read-file would fail for files
larger than the protocol size; this is *not* the bug. However
it would also lose protocol synchronization after this.
The reason was that functions which return RBufferOut in the
generator must not 'touch' the *size_r parameter along error
return paths.
I fixed read-file and initrd-cat, and I checked that pread was
doing the right thing.
This also adds regression tests for read-file with various categories
of large file.
Richard Jones [Thu, 6 May 2010 23:13:31 +0000 (00:13 +0100)]
daemon: Fix wc* commands to work on absolute symbolic links (RHBZ#579608).
Richard Jones [Thu, 6 May 2010 23:13:05 +0000 (00:13 +0100)]
daemon: Fix strings to work on absolute symbolic links (RHBZ#579608).
Richard Jones [Thu, 6 May 2010 23:12:36 +0000 (00:12 +0100)]
daemon: Fix head and tail commands to work on absolute symbolic links (RHBZ#579608).
Richard Jones [Thu, 6 May 2010 23:11:55 +0000 (00:11 +0100)]
daemon: Fix grep and related to work on absolute symbolic links (RHBZ#579608).
Richard Jones [Thu, 6 May 2010 23:11:22 +0000 (00:11 +0100)]
daemon: Fix checksum to work on absolute symbolic links (RHBZ#579608).
Richard Jones [Thu, 6 May 2010 20:55:32 +0000 (21:55 +0100)]
daemon: Fix hexdump to work on absolute symbolic links (RHBZ#579608).
Richard Jones [Thu, 6 May 2010 20:36:24 +0000 (21:36 +0100)]
daemon: Fix for commands working on absolute symbolic links (RHBZ#579608).
The original idea (suggested by Al Viro) was to fork and chroot
into the sysroot and read the file from there. Because of the
separate process being chrooted, absolute links would be resolved
correctly. The slightly modified idea is to open the file in the
daemon process (but temporarily chrooted, so symlinks resolve
correctly), fork, and have the subprocess just be responsible for
copying the file. (Strictly speaking we don't need to fork, but
this implementation is simpler).
This commit just includes the changes needed to the command*()
functions in daemon/guestfsd.c and adds an absolute symlink to
the test ISO for testing it. Later commits will fix the broken
daemon commands themselves.
Richard Jones [Thu, 6 May 2010 19:32:09 +0000 (20:32 +0100)]
daemon: Change command to abort() on resource problems.
The comment in the code describes it thus:
/* Note: abort is used in a few places along the error paths early
* in this function. This is because (a) cleaning up correctly is
* very complex at these places and (b) abort is used when a
* resource problem is indicated which would be due to much more
* serious issues - eg. memory or file descriptor leaks. We
* wouldn't expect fork(2) or pipe(2) to fail in normal
* circumstances.
*/
Matthew Booth [Fri, 7 May 2010 13:58:32 +0000 (14:58 +0100)]
Warn instead of dying if grub refers to non-existent kernel
Richard Jones [Wed, 5 May 2010 15:10:37 +0000 (16:10 +0100)]
Update to latest gnulib.
Richard Jones [Tue, 4 May 2010 15:06:58 +0000 (16:06 +0100)]
Use link-local addresses between appliance and host (RHBZ#588763).
Richard Jones [Tue, 4 May 2010 14:06:09 +0000 (15:06 +0100)]
Change network configuration to use macros.
Change the network configuration so everything is set using
some macros at the top of src/guestfs.c.
Also, rename the macros used in the daemon so they are not the
same. It was a very long time since these sets of macros had to
match the ones defined in src/guestfs.c, despite what the comment
said.
Note that this commit should not change the semantics of the
program at all.
Daniel Cabrera [Tue, 4 May 2010 12:35:01 +0000 (13:35 +0100)]
Update Spanish translations (RHBZ#588733).
Richard Jones [Fri, 30 Apr 2010 22:12:34 +0000 (23:12 +0100)]
tests: In verbose mode, print dashes between each test.
Only affects tests when run with LIBGUESTFS_DEBUG=1. Lets you easily
see when each test starts and ends.
Richard Jones [Fri, 30 Apr 2010 17:27:37 +0000 (18:27 +0100)]
Version 1.3.9.
Richard Jones [Fri, 30 Apr 2010 12:56:11 +0000 (13:56 +0100)]
Document that guestfs_mount implies -o sync and performance problem (RHBZ#587582).
Richard Jones [Fri, 30 Apr 2010 11:27:00 +0000 (12:27 +0100)]
contrib: Add dependency diagram of libguestfs ecosystem.
Richard Jones [Fri, 30 Apr 2010 10:34:21 +0000 (11:34 +0100)]
contrib: Add header to README file.
Richard Jones [Fri, 30 Apr 2010 09:51:49 +0000 (10:51 +0100)]
lvresize: Use --force so it can make LVs smaller (RHBZ#587484).
This also adds a regression test for this bug.
Richard Jones [Fri, 30 Apr 2010 08:46:40 +0000 (09:46 +0100)]
tools: Fix documentation for CurrentControlSet (thanks Yuval Kashtan).
Richard Jones [Thu, 29 Apr 2010 12:55:52 +0000 (13:55 +0100)]
guestfs(3): Documentation on protocol gotchas.
Richard Jones [Tue, 27 Apr 2010 14:48:38 +0000 (15:48 +0100)]
Version 1.3.8.
Daniel Cabrera [Mon, 26 Apr 2010 14:57:45 +0000 (15:57 +0100)]
Update Spanish translation (RHBZ#585961).
Richard Jones [Sat, 24 Apr 2010 08:10:28 +0000 (09:10 +0100)]
fish: Add 'man' command which opens the manual.
Richard Jones [Sat, 24 Apr 2010 07:50:40 +0000 (08:50 +0100)]
docs: Routine refresh of the documentation for guestfs(3) and guestfish(1).
Richard Jones [Fri, 23 Apr 2010 13:43:13 +0000 (14:43 +0100)]
Version 1.3.7 - note: fixes a segfault in guestfish 1.3.6.
Richard Jones [Fri, 23 Apr 2010 13:29:56 +0000 (14:29 +0100)]
todo docs: Discuss shrinking filesystems and specifying sizes in guestfish.
Richard Jones [Fri, 23 Apr 2010 13:14:26 +0000 (14:14 +0100)]
New API: checksums-out for checksumming many files.
Useful API for verifying the integrity of virtual machines.
Richard Jones [Fri, 23 Apr 2010 12:43:05 +0000 (13:43 +0100)]
generator: Update docs for checksum to point to checksum-device.
Richard Jones [Fri, 23 Apr 2010 12:42:10 +0000 (13:42 +0100)]
daemon: Split out checksum type to program name mapping into function.
This shouldn't change the semantics of the program.
Richard Jones [Fri, 23 Apr 2010 13:13:42 +0000 (14:13 +0100)]
fish: Fix segfault in '-a' option.
This fixes a segfault in the guestfish -a option which you would
get when using guestfish 1.3.6.
Richard Jones [Fri, 23 Apr 2010 09:25:35 +0000 (10:25 +0100)]
todo docs: Integrate with host intrusion detection systems.
Richard Jones [Fri, 23 Apr 2010 09:23:45 +0000 (10:23 +0100)]
todo docs: Mapping filesystems to and from disk blocks.
Richard Jones [Thu, 22 Apr 2010 21:29:25 +0000 (22:29 +0100)]
Version 1.3.6.
Richard Jones [Thu, 22 Apr 2010 09:42:58 +0000 (10:42 +0100)]
fish: Add -N option for making prepared disk images.
Previously you might have typed:
$ guestfish
><fs> alloc test1.img 100M
><fs> run
><fs> part-disk /dev/sda mbr
><fs> mkfs ext4 /dev/sda1
now you can do the same with:
$ guestfish -N fs:ext4
Some tests have also been updated to use this new
functionality.
Richard Jones [Thu, 22 Apr 2010 09:46:34 +0000 (10:46 +0100)]
fish docs: Be consistent about using I<-..> for options.
Richard Jones [Thu, 22 Apr 2010 09:44:35 +0000 (10:44 +0100)]
fish docs: Use L</...> for internal links in the man page.
Matthew Booth [Thu, 22 Apr 2010 12:57:56 +0000 (13:57 +0100)]
Whitelist the loop kernel module
loop is sometimes a module, for example on RHEL 5.
Matthew Booth [Wed, 21 Apr 2010 14:39:49 +0000 (15:39 +0100)]
Don't die during inspection if rpm -qa or dpkg-query fails
If a problem in the package database prevented package enumeration from working,
inspection would die. This change makes it emit a warning and continue.
Matthew Booth [Wed, 21 Apr 2010 14:39:48 +0000 (15:39 +0100)]
Don't die during inspection if initrd doesn't exist
This fixes a problem where inspection would die if grub.conf referenced a
non-existent initrd. Just return an empty initrd instead.