The toolkits requires the Xerces XML parser version 2.1 available here.  

As the instructions below state, Ocaml and Nessus are optional, and
you can get them on the web if you wish. You can compile without them
by giving 'configure' the option --enable-mdlgen-nodb.


The following system variables should be set to compile
all subprojects of the source tree:

XERCES_HOME - path to xerces headers. By default xerces headers installation

directory, /usr/local/include, is used

XERCES_LIB - path to xerces libraries. By default /usr/local/lib is used

OCAML_HOME - path to ocaml libraries. By default ocaml installation
/usr/local/lib/ocaml is used

The following variables should be set if --enable-mdlgen-all=yes

ODBCPP_HOME - path to ODBC home directory

ORACLE_HOME - path to ORACLE home directory

Necessary software:

GTK+ 2.0 or higher (required),
Gnu Compiler or a compatible alternative (required) - gcc version 3.2 or

ScenarioApp (required) - scenarioapp-0.5.tar.gz package,
Xerces (required) - xerces-c-src2_1_0.tar.gz package,
Ocaml (optional) - ocaml-3.07.tar.gz package,
Nessus scanner (optional) - libnasl-2.0.7.tar.gz, nessus-core-2.0.7.tar.gz,
nessus-libraries-2.0.7.tar.gz and
nessus-plugins-2.0.7.tar.gz packages.

Installation process (for bash; modify appropriately for csh/tcsh):

1. Installing Xerces library (required)

1.1. Extract sources from the xerces-c-src2_1_0.tar.gz.

1.2. Set environment variable XERCESCROOT

export XERCESCROOT=<full path to xerces-c-src2_1_0>

1.3. Move to $XERCESCROOT/src/xercesc and run


1.4. Add path $XERCESCROOT/lib to LD_LIBRARY_PATH environment variable.

2. Installing Ocaml library (optional)

2.1. Extract sources from ocaml-3.07.tar.gz

2.2. Move to ocaml top directory and follow instruction in INSTALL file:
make world
make opt

and optional

make install # must be superuser

3. Installing Nessus network scanner (optional)

3.1 Extract sources from nessus-libraries-2.0.7.tar.gz;
move to nessus-libraries top directory and run

make install

3.2. Extract sources from libnasl-2.0.7.tar.gz;
move to libnasl top directory and run

make install

3.3. Extract sources from nessus-core-2.0.7.tar.gz;
move to nessus-core top directory and run

make install

3.4. Extract sources from nessus-plugins-2.0.7.tar.gz;
move to nessus- plugins top directory and run

make install

4. Installing ScenarioApp.

4.1. Extract sources from scenarioapp-0.5.tar.gz and
move to scenarioapp-0.5 top directory.

4.2. Set necessary environment variables



and optionally (if ocaml is built but not installed or installed differently
than described above)

export OCAML_HOME=<path to ocaml directory>

4.3. Run configuration script in the ScenarioApp directory:

a) if ocaml is installed at step 2. run


b) if there is no ocaml

./configure --enable-mdlgen-nodb

If there is a need to build a debug version, then
add a --enable-debug configuration option.

4.4. Run

make install # must be superuser

or set environment variable

MDLGEN_COMPILER_DIR=<path to scenarioapp-0.5>/xml_comp

5. Running ScenarioApp application.

5.1. Set environment variable
PROMELA_GENERATOR_DIR=<path to scenarioapp-0.5 directory>/generator

5.2. (optional) if Nessus scanner is installed
a) Run

to add new user and


to do some configuration to the Nessus server.
This configuration should be done only once.

b) Run Nessus server:

nessusd -D # the command runs Nessus server as daemon

c) To run Nessus client necessary to set some login information.
This information includes: host name or IP where the server is running
(usually "localhost"), port of the server host (usually "1241"),
user name and password (this information should be entered when a new
is added using nessus-adduser). All this information can be entered when

Network component is loaded using View->Preferences dialog of the
window of the graph_view application.

5.3. Run
a) If 'make install' was done at step 4.4.


b) Otherwise


from <path to scenarioapp-0.5 directory>/application directory.

Make sure the $XERCESCROOT/lib path is added to LD_LIBRARY_PATH and
PROMELA_GENERATOR_DIR is set when you are running graph_view.