Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: [Caml-list] ANNOUNCE: Wiki software written in OCaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Sven Luther <sven.luther@w...>
Subject: Re: [Caml-list] ANNOUNCE: Wiki software written in OCaml
On Fri, Jul 30, 2004 at 05:01:16PM +0100, Richard Jones wrote:
> On Fri, Jul 30, 2004 at 02:03:20PM +0200, Sven Luther wrote:
> > Mmm, i adapted it to ocaml 3.08, and added the missing ocamldbi
> > build-dependency, since it failed somehow because of a double -I in the
> > Makefile.
> > 
> > Now, it fails with :
> > 
> > ocamlc -linkall -custom -g -w s -I /usr/lib/ocaml/3.08/pcre -I
> > /usr/lib/ocaml/3.08/dbi -I /usr/include/apache-1.3 -I
> > /usr/lib/ocaml/3.08/postgres postgres.cma dynlink.cma str.cma pcre.cma
> > unix.cma dbi.cma mod_caml_c.o mod_caml.cmo apache_c.o wrappers.o apache.cmo
> > mod_caml_config.cmo cgi_escape.cmo template.cmo cgi.cmo -o mod_caml.so \
> >   -cclib "-fPIC -shared -L/usr/lib/ocaml/3.08/postgres -lpostgres -lpq
> >   -lcamlrun -ltermcap -lunix -lstr "
> >   Error while linking /usr/lib/ocaml/3.08/dbi/dbi.cma(Dbi_mysql):
> >   Reference to undefined global `Mysql'
> >   make[1]: *** [mod_caml.so] Erreur 2
> 
> Yes, this is interesting ...
> 
> It's because Dbi is built (by John) with MySQL support.  Thus
> /usr/lib/ocaml/*/dbi/dbi.cma contains a module (Dbi_mysql) which
> depends on (the OCaml module) Mysql.
> 
> John's libdbi-ocaml package suggests libmysql-ocaml-dev, but doesn't
> require it.  This works fine provided you're just linking a standalone
> program against the Dbi library, because unless the standalone program
> deliberately links against Dbi_mysql, nothing will attempt to load the
> missing Mysql module.
> 
> So far, so good.  Now here's the problem: ocamldbi contains a
> mechanism to build handles of any type (Dbi.Factory.connect "postgres"
> "store") for example, which is implemented using a complex
> registration mechanism.  mod_caml requires this, because it provides a
> way to pool database handles between requests.
> 
> Dbi.Factory loads any available module, depending on how it was
> compiled.  Thus when you link mod_caml, and if ocamldbi was compiled
> to depend on Mysql, then mod_caml depends on Mysql too!
> 
> So the upshot is that libmysql-ocaml-dev is a real dependency, not
> just a 'Suggest:'ion.

Well, the problem still happens with libmysql-ocaml-dev installed though,
which is what i find strange.

Friendly,

Sven Luther

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners