Adding a new action ---------------------------------------------------------------------- All action functions are generated automatically, so there are only two files you need to edit: (1) src/generator.ml: Add your new action, parameters, description, etc. to the big list called 'functions' at the top of this file. (2) Edit/create a C file in daemon/ subdirectory which implements your 'do_action' function. Take a look at one of the numerous examples there. You will need to run src/generator.ml (from the top directory) which regenerates all the auto-generated files, and then continue with the ordinary build process. PLEASE LOOK AT THE TOP OF EACH FILE BEFORE EDITING to see whether it is automatically generated or not. Formatting ---------------------------------------------------------------------- Try to use GNU / Emacs default formatting, following the convention used elsewhere in the source. Please make sure that the code compiles without warnings. Please test any changes. Directories ---------------------------------------------------------------------- daemon/ The daemon that runs inside the guest and carries out actions. examples/ The examples. fish/ Guestfish (the command-line program / shell) images/ Some guest images to test against. These are gzipped to save space. You have to unzip them before use. m4/ M4 macros used by autoconf. ocaml/ OCaml bindings. perl/ Perl bindings. python/ Python bindings. src/ Source code to the C library. Also contains the crucial generator program. Debugging ---------------------------------------------------------------------- It's a good idea to use guestfish to try out new commands. Debugging the daemon is a problem because it runs inside a minimal qemu environment. However you can print messages from the daemon, and they will show up if you use 'guestfish -v'. Patches ---------------------------------------------------------------------- Submit patches to the fedora-virt mailing list: http://www.redhat.com/mailman/listinfo/fedora-virt and CC to rjones@redhat.com