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
problems
BerkeleyDB was installed from db-4.5.20.tar.gz without
errors
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
Cyrus?
(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.
J.J.
-------------------- An extracted portion of the output follows.
--------------------
bash-3.00# make all CFLAGS=-O
### Making all in /work/install/mail.delivery/cyrus/cyrus-imapd-2.3.8/man
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
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
/work/install/mail.delivery/cyrus/cyrus-imapd-2.3.8/lib
*** 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; \
done
make: Fatal error: Command failed for target `all'
bash-3.00#
-------------------- the complete code section is: --------------------
174
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",
db_strerror(r));
183 abort();
184 }
185 }
186
-------------------- 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.
http://im.live.com/messenger/im/home/?source=TAGHM_APR07
----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html