Issue with DBM and CURRENT on RHEL/CentOS 6.5?

Julien ÉLIE julien at trigofacile.com
Tue Dec 10 21:44:35 UTC 2013


Hi Jesse,

>> (Did you run configure again after the upgrade of your system, before
>> rebuilding it?)
> The previous version was 20131014.  I did not re-run configure, and now
> that I have it is failing in the same way as the latest CURRENT.

OK, thanks for having checked.


> [root at nnrp include]# egrep
> 'HAVE_BDB_NDBM|HAVE_DB1_NDBM_H|HAVE_DBM|HAVE_GDBM_NDBM_H|HAVE_NDBM_H'
> config.h
> /* #undef HAVE_BDB_NDBM */
> /* #undef HAVE_DB1_NDBM_H */
> #define HAVE_DBM 1
> /* #undef HAVE_GDBM_NDBM_H */
> /* #undef HAVE_NDBM_H */

And what is the value of DBM_LIBS in Makefile.global?

It should normally be one of "ndbm", "dbm", "gdbm", or "gdbm_compat -lgdbm".
This variable is set when the dbm_open function has been found.


> Looks like DBM support wasn't previously defined.  I cannot remove the
> gdbm-devel package without breaking dependency with perl-devel.  It
> looks like the dependency on gdbm-devel was introduced by the latest
> update to perl-core which now requires perl-devel and subsequently
> gdbm-devel.

May it be that "gdbm" or "gdbm_compat -lgdbm" is set for DBM_LIBS?
I have just had a look at the contents of the "GNU dbm" tar ball, which
provides "compat/ndbm.h".  If it is installed by the gdbm-devel package,
then the following patch should work:


--- authprogs/ckpasswd.c	(révision 9577)
+++ authprogs/ckpasswd.c	(copie de travail)
@@ -37,6 +37,8 @@
 #  include <db.h>
 # elif HAVE_NDBM_H
 #  include <ndbm.h>
+# elif HAVE_COMPAT_NDBM_H
+#  include <compat/ndbm.h>
 # elif HAVE_GDBM_NDBM_H
 #  include <gdbm-ndbm.h>
 # elif HAVE_DB1_NDBM_H
Index: configure.ac
===================================================================
--- configure.ac	(révision 9577)
+++ configure.ac	(copie de travail)
@@ -379,8 +379,8 @@
                   sys/select.h sys/time.h unistd.h])
 
 dnl Some Linux systems have db1/ndbm.h instead of ndbm.h.  Others have
-dnl gdbm-ndbm.h.
-AC_CHECK_HEADERS([ndbm.h db1/ndbm.h gdbm-ndbm.h], [break])
+dnl compat/ndbm.h or gdbm-ndbm.h.
+AC_CHECK_HEADERS([ndbm.h db1/ndbm.h compat/ndbm.h gdbm-ndbm.h], [break])
 
 dnl Check for whether various symbols are declared.
 AC_CHECK_DECLS([pread, pwrite, snprintf, setproctitle, strlcat,




Do you see any improvement if you run "./autogen" (so as to regenerate
the configure file) and then configure and make?
If the gdbm-devel package installs the headers in another place, please
tell me which one it is (you can try to "grep -r dbm_open *" in your
system headers path).

-- 
Julien ÉLIE

« – Nous ne connaissons pas leur langue, donc, sous aucun prétexte
    il ne faut parler aux Goths !
  – Mais on peut leur taper dessus ? » (Astérix)


More information about the inn-workers mailing list