Trouble with Cyrus2.2

Carlos Velasco carlosev at newipnet.com
Fri Jan 17 14:50:11 EST 2003


On 17/01/2003 at 6:53 Christopher Riordan wrote:

>--with-dbdir=/usr/local/BerkeleyDB.4.1
>
>Running FreeBSD 4.7
>
>gcc -c -I..   -I/usr/local/include -I/usr/local/include -DHAVE_CONFIG_H -I. -I. -Wall -g -O2  cyrusdb_berkeley.c
>cyrusdb_berkeley.c:86: syntax error before `*'
...
>Stop in /usr/local/src/cyrus/cyrus-imapd-2_2/lib.
>*** Error code 1

It seems a problem with db.h header file.

>here is the output from Configure line above
...
>checking db.h usability... yes
>checking db.h presence... yes
>checking for db.h... yes
>checking for db_create in -ldb-4.1... no
>checking for db_create in -ldb4.1... no
>checking for db_create in -ldb-4.0... no
>checking for db_create in -ldb4.0... no
>checking for db_create in -ldb-4... no
>checking for db_create in -ldb4... yes

However it seems to detect a usable "db.h", strange. have you another "db.h" in your system apart of /usr/local/BerkeleyDB.4.1 one?

The real problem is that actually configure script is 1) ignoring --with-dbdir, and  2) --with-bdb-libdir and --with-bdb-incdir are not used at the time of checking.

Here's a patch:

> cvs -d :pserver:anoncvs at cvs.andrew.cmu.edu:/cvs diff -r cyrus-imapd-2_2 configure.in cmulocal/*
Index: configure.in
===================================================================
RCS file: /cvs/src/cyrus/configure.in,v
retrieving revision 1.232.4.32
diff -u -r1.232.4.32 configure.in
--- configure.in        2003/01/17 15:29:15     1.232.4.32
+++ configure.in        2003/01/17 19:47:23
@@ -127,9 +127,7 @@
 
 dnl support old-style
 AC_ARG_WITH(dbdir,
-       [  --with-dbdir=DIR        Berkeley DB files are in prefix DIR],
-       with_bdb_lib="$withval/lib"; with_db_inc="$withval/include",
-       with_bdb_lib=none; with_bdb_inc=none)
+       [  --with-dbdir=DIR        Berkeley DB files are in prefix DIR])
 
 CYRUS_BERKELEY_DB_CHK()
 
Index: cmulocal/berkdb.m4
===================================================================
RCS file: /cvs/src/cmulocal/berkdb.m4,v
retrieving revision 1.3.4.1
diff -u -r1.3.4.1 berkdb.m4
--- berkdb.m4   2002/12/10 20:57:06     1.3.4.1
+++ berkdb.m4   2003/01/17 19:47:26
@@ -89,12 +89,18 @@
        [  --with-db-lib=dir     use db libraries in dir],
        [if test "$withval" = "yes" -o "$withval" = "no"; then
                AC_MSG_ERROR([No argument for --with-db-lib])
-       fi])
+       fi], 
+        [if test -n "$with_dbdir"; then
+                with_db_lib="${with_dbdir}/lib"
+        fi])
 AC_ARG_WITH(db-include,
        [  --with-db-include=dir use db headers in dir],
        [if test "$withval" = "yes" -o "$withval" = "no"; then
                AC_MSG_ERROR([No argument for --with-db-include])
-       fi])
+       fi],
+        [if test -n "$with_dbdir"; then
+                with_db_inc="${with_dbdir}/include"
+        fi])
 AC_ARG_ENABLE(db4,
        [  --enable-db4          use db 4.x libraries])
 
@@ -233,11 +239,19 @@
 AC_ARG_WITH(bdb-libdir,
        [  --with-bdb-libdir=DIR   Berkeley DB lib files are in DIR],
        with_bdb_lib=$withval,
-       with_bdb_lib=none)
+        [if test -n "$with_dbdir"; then
+                with_bdb_lib="${with_dbdir}/lib"
+         else
+                with_bdb_lib=none
+        fi])
 AC_ARG_WITH(bdb-incdir,
        [  --with-bdb-incdir=DIR   Berkeley DB include files are in DIR],
        with_bdb_inc=$withval,
-       with_bdb_inc=none)
+        [if test -n "$with_dbdir"; then
+                with_bdb_inc="${with_dbdir}/include"
+         else
+                with_bdb_inc=none
+        fi])
 ])
 
 AC_DEFUN(CYRUS_BERKELEY_DB_CHK,
@@ -250,9 +264,19 @@
            BDB_INCADD=""
        fi
 
+        SAVE_CPPFLAGS=${CPPFLAGS}
+        CPPFLAGS="${BDB_INCADD} ${CPPFLAGS}"
+
+        dnl Note that FreeBSD puts it in a wierd place
+        dnl (but they should use with-bdb-incdir)
+        AC_CHECK_HEADER(db.h,
+                        CYRUS_BERKELEY_DB_CHK_LIB(),
+                        dblib="no")
        dnl Note that FreeBSD puts it in a wierd place
         dnl (but they should use with-bdb-incdir)
         AC_CHECK_HEADER(db.h,
                         CYRUS_BERKELEY_DB_CHK_LIB(),
                         dblib="no")
+
+        CPPFLAGS=${SAVE_CPPFLAGS}
 ])


Regards,
Carlos Velasco







More information about the Info-cyrus mailing list