Commit Graph

72 Commits

Author SHA1 Message Date
Richard W.M. Jones
6352953ea9 FAQ: Mention update-guestfs-appliance (thanks Steven Dake). 2012-06-19 08:31:45 +01:00
Richard W.M. Jones
6445bc5952 doc: Add documentation covering use of utf8 option when mounting vfat (RHBZ#823887). 2012-05-25 15:46:26 +01:00
Richard W.M. Jones
b8b5ed65c2 FAQ: Add section about using libguestfs in closed source programs. 2012-05-23 11:46:23 +01:00
Richard W.M. Jones
144d7cd988 FAQ: Add a note about "child process died unexpectedly".
This is a common search term on the main website, and there is no good
information provided by Google at present.
2012-05-23 11:19:34 +01:00
Richard W.M. Jones
c7d3aa9cd6 FAQ: Update Ubuntu instructions. 2012-05-23 11:16:19 +01:00
Richard W.M. Jones
b42dcb05dc examples: Further fixes to mount-local example program.
* Set PS1 prompt properly for bash shells.
* Touch a file into the root directory of the new filesystem.

This fixes commit 46b6766156.
2012-05-14 12:19:31 +01:00
Richard W.M. Jones
2c50a5da46 example: Various fixes to mount-local example program.
* Move MOUNT_OPTIONS to #define at top.
* Move SIZE_MB to #define at top.
* Set PS1 in subshell (doesn't work - why?).
* Hide libguestfs errors from guestfs_mount_local_run.

This fixes commit 46b6766156.
2012-05-14 10:49:16 +01:00
Richard W.M. Jones
a219fede92 debian: examples: Don't break when O_CLOEXEC is not defined.
This affected Debian 6.

This fixes commit 46b6766156.
2012-05-14 10:24:53 +01:00
Richard W.M. Jones
034733e981 examples: Add mount options "acl,user_xattr" to mount-local example.
This fixes commit 46b6766156.
2012-05-13 23:01:15 +01:00
Richard W.M. Jones
46b6766156 examples: Add an example of using the mount-local API from C. 2012-05-13 22:53:01 +01:00
Richard W.M. Jones
7201a48d18 examples: Add if HAVE_HIVEX ... endif around virt_dhcp_address example. 2012-05-13 22:20:32 +01:00
Richard W.M. Jones
042a0b063b FAQ: Fix typo in download (thanks badnews@IRC) 2012-05-10 23:00:31 +01:00
Richard W.M. Jones
e6bfb55f65 Turn libguestfs FAQ into a man page: guestfs-faq(1). 2012-05-01 13:55:53 +01:00
Richard W.M. Jones
287d5a126e New man page: guestfs-performance(1).
This contains tips for engineering libguestfs for greatest performance.
2012-04-11 22:45:32 +01:00
Richard W.M. Jones
baa5e1ea51 example: Copying a directory between two guests using threads. 2012-03-09 15:13:08 +00:00
Richard W.M. Jones
618954a6b0 Check return values of guestfs_inspect_get_{type,distro} (found by Coverity).
Error: NULL_RETURNS:
/builddir/build/BUILD/libguestfs-1.16.5/examples/virt-dhcp-address.c:129: var_assigned: Assigning: "guest_distro" = null return value from "guestfs_inspect_get_distro".
/builddir/build/BUILD/libguestfs-1.16.5/examples/virt-dhcp-address.c:131: dereference: Dereferencing a pointer that might be null "guest_distro" when calling "__coverity_strcmp".
[...]
/builddir/build/BUILD/libguestfs-1.16.5/examples/virt-dhcp-address.c:126: var_assigned: Assigning: "guest_type" = null return value from "guestfs_inspect_get_type".
/builddir/build/BUILD/libguestfs-1.16.5/examples/virt-dhcp-address.c:128: dereference: Dereferencing a pointer that might be null "guest_type" when calling "__coverity_strcmp".
2012-03-08 13:21:58 +00:00
Richard W.M. Jones
518cdb596e Add 'display_icon' example program.
Running this on a disk image displays the guest icon
(using external 'display' program).
2012-03-07 18:36:46 +00:00
Wanlong Gao
90d6386c13 examples: code cleanups
do a code cleanup by removing the tailing spaces

Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
2012-01-31 13:27:52 +00:00
Richard W.M. Jones
08840bab44 Tempus fugit.
Update all copyright dates to 2012.
2012-01-18 22:05:02 +00:00
Richard W.M. Jones
7b3137e664 df, testing: Add notes on virt-df numbers (thanks Kashyap Chamarthy). 2011-11-22 13:21:17 +00:00
Richard W.M. Jones
6f39cfaeac guestfs-testing: Link to libguestfs-test-tool. 2011-11-21 13:09:59 +00:00
Richard W.M. Jones
a3b2429681 Add guestfs-testing(1) man page.
This contains suggested manual tests that users can run.
2011-11-20 13:39:28 +00:00
Matthew Booth
04ea1375c5 Update FSF address. 2011-11-08 14:43:07 +00:00
Richard W.M. Jones
84763d7fca Add Erlang bindings. 2011-09-21 15:21:58 +01:00
Hilko Bengen
4baec012b1 out-of-tree build: remove unneeded explicit paths 2011-08-17 10:27:29 +01:00
Richard W.M. Jones
1fdd0193fd recipes: Remove two C file dependencies which are not actually used in the POD. 2011-08-15 14:55:10 +01:00
Hilko Bengen
ff101adf7e out-of-tree build: fix documentation generation 2011-08-15 14:50:33 +01:00
Richard W.M. Jones
d025e91f67 java: Add guestfs-java(3) man page. 2011-07-19 17:54:35 +01:00
Richard W.M. Jones
3819b657b0 recipes: in tr command \000 should be \0 2011-06-03 09:41:20 +01:00
Richard W.M. Jones
f2c7df589c Add new guestfs-rescue(1) man page with recipes. 2011-05-18 21:03:44 +01:00
Richard W.M. Jones
9536892721 guestfs-examples(3): Remove link to OCaml homepage. 2011-05-18 17:02:53 +01:00
Richard W.M. Jones
34acb80a28 Enable deprecation warnings on all C programs. 2011-05-17 17:05:12 +01:00
Richard W.M. Jones
9e7c6a5483 New API: inspect-get-windows-current-control-set
This returns the actual registry key corresponding to
CurrentControlSet (eg. it might be "ControlSet001").

Previously the inspection code was hard-coding ControlSet001.  Now we
use the correct control set, and also make it available to callers
through the API.

This commit also updates the virt-dhcp-address example so it uses this
new API.

virt-inspector displays the current control set when available.
2011-04-05 20:01:15 +01:00
Richard W.M. Jones
97d737a88b examples: Add virt-dhcp-address program.
This is like the mythical 'virt-ifconfig'.  There is not enough
certainty around the right way to be doing this for us to make
a full virt tool for this.  Therefore the code is just an example.
2011-03-31 22:11:53 +01:00
Richard W.M. Jones
b41e73008a examples: Use WARN_CFLAGS, WERROR_CFLAGS macros instead of -Wall 2011-03-31 20:18:23 +01:00
Richard W.M. Jones
d5eb5216aa examples: size_t-correctness change in inspect_vm.c 2011-03-31 20:17:02 +01:00
Richard W.M. Jones
477eebc83d perl: Translate C examples into Perl and include a manual page. 2011-01-30 23:41:05 +00:00
Richard W.M. Jones
0c60e4d9dd fish: Don't fail if some mountpoints in /etc/fstab are bogus (RHBZ#668574).
Fix guestfish (and other C tools) so that they ignore errors
when /etc/fstab contains bogus entries.

Update the documentation for inspect-get-mountpoints to emphasize
that callers must be aware of this when mounting the returned
values.

Add a regression test.

Update the example code ("inspect_vm") to reflect the way this
API ought to be called.

For more detail see:
https://bugzilla.redhat.com/show_bug.cgi?id=668574
2011-01-11 11:09:41 +00:00
Richard W.M. Jones
37e632b7b8 ruby: Translate C examples into Ruby and include documentation. 2010-11-24 20:13:13 +00:00
Richard W.M. Jones
472722a72d python: Translate C examples into Python and include documentation. 2010-11-24 20:12:50 +00:00
Richard W.M. Jones
58012dc9b6 docs: Standard C examples, and guestfs-examples(3) man page. 2010-11-24 20:12:11 +00:00
Richard W.M. Jones
14490c3e1a generator: Optional arguments, add-drive-opts (RHBZ#642934,CVE-2010-3851).
This large commit changes the generator so that optional arguments
can be supported for functions.

The model for arguments (known as the "style") is changed from
(ret, args) to (ret, args, optargs) where optargs is a more limited
list of arguments.

One function has been added which takes optional arguments, it is
"add-drive-opts", modelled as:

  (RErr, [String "filename"], #required
         [Bool "readonly"; String "format"; String "iface"]) #optional

Note that this function is processed in the library (does not go over
the RPC protocol to the daemon).  This has allowed us to simplify
the current implementation by omitting changes related to RPC or the
daemon, although we plan to add these at some point in the future.

From C this function can be called in 3 different ways as in these
examples:

  guestfs_add_drive_opts (g, filename,
                          GUESTFS_ADD_DRIVE_OPTS_READONLY, 1,
			  GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw",
                          -1);

(the argument(s) between 'filename' and '-1' are the optional ones).

  guestfs_add_drive_opts_va (g, filename, args);

where 'args' is a va_list.  This works like the first version.

  struct guestfs_add_drive_opts_argv optargs = {
    .bitmask = GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK,
    .readonly = 1,
  }
  guestfs_add_drive_opts_argv (g, filename, &optargs);

This last form lets you construct lists of optional arguments, and
is used by guestfish and the language bindings.

In guestfish optional arguments are used like this:

  add-drive-opts filename readonly:true

In OCaml these are mapped naturally to OCaml optional arguments, eg:

  g#add_drive_opts ~readonly:true filename;

In Perl these are mapped to extra arguments, eg:

  $g->add_drive_opts ($filename, readonly => 1);

In Python these are mapped to optional arguments, eg:

  g.add_drive_opts ("file", readonly = 1, format = "qcow2")

In Ruby these are mapped to a final hash argument, eg:

  g.add_drive_opts("file", {})
  g.add_drive_opts("file", :readonly => 1)
  g.add_drive_opts("file", :readonly => 1, :iface => "virtio")

In PHP these are mapped to extra parameters.  This is not quite
accurate since you cannot omit arbitrary optional parameters, but
there's not much than can be done within the limitations of PHP
as a language.

Unimplemented in: Haskell, C#, Java.
2010-10-22 17:45:00 +01:00
Jim Meyering
c372c7c23a maint: use EXIT_SUCCESS and EXIT_FAILURE, not 0 and 1 to exit
Convert all uses automatically, via these two commands:
git grep -l '\<exit *(1)' \
  | grep -vEf .x-sc_prohibit_magic_number_exit \
  | xargs --no-run-if-empty \
    perl -pi -e 's/\b(exit ?)\(1\)/$1(EXIT_FAILURE)/'
git grep -l '\<exit *(0)' \
  | grep -vEf .x-sc_prohibit_magic_number_exit \
  | xargs --no-run-if-empty \
  perl -pi -e 's/\b(exit ?)\(0\)/$1(EXIT_SUCCESS)/'
* .x-sc_prohibit_magic_number_exit: New file.

Edit (RWMJ): Don't change Java code.
2009-11-20 12:14:14 +00:00
Matthew Booth
c477e2fb78 build: Fix inter-directory dependencies
This change adds an explicit dependency on generator.ml for every file it
generates, except java files. Java is left for another time because it's
considerably trickier.

It also adds a build rule for src/libguestfs.la so it can be rebuilt as required
from other directories.

It does this by creating a top level make file, subdir-rules.mk, which can be
included from sub-directories. sub-directories need to define 'generator_built'
to include local files which are built by generator.ml, and they will be updated
automatically.

This fixes parallel make, and will automatically re-create generated files when
make is run from any directory.

It also fixes the problem which efad4f53 was targetting. Specifically,
src/guestfs_protocol.(c|h) had an erroneous dependency on stamp-generator, and
therefore generator.ml, despite not being directly created by it. This caused
them to be recreated every time generator.ml ran rather than only when
src/guestfs_protocol.x was updated, which cascaded into a daemon and therefore
appliance update.

This patch also changes the contents of the distribution tarball by including
files created by rpcgen.
2009-11-19 16:40:22 +00:00
Richard Jones
ae4589f17b examples: Don't use STREQ etc in the to-xml.c example. 2009-11-10 17:09:54 +00:00
Jim Meyering
9a8889e4d0 use STREQ, not strcmp: part 1
git grep -l 'strcmp *([^=]*== *0'|xargs \
  perl -pi -e 's/\bstrcmp( *\(.*?\)) *== *0/STREQ$1/g'
2009-11-09 22:34:16 +01:00
Jim Meyering
3e70b34eed change strncmp() == 0 to STREQLEN()
git grep -l 'strncmp *([^=]*== *0'|xargs \
  perl -pi -e 's/\bstrncmp( *\(.*?\)) *== *0\b/STREQLEN$1/g'
2009-11-09 22:34:16 +01:00
Jim Meyering
627f89351d change strncmp(...) != 0 to STRNEQLEN(...)
git grep -l 'strncmp *([^=]*!= *0'|xargs \
  perl -pi -e 's/\bstrncmp( *\(.*?\)) *!= *0/STRNEQLEN$1/g'
2009-11-09 22:34:16 +01:00
Richard Jones
00425c073e examples/to-xml.c: Don't depend on Gnulib function.
Since this program is just an example, it shouldn't require
the Gnulib c-ctype functions.
2009-11-02 16:37:51 +00:00
Jim Meyering
6a14f1c250 avoid use of all ctype macros
* cfg.mk (disable_temporarily): Don't disable sc_avoid_ctype_macros.
* fish/tilde.c: Remove unnecessary inclusion of ctype.h.
* bootstrap: Add gnulib's c-ctype module to the list.
* daemon/m4/gnulib-cache.m4: Likewise.
* daemon/ext2.c: Include "c-ctype.h", not <ctype.h>.
Use c_isspace, etc, rather than isspace.
* daemon/guestfsd.c: Likewise.
* daemon/lvm.c: Likewise.
* daemon/proto.c: Likewise.
* fish/fish.c: Likewise.
* fish/tilde.c: Likewise.
* src/generator.ml: Likewise.
* src/guestfs.c: Likewise.
* examples/to-xml.c: Likewise.
* examples/Makefile.am (to_xml_CPPFLAGS): Add -I$(top_srcdir)/gnulib/lib
so inclusion of "c-ctype.h" works.
(to_xml_CPPFLAGS): Rename from to_xml_CFLAGS.
2009-09-24 11:00:44 +02:00