Whitespace: indent some names in images/Makefile.am correctly.
[libguestfs.git] / HACKING
diff --git a/HACKING b/HACKING
index 7d235bc..336fc7c 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -14,10 +14,6 @@ etc. to the big list called 'functions' at the top of this file.
 '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.
-
 Formatting
 ----------------------------------------------------------------------
 
@@ -31,18 +27,33 @@ Please test any changes.
 Directories
 ----------------------------------------------------------------------
 
+appliance/
+       The qemu appliance, build scripts and so on.
+
+cat/
+       The virt-cat tool.
+
+capitests/
+       Automated tests of the C API.
+
 contrib/
        Outside contributions, experimental parts.
 
 daemon/
        The daemon that runs inside the guest and carries out actions.
 
+df/
+       The virt-df tool.
+
 examples/
        The examples.
 
 fish/
        Guestfish (the command-line program / shell)
 
+haskell/
+       Haskell bindings.
+
 images/
        Some guest images to test against.  These are gzipped to save
        space.  You have to unzip them before use.
@@ -61,12 +72,18 @@ m4/
 ocaml/
        OCaml bindings.
 
+po/
+       Translations.
+
 perl/
        Perl bindings.
 
 python/
        Python bindings.
 
+regressions/
+       Regression tests.
+
 ruby/
        Ruby bindings.
 
@@ -74,6 +91,12 @@ src/
        Source code to the C library.
        Also contains the crucial generator program.
 
+test-tool/
+       Interactive qemu/kernel test tool.
+
+v2v/
+       Xen to KVM (V2V) conversion tool.
+
 Debugging
 ----------------------------------------------------------------------
 
@@ -86,6 +109,42 @@ 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
+Submit patches to the mailing list:
+http://www.redhat.com/mailman/listinfo/libguestfs
 and CC to rjones@redhat.com
+
+I18N
+----------------------------------------------------------------------
+
+We support i18n (gettext anyhow) in the library.
+
+However many messages come from the daemon, and we don't translate
+those at the moment.  One reason is that the appliance generally has
+all locale files removed from it, because they take up a lot of space.
+So we'd have to readd some of those, as well as copying our PO files
+into the appliance.
+
+Debugging messages are never translated, since they are intended for
+the programmers.
+
+Extended printf
+----------------------------------------------------------------------
+
+In the daemon code we have created custom printf formatters %Q and %R,
+which are used to do shell quoting.
+
+%Q => Simple shell quoted string.  Any spaces or other shell characters
+      are escaped for you.
+
+%R => Same as %Q except the string is treated as a path which is prefixed
+      by the sysroot.
+
+eg.
+
+asprintf (&cmd, "cat %R", path);
+==> "cat /sysroot/some\ path\ with\ spaces"
+
+Note: Do NOT use these when you are passing parameters to the
+command{,r,v,rv}() functions.  These parameters do NOT need to be
+quoted because they are not passed via the shell (instead, straight to
+exec).  You probably want to use the sysroot_path() function however.