Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000067OCamlOCaml generalpublic2000-03-21 18:462000-03-26 18:04
Reporteradministrator 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000067: ndbm.h non trouve par configure
DescriptionFull_Name: Georges Mariano
Version: Ocaml 2.99
OS: Linux/Debian (potato)
Submission from: matrix.inrets.fr (137.121.81.19)


dans la distribution potato, le fichier
ndbm.h appartient au paquet libc6-dev(eloppment)
et se trouve dans
/usr/include/db1

Il semble que cela ne permet pas au script de configuration de trouver
le fichier.
Je contourne le probleme par un lien symbolique
/usr/include/db1/ndbm.h -> /usr/include/ndbm.h

NB : dans /usr/include on trouve egalement gdbm.h, gdbm-ndbm.h, dbm-h
    je ne connais pas les relations (s'il y en a !) entre ces fichiers

A+

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0000336)
administrator (administrator)
2000-03-23 16:43

> dans la distribution potato, le fichier
> ndbm.h appartient au paquet libc6-dev(eloppment)
> et se trouve dans
> /usr/include/db1
>
> Il semble que cela ne permet pas au script de configuration de trouver
> le fichier.

C'est exact, pour le moment le script d'autoconfig cherche ndbm.h dans
l'endroit standard (/usr/include) et pas dans des endroits bizarres
comme /usr/include/db1. Je vois cela comme un petit bug de la distrib
Debian (RedHat a le même problème).

> Je contourne le probleme par un lien symbolique
> /usr/include/db1/ndbm.h -> /usr/include/ndbm.h

Oui, c'est la bonne chose à faire.

Cordialement,

- Xavier Leroy

(0000337)
administrator (administrator)
2000-03-26 18:04

It's more a Linux bug than an OCaml bug, but I patched configure so that it
looks in /usr/include/gdbm as well. -Xavier, 2000/03/26
(0000338)
administrator (administrator)
2000-04-11 09:35

Bonjour, ...

> > dans la distribution potato, le fichier
> > ndbm.h appartient au paquet libc6-dev(eloppment)
> > et se trouve dans
> > /usr/include/db1
> >
> > Il semble que cela ne permet pas au script de configuration de trouver
> > le fichier.
>
> C'est exact, pour le moment le script d'autoconfig cherche ndbm.h dans
> l'endroit standard (/usr/include) et pas dans des endroits bizarres

peut tu m'envoyer le patch qui resoud ce probleme, de maniere a ce que je
l'inclue dans le package debian ?

> comme /usr/include/db1. Je vois cela comme un petit bug de la distrib
> Debian (RedHat a le même problème).

Err, ...

non, ce n'est pas un bug, mais une feature, ...

Cela permet d'avoir plusieurs versions de l'environement de developpement
installer (ici il y a que db1, mais on peut imaginer db2, db3, ...)

> > Je contourne le probleme par un lien symbolique
> > /usr/include/db1/ndbm.h -> /usr/include/ndbm.h
>
> Oui, c'est la bonne chose à faire.

Non, ce n'est pas la bonne solution, car cela demanderait de modifier tous les
systemes debian de la meme maniere.

J'ai fait un petit patch suivant :

--------------------------------------------------
--- ocaml-2.04.orig/configure
+++ ocaml-2.04/configure
@@ -741,8 +744,13 @@
 then
   echo "NDBM library found."
   otherlibraries="$otherlibraries dbm"
+else if sh ./hasgot -i db1/ndbm.h
+then
+ echo "NDBM library found."
+ otherlibraries="$otherlibraries dbm"
 else
   echo "NDBM not found, the \"dbm\" library will not be supported."
+fi
 fi

 # Finish generated files
--- ocaml-2.04.orig/otherlibs/dbm/cldbm.c
+++ ocaml-2.04/otherlibs/dbm/cldbm.c
@@ -14,7 +14,7 @@

 #include <string.h>
 #include <fcntl.h>
-#include <ndbm.h>
+#include <db1/ndbm.h>
 #include <mlvalues.h>
 #include <alloc.h>
 #include <memory.h>
--------------------------------------------------

Cela marche pour le package debian, mais la modif pour otherlibs/dbm/cldbm.c
n'est pas assez general. L'ideal serait d'avoir un define NDBM_IS_IN_DB1 ou
similaire, et de definir cette variable dans configure.

Amicalement,

Sven LUTHER

(0000339)
administrator (administrator)
2000-04-11 11:53

> peut tu m'envoyer le patch qui resoud ce probleme, de maniere a ce que je
> l'inclue dans le package debian ?

Tu peux aller voir comment c'est fait sur camlcvs.inria.fr, les
fichiers concernés sont ocaml/configure et ocaml/otherlibs/dbm/Makefile.
Comme il y a eu pas mal d'autres changements dans ocaml/configure,
ce n'est pas immédiat d'en extraire un patch.

> > comme /usr/include/db1. Je vois cela comme un petit bug de la distrib
> > Debian (RedHat a le même problème).
>
> Err, ...
> non, ce n'est pas un bug, mais une feature, ...
> Cela permet d'avoir plusieurs versions de l'environement de developpement
> installer (ici il y a que db1, mais on peut imaginer db2, db3, ...)

Je ne comprends toujours pas ce "feature". En quoi avoir 36
répertoires dbN dans /usr/include aide les gens à écrire du soft portable?
En tout cas, mon patch pour configure cherche dans /usr/include/gdbm,
mais pas dans cette horreur de /usr/include/db1.

> > > Je contourne le probleme par un lien symbolique
> > > /usr/include/db1/ndbm.h -> /usr/include/ndbm.h
> >
> > Oui, c'est la bonne chose à faire.
> Non, ce n'est pas la bonne solution, car cela demanderait de
> modifier tous les systemes debian de la meme maniere.

Uniquement ceux qui 1- veulent compiler ocaml, et 2- veulent avoir la
lib Caml dbm.

- Xavier Leroy


- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker