[Python-Dev] Distutils confuses Berkeley DB and dbm?
Skip Montanaro
skip@pobox.com
Thu, 30 May 2002 20:12:46 -0500
Would someone on Linux please try the following:
import dbm
f = dbm.open("foo", "c")
f["1"] = "1"
f.close
then ask the file command what kind of file it is. On my system it tells me
the file is a Berkeley DB 1.85 hash file. I figure that distutils is
getting ahold of the libdb dbm-compatibility include files and libraries and
using them. On my system, the only ndbm.h is in /usr/include/db1. Here's
how the dbm module builds on my system:
building 'dbm' extension
gcc -DNDEBUG -O3 -fPIC
-I. -I/home/skip/src/python/head/dist/src/./Include -I/usr/local/include \
-IInclude/ -c /home/skip/src/python/head/dist/src/Modules/dbmmodule.c -o \
build/temp.linux-i686-2.3/dbmmodule.o
gcc -shared build/temp.linux-i686-2.3/dbmmodule.o -L/usr/local/lib -ldb1 \
-o build/lib.linux-i686-2.3/dbm.so
I know there is a bug report open about something related to building
Berkeley DB-based modules, but I'm offline at the moment so I can't check
it. Barry, were you going to look at this? How about a little
collaboration? I think I'm mostly responsible for what distutils does as
far as building bsddb.
Skip