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

Reply via email to