]> granicus.if.org Git - python/commitdiff
Move Windows Python away from bsddb 1.85 and toward Sleepycat's latest.
authorTim Peters <tim.peters@gmail.com>
Fri, 22 Nov 2002 20:00:34 +0000 (20:00 +0000)
committerTim Peters <tim.peters@gmail.com>
Fri, 22 Nov 2002 20:00:34 +0000 (20:00 +0000)
The bsddb subproject is gone.
The _bsddb subproject is new.
There are problems here, but I'm out of time to work on this now.  If
anyone can address an XXX comment or two in readme.txt, please do!

Lib/test/regrtest.py
PCbuild/_bsddb.dsp [moved from PCbuild/bsddb.dsp with 62% similarity]
PCbuild/bsddb_patch.txt [new file with mode: 0644]
PCbuild/pcbuild.dsw
PCbuild/readme.txt

index 652432c98644648c3cee59499dd08e9fdf96c374..db81424156da4f742f77b33f2a631cc7cc8a9a4e 100755 (executable)
@@ -508,6 +508,7 @@ _expectations = {
     'win32':
         """
         test_al
+        test_bsddb3
         test_cd
         test_cl
         test_commands
similarity index 62%
rename from PCbuild/bsddb.dsp
rename to PCbuild/_bsddb.dsp
index 75fe56222e4524ca80d3bd24e1267a37a6179071..3748d3a1b805b94e530ba081e6c722776cb8d778 100644 (file)
-# Microsoft Developer Studio Project File - Name="bsddb" - Package Owner=<4>\r
-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** DO NOT EDIT **\r
-\r
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\r
-\r
-CFG=bsddb - Win32 Release\r
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
-!MESSAGE use the Export Makefile command and run\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "bsddb.mak".\r
-!MESSAGE \r
-!MESSAGE You can specify a configuration when running NMAKE\r
-!MESSAGE by defining the macro CFG on the command line. For example:\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "bsddb.mak" CFG="bsddb - Win32 Release"\r
-!MESSAGE \r
-!MESSAGE Possible choices for configuration are:\r
-!MESSAGE \r
-!MESSAGE "bsddb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")\r
-!MESSAGE "bsddb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")\r
-!MESSAGE \r
-\r
-# Begin Project\r
-# PROP AllowPerConfigDependencies 0\r
-# PROP Scc_ProjName "bsddb"\r
-# PROP Scc_LocalPath ".."\r
-CPP=cl.exe\r
-MTL=midl.exe\r
-RSC=rc.exe\r
-\r
-!IF  "$(CFG)" == "bsddb - Win32 Release"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "Release"\r
-# PROP BASE Intermediate_Dir "Release"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "."\r
-# PROP Intermediate_Dir "x86-temp-release\bsddb"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-F90=df.exe\r
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "..\Include" /I "..\PC" /I "..\..\bsddb\include" /I "..\..\bsddb\port\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c\r
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32\r
-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
-# ADD RSC /l 0x409 /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# 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\r
-# 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 ..\..\bsddb\port\win32\db.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./bsddb.pyd"\r
-# SUBTRACT LINK32 /pdb:none\r
-\r
-!ELSEIF  "$(CFG)" == "bsddb - Win32 Debug"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "Debug"\r
-# PROP BASE Intermediate_Dir "Debug"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "."\r
-# PROP Intermediate_Dir "x86-temp-debug\bsddb"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-F90=df.exe\r
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Include" /I "..\PC" /I "..\..\bsddb\include" /I "..\..\bsddb\port\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c\r
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32\r
-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
-# ADD RSC /l 0x409 /d "_DEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# 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\r
-# 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 ..\..\bsddb\port\win32\db.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"MSVCRT" /out:"./bsddb_d.pyd" /pdbtype:sept\r
-# SUBTRACT LINK32 /pdb:none\r
-\r
-!ENDIF \r
-\r
-# Begin Target\r
-\r
-# Name "bsddb - Win32 Release"\r
-# Name "bsddb - Win32 Debug"\r
-# Begin Source File\r
-\r
-SOURCE=..\Modules\bsddbmodule.c\r
-\r
-!IF  "$(CFG)" == "bsddb - Win32 Release"\r
-\r
-# ADD CPP /I "..\..\bsddb\PORT\win32\include" /I "..\..\bsddb\PORT\include" /D "__DBINTERFACE_PRIVATE"\r
-# SUBTRACT CPP /X /I "..\..\bsddb\port\include"\r
-\r
-!ELSEIF  "$(CFG)" == "bsddb - Win32 Debug"\r
-\r
-# ADD CPP /I "..\..\bsddb\PORT\win32\include" /I "..\..\bsddb\PORT\include" /D "__DBINTERFACE_PRIVATE"\r
-# SUBTRACT CPP /I "..\..\bsddb\port\include"\r
-\r
-!ENDIF \r
-\r
-# End Source File\r
-# End Target\r
-# End Project\r
+# Microsoft Developer Studio Project File - Name="_bsddb" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=_bsddb - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "_bsddb.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "_bsddb.mak" CFG="_bsddb - Win32 Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "_bsddb - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "_bsddb - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName "_bsddb"
+# PROP Scc_LocalPath ".."
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "_bsddb - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "."
+# PROP Intermediate_Dir "x86-temp-release\_bsddb"
+# PROP Ignore_Export_Lib 0
+# 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 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"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# 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\libdb40.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /out:"./_bsddb.pyd"
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF  "$(CFG)" == "_bsddb - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "."
+# PROP Intermediate_Dir "x86-temp-debug\_bsddb"
+# PROP Ignore_Export_Lib 0
+# 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 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"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# 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\libdb40.lib /nologo /base:"0x1e180000" /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"MSVCRT" /out:"./_bsddb_d.pyd" /pdbtype:sept
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF 
+
+# Begin Target
+
+# Name "_bsddb - Win32 Release"
+# Name "_bsddb - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\Modules\_bsddb.c
+# End Source File
+# End Target
+# End Project
diff --git a/PCbuild/bsddb_patch.txt b/PCbuild/bsddb_patch.txt
new file mode 100644 (file)
index 0000000..d4c51bc
--- /dev/null
@@ -0,0 +1,36 @@
+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);
index 1d16d0825e879ced221d98ccdca7634dd5571aab..856b44ca2935347420c45f8f96d309aefc383420 100644 (file)
@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
 \r
 ###############################################################################\r
 \r
-Project: "_socket"=.\_socket.dsp - Package Owner=<4>\r
+Project: "_bsddb"=.\_bsddb.dsp - Package Owner=<4>\r
 \r
 Package=<5>\r
 {{{\r
@@ -11,14 +11,11 @@ Package=<5>
 \r
 Package=<4>\r
 {{{\r
-    Begin Project Dependency\r
-    Project_Dep_Name pythoncore\r
-    End Project Dependency\r
 }}}\r
 \r
 ###############################################################################\r
 \r
-Project: "_sre"=.\_sre.dsp - Package Owner=<4>\r
+Project: "_socket"=.\_socket.dsp - Package Owner=<4>\r
 \r
 Package=<5>\r
 {{{\r
@@ -33,7 +30,7 @@ Package=<4>
 \r
 ###############################################################################\r
 \r
-Project: "_symtable"=.\_symtable.dsp - Package Owner=<4>\r
+Project: "_sre"=.\_sre.dsp - Package Owner=<4>\r
 \r
 Package=<5>\r
 {{{\r
@@ -48,7 +45,7 @@ Package=<4>
 \r
 ###############################################################################\r
 \r
-Project: "_testcapi"=.\_testcapi.dsp - Package Owner=<4>\r
+Project: "_symtable"=.\_symtable.dsp - Package Owner=<4>\r
 \r
 Package=<5>\r
 {{{\r
@@ -63,7 +60,7 @@ Package=<4>
 \r
 ###############################################################################\r
 \r
-Project: "_tkinter"=.\_tkinter.dsp - Package Owner=<4>\r
+Project: "_testcapi"=.\_testcapi.dsp - Package Owner=<4>\r
 \r
 Package=<5>\r
 {{{\r
@@ -78,7 +75,7 @@ Package=<4>
 \r
 ###############################################################################\r
 \r
-Project: "bsddb"=.\bsddb.dsp - Package Owner=<4>\r
+Project: "_tkinter"=.\_tkinter.dsp - Package Owner=<4>\r
 \r
 Package=<5>\r
 {{{\r
index f6e8fcd6dd7c539793437cee00113464effaa9fe..8771f034e4368e294ed9cc6554a6753b776cd39d 100644 (file)
@@ -160,19 +160,38 @@ bz2
     project links in.
 
 
+_bsddb
+    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
+
+    Apply the patch file bsddb_patch.txt in this (PCbuild) directory
+    against the file
+        dist\db-4.0.14\db\db_reclaim.c
+
+    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.
+
+    XXX You have to copy
+    XXX     dist\db-4.0.14\build_win32\Release\libdb40.dll
+    XXX into PCbuild (or elsewhere on your path) before the tests
+    XXX will run.
+
+    XXX A debug-mode build blows up when running this, presumably because
+    XXX I'm mixing debug-mode MS stuff with Sleepycat's release-mode
+    XXX DLL.  This gives me a headache.  I would *like* to, as the old
+    XXX bsddb 1.85 project apparently managed to do, link the Berkeley
+    XXX DLL into the guts of our _bsddb.pyd.  I don't know how to.
+
+    XXX The installer needs to be changed accordingly.
 
-bsddb
-    Python wrapper for the BSD database 1.85.  Requires db.1.85.win32.zip,
-    from the "bsd db" link at
-        http://www.nightmare.com/software.html
-    Unpack into dist\bsddb.
-    You then need to compile it:  cd to dist\bsddb\Port\win32, and run
-        nmake -f makefile_nt.msc
-    This builds bsddb\Port\win32\db.lib, which the MSVC project links in.
-    Note that if you're running Win9X, you'll need to run vcvars32.bat
-    before running nmake (this batch file is in your MSVC installation).
-    TODO:  make this work like zlib (in particular, MSVC runs the prelink
-    step in an enviroment that already has the correct envars set up).
+    XXX The Sleepycat release we use will probably change before
+    XXX 2.3a1.
 
 
 YOUR OWN EXTENSION DLLs