docs: Obsolete HACKING file, move content into guestfs(3) man page. Add a new section called "EXTENDING LIBGUESTFS" to the guestfs manual page which contains all the information previously in "HACKING".
capitests: Add 'InitScratchFS' test environment. This should allow us to perform filesystem-based write tests much more quickly, because we don't need to recreate the filesystem from scratch each time.
capitests: Move test documentation into HACKING file.
rescue: Rewrite virt-rescue in C.
Update HACKING description of tools/ subdirectory. This fixes commit 18374b5b7d3154e0b8b8a07e3590f6eee762b58e.
df: Rewrite virt-df in C. I have diffed the output from the original virt-df with this new version, and they agree very closely. Some differences: - Old virt-df have a divide-by-zero error in cases where the number of used inodes was 0. New virt-df fixes this. - New virt-df uses gnulib human_readable library which displays numbers to 3 significant figures for -h output (old version used an ad hoc function).
New tool: virt-filesystems This tool replaces virt-list-filesystems and virt-list-partitions with a new tool written in C with a more uniform command line structure and output. This existing Perl tools are deprecated but remain indefinitely.
ls: Rewrite virt-ls in C.
Rewrite virt-cat in C. With changes in the core API since 1.5, virt-cat was little more than a Perl wrapper which did some command line argument processing. Thus it could easily be rewritten in C. This version also shares core command line argument processing with guestfish and guestmount, so the options have changed slightly (old-style command line *is* supported). virt-cat -a disk.img file [file ...] virt-cat -d domname file [file ...] Several other guestfish options are supported including encryption, and with the new style multiple files can be downloaded. See the man page for details.
HACKING: Mention PHP bindings.
Split generator into separate source files. 'src/generator.ml' is no more. Instead the generator is logically split up over many different source files. Read generator/README for help and tips. We compile the generator down to bytecode, not native code. This means it will run more slowly, but is done for maximum portability.
Allow manual pages and POD files to be translated. This uses the optional po4a package to split these files into PO files for translation, and reassemble afterwards. Note this creates an extra pot file (po-docs/libguestfs-docs.pot). We don't (yet) combine this with the main po/libguestfs.pot file. The 'libguestfs-docs.pot' file included in this commit is not the real thing, just a short cut down snippet for testing. The real thing is created if you update one of the dependent files and rebuild. Note also the dummy ja.po, for testing the principles.
Spin off hivex as a separate upstream project. This commit makes the semi-independent hivex library into a separate upstream project. The git repo for hivex is now: http://git.annexia.org/?p=hivex.git;a=summary Downloads of hivex are available here: http://libguestfs.org/download/ All questions, patches, bugs etc should be sent to the libguestfs mailing list and bug tracker.
Experimental C# bindings. Tested in only limited situations, with Mono on Linux.
indent with spaces, not TABs * HACKING: Expand indentation TABs. * configure.ac: Likewise. * daemon/daemon.h: Likewise. * daemon/guestfsd.c: Likewise. * fuse/guestmount.c: Likewise. * hivex/LICENSE: Likewise. * src/generator.ml: Likewise. * tools/virt-win-reg: Likewise.
FUSE filesystem support. This implements FUSE filesystem support so that any libguestfs- accessible disk image can be mounted as a local filesystem. Note: file writes (ie. write(2) system call) is not yet implemented. The API needs more test coverage, particularly lesser-used system calls. The big unresolved issue is UID/GID mapping between guest filesystem IDs and the host. It's not easy to automate this because you need extra details about the guest itself in order to get to its UID->username map (eg. /etc/passwd from the guest).
Support for Windows Registry. In hivex/: This mini-library allows us to extract Windows Registry binary files ("hives"). There are also two tools: hivexml converts a hive to a self-describing XML format. hivexget can be used to extract single subkeys from a hive. New tool: virt-win-reg. This is a wrapper around the library functionality allowing you to pull out data from the registries of Windows guests.
Tab to space fixes, now passes 'make syntax-check'
Move virt tools (virt-cat, virt-edit etc) into tools/ subdirectory. This moves the tool programs into a single directory: cat/* -> tools/virt-cat df/* -> tools/virt-df edit/* -> tools/virt-edit rescue/* -> tools/virt-rescue This in itself simplifies the build process because we only need one Makefile and one copy of 'run-locally'. 'run-*-locally' has become just 'run-locally' and takes an extra parameter which is the name of the tool, eg: run-locally cat [virt-cat params...] virt-inspector stays in its own directory, because this contains more than just a single Perl script.
maint: use spaces, not TABs for indentation "make syntax-check" was failing. This fixes it. * HACKING: Indent with spaces, not TABs. * configure.ac: Likewise. * rescue/virt-rescue: Likewise. * src/generator.ml: Likewise.