GNOME Bugzilla – Bug 370349
Build fails with Berkeley DB 4.2.52
Last modified: 2009-01-31 01:32:44 UTC
Please describe the problem: I am using Slackware 10.2. When compiling libgda, the configure succeeds and indicates that the Berkeley DB provider will be compiled. However, the compile breaks while compiling BDB provider. Here is the last part of the output: gcc "-DPACKAGE_NAME=\"GNU Data Access\"" -DPACKAGE_TARNAME=\"libgda\" -DPACKAGE_VERSION=\"1.99.1\" "-DPACKAGE_STRING=\"GNU Data Access 1.99.1\"" -DPACKAGE_BUGREPORT=\"gnome-db-list@gnome.org\" -DBONOBO_EXPLICIT_TRANSLATION_DOMAIN=\"libgda-3\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DYYTEXT_POINTER=1 -DGETTEXT_PACKAGE=\"libgda-3\" -DHAVE_LOCALE_H=1 -DHAVE_LC_MESSAGES=1 -DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DHAVE_ODBC=1 -DHAVE_MYSQL=1 -DHAVE_POSTGRES=1 -DHAVE_POPT_H=1 -DHAVE_READLINE_READLINE_H=1 -DHAVE_READLINE_HISTORY_H=1 -I. -I. -I../.. -I../.. -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -DLIBGDA_DATA_DIR=\"/usr/share/libgda\" -O2 -march=i486 -mcpu=pentium2 -MT gda-bdb-recordset.lo -MD -MP -MF .deps/gda-bdb-recordset.Tpo -c gda-bdb-recordset.c -fPIC -DPIC -o .libs/gda-bdb-recordset.o gda-bdb-recordset.c: In function `gda_bdb_recordset_class_init': gda-bdb-recordset.c:80: warning: assignment from incompatible pointer type gda-bdb-recordset.c: In function `gda_bdb_recordset_new': gda-bdb-recordset.c:247: warning: passing arg 3 of pointer to function makes integer from pointer without a cast gda-bdb-recordset.c:247: error: too many arguments to function make[2]: *** [gda-bdb-recordset.lo] Error 1 make[2]: Leaving directory `/mnt/raid/download/computer/software/gnome/libgda/1.99/src/libgda-1.99.1/providers/bdb' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/mnt/raid/download/computer/software/gnome/libgda/1.99/src/libgda-1.99.1/providers' make: *** [all-recursive] Error 1 I cannot find any definition of BDB_VERSION on the command line given. However, the line given is in a function call where the number of arguments is changed depending upon the value of BDB_VERSION. I have installed the following packages: db4-4.2.52-i486-2 db31-3.1.17-i486-1 db3-3.3.11-i486-4 All of them are different versions of Berkeley DB provider. Steps to reproduce: 1. Extracted libgda 1.99.1 tarball 2. ./configure --prefix=/usr --sysconfdir=/etc --enable-gtk-doc 3. make Actual results: Compiling ends with the above error. Expected results: Compiling should complete successfully or configure should fail. Does this happen every time? I've only tried it once so far, but one expects it to happen the same way. Other information: Why is there no Berkeley DB Provider component under libgda?
Is this a duplicate of bug #162569 ?
I do not think so, though they are similar. Here are my reasons: 1. Bug162569 deals with a different part of the libgda code failing to compile. A different gda-bdb function is involved. 2. Bug162569 incurred its error because of a parameter that was added between DB 4.2.52 and 4.3.21. I have 4.2.52 installed, and therefore do not have that new parameter. Because of #2, each bug is caused by a different Berkely DB change. This still occurs in SVN2800 (trunk).
So we need to either a) #ifdef around that part of the code to adapt to different versions of the Berkeley DB API, or b) Require the later version of the API.
This will be done for future versions, current svn trunk compiles with BDB 4.6 and 4.7. Is anyone still using that version of BDB or can I close the bug?
I dropped the --without-bdb (and patches) from my build script. libgda 3.99.9 successfully built.