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

Reply via email to