Be aware that the import is still experimental!
Requirements: You need a GODI system that was bootstrapped with Skylift
(if not, the commands listed below just fail). In case you don't remember,
you can recognize a Skylift system by running
godi_console dep 'godi-tools>=3'. If it says "not found" it
is too old. Otherwise, the version of godi-tools is printed, and you can
Both OCaml-3.12 and 4.00 are supported.
The activation is very easy. After setting GODI up, run these commands:
godi_console rprofile -site http://download.camlcity.org/download/godi-profiles/ -get oasis_4.00
godi_console profile -enable oasis_4.00
This assumes you have an OCaml-4.00 system (if you still have 3.12,
use "oasis_3.12" instead). Now the new packages are available. These
have an "oasis" prefix and are easy to recognize (e.g. oasis-xstrp4
From where come the OASIS packages? The packages are retrieved from OASIS-DB. Everybody can here upload OASIS packages, and there is no quality check of any kind.
How often are the packages imported from OASIS? We run a nightly job.
The build of an OASIS package does not work. Why? We expect that the packages can be built by a certain sequence of commands. This sequence complies to the OASIS specification. If this does not work, the OASIS package is buggy.
Which sequence? We do:
ocaml setup.ml -configureand pass the arguments --prefix, --mandir, --docdir, and --destdir
ocaml setup.ml -build
ocaml setup.ml -doc
ocaml setup.ml -install
The installed package cannot be fully removed. Files are left over. Why? Most likely, the OASIS package ignores the --destdir option we pass at configuration time. This affects normal files like executables, but not libraries. The consequence of this ignorance is that at install time not all files can be properly recorded.
My OASIS package needs lwt, and GODI always prefers godi-lwt over
oasis-lwt. Why, and how can I change this? There is the problem that
some libraries are provided by both GODI core packages and by OASIS.
GODI prefers the GODI packages because we think the quality is better.
It is possible, though, to edit the dependency lists. For every OASIS
package "foo" you can set a variable
and override the official dependencies.
After submitting an OASIS package it does no show up after 1-2 days. What are possible reasons? Most likely, we are back in maintenance mode, and the import job did not run. Another possibility is that the package fails the simplest tests (like a parseable _oasis file).
The dependencies do not contain version numbers. Why? Well, this is because we are experimental... Most version information from imported dependencies are deleted for now. We don't want to run into a "dependency hell" at this early time.
Dependencies on tools are missing. Why? This has not yet been developed. Actually, we always only add a dependency on findlib, but that's it.
How are the OASIS flags handled? In OASIS you can enable or
disable flags at configuration time. These are converted into configuration
options with values "yes" or "no". The emulation of the flags in GODI
is almost perfect. (For experts: there is a limitation,
though. OASIS expressions
ccomp_type(string) are not
yet properly supported.)
Can I translate packages from OASIS to GODI on my own
computer? Yes. You need the script
which is installed as part of godi-tools. Also install apps-oasis
(needed by the script). The script gets a tarball as input, and writes
the GODI package files like Makefile into an output directory.
How do you translate findlib names into package names? This is top-secret. We have a database mapping findlib names to package names. Don't tell anybody.