diff --git a/INSTALL b/INSTALL index 0c44f75ad24982e465a43619c5b593c3ae05a69d..191015f27d62a1ca44f046a89dbfafe2d7095736 100644 --- a/INSTALL +++ b/INSTALL @@ -50,6 +50,30 @@ packages, except for DRBD and Xen:: python-pyparsing python-simplejson \ python-pyinotify python-pycurl socat +If you want to also enable the `htools` components, which is recommended +on bigger deployments (they give you automatic instance placement, +cluster balancing, etc.), then you need to have a Haskell compiler +installed. More specifically: + +- `GHC <http://www.haskell.org/ghc/>`_ version 6.10 or higher +- or even better, `The Haskell Platform + <http://hackage.haskell.org/platform/>`_ which gives you a simple way + to bootstrap Haskell +- `json <http://hackage.haskell.org/package/json>`_, a JSON library +- `network <http://hackage.haskell.org/package/network>`_, a basic + network library +- `parallel <http://hackage.haskell.org/package/parallel>`_, version 1.x + or 2.x, a parallel programming library (note: version 3.x is not yet + supported) +- `curl <http://hackage.haskell.org/package/curl>`_, bindings for the + curl library, only needed if you want these tools to connect to remote + clusters (as opposed to the local one) + +All of these are also available as package in Debian/Ubuntu:: + + $ apt-get install ghc6 libghc6-json-dev libghc6-network-dev \ + libghc6-parallel-dev libghc6-curl-dev + If you want to build from source, please see doc/devnotes.rst for more dependencies. diff --git a/doc/devnotes.rst b/doc/devnotes.rst index 8b58ed7d2e5a3d668419a8fa824f360cd7a907fc..1982ab40b4977d32541a845ad9a179d9169bba8e 100644 --- a/doc/devnotes.rst +++ b/doc/devnotes.rst @@ -4,7 +4,7 @@ Developer notes Build dependencies ------------------ -Most dependencies from :doc:`install-quick`, plus: +Most dependencies from :doc:`install-quick`, plus (for Python): - `GNU make <http://www.gnu.org/software/make/>`_ - `GNU tar <http://www.gnu.org/software/tar/>`_ @@ -14,10 +14,32 @@ Most dependencies from :doc:`install-quick`, plus: (tested with version 0.6.1) - `graphviz <http://www.graphviz.org/>`_ - the `en_US.UTF-8` locale must be enabled on the system +- `pylint <http://www.logilab.org/857>`_ and its associated + dependencies + +Note that for pylint, at the current moment the following versions +need to be used:: + + $ pylint --version + pylint 0.21.1, + astng 0.20.1, common 0.50.3 To generate unittest coverage reports (``make coverage``), `coverage <http://pypi.python.org/pypi/coverage>`_ needs to be installed. +For Haskell development, again all things from the quick install +document, plus: + +- `haddock <http://www.haskell.org/haddock/>`_, documentation + generator (equivalent to epydoc for Python) +- `HsColour <http://hackage.haskell.org/package/hscolour>`_, again + used for documentation (it's source-code pretty-printing) +- `hlint <http://community.haskell.org/~ndm/hlint/>`_, a source code + linter (equivalent to pylint for Python) +- the `QuickCheck <http://hackage.haskell.org/package/QuickCheck>`_ + library, version 1.x +- ``hpc``, which comes with the compiler, so you should already have it + Configuring for development --------------------------- @@ -47,7 +69,7 @@ before use. This script, in the source code as ``daemons/daemon-util.in``, is used to start/stop Ganeti and do a few other things related to system -daemons. Is is recommended to use ``daemon-util`` also from the system's +daemons. It is recommended to use ``daemon-util`` also from the system's init scripts. That way the code starting and stopping daemons is shared and future changes have to be made in only one place.