Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ndbm.h non trouve par configure #2407

Closed
vicuna opened this issue Mar 21, 2000 · 4 comments
Closed

ndbm.h non trouve par configure #2407

vicuna opened this issue Mar 21, 2000 · 4 comments
Labels

Comments

@vicuna
Copy link

vicuna commented Mar 21, 2000

Original bug ID: 67
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

Full_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+

@vicuna
Copy link
Author

vicuna commented Mar 23, 2000

Comment author: administrator

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

@vicuna
Copy link
Author

vicuna commented Mar 26, 2000

Comment author: administrator

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

@vicuna vicuna closed this as completed Mar 26, 2000
@vicuna
Copy link
Author

vicuna commented Apr 11, 2000

Comment author: administrator

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

@vicuna
Copy link
Author

vicuna commented Apr 11, 2000

Comment author: administrator

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

@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant