On Sat, Sep 12, 2015 at 09:45:19AM +0200, Sylvain Etienne wrote:
> Hi all,
>
> on BLFS 7.7 I've installed Berkeley DB-6.1.19 and then I've built
> Python-2.7.9, to have the BerkeleyDB additionnal module.
> But in the build log I have this message:
>
> Python build finished, but the necessary bits to build these modules were
> not fo
> und:
> _bsddb _tkinter bsddb185
> sunaudiodev
>
> After searching a bit on the Web I've found on the Python's site[1] that
> bsddb module is deprecated since Python 2.6 and that it requires a Berkeley
> DB library version from 4.0 thru 4.7.
>
> Is the python page on the BLFS book incorrect and/or out of date or am I
> missing something ?
>
>
>
> [1] https://docs.python.org/2/library/bsddb.html
Interesting, and thanks for the link to the docs. On this machine I
have logs from LFS-7.1 onwards, each with whatever I was building
from BLFS at that time. I was going to say that all of them gave
the message that _bsddb was not found, but in fact that is not the
case : for firefox-31.0 I had to rebuild Python2 (hence the note on
the firefox page), and in the log for that rebuild (Python-2.7.8) I
see:
building '_bsddb' extension
gcc -pthread -fPIC -fno-strict-aliasing -O2 -DNDEBUG -g -fwrapv -O3
-Wall -Wstrict-prototypes -I/usr/include -I. -IInclude -I./Include
-I/usr/local/include -I/scratch/working/Python-2.7.8/Include
-I/scratch/working/Python-2.7.8 -c
/scratch/working/Python-2.7.8/Modules/_bsddb.c -o
build/temp.linux-x86_64-2.7/scratch/working/Python-2.7.8/Modules/_bsddb.o
...
and the install resulted in
copying build/lib.linux-x86_64-2.7/_bsddb.so -> /usr/lib/python2.7/lib-dynload
and looking at my logs that build ( LFS-7.3 ] used db-5.3.21. But
then in 7.4 we moved to db-6. Clearly I do not need that "module".
On a quick check (everything at the beginning of this month) I get
the message:
Python build finished, but the necessary bits to build these modules
were not found:
_bsddb bsddb185 dl
imageop sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for
the module's name.
from that, the dependencies in _my_ build (I have the _tkinter dep
on a completed system, from memory we discussed this between 7.6 and
7.7 and there is a somewhat circular dependency). my missing deps
are:
_bsddb bsddb.h [ but see below ]
bsddb185 _bsddb (if I read setup.py correctly)
dl has a comment :
# Dynamic loading module
if sys.maxint == 0x7fffffff:
# This requires sizeof(int) == sizeof(long) ==
# sizeof(char*)
so it ain't going to build on x86_64
similarly, imageop is disabled on 64-bit platforms
and sunaudiodev is, of course, specific to SunOS.
So, we are perhaps now missing bsddb.h. Except, my install logs
imply that none of my systems ever had a bsddb.h installed. That
might not be true, until a few months ago I was failing to log _old_
files (i.e. those which were older than when I started to build the
package), so it is possible that some of those systems did have a
bsddb.h. But google primarily finds Python matches, and there is a
Modules/bsddb.h in the Python build, which claims to work with DB
versions 3.2 through 4.2.
So, maybe the book is wrong.
Looking a bit deeper, there are references to _bsddb in
Modules/Setup which is not pretty reading:
# Sleepycat Berkeley DB interface.
#
# This requires the Sleepycat DB code, see http://www.sleepycat.com/
# The earliest supported version of that library is 3.0, the latest
# supported version is 4.0 (4.1 is specifically not supported, as
# that
# changes the semantics of transactional databases). A list of
# available
# releases can be found at
#
# http://www.sleepycat.com/update/index.html
#
# Edit the variables DB and DBLIBVERto point to the db top directory
# and the subdirectory of PORT where you built it.
#DB=/usr/local/BerkeleyDB.4.0
#DBLIBVER=4.0
#DBINC=$(DB)/include
#DBLIB=$(DB)/lib
#_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
# Historical Berkeley DB 1.85
#
# This module is deprecated; the 1.85 version of the Berkeley DB
# library has
# bugs that can cause data corruption. If you can, use later
# versions of the
# library instead, available from <http://www.sleepycat.com/>.
#DB=/depot/sundry/src/berkeley-db/db.1.85
#DBPORT=$(DB)/PORT/irix.5.3
#bsddb185 bsddbmodule.c -I$(DBPORT)/include -I$(DBPORT)
$(DBPORT)/libdb.a
i.e. only versions between 3.2 (per the header) and 4.0 should
work. But again, perhaps I have misunderstood it.
ĸen
--
Il Porcupino Nil Sodomy Est! (if you will excuse my latatian)
aka "The hedgehog song"
--
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page