2 ----------------------------------------------------------------------
4 Copyright (C) 2007-2008 Richard W.M. Jones, Red Hat Inc.
5 http://libvirt.org/ocaml/
8 This is a complete set of OCaml bindings around libvirt, exposing all
9 known functionality to OCaml programs.
13 ----------------------------------------------------------------------
15 PLEASE NOTE: The list of requirements looks long but you DO NOT NEED
16 all of these packages, so pay careful attention to what is required
17 ('R') and what is optional ('O').
19 ALSO NOTE: Binaries are available for many platforms. You only need
20 the packages below if you want to build from source.
22 W h a t y o u w a n t t o b u i l d
24 |Bindings, |Docs, |virt-top |virt-ctrl |Windows
25 |examples, |manpages | | |version
27 --------------+----------+---------+---------+----------+---------
28 GNU make | R | R | R | R | R
32 libvirt | R | | R | R | R
35 ocaml | R | | R | R | R
38 findlib | HR | R | HR | HR | n/a
40 MinGW + MSYS | | | | | R
41 --------------+----------+---------+---------+----------+---------
42 ocamldoc | | R | | | O
45 --------------+----------+---------+---------+----------+---------
46 ocaml-curses | | | R | |
52 ocaml-calendar| | | O | |
55 --------------+----------+---------+---------+----------+---------
58 lablgtk2 | | | | R | O
60 ocaml-dbus | | | | O |
61 --------------+----------+---------+---------+----------+---------
63 --------------+----------+---------+---------+----------+---------
66 HR = highly recommended (use if possible)
67 O = optional (just improves functionality, but not required)
70 Where to get the packages:
72 libvirt >= 0.2.1 from http://libvirt.org/ (get the latest version available)
73 or packaged in Debian, Ubuntu and Fedora
75 ocaml >= 3.08 from http://caml.inria.fr/
76 or packaged in Debian, Ubuntu and Fedora
78 findlib from http://www.ocaml-programming.de/packages/
79 or packaged in Debian, Ubuntu and Fedora as 'ocaml-findlib'
81 MinGW + MSYS from http://www.mingw.org/ (only needed for Windows)
83 ocamldoc part of OCaml itself
84 or part of the ocaml package in Debian, Ubuntu
85 or packaged in Fedora as 'ocaml-ocamldoc'
88 or packaged in Debian, Ubuntu and Fedora
90 ocaml-curses from http://www.nongnu.org/ocaml-tmk/
91 or packaged in Debian, Ubuntu as 'libcurses-ocaml-dev'
92 or packaged in Fedora as 'ocaml-curses-devel'
94 Extlib from http://ocaml-lib.sourceforge.net/
95 or packaged in Debian, Unbuntu as 'libextlib-ocaml-dev'
96 or packaged in Fedora as 'ocaml-extlib-devel'
98 xml-light from http://tech.motion-twin.com/doc/xml-light/
99 or packaged in Debian, Ubuntu as 'libxml-light-ocaml-dev'
100 or packaged in Fedora as 'ocaml-xml-light-devel'
102 ocaml CSV from http://merjis.com/developers/csv
103 or packaged in Debian, Ubuntu as 'libcsv-ocaml-dev'
104 or packaged in Fedora as 'ocaml-csv-devel'
106 ocaml-calendar from http://www.lri.fr/~signoles/prog.en.html
107 or packaged in Debian, Ubuntu as 'libcalendar-ocaml-dev'
108 or packaged in Fedora as 'ocaml-calendar-devel'
110 GTK2 from http://gtk.org/
111 or packaged in Debian, Ubuntu and Fedora
113 lablgtk2 from http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html
114 or packaged in Debian, Ubuntu as 'liblablgtk2-ocaml-dev'
115 or packaged in Fedora as 'ocaml-lablgtk-devel'
117 ocaml-dbus from http://tab.snarc.org/projects/ocaml_dbus/
118 or packaged in Fedora 9 as 'ocaml-dbus-devel'
119 (not yet available for Debian or Ubuntu AFAIK)
121 NSIS from http://nsis.sf.net
125 ----------------------------------------------------------------------
127 ./configure # Checks that you have all the required bits.
129 make all # Builds the bytecode version of libs/programs.
130 make opt # Builds the native code version of libs/programs.
132 make install # Install in OCaml directory, and the binaries
135 make doc # Build HTML documentation in html/ subdirectory.
137 Then have a look at the programs 'mlvirsh.opt', 'virt-top.opt'
140 Note: If you want to run the programs without first installing, you
141 may need to set your $LD_LIBRARY_PATH environment variable so it
142 contains the build directory. eg:
144 LD_LIBRARY_PATH=libvirt/ mlvirsh/mlvirsh.opt
148 ----------------------------------------------------------------------
150 I have built libvirt (the bindings), examples, mlvirsh and virt-ctrl
151 on Windows using the MinGW port of OCaml. It's quite likely that it
152 will also work under VC++, but I have not tested this.
154 You should make sure that your $PATH (environment variable) contains
155 the names of the directories containing all required DLLs, in
156 particular you will require:
158 libvirt-*.dll (from libvirt)
159 libgnutls-*.dll (from GnuTLS)
163 libxdr.dll (from libxdr)
164 libxml2-*.dll (from libxml2)
165 and, a multitude of DLLs from GTK if you want to run virt-ctrl
167 You can use a tool such as Dependency Walker to find/check the
168 locations of dependent libraries.
170 To build the Windows installer, you will need NSIS. Then do:
172 ./configure --with-nsis=/c/Progra~1/NSIS
176 This should build a Windows binary installer called
177 ocaml-libvirt-$VERSION.exe which includes the bindings, all required
178 DLLs and all programs that can be built under Windows.
182 ----------------------------------------------------------------------
184 'mlvirsh' is an almost complete reimplementation of virsh, which is
185 mostly command compatible (there are a very few commands missing, and
186 some commands have a slightly different syntax, but broadly speaking
187 they are equivalent programs except that one is written in C and the
190 At the time of writing:
201 ----------------------------------------------------------------------
203 'virt-ctrl' (originally called 'mlvirtmanager') is a reimplementation
204 of virt-manager in OCaml. It is not feature-complete by any means,
205 but does allow you to show the running domains and start and stop
206 defined domains. The main functionality _missing_ is the ability to
207 define new virtual machines, change the resources allocated to
208 domains, or show the machine console.
212 ----------------------------------------------------------------------
214 For documentation on these bindings, read libvirt.mli and/or 'make
215 doc' and browse the HTML documentation in the html/ subdirectory.
217 For documentation on libvirt itself, see http://libvirt.org/html/
221 ----------------------------------------------------------------------
223 libvirt/ The OCaml bindings.
224 examples/ Some example programs using the bindings.
225 mlvirsh/ 'mlvirsh' command line tool.
226 virt-ctrl/ 'virt-ctrl' graphical tool.
227 virt-top/ 'virt-top' tool.
228 virt-df/ 'virt-df' tool.