Plasma GitLab Archive
Projects Blog Knowledge

GODI Project:
Mailing List 
Why Ocaml? 
GODI is discontinued. This is the archived content of the former site


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:


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

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.

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml