+ $ ./autogen.sh && \
+ ./configure --prefix=/usr/local --sysconfdir=/etc --localstatedir=/var
+
+Haskell development notes
+-------------------------
+
+There are a few things which can help writing or debugging the Haskell
+code.
+
+You can run the Haskell linter :command:`hlint` via::
+
+ $ make hlint
+
+This is not enabled by default (as the htools component is
+optional). The above command will generate both output on the terminal
+and, if any warnings are found, also an HTML report at
+``doc/hs-lint.html``.
+
+When writing or debugging TemplateHaskell code, it's useful to see
+what the splices are converted to. This can be done via::
+
+ $ make HEXTRA="-ddump-splices"
+
+Due to the way TemplateHaskell works, it's not straightforward to
+build profiling code. The recommended way is to run ``make hs-prof``,
+or alternatively the manual sequence is::
+
+ $ make clean
+ $ make htools/htools HEXTRA="-osuf .o"
+ $ rm htools/htools
+ $ make htools/htools HEXTRA="-osuf .prof_o -prof -auto-all"
+
+This will build the binary twice, per the TemplateHaskell
+documentation, the second one with profiling enabled.
+
+
+Packaging notes
+===============
+
+Ganeti is mostly developped and tested on `Debian
+<http://www.debian.org/>`_-based distributions, while still keeping
+adoptability to other Linux distributions in mind.
+
+The ``doc/examples/`` directory contains a number of potentially useful
+scripts and configuration files. Some of them might need adjustment
+before use.
+
+``daemon-util``
+---------------
+
+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. 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.
+
+``daemon-util`` reads extra arguments from variables (``*_ARGS``) in
+``/etc/default/ganeti``. When modifying ``daemon-util``, keep in mind to
+not remove support for the ``EXTRA_*_ARGS`` variables for starting
+daemons. Some parts of Ganeti use them to pass additional arguments when
+starting a daemon.
+
+The ``reload_ssh_keys`` function can be adjusted to use another command
+for reloading the OpenSSH daemon's host keys.