From 0064026668cd1dc5ffe005532e4ccc23e55c2b35 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Fri, 24 Jan 2003 15:31:31 +0000 Subject: Bump the Windows build to use Sleepycat's 4.1.25.NC release (the latest bsddb release without strong cryptography). --- Misc/NEWS | 9 ++++--- PCbuild/_bsddb.dsp | 8 +++--- PCbuild/bsddb_patch.txt | 36 --------------------------- PCbuild/readme.txt | 66 ++++++++++++++++++++++++++++++++----------------- 4 files changed, 54 insertions(+), 65 deletions(-) delete mode 100644 PCbuild/bsddb_patch.txt diff --git a/Misc/NEWS b/Misc/NEWS index bfcddd9..fdc3730 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -32,6 +32,9 @@ Extension modules - fcntl now exposes the strops.h I_* constants. +- Fix a crash on Solaris that occurred when calling close() on + an mmap'ed file which was already closed. (SF patch #665913) + - datetime changes: The datetime and datetimetz classes have been collapsed into a single @@ -103,9 +106,6 @@ Extension modules possible to have timestamps that differ by a second, yet where datetimes constructed from them are equal. -- Fix a crash on Solaris that occurred when calling close() on - an mmap'ed file which was already closed. (SF patch #665913) - Library ------- @@ -181,6 +181,9 @@ TBD Windows ------- +- The bsddb module now ships with Sleepycat's 4.1.25.NC, the latest + release without strong cryptography. + - sys.path[0], if it contains a directory name, is now always an absolute pathname. diff --git a/PCbuild/_bsddb.dsp b/PCbuild/_bsddb.dsp index e1857c5..2bee39d 100644 --- a/PCbuild/_bsddb.dsp +++ b/PCbuild/_bsddb.dsp @@ -44,7 +44,7 @@ RSC=rc.exe # PROP Target_Dir "" F90=df.exe # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.0.14\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" @@ -54,7 +54,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.0.14\build_win32\Release_static\libdb40s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd" +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrt" /out:"./_bsddb.pyd" # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "_bsddb - Win32 Debug" @@ -72,7 +72,7 @@ LINK32=link.exe # PROP Target_Dir "" F90=df.exe # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.0.14\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\db-4.1.25\build_win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" @@ -82,7 +82,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.0.14\build_win32\Release_static\libdb40s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept +# ADD LINK32 user32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\db-4.1.25\build_win32\Release_static\libdb41s.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"msvcrtd" /out:"./_bsddb_d.pyd" /pdbtype:sept # SUBTRACT LINK32 /pdb:none !ENDIF diff --git a/PCbuild/bsddb_patch.txt b/PCbuild/bsddb_patch.txt deleted file mode 100644 index d4c51bc..0000000 --- a/PCbuild/bsddb_patch.txt +++ /dev/null @@ -1,36 +0,0 @@ -This patch is against Sleepycat's db-4.0.14 release. It's not on the -Sleepycat site. It fixes cases of database corruption Barry (Warsaw) -was seeing, and Barry got it from Sleepycat. - -*** db/db_reclaim.c.orig 2002/04/05 16:16:17 11.22 ---- db/db_reclaim.c 2002/04/10 18:53:13 11.23 -*************** -*** 195,202 **** - dbp->log_fileid, p->pgno, &LSN(meta), - PGNO_BASE_MD, &ldbt, meta->free)) != 0) - goto err; -- - LSN(p) = LSN(meta); - if ((ret = - __db_pg_alloc_log(dbp->dbenv, - param->dbc->txn, &LSN(meta), 0, ---- 195,202 ---- - dbp->log_fileid, p->pgno, &LSN(meta), - PGNO_BASE_MD, &ldbt, meta->free)) != 0) - goto err; - LSN(p) = LSN(meta); -+ - if ((ret = - __db_pg_alloc_log(dbp->dbenv, - param->dbc->txn, &LSN(meta), 0, -*************** -*** 206,211 **** ---- 206,213 ---- - (void)__TLPUT(param->dbc, metalock); - return (ret); - } -+ LSN(p) = LSN(meta); -+ - if ((ret = mpf->put(mpf, - (PAGE *)meta, DB_MPOOL_DIRTY)) != 0) { - (void)__TLPUT(param->dbc, metalock); diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt index b6cd15c..0d7dc39 100644 --- a/PCbuild/readme.txt +++ b/PCbuild/readme.txt @@ -163,30 +163,27 @@ bz2 _bsddb - XXX The Sleepycat release we use will probably change before - XXX 2.3a1. - Go to Sleepycat's patches page: - http://www.sleepycat.com/update/index.html - and download - 4.0.14.zip - from the download page. The file name is db-4.0.14.zip. Unpack into - dist\db-4.0.14 + Go to Sleepycat's download page: + http://www.sleepycat.com/download/ - Apply the patch file bsddb_patch.txt in this (PCbuild) directory - against the file - dist\db-4.0.14\db\db_reclaim.c + and download version 4.1.25. The file name is db-4.1.25.NC.zip. + XXX with or without strong cryptography? I picked "without". - Go to - http://www.sleepycat.com/docs/ref/build_win/intro.html - and follow the instructions for building the Sleepycat software. - Build the Release version. - NOTE: The instructions are for a later release of the software, - so use your imagination. Berkeley_DB.dsw in this release was - also pre-MSVC6, so you'll be prompted to upgrade the format (say - yes, of course). Choose configuration "db_buildall - Win32 Release", - and build db_buildall.exe. - - XXX We're actually linking against Release_static\libdb40s.lib. + Unpack into + dist\db-4.1.25 + + [If using WinZip to unpack the db-4.1.25.NC distro, that requires + renaming the directory (to remove ".NC") after unpacking. + ] + + Open + dist\db-4.1.25\docs\index.html + + and follow the Windows instructions for building the Sleepycat + software. Note that Berkeley_DB.dsw is in the build_win32 subdirectory. + Build the Release version ("build_all -- Win32 Release"). + + XXX We're actually linking against Release_static\libdb41s.lib. XXX This yields the following warnings: """ Compiling... @@ -201,6 +198,31 @@ _bsddb.pyd - 0 error(s), 4 warning(s) """ XXX This isn't encouraging, but I don't know what to do about it. + To run extensive tests, pass "-u bsddb" to regrtest.py. test_bsddb3.py + is then enabled. Running in verbose mode may be helpful. + + XXX The test_bsddb3 tests don't always pass, on Windows (according to + XXX me) or on Linux (according to Barry). I had much better luck + XXX on Win2K than on Win98SE. The common failure mode across platforms + XXX is + XXX DBAgainError: (11, 'Resource temporarily unavailable -- unable + XXX to join the environment') + XXX + XXX and it appears timing-dependent. On Win2K I also saw this once: + XXX + XXX test02_SimpleLocks (bsddb.test.test_thread.HashSimpleThreaded) ... + XXX Exception in thread reader 1: + XXX Traceback (most recent call last): + XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap + XXX self.run() + XXX File "C:\Code\python\lib\threading.py", line 399, in run + XXX apply(self.__target, self.__args, self.__kwargs) + XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in + XXX readerThread + XXX rec = c.next() + XXX DBLockDeadlockError: (-30996, 'DB_LOCK_DEADLOCK: Locker killed + XXX to resolve a deadlock') + _ssl Python wrapper for the secure sockets library. -- cgit v0.12