imapd make error

J.J. Day day1234 at
Wed May 2 20:51:29 EDT 2007

Hi all,

I am attempting to install Cyrus imapd 2.3.8 as an initial installation on a 
Sparc system running Solaris 10.
                     sasl2 installed from cyrus-sasl-2.1.22.tar.gz without 
                    BerkeleyDB was installed from db-4.5.20.tar.gz without 

Configure and "make depend" run without errors (although there is a warning 
for com_err during configure).
However, there is an error related to the lock processing for BerkeleyDb 
during "make all" processing the init function  and it terminates with error 
code 1. Since the referenced structure is missing I cannot tell where it 
should have been defined.
-  Is the error caused by something missing in BerkeleyDB or something in 
(BerkeleyDB was configured with only the prefix option specified)
-  Is Cyrus 2.3.8 compatible with BerkeleyDB 4.5.20?

Any help would be very much appreciated.


-------------------- An extracted portion of the output follows.  
  bash-3.00# make all CFLAGS=-O
  ### Making all in /work/install/
  creating imapd.conf.5
  ./../tools/config2man ./../lib/imapoptions > ./imapd.conf.5
<<<<  snip  >>>>
gcc -c -I.. -I/usr/local/BerkeleyDB/include  -I/usr/local/ssl/include 
-I/usr/sfw/include -I../et
-I/usr/local/include -DHAVE_CONFIG_H -g -O2 \
cyrusdb_berkeley.c: In function `init':
cyrusdb_berkeley.c:179: error: structure has no member named `set_lk_max'
*** Error code 1
make: Fatal error: Command failed for target `cyrusdb_berkeley.o'
Current working directory 
*** Error code 1
The following command caused the error:
for d in  man et  lib  sieve master imap  imtest   perl timsieved notifyd; \
do \
         (cd $d; echo "### Making" all "in" `pwd`;       \
                 make  DESTDIR= all) || exit 1; \
make: Fatal error: Command failed for target `all'

-------------------- the complete code section is:  --------------------
   175      if ((opt = libcyrus_config_getint(CYRUSOPT_BERKELEY_LOCKS_MAX)) 
< 0)
   176          syslog(LOG_WARNING,
   177                 "DBERROR: invalid berkeley_locks_max value, using 
internal default");
   178      } else {
   179          r = dbenv->set_lk_max(dbenv, opt);
   180          if (r) {
   181              dbenv->err(dbenv, r, "set_lk_max");
   182              syslog(LOG_ERR, "DBERROR: set_lk_max(): %s", 
   183              abort();
   184          }
   185      }

-------------------- the BerkeleyDB docs provide this information:  
FROM: /usr/local/BerkeleyDB/docs/api_c/lock_list.html

Locking Subsystem Configuration
DB_ENV->set_lk_conflicts	Set lock conflicts matrix
DB_ENV->set_lk_detect	Set automatic deadlock detection
DB_ENV->set_lk_max_lockers	Set maximum number of lockers
DB_ENV->set_lk_max_locks	Set maximum number of locks
DB_ENV->set_lk_max_objects	Set maximum number of lock objects
DB_ENV->set_timeout	Set lock and transaction timeout

Download Messenger. Join the i’m Initiative. Help make a difference today.

More information about the Info-cyrus mailing list