Richard W.M. Jones [Fri, 19 Aug 2011 20:48:44 +0000 (21:48 +0100)]
configure: Add --with-extra flag to allow setting the extra version string.
Intended use in Fedora and RHEL is to encode the release
string, eg.
./configure [...] --with-extra="-%{release}"
Richard W.M. Jones [Fri, 19 Aug 2011 09:38:30 +0000 (10:38 +0100)]
Version 1.13.6.
Richard W.M. Jones [Thu, 18 Aug 2011 18:13:32 +0000 (19:13 +0100)]
protocol: Fix case where download can fail for small files.
There is another case where downloads of small files could fail if the
library side (writer) fails. In this case the library would send back
a cancellation, but it would be received after the daemon had finished
sending the whole file (because the file is small enough). The daemon
would reenter the main loop and immediately get an unexpected cancel
message, causing the daemon to die.
This commit also makes test-cancellation-download-librarycancels.sh
more robust. We use Monte-Carlo testing with a range of file sizes.
Small file sizes should trigger the error case.
Richard W.M. Jones [Thu, 18 Aug 2011 16:46:50 +0000 (17:46 +0100)]
Escape special/non-printing characters in debug output (RHBZ#731744).
The default event handler in libguestfs was simply writing all debug
output directly to stderr. However if the output contains
non-printable characters such as terminal control codes then these
would also be sent directly.
With newer SeaBIOS there is a lame attempt to implement a splash
screen using terminal control codes, thus when libguestfs tries to
display debugging output it would cause the screen to clear and debug
output to be lost.
This commit causes all non-printing characters to be escaped.
(\n and \r characters from the appliance are treated somewhat
specially).
Furthermore, instead of using write(2), use buffered stderr calls.
Richard W.M. Jones [Thu, 18 Aug 2011 16:41:09 +0000 (17:41 +0100)]
Remove guestfs___print_timestamped_argv.
This function was used to print the qemu and
febootstrap-supermin-helper command lines.
Unfortunately in the qemu case it was used incorrectly: it called the
internal debug function (ie. event API callback) from the forked qemu
subprocess, which meant that higher level event callbacks might have
been invoked from the child process.
To fix this, convert the qemu case into a new function called
print_qemu_command line which just prints the command line directly to
stderr. This is called after stderr has been redirected into the pipe
to the main process. Thus the qemu command line will be marshalled
into the event API along with other qemu and appliance output.
After fixing this, only one use of guestfs___print_timestamped_argv
remained, for printing the febootstrap-supermin-helper command line.
This is converted to a local function print_febootstrap_command_line.
Also print_febootstrap_command_line is now called before we fork
febootstrap-supermin-helper, so that messages no longer overlap.
Hilko Bengen [Wed, 17 Aug 2011 22:14:46 +0000 (00:14 +0200)]
out-of-tree build: generate ./run from template, fix image checks
./run can now be run in a separate build directory. Since some files
needed in the image checks are found in the source tree (but not the
build tree), the source tree location is passed to make-*-img.sh via
an environment variable.
Richard W.M. Jones [Wed, 17 Aug 2011 11:21:35 +0000 (12:21 +0100)]
Version 1.13.5
Richard W.M. Jones [Wed, 17 Aug 2011 11:41:41 +0000 (12:41 +0100)]
fish: Add fish-cmds.h to generator_built.
This updates commit
3064277680ad11f887691646d0fa17bb35f38c19.
Hilko Bengen [Tue, 16 Aug 2011 22:42:00 +0000 (00:42 +0200)]
out-of-tree build: fix make and make install
$(srcdir) is not needed for guestfs_c.c.
*.mli only exists in $(srcdir) and isn't found on "make install" otherwise
Hilko Bengen [Tue, 16 Aug 2011 22:41:59 +0000 (00:41 +0200)]
out-of-tree build: fix documentation generation II
Hilko Bengen [Tue, 16 Aug 2011 22:41:58 +0000 (00:41 +0200)]
out-of-tree build: remove unneeded explicit paths
Richard W.M. Jones [Tue, 16 Aug 2011 11:39:28 +0000 (12:39 +0100)]
Improve zeroing and detection of zeroes.
This code modifies zero, zero-device, is-zero, is-zero-device.
zero and zero-device are modified so that if the blocks of the device
already contain zeroes, then we don't write zeroes. The reason for
this is to avoid unnecessarily making the underlying storage
non-sparse or (in the qcow2 case) growing it.
is-zero and is-zero-device are modified so that zero detection is
faster. This is a nice side effect of making the first change.
Since avoiding unnecessary zeroing involves reading the blocks before
writing them, whereas before we just blindly wrote, this can be
slower. As you can see from the tests below, in the case where the
disk is sparse, it actually turns out to be faster, because we avoid
allocating the underlying blocks.
However in the case where the disk is non-sparse and full of existing
data, it is much slower. There might be a case for an API flag to
adjust whether or not we perform the zero check. I did not add this
flag because it is unlikely that the caller would have enough
information to be able to set the flag correctly.
(Elapsed time in seconds)
Format Test case Before After
Raw Sparse 16.4 5.3
Preallocated zero 17.0 18.8
Preallocated random 16.0 41.3
Qcow2 preallocation=off 18.7 5.6
preallocation=metadata 17.4 5.8
The current code uses a fixed block size of 4K for reading and
writing. I also tried the same tests with a block size of 64K but it
didn't make any significant difference.
(Thanks to Federico Simoncelli for suggesting this change)
Richard W.M. Jones [Mon, 15 Aug 2011 13:55:10 +0000 (14:55 +0100)]
recipes: Remove two C file dependencies which are not actually used in the POD.
Hilko Bengen [Sun, 14 Aug 2011 08:58:13 +0000 (10:58 +0200)]
out-of-tree build: fix building library
Hilko Bengen [Sun, 14 Aug 2011 08:58:12 +0000 (10:58 +0200)]
out-of-tree build: Fix up OCaml bindings and generator
Hilko Bengen [Sun, 14 Aug 2011 08:58:11 +0000 (10:58 +0200)]
out-of-tree build: fix appliance
Hilko Bengen [Sun, 14 Aug 2011 08:58:08 +0000 (10:58 +0200)]
out-of-tree build: fix documentation generation
Richard W.M. Jones [Sun, 14 Aug 2011 21:07:54 +0000 (22:07 +0100)]
ruby: Fix typo in Ruby bindings file.
Richard W.M. Jones [Fri, 12 Aug 2011 10:17:16 +0000 (11:17 +0100)]
Note that additional memory may be required to typecheck Augeas lenses (RHBZ#729887).
Richard W.M. Jones [Fri, 12 Aug 2011 10:08:57 +0000 (11:08 +0100)]
fish: Document that remote run in cmd substitution context hangs.
This documents bug 592910.
Richard W.M. Jones [Thu, 11 Aug 2011 21:52:06 +0000 (22:52 +0100)]
Version 1.13.4.
Richard W.M. Jones [Thu, 11 Aug 2011 10:45:25 +0000 (11:45 +0100)]
Fix 'unknown filesystem' warnings in old inspection code (RHBZ#678231 RHBZ#666578).
This is a comprehensive fix for the warnings from the old (and
obsolete) Perl inspection code. For a full description and
reproducer, see:
https://bugzilla.redhat.com/show_bug.cgi?id=678231#c5
Richard W.M. Jones [Mon, 8 Aug 2011 17:52:23 +0000 (18:52 +0100)]
inspection: Better checking for Windows root disks (RHBZ#729075).
Previously any disk that had /autoexec.bat or /boot.ini or /ntldr
would be picked up as a candidate for a Windows root disk. If further
checking could not find any systemroot (eg. /windows) then this would
result in complete failure of inspection.
In particular, this got confused by Hp_recovery partitions which have
/autoexec.bat, but don't have a systemroot in one of the usual places
(they have /MiniNT instead).
What we do now is to properly investigate all possible systemroot
places before deciding this is a Windows systemroot, so the subsequent
failure cannot occur.
(Thanks to lorimar for reporting this bug).
Richard W.M. Jones [Mon, 8 Aug 2011 11:41:54 +0000 (12:41 +0100)]
build: Set TMPDIR for local testing.
This avoids conflicts with the globally installed libguestfs
appliance, or lets us build in multiple local directories at the same
time without conflicts.
Richard W.M. Jones [Sun, 7 Aug 2011 22:11:37 +0000 (23:11 +0100)]
Version 1.13.3.
Richard W.M. Jones [Sun, 7 Aug 2011 22:10:50 +0000 (23:10 +0100)]
daemon: Don't include .gitignore in EXTRA_DIST.
This updates commit
60d5a50f4d3d9e2c2f5a7d42a6859de709bda3f6.
Richard W.M. Jones [Sun, 7 Aug 2011 20:05:13 +0000 (21:05 +0100)]
fish: Add setenv and unsetenv commands.
These commands allow you to manipulate the environment within
guestfish.
Richard W.M. Jones [Sun, 7 Aug 2011 20:04:00 +0000 (21:04 +0100)]
fish: Declare run_* functions in a generated header file.
Calls to these functions are generated, so there is no need to declare
the functions by hand.
Richard W.M. Jones [Sat, 6 Aug 2011 15:04:36 +0000 (16:04 +0100)]
docs: Move deprecation notice up to the top in C man page.
Richard W.M. Jones [Sat, 6 Aug 2011 15:00:01 +0000 (16:00 +0100)]
docs: Emphasize deprecation notice in man pages.
Richard W.M. Jones [Sat, 6 Aug 2011 14:57:21 +0000 (15:57 +0100)]
docs: Fix function names in deprecation notices.
Richard W.M. Jones [Sat, 6 Aug 2011 14:53:15 +0000 (15:53 +0100)]
docs: guestfs_set_out_of_memory_handler returns void, not int.
It always has done. The documentation was wrong.
Richard W.M. Jones [Sat, 6 Aug 2011 14:49:55 +0000 (15:49 +0100)]
docs: Clarify error handler example.
Richard W.M. Jones [Fri, 5 Aug 2011 15:39:43 +0000 (16:39 +0100)]
fish: Fix regression tests for new guestfish line numbers.
This updates commit
319e946b92e175c05cdd1fdcb85c9b86f5631011.
Richard W.M. Jones [Fri, 5 Aug 2011 13:58:30 +0000 (14:58 +0100)]
fish: Print input file and line number in error messages.
eg:
*stdin*:37: libguestfs: error: luks_close: Device lukstest is busy.
Richard W.M. Jones [Fri, 5 Aug 2011 13:03:18 +0000 (14:03 +0100)]
gnulib: Add all other libs when linking libguestfs.so.
This updates the previous two commits.
Richard W.M. Jones [Fri, 5 Aug 2011 12:52:42 +0000 (13:52 +0100)]
gnulib: Add $(LIB_CLOCK_GETTIME) when linking libguestfs.so.
We don't use this library (it is only used in the daemon),
but we need to add this to make the linker happy.
Richard W.M. Jones [Fri, 5 Aug 2011 09:54:19 +0000 (10:54 +0100)]
daemon: Remove separate configure of daemon subdirectory.
Combine the two Gnulib instances together.
Add checks from old daemon/configure.ac into configure.ac.
Fix daemon/Makefile.am so it is like a normal subdirectory
Makefile.am.
Because we are now using the replacement strerror_r function from
Gnulib (instead of the one from glibc directly), this requires a small
change to src/guestfs.c.
Richard W.M. Jones [Fri, 5 Aug 2011 11:34:02 +0000 (12:34 +0100)]
Update TODO.
Richard W.M. Jones [Fri, 5 Aug 2011 09:49:45 +0000 (10:49 +0100)]
debian: bash is required to run libtool replacement script.
This was failing on Debian where $(SHELL) is the minimal dash shell.
Richard W.M. Jones [Fri, 5 Aug 2011 09:31:03 +0000 (10:31 +0100)]
configure: Fix info about virt-resize when OCaml bindings are disabled.
Richard W.M. Jones [Fri, 5 Aug 2011 09:18:02 +0000 (10:18 +0100)]
python: Don't name extension with .so.0.0 and symlinks (thanks Dan Berrange).
Richard W.M. Jones [Tue, 2 Aug 2011 11:30:32 +0000 (12:30 +0100)]
Version 1.13.2.
Richard W.M. Jones [Tue, 2 Aug 2011 09:56:41 +0000 (10:56 +0100)]
Add regression test to catch missing libraries in the appliance.
Related to RHBZ#727178.
Richard W.M. Jones [Tue, 2 Aug 2011 10:03:50 +0000 (11:03 +0100)]
debian: Add gawk to packagelist.
It's already included, but implicitly.
Richard W.M. Jones [Mon, 1 Aug 2011 14:13:08 +0000 (15:13 +0100)]
virt-tar test: Stable ordering of test output.
The files could be listed in any order, resulting in the test failing
for no reason. Sort the output of tar.
Richard W.M. Jones [Mon, 1 Aug 2011 09:35:18 +0000 (10:35 +0100)]
Change link, since PostgreSQL switched to using git.
Richard W.M. Jones [Sun, 31 Jul 2011 19:48:00 +0000 (20:48 +0100)]
debian: Build libguestfs-ocaml and libguestfs-ocaml-dev subpackages.
Richard W.M. Jones [Fri, 29 Jul 2011 16:38:43 +0000 (17:38 +0100)]
Don't fail if HOSTNAME field is missing on Red Hat guests (RHBZ#726739).
Richard W.M. Jones [Wed, 27 Jul 2011 14:43:12 +0000 (15:43 +0100)]
perl: Fix another place where qw() was used as parentheses.
This is a fix for Perl 5.14.
See previous commit
5c3c7e8825341e18c9449976f8a321a04cc78d79.
Richard W.M. Jones [Tue, 26 Jul 2011 17:57:19 +0000 (18:57 +0100)]
ocaml: Fix locking in event callbacks.
We weren't acquiring the GC lock around some allocations, resulting in
segfaults when an event callback ran at the same time as a main thread
allocation or garbage collection.
In particular this fixes a noticable crash in guestfs-browser.
Richard W.M. Jones [Tue, 26 Jul 2011 13:17:19 +0000 (14:17 +0100)]
Version 1.13.1.
Richard W.M. Jones [Tue, 26 Jul 2011 11:39:54 +0000 (12:39 +0100)]
virt-df: Re-add documentation for --csv option.
The documentation for the --csv option disappeared between 1.6 and 1.8
when we rewrote virt-df in C. Re-add it from 1.6 sources.
Richard W.M. Jones [Mon, 25 Jul 2011 10:21:48 +0000 (11:21 +0100)]
test-tool: Print FEBOOTSTRAP_* environment variables (RHBZ#671082).
Richard W.M. Jones [Mon, 25 Jul 2011 10:16:24 +0000 (11:16 +0100)]
test-tool: Display state of pgroup flag from the handle.
This updates commit
f173543fd207bdc254a5eb75180d82ef25eacae9.
Richard W.M. Jones [Mon, 25 Jul 2011 10:12:48 +0000 (11:12 +0100)]
launch: Add qemu_supports_re function.
This function is like qemu_supports, but allows us to grep
the help text using regular expressions.
Note the function is not used yet.
Richard W.M. Jones [Mon, 25 Jul 2011 09:56:52 +0000 (10:56 +0100)]
Require PCRE library.
This library is widely available in distros.
Richard W.M. Jones [Fri, 22 Jul 2011 15:17:06 +0000 (16:17 +0100)]
docs: Document FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES (RHBZ#671082).
Richard W.M. Jones [Fri, 22 Jul 2011 10:12:52 +0000 (11:12 +0100)]
perl: Fix CCFLAGS for Perl 5.14.
A change to ExtUtils::CBuilder in Perl 5.14 causes CCFLAGS to
completely replace, rather than appending, the C flags.
The unfortunate consequence of this is that vital flags such as
-D_FILE_OFFSET_BITS=64 are missing. For 32 bit code, this means you
get binary-incompatible code that completely fails to load.
For further analysis see:
http://www.nntp.perl.org/group/perl.perl5.porters/2011/04/msg171535.html
This commit changes CCFLAGS so that it appends to the existing
$Config{ccflags} instead of replacing it. On earlier versions of Perl
this means we get two copies of the flags, which is unfortunate but
should be safe.
Richard W.M. Jones [Thu, 21 Jul 2011 16:59:34 +0000 (17:59 +0100)]
build: Redirect ./configure errors in general to config.log.
Richard W.M. Jones [Thu, 21 Jul 2011 16:00:48 +0000 (17:00 +0100)]
build: Send failed Perl test configure output to config.log.
Richard W.M. Jones [Thu, 21 Jul 2011 09:50:40 +0000 (10:50 +0100)]
build: Allow 'make quickcheck' test-tool args to be overridden.
A typical use for this is for packagers who want to increase
the default timeout:
make quickcheck QUICKCHECK_TEST_TOOL_ARGS="-t 300"
Richard W.M. Jones [Wed, 20 Jul 2011 17:28:07 +0000 (18:28 +0100)]
Update version number to 1.13.0.
There is no build or tarball for this, since it is identical
to 1.12.0.
Richard W.M. Jones [Wed, 20 Jul 2011 15:37:37 +0000 (16:37 +0100)]
Version 1.12.0.
Richard W.M. Jones [Wed, 20 Jul 2011 15:37:19 +0000 (16:37 +0100)]
Finalize release notes for 1.12 release.
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.
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.
Richard W.M. Jones [Wed, 20 Jul 2011 12:49:16 +0000 (13:49 +0100)]
docs: Update stable release instructions.
Richard W.M. Jones [Wed, 20 Jul 2011 12:33:47 +0000 (13:33 +0100)]
configure: Remove -Wmissing-noreturn warning.
Richard W.M. Jones [Wed, 20 Jul 2011 12:20:10 +0000 (13:20 +0100)]
po-docs: Fix generation of 'podfiles'.
Richard W.M. Jones [Wed, 20 Jul 2011 11:07:30 +0000 (12:07 +0100)]
appliance: Capture stderr from qemu to the event system.
Richard W.M. Jones [Wed, 20 Jul 2011 11:05:40 +0000 (12:05 +0100)]
appliance: Document pipe fds.
Richard W.M. Jones [Wed, 20 Jul 2011 10:45:02 +0000 (11:45 +0100)]
Partially revert
d82438431c1551610eb7d9945fa76d6387534582.
It appears qemu-kvm does *not* require -machine accel=tcg option.
That problem disappeared after upgrading seabios(!) However leave the
test for qemu -help option, since that's useful to determine if qemu
is completely broken or not.
Richard W.M. Jones [Tue, 19 Jul 2011 18:55:24 +0000 (19:55 +0100)]
build: Fix virtio-serial test for qemu 0.15.
Now qemu 0.15 won't even start up unless the -machine accel=... option
is specified. Essentially this is a regression in qemu.
Richard W.M. Jones [Tue, 19 Jul 2011 18:07:50 +0000 (19:07 +0100)]
Version 1.11.20.
Richard W.M. Jones [Tue, 19 Jul 2011 16:56:14 +0000 (17:56 +0100)]
Update release notes.
Richard W.M. Jones [Tue, 19 Jul 2011 16:54:35 +0000 (17:54 +0100)]
java: Add guestfs-java(3) man page.
Richard W.M. Jones [Tue, 19 Jul 2011 16:40:52 +0000 (17:40 +0100)]
Add missing reference to guestfs-perl(3) to guestfs(3).
Richard W.M. Jones [Tue, 19 Jul 2011 15:34:06 +0000 (16:34 +0100)]
java: Tidy up the generated C bindings file.
Richard W.M. Jones [Tue, 19 Jul 2011 13:45:11 +0000 (14:45 +0100)]
java: Fix optional arguments in calls.
This also adds tests.
Richard W.M. Jones [Tue, 19 Jul 2011 13:32:45 +0000 (14:32 +0100)]
java: Enable warnings when compiling C bindings code.
And fix the code so it doesn't generate warnings.
Nikita A Menkovich [Mon, 18 Jul 2011 12:55:02 +0000 (13:55 +0100)]
debian: Fix misspelling in debian/control.
Updates commit
c6577ac73db2d2d93a094ca2b7990e0d60e6a93a.
Nikita A Menkovich [Mon, 18 Jul 2011 12:57:09 +0000 (13:57 +0100)]
debian: Add debian/guestfsd.* to the tarball.
Nikita A Menkovich [Mon, 18 Jul 2011 12:55:02 +0000 (13:55 +0100)]
debian: Fix misspelling in debian/control.
Richard W.M. Jones [Mon, 18 Jul 2011 10:55:41 +0000 (11:55 +0100)]
Version 1.11.19.
Richard W.M. Jones [Mon, 18 Jul 2011 11:12:42 +0000 (12:12 +0100)]
po-docs: Include source (POD files) in EXTRA_DIST.
Richard W.M. Jones [Mon, 18 Jul 2011 08:34:04 +0000 (09:34 +0100)]
po-docs: Remove empty Spanish translation file.
Richard W.M. Jones [Mon, 18 Jul 2011 08:33:24 +0000 (09:33 +0100)]
po-docs: Fix UTF-8 encoding problem.
Richard W.M. Jones [Sun, 17 Jul 2011 22:05:50 +0000 (23:05 +0100)]
po-docs: Update the list of output manpages.
Richard W.M. Jones [Sun, 17 Jul 2011 22:03:37 +0000 (23:03 +0100)]
po-docs: Generate list of *.pod files.
Generate the list of *.pod files, instead of hard coding
it (and having it get very very out of date). Store the
list in a separate file po-docs/podfiles.
Richard W.M. Jones [Sun, 17 Jul 2011 21:03:22 +0000 (22:03 +0100)]
Add notes on making a libguestfs stable release.
Richard W.M. Jones [Sun, 17 Jul 2011 21:02:58 +0000 (22:02 +0100)]
Pull latest translations from Transifex.
Richard W.M. Jones [Sun, 17 Jul 2011 21:01:40 +0000 (22:01 +0100)]
Add tx pull wrapper script.
Richard W.M. Jones [Sun, 17 Jul 2011 09:29:47 +0000 (10:29 +0100)]
ocaml: Generate ocamldoc.
Also includes improvements to the OCaml documentation.
Richard W.M. Jones [Sat, 16 Jul 2011 18:11:52 +0000 (19:11 +0100)]
ocaml: Bind guestfs_last_errno.
Richard W.M. Jones [Sat, 16 Jul 2011 18:11:37 +0000 (19:11 +0100)]
Update API support.
Richard W.M. Jones [Sat, 16 Jul 2011 14:26:32 +0000 (15:26 +0100)]
Update ROADMAP file.
Richard W.M. Jones [Sat, 16 Jul 2011 14:23:48 +0000 (15:23 +0100)]
fish: Don't make --ro the default yet.
Defer this decision to a future version of libguestfs.
Richard W.M. Jones [Sat, 16 Jul 2011 14:20:29 +0000 (15:20 +0100)]
docs: Separate out combined =item 's in man pages.
Turn:
=item B<-a> | B<--all>
into:
=item B<-a>
=item B<--all>
This gives a more natural-looking manual page, as well as making it
easier to directly link to these sections.
Richard W.M. Jones [Sat, 16 Jul 2011 11:36:07 +0000 (12:36 +0100)]
Update and rearrange release notes.