GODI is discontinued. This is the archived content
of the former site godi.camlcity.org.
This page illustrates with screenshots how a certain package is
installed and used. We've taken here
godi-webdav
,
a client for the WebDAV network protocol. This is just an example - any
other package would have served as well. Actually I picked
godi-webdav
only because the resulting screenshots
happen to be relatively small and instructive.
The following screenshots are displayed larger when you click
on the pictures.
After invoking godi_console
in the text UI mode,
one can select the packages to build. This is the list with
over 200 packages. We go to the details page for number 216,
i.e. for godi-webdav
(the package name of the
software we are installing; there is also a separate library
name, "webdav", to be used in compiler directives).
We get here the most basic information: What the package is for,
and what the prerequites are (dependencies). If prerequisites are
missing on the computer, they will be automatically included in
the package build.
Here the package is being built. This is fully automatic. Normally
you don't pay attention to the messages scrolling by. They are
just an indication that the build is still progressing. In the
rare event that the build fails the messages can explain why,
and users should just send the whole log to the package maintainer.
It is something for experts.
At the end of the build the relevant files are installed,
and the temporary build directory is deleted.
The resulting file tree. GODI is here installed with base directory
/opt/godi-3.12
(the user can choose this location).
The base directory is considered as being under total control of GODI.
Files stored here must be registered in a special database so that the
files can be later removed when the package is to be deleted again
(or upgraded, which always means to delete and rebuild).
The main part of the WebDAV library ends up in
/opt/godi-3.12/lib/ocaml/pkg-lib/webdav
:
META
webdav.a
webdav_client.cmi
webdav_client_ha.cmi
webdav_client_ha.mli
webdav_client_methods.cmi
webdav_client_methods.mli
webdav_client.mli
webdav.cma
webdav.cmxa
webdav_http.cmi
webdav_http.mli
webdav_netfs.cmi
webdav_netfs.mli
webdav_xml.cmi
webdav_xml.mli
This is a very typical install. There is also documentation
in /opt/godi-3.12/doc/godi-webdav
, normally the
HTML-formatted API reference.
GODI supports findlib for all packages. Here we can see an Ocaml
toploop session (started with just the command "ocaml"). The
directive #use "topfind"
activates findlib support,
and #require "webdav"
loads this library including
all prerequisites (which can be numerous).
A module using WebDAV can be compiled with the help of the
ocamlfind
wrapper, e.g.
ocamlfind ocamlc -c -package webdav my_module.ml
Finally, we call here some WebDAV functions from the
toploop. In particular, we are reading here a WebDAV directory
from a given base URL and a path starting there.
If an upgrade of godi-webdav
is released, the
installed package can be easily upgraded via godi_console
.
This looks very much the same like the above demo of the original
install, only that godi_console
automatically detects
that it is an upgrade, and deletes the old version first. If
several packages can be upgraded, godi_console
is
intelligent enough to perform the right sequence of actions to
upgrade all in one go.