summaryrefslogtreecommitdiffstats
path: root/HACKING
blob: df20e2dfad9d35ddd1961b4eb68900073cf7560c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
PLEASE LOOK AT THE TOP OF EACH FILE BEFORE EDITING TO SEE WHETHER IT
IS AUTOMATICALLY GENERATED OR NOT.

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.

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.

	Also contains some files used by the test suite.

java/
	Java bindings.

m4/
	M4 macros used by autoconf.

ocaml/
	OCaml bindings.

perl/
	Perl bindings.

python/
	Python bindings.

ruby/
	Ruby 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