Attached is a patch for the problems I found with Solaris 8 and Mandrake 9.1
I've been trying to get a GNU Savannah login, but it looks like they are down
tonight.
It turns out that there are two database packages available with the Mandrake
distribution that support 'ndbm' calls: db1 (derived from Berkeley code), and
GNU gdbm. I've used the gdbm versions of the ndbm calls for years, with no
trouble. I can't remember which one got linked in with nmh when I built it
last year. I think that it's a safe bet that either will work.
The 'configure.in' script will test for libdbm.a, libdb1.a, and libgdbm.a, in
that order, and pull 'ndbm.h' from /usr/include/db1 or /usr/include/gdbm.
I've chosen to remove diversion of standard error to /dev/null for the
"broken vi" test, so Solaris systems with 'vim' installed don't hang.
Since the variables used in the definition of MAN1, et al, in man/Makefile
don't get changed after the definition, I don't believe that there's any harm
in changing ":=" to "=", which allows the makefile to work with Solaris make
and GNU make.
The patch gets applied with "patch -b -p1 < misc-build.patch", so
man/Makefile.in gets changed, not the top level Makefile.in.
So if you could, please apply these patches and make an RC2 for folks to
try out.
Thanks.
*** old/uip/slocal.c 2002-07-02 18:09:15.000000000 -0400
--- ./uip/slocal.c 2003-06-08 19:18:08.000000000 -0400
***************
*** 52,59 ****
--- 52,63 ----
#ifdef HAVE_DB1_NDBM_H
#include <db1/ndbm.h>
#else
+ #ifdef HAVE_GDBM_NDBM_H
+ #include <gdbm/ndbm.h>
+ #else
#include <ndbm.h>
#endif
+ #endif
#include <utmp.h>
*** old/config.h.in 2002-07-03 10:52:01.000000000 -0400
--- ./config.h.in 2003-06-08 19:30:24.000000000 -0400
***************
*** 279,284 ****
--- 279,287 ----
/* Define if your system has db1/ndbm.h instead of ndbm.h (ppclinux) */
#undef HAVE_DB1_NDBM_H
+ /* Define if your system has gdbm/ndbm.h instead of ndbm.h */
+ #undef HAVE_GDBM_NDBM_H
+
/* Define to the header containing the declaration of initgroups() on your
system, if any. AIX 4.[13], SunOS 4.1.3, and ULTRIX 4.2A have the function
in libc but don't have a declaration anywhere. */
*** old/man/Makefile.in 2001-01-19 16:22:08.000000000 -0500
--- ./man/Makefile.in 2003-06-08 19:10:46.000000000 -0400
***************
*** 71,79 ****
MAN8SRC = ap. conflict. dp. fmtdump. \
install-mh. mh-mts. post.
! MAN1 := $(MAN1SRC:.=.$(manext1))
! MAN5 := $(MAN5SRC:.=.$(manext5))
! MAN8 := $(MAN8SRC:.=.$(manext8))
# Since vmh is not built or distributed, neither should vmh.1 be
# MANEXTRA = vmh.
--- 71,79 ----
MAN8SRC = ap. conflict. dp. fmtdump. \
install-mh. mh-mts. post.
! MAN1 = $(MAN1SRC:.=.$(manext1))
! MAN5 = $(MAN5SRC:.=.$(manext5))
! MAN8 = $(MAN8SRC:.=.$(manext8))
# Since vmh is not built or distributed, neither should vmh.1 be
# MANEXTRA = vmh.
*** ./old/configure.in 2002-07-03 10:15:29.000000000 -0400
--- ./configure.in 2003-06-08 20:29:32.000000000 -0400
***************
*** 364,370 ****
dnl Check for broken vi
AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug,
[if echo 'r /nonexist-file
! q' | ex > /dev/null 2>&1
then
nmh_cv_attvibug=no
else
--- 364,370 ----
dnl Check for broken vi
AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug,
[if echo 'r /nonexist-file
! q' | ex > /dev/null
then
nmh_cv_attvibug=no
else
***************
*** 553,564 ****
dnl Checks for ndbm
AC_CHECK_FUNC(dbm_open, ,
AC_CHECK_LIB(ndbm, dbm_open, ,
! AC_CHECK_LIB(dbm, dbm_open)))
dnl ----------------
dnl CHECK FOR NDBM.H
dnl ----------------
! AC_CHECK_HEADERS(db1/ndbm.h)
dnl ----------------
dnl CHECK FOR HESIOD
--- 553,567 ----
dnl Checks for ndbm
AC_CHECK_FUNC(dbm_open, ,
AC_CHECK_LIB(ndbm, dbm_open, ,
! AC_CHECK_LIB(dbm, dbm_open, ,
! AC_CHECK_LIB(db1, dbm_open, ,
! AC_CHECK_LIB(gdbm, dbm_open)))))
dnl ----------------
dnl CHECK FOR NDBM.H
dnl ----------------
! AC_CHECK_HEADERS(db1/ndbm.h, ,
! AC_CHECK_HEADERS(gdbm/ndbm.h))
dnl ----------------
dnl CHECK FOR HESIOD