…rograms.
This requires your OCaml compiler to support native compilation and be
compiled with -fPIC (ie. it won't work with most distro builds of
OCaml). I have filed a bug upstream to add support for building
shared libraries from OCaml:
http://caml.inria.fr/mantis/view.php?id=6693

README

NBD is a protocol for accessing Block Devices (hard disks and
disk-like things) over a Network.
'nbdkit' is a toolkit for creating NBD servers.
The key features are:
* Multithreaded NBD server written in C with good performance.
* Well-documented, simple plugin API with a stable ABI guarantee.
Let's you export "unconventional" block devices easily.
* Liberal license (BSD) allows nbdkit to be linked to proprietary
libraries or included in proprietary code.
For documentation, see the docs/ directory.
For plugins and examples, see the plugins/ directory.
License
-------
This software is copyright (C) Red Hat Inc. and licensed under a BSD
license. See LICENSE for details.
Building from source
--------------------
By default nbdkit needs nothing except Linux and reasonably recent gcc.
To build the man pages, you will need to install:
- pod2man (included with perl)
There are some *optional* libraries you may want to install for the
plugins.
For the gzip plugin:
- zlib
For the xz plugin:
- liblzma
For the curl (HTTP/FTP) plugin:
- libcurl
For the libvirt plugin:
- libvirt
For the libguestfs plugin, and to run the test suite:
- libguestfs
- guestfish (from libguestfs)
For the VDDK plugin:
- VDDK (see plugins/vddk/README.VDDK)
For the Perl plugin:
- perl development libraries
- perl module ExtUtils::Embed
For the Python plugin:
- python development libraries
For the OCaml plugin:
- OCaml native compiler that was compiled using -fPIC, see:
http://www.camlcity.org/knowledge/kb_002_shared_library.html
Hopefully this will become the default in a future OCaml, see:
http://caml.inria.fr/mantis/view.php?id=6693
After installing any dependencies:
To build from tarball: To build from git:
---------------------- ------------------
autoreconf -i
./configure ./configure
make make
make check make check
Optionally run this as root to install everything:
make install
Tests
-----
You will need to install libguestfs to run the test suite.
The test suite ('make check') is fairly comprehensive. It runs the
newly built nbdkit + plugin as a captive process, and tests it using
libguestfs.
If there is a failure, look at the corresponding tests/*.log file for
debug information.
Packager information
--------------------
Tarballs are available from:
http://libguestfs.org/download/nbdkit
Developer information
---------------------
For development ideas, see the TODO file.
The upstream git repository is:
https://github.com/libguestfs/nbdkit
Please send patches to the libguestfs mailing list:
https://www.redhat.com/mailman/listinfo/libguestfs
For further information, see:
http://libguestfs.org/