Issue with DBM and CURRENT on RHEL/CentOS 6.5?

Jesse Rehmer jesse.rehmer at blueworldhosting.com
Tue Dec 10 22:40:24 UTC 2013


Julien ÉLIE wrote:
> 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. 

[root at nnrp inn-CURRENT-20131208]# grep DBM_LIBS Makefile.global
DBM_LIBS    = -lgdbm

>> 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 
>  # elif HAVE_NDBM_H
>  #  include 
> +# elif HAVE_COMPAT_NDBM_H
> +#  include 
>  # elif HAVE_GDBM_NDBM_H
>  #  include 
>  # 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).

Autogen doesn't work for me since it says it requires autoconf 2.64 and
I have 2.63.  If I modify configure.ac it will run but doesn't change
the results.

This may help a bit:

[root at nnrp inn-CURRENT-20131208]# rpm -ql gdbm-devel
/usr/include/gdbm
/usr/include/gdbm.h
/usr/include/gdbm/dbm.h
/usr/include/gdbm/gdbm.h
/usr/include/gdbm/ndbm.h
/usr/lib64/libgdbm.so
/usr/share/info/gdbm.info.gz
/usr/share/man/man3/gdbm.3.gz

[root at nnrp inn-CURRENT-20131208]# grep -r dbm_open /usr/include/*
/usr/include/db4/db.h:#define    dbm_open(a, b, c)    __db_ndbm_open(a, b, c)
/usr/include/db4/db.h:DBM    *__db_ndbm_open __P((const char *, int, int));
/usr/include/db.h:#define    dbm_open(a, b, c)    __db_ndbm_open(a, b, c)
/usr/include/db.h:DBM    *__db_ndbm_open __P((const char *, int, int));
/usr/include/gdbm/gdbm.h:/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
/usr/include/gdbm/gdbm.h:extern GDBM_FILE gdbm_open __P((char *, int, int, int, void (*)()));
/usr/include/gdbm/ndbm.h:extern DBM     *dbm_open ();
/usr/include/gdbm.h:/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
/usr/include/gdbm.h:extern GDBM_FILE gdbm_open __P((char *, int, int, int, void (*)()));


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/inn-workers/attachments/20131210/2ba136df/attachment.html>


More information about the inn-workers mailing list