Installtion error - cyrusdb_berkeley structure has no member named `set_lk_max'

Chaskiel M Grundman cg2v at andrew.cmu.edu
Tue Dec 12 14:06:05 EST 2006


--On Tuesday, December 12, 2006 02:12:41 PM +0530 Pubudu Premachandra 
<npubudu at gmail.com> wrote:

> cyrusdb_berkeley.c:176: error: structure has no member named `set_lk_max'

set_lk_max has been deprecated since DB 4.0. I guess it was finally removed.

The following patch may be used to work around this:



--- lib/cyrusdb_berkeley.c      2006-08-01 15:34:18.000000000 -0400
+++ /tmp/cyrusdb_berkeley.c     2006-12-12 14:04:00.000000000 -0500
@@ -174,7 +174,15 @@
        syslog(LOG_WARNING,
               "DBERROR: invalid berkeley_locks_max value, using internal 
default");
     } else {
+#if DB_VERSION_MAJOR >= 4
+       r = dbenv->set_lk_max_locks(dbenv, opt);
+       if (!r)
+           r = dbenv->set_lk_max_lockers(dbenv, opt);
+       if (!r)
+           r = dbenv->set_lk_max_objects(dbenv, opt);
+#else
        r = dbenv->set_lk_max(dbenv, opt);
+#endif
        if (r) {
            dbenv->err(dbenv, r, "set_lk_max");
            syslog(LOG_ERR, "DBERROR: set_lk_max(): %s", db_strerror(r));


Or you can downgrade to DB 4.3 (I don't know if 4.4 will work or not)


More information about the Info-cyrus mailing list