Compilation problem with Python < 2.6 and db >= 4.7

K

kiorky

Is there a way to make the bsddb module compile against db>=4.7 for python < 2.6
(2.4.6, 2.5.4)? A patch ? A tip ?

For the moment, i have a known failure as:
gcc -pthread -fno-strict-aliasing -DNDEBUG
-I/usr/home/kiorky/minitage/dependencies/readline-5.2/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/bzip2-1.0/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/zlib-1.2/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/openssl-0.9/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/db-4.7/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/openssl-0.9/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/expat-2.0/parts/part/include -I.
-IInclude -I./Include
-I/usr/home/kiorky/minitage/dependencies/readline-5.2/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/bzip2-1.0/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/zlib-1.2/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/openssl-0.9/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/db-4.7/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/openssl-0.9/parts/part/include
-I/usr/home/kiorky/minitage/dependencies/expat-2.0/parts/part/include -fPIC
-DPy_BUILD_CORE
-I/usr/home/kiorky/minitage/dependencies/db-4.7/parts/part/include -c
../Modules/_bsddb.c -o Modules/_bsddb.o
../Modules/_bsddb.c: In function 'DBEnv_getattr':
../Modules/_bsddb.c:5337: error: 'DB_ENV' has no member named 'db_home'
../Modules/_bsddb.c:5340: error: 'DB_ENV' has no member named 'db_home'
../Modules/_bsddb.c: In function 'init_bsddb':
../Modules/_bsddb.c:5962: error: 'DB_LOG_AUTOREMOVE' undeclared (first use in
this function)
../Modules/_bsddb.c:5962: error: (Each undeclared identifier is reported only once
../Modules/_bsddb.c:5962: error: for each function it appears in.)
../Modules/_bsddb.c:5963: error: 'DB_DIRECT_LOG' undeclared (first use in this
function)
../Modules/_bsddb.c:5971: error: 'DB_LOG_INMEMORY' undeclared (first use in this
function)
*** Error code 1


I looked for the one inside python >= 2.6 and it seems to have changed a lot so
backporting it seems difficult and maybe break the old API.

I didn't find something on it.
 
M

Martin v. Löwis

Is there a way to make the bsddb module compile against db>=4.7 for python < 2.6
(2.4.6, 2.5.4)?

I don't think so, no.
I didn't find something on it.

If you don't want to use pybsddb either, for fear of incompatible API,
your only choice is to port _bsddb.c to the newer db versions. BSDDB
is in the tradition of both breaking the data format and the API
frequently, so we (python-dev) have given up on it.

Regards,
Martin
 
K

kiorky

Martin v. Löwis a écrit :
I don't think so, no.


If you don't want to use pybsddb either, for fear of incompatible API,
your only choice is to port _bsddb.c to the newer db versions. BSDDB
is in the tradition of both breaking the data format and the API
frequently, so we (python-dev) have given up on it.

Yup, i understand.
I will be lazy and fall back as all packaging systems do, and keep in the
minitage packages tree both db versions.
Thanks for confirmation.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top