RPM Community Forums

Mailing List Message of <rpm-users>

Re: ./rpmdb.h:433: error: expected specifier-qualifier-list before 'DB_SEQUENCE'

From: Jeff Johnson <n3npq@mac.com>
Date: Tue 28 Jun 2011 - 14:37:26 CEST
Message-id: <62E26662-6337-4122-810F-D3AA06E7B594@mac.com>

On Jun 28, 2011, at 1:16 AM, YuGiOhJCJ Mailing-List wrote:

> 
> Ok it compiles now. If I use db 5.1.19 I can compile rpm 5.3.5. If I choose an other version, db 4.7.25 (previous) or db 5.2.28 (last), the rpm 5.3.5 compile fails.

Good.

The next step is to do
	cd tests
	make clean check

> I think we must use the same version mentioned in the INSTALL file in order to compile rpm correctly (in the INSTALL file of rpm 5.3.5, the Berkeley-DB version is 5.1.19).
> 

This is how rpm is released: targeting a single version of Berkeley DB.

Other versions (back to db-4.5.x) will "work" but won't just compile.
The changes aren't hard, just subtle. The complexity comes in getting
the AutoFu to handle all possible versions of Berkeley DB as installed
on all possible platforms. That's a huge matrix to cover and test.

> I am disappointed that Oracle now develops db. Oracle has a bad service (I remember that was the same thing with MySQL, I couldn't download the documentation because there was errors in the website). Now, not a surprise, their website has some problems for db when you go at :
> http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html
> you can choose between some previous releases but not all :
> - 5.2.28 http://download.oracle.com/otn/berkeley-db/db-5.2.28.tar.gz
> - 5.1.25 http://download.oracle.com/berkeley-db/db-5.1.25.tar.gz
> - 5.1.19 No longer available for download!
> - 
> 

I think you should distinguish opinions about Oracle's web site from Berkeley DB code.

Recent changes to Berkeley DB are timely, and active, and with interesting
and useful "features". Merging sqlite3 <-> Berkeley DB is a useful and
innovative change.

Note that there *is* ABI breakage between 5.1.19 -> 5.1.25. ALl that means
is that one MUST recompile *everything* that links -ldb in order to upgrade
from 5.1.19 -> 5.1.25. The issue is that an element was removed from
within an internal structure that has some profound consequences. WHile
annoying, its not a show stopping change or anything else: someone had
a brain fart. Ooops.

> Indeed, some links requires authentication (5.2.28), so I must have an oracle account, and some versions are no longer available (5.1.19).
> 

Yes I find the Oracle web site rather dreadful to navigate.

There's worse: Try finding something on HP or Cisco web sites sometime.

> But the thing which is funny is that these archives can be downloaded from there web site if you find the good url :
> -http://download.oracle.com/berkeley-db/db-5.1.28.tar.gz
> -http://download.oracle.com/berkeley-db/db-5.1.25.tar.gz
> -http://download.oracle.com/berkeley-db/db-5.1.19.tar.gz
> 
> But I think this is not the place to say bad things about the Oracle services.
> 

Yes. Still: Berkeley DB is best-of-breed and the newer releases are
both active and innovative in my professional opinion.

> Anyway, thank you for rpm5 and your support :-)
> 

np.

73 de Jeff
> 
> On Mon, 27 Jun 2011 13:02:33 +0000
> "Miller, Vincent (Rick)" <vmiller@verisign.com> wrote:
> 
>> 
>> I had a similar issue.  Turned out it was unable to locate the Berkley DB
>> header, db.h.  The maintainer, Jeff, says that RPM5's include looks like
>> #include <db51/db.h>.
>> 
>> Looks like you have an older version of Berkley DB.  I am unsure if it is
>> supported.  You might try checking the INSTALL file in the source
>> directory to see if older versions are supported.
>> 
>> 
>> 
>> 
>> On 6/25/11 1:17 AM, "YuGiOhJCJ Mailing-List"
>> <yugiohjcj-mailinglist@laposte.net> wrote:
>> 
>>> 
>>> Hello,
>>> 
>>> When I compile rpm-5.3.5 I got this error :
>>> ./rpmdb.h:433: error: expected specifier-qualifier-list before
>>> 'DB_SEQUENCE'
>>> You can see the full error below.
>>> 
>>> I thought that was my db version which was not compatible but this is not
>>> the case.
>>> Indeed, I try also with db-4.7.25 and I again see this error in my
>>> terminal...
>>> 
>>> Someone has already reported this error :
>>> http://rpm5.org/cvs/tktview?tn=65
>>> So I am not alone.
>>> 
>>> Could you give me a way to resolve this problem?
>>> 
>>> Thank you.
>>> 
>>> $ make
>>> make  all-recursive
>>> make[1]: Entering directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/po'
>>> make[2]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/po'
>>> Making all in pcre
>>> make[2]: Entering directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/pcre'
>>> make[3]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/pcre'
>>> make[2]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt'
>>> make  all-recursive
>>> make[3]: Entering directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt'
>>> make[4]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt'
>>> Making all in include
>>> make[4]: Entering directory all'.
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/tests'
>>> make[4]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/tests'
>>> Making all in docs
>>> make[4]: Entering directory all'.
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/gas'
>>> make[4]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/gas'
>>> Making all in masm
>>> make[4]: Entering directory all'.
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/python'
>>> Making all in test
>>> make[5]: Entering directory all'.
>>> make[5]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/python'
>>> make[5]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt/python'
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/beecrypt'
>>> make[2]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/neon'
>>> make  all-recursive
>>> make[3]: Entering directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/neon/src'
>>> make[5]: Entering directory all-am'.
>>> make[5]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/neon/src'
>>> make[4]: Entering directory all-am'.
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/neon'
>>> make[2]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/misc'
>>> make[2]: Nothing to be done for
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/misc'
>>> Making all in rpmio
>>> make[2]: Entering directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/rpmio'
>>> make[4]: Entering directory all-am'.
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/rpmio'
>>> make[2]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/rpmdb'
>>> make  all-recursive
>>> make[3]: Entering directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/rpmdb'
>>> /bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.
>>> -I..  -I. -I.. -I../build -I../lib -I../lib -I../rpmdb -I../rpmio
>>> -I../misc -I../beecrypt/include -I../beecrypt/include -I../beecrypt
>>> -I../beecrypt -I../pcre -I../pcre  -I../db -I../db -I../db/src
>>> -I../db/src -I../scripts -I../scripts -DRPM_OS_LINUX=020639
>>> -DRPM_OS_LINUX=020639   -fopenmp -g -O2 -D_GNU_SOURCE -D_REENTRANT   -MT
>>> librpmdb_la-dbconfig.lo -MD -MP -MF .deps/librpmdb_la-dbconfig.Tpo -c -o
>>> librpmdb_la-dbconfig.lo ./dbconfig.c
>>> libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I../build
>>> -I../lib -I../lib -I../rpmdb -I../rpmio -I../misc -I../beecrypt/include
>>> -I../beecrypt/include -I../beecrypt -I../beecrypt -I../pcre -I../pcre
>>> -I../db -I../db -I../db/src -I../db/src -I../scripts -I../scripts
>>> -DRPM_OS_LINUX=020639 -DRPM_OS_LINUX=020639 -fopenmp -g -O2 -D_GNU_SOURCE
>>> -D_REENTRANT -MT librpmdb_la-dbconfig.lo -MD -MP -MF
>>> .deps/librpmdb_la-dbconfig.Tpo -c dbconfig.c  -fPIC -DPIC -o
>>> .libs/librpmdb_la-dbconfig.o
>>> In file included from dbconfig.c:14:
>>> ./rpmdb.h:433: error: expected specifier-qualifier-list before
>>> 'DB_SEQUENCE'
>>> ./rpmdb.h:490: error: expected specifier-qualifier-list before 'DB_LOGC'
>>> ./rpmdb.h: In function 'dbiCopen':
>>> ./rpmdb.h:589: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiCclose':
>>> ./rpmdb.h:604: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiCdup':
>>> ./rpmdb.h:620: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiDel':
>>> ./rpmdb.h:642: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiGet':
>>> ./rpmdb.h:665: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiPget':
>>> ./rpmdb.h:689: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiPut':
>>> ./rpmdb.h:713: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiCount':
>>> ./rpmdb.h:732: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiClose':
>>> ./rpmdb.h:746: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiSync':
>>> ./rpmdb.h:760: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiExists':
>>> ./rpmdb.h:775: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiSeqno':
>>> ./rpmdb.h:790: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiAssociate':
>>> ./rpmdb.h:808: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiJoin':
>>> ./rpmdb.h:825: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiByteSwapped':
>>> ./rpmdb.h:837: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> ./rpmdb.h: In function 'dbiStat':
>>> ./rpmdb.h:850: error: 'struct _dbiIndex' has no member named 'dbi_vec'
>>> In file included from dbconfig.c:14:
>>> ./rpmdb.h: In function 'rpmlkId':
>>> ./rpmdb.h:876: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:877: error: 'DB_ENV' has no member named 'lock_id'
>>> ./rpmdb.h: In function 'rpmlkIdFree':
>>> ./rpmdb.h:887: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:888: error: 'DB_ENV' has no member named 'lock_id_free'
>>> ./rpmdb.h: In function 'rpmlkGet':
>>> ./rpmdb.h:900: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:901: error: 'DB_ENV' has no member named 'lock_get'
>>> In file included from dbconfig.c:14:
>>> ./rpmdb.h: In function 'rpmlkPut':
>>> ./rpmdb.h:912: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:913: error: 'DB_ENV' has no member named 'lock_put'
>>> ./rpmdb.h: In function 'rpmlgcOpen':
>>> ./rpmdb.h:924: error: 'DB_LOGC' undeclared (first use in this function)
>>> ./rpmdb.h:924: error: (Each undeclared identifier is reported only once
>>> ./rpmdb.h:924: error: for each function it appears in.)
>>> ./rpmdb.h:924: error: '_logc' undeclared (first use in this function)
>>> ./rpmdb.h:926: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:927: error: 'DB_ENV' has no member named 'log_cursor'
>>> ./rpmdb.h:928: error: 'struct rpmdb_s' has no member named 'db_logc'
>>> ./rpmdb.h: At top level:
>>> ./rpmdb.h:935: error: expected declaration specifiers or '...' before
>>> 'DB_LSN'
>>> ./rpmdb.h: In function 'rpmlgcGet':
>>> ./rpmdb.h:937: error: 'DB_LOGC' undeclared (first use in this function)
>>> ./rpmdb.h:937: error: '_logc' undeclared (first use in this function)
>>> ./rpmdb.h:937: error: 'struct rpmdb_s' has no member named 'db_logc'
>>> ./rpmdb.h:938: error: '_lsn' undeclared (first use in this function)
>>> ./rpmdb.h: In function 'rpmlgcClose':
>>> ./rpmdb.h:947: error: 'DB_LOGC' undeclared (first use in this function)
>>> ./rpmdb.h:947: error: '_logc' undeclared (first use in this function)
>>> ./rpmdb.h:947: error: 'struct rpmdb_s' has no member named 'db_logc'
>>> ./rpmdb.h:950: error: 'struct rpmdb_s' has no member named 'db_logc'
>>> ./rpmdb.h: At top level:
>>> ./rpmdb.h:957: error: expected ';', ',' or ')' before '*' token
>>> ./rpmdb.h:967: error: expected ';', ',' or ')' before '*' token
>>> ./rpmdb.h: In function 'rpmlgcPrintf':
>>> ./rpmdb.h:981: error: 'DB_ENV' has no member named 'log_printf'
>>> ./rpmdb.h: At top level:
>>> ./rpmdb.h:988: error: expected declaration specifiers or '...' before
>>> 'DB_LSN'
>>> ./rpmdb.h: In function 'rpmlgcPut':
>>> ./rpmdb.h:991: error: 'DB_ENV' has no member named 'log_put'
>>> ./rpmdb.h:991: error: '_lsn' undeclared (first use in this function)
>>> ./rpmdb.h: In function 'rpmmpfSyncAll':
>>> ./rpmdb.h:1001: error: 'DB_LSN' undeclared (first use in this function)
>>> ./rpmdb.h:1001: error: '_lsn' undeclared (first use in this function)
>>> ./rpmdb.h:1002: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:1003: error: 'DB_ENV' has no member named 'memp_sync'
>>> ./rpmdb.h: In function 'rpmmpfTrickle':
>>> ./rpmdb.h:1015: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:1016: error: 'DB_ENV' has no member named 'memp_trickle'
>>> ./rpmdb.h: In function 'rpmmpfClose':
>>> ./rpmdb.h:1025: error: 'DB_MPOOLFILE' undeclared (first use in this
>>> function)
>>> ./rpmdb.h:1025: error: 'mpf' undeclared (first use in this function)
>>> ./rpmdb.h:1025: error: 'struct rpmdb_s' has no member named 'db_mpf'
>>> ./rpmdb.h:1028: error: 'struct rpmdb_s' has no member named 'db_mpf'
>>> ./rpmdb.h: In function 'rpmmpfGet':
>>> ./rpmdb.h:1037: error: 'DB_MPOOLFILE' undeclared (first use in this
>>> function)
>>> ./rpmdb.h:1037: error: 'mpf' undeclared (first use in this function)
>>> ./rpmdb.h:1037: error: 'struct rpmdb_s' has no member named 'db_mpf'
>>> ./rpmdb.h: In function 'rpmmpfOpen':
>>> ./rpmdb.h:1049: error: 'DB_MPOOLFILE' undeclared (first use in this
>>> function)
>>> ./rpmdb.h:1049: error: 'mpf' undeclared (first use in this function)
>>> ./rpmdb.h:1050: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:1053: error: 'struct rpmdb_s' has no member named '_dbi'
>>> ./rpmdb.h:1054: error: 'DB_ENV' has no member named 'memp_fcreate'
>>> ./rpmdb.h:1060: error: 'struct rpmdb_s' has no member named 'db_mpf'
>>> ./rpmdb.h: In function 'rpmmpfPut':
>>> ./rpmdb.h:1071: error: 'DB_MPOOLFILE' undeclared (first use in this
>>> function)
>>> ./rpmdb.h:1071: error: 'mpf' undeclared (first use in this function)
>>> ./rpmdb.h:1071: error: 'struct rpmdb_s' has no member named 'db_mpf'
>>> ./rpmdb.h:1072: error: 'DB_PRIORITY_DEFAULT' undeclared (first use in
>>> this function)
>>> ./rpmdb.h: In function 'rpmmpfSync':
>>> ./rpmdb.h:1082: error: 'DB_MPOOLFILE' undeclared (first use in this
>>> function)
>>> ./rpmdb.h:1082: error: 'mpf' undeclared (first use in this function)
>>> ./rpmdb.h:1082: error: 'struct rpmdb_s' has no member named 'db_mpf'
>>> make[4]: *** [librpmdb_la-dbconfig.lo] Error 1
>>> make[4]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5/rpmdb'
>>> make[2]: *** [all] Error 2
>>> make[2]: Leaving directory
>>> /home/yugiohjcj/documents/downloads/software/rpm-5.3.5'
>>> make: *** [all] Error 2
>>> 
>>> ______________________________________________________________________
>>> RPM Package Manager                                    http://rpm5.org
>>> User Communication List                             rpm-users@rpm5.org
>> 
>> ______________________________________________________________________
>> RPM Package Manager                                    http://rpm5.org
>> User Communication List                             rpm-users@rpm5.org
>> 
> 
> ______________________________________________________________________
> RPM Package Manager                                    http://rpm5.org
> User Communication List                             rpm-users@rpm5.org
Received on Tue Jun 28 14:37:30 2011
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.