feaea24
diff -ru Python-2.5.2-orig/Modules/_bsddb.c Python-2.5.2/Modules/_bsddb.c
feaea24
--- Python-2.5.2-orig/Modules/_bsddb.c	2008-02-03 02:26:23.000000000 -0500
feaea24
+++ Python-2.5.2/Modules/_bsddb.c	2008-09-24 17:01:50.000000000 -0400
feaea24
@@ -5335,11 +5335,13 @@
feaea24
 DBEnv_getattr(DBEnvObject* self, char *name)
feaea24
 {
feaea24
     if (!strcmp(name, "db_home")) {
feaea24
+	const char *home = NULL;
feaea24
         CHECK_ENV_NOT_CLOSED(self);
feaea24
-        if (self->db_env->db_home == NULL) {
feaea24
+	self->db_env->get_home(self->db_env, &home;;
feaea24
+        if (home == NULL) {
feaea24
             RETURN_NONE();
feaea24
         }
feaea24
-        return PyString_FromString(self->db_env->db_home);
feaea24
+        return PyString_FromString(home);
feaea24
     }
feaea24
 
feaea24
     return Py_FindMethod(DBEnv_methods, (PyObject* )self, name);
feaea24
@@ -5961,22 +5963,37 @@
feaea24
     ADD_INT(d, DB_TIME_NOTGRANTED);
feaea24
     ADD_INT(d, DB_TXN_NOT_DURABLE);
feaea24
     ADD_INT(d, DB_TXN_WRITE_NOSYNC);
feaea24
-    ADD_INT(d, DB_LOG_AUTOREMOVE);
feaea24
-    ADD_INT(d, DB_DIRECT_LOG);
feaea24
     ADD_INT(d, DB_DIRECT_DB);
feaea24
     ADD_INT(d, DB_INIT_REP);
feaea24
     ADD_INT(d, DB_ENCRYPT);
feaea24
     ADD_INT(d, DB_CHKSUM);
feaea24
 #endif
feaea24
 
feaea24
+#if (DBVER >= 42) && (DBVER < 47)
feaea24
+    ADD_INT(d, DB_LOG_AUTOREMOVE);
feaea24
+    ADD_INT(d, DB_DIRECT_LOG);
feaea24
+#endif
feaea24
+
feaea24
+#if (DBVER >= 47)
feaea24
+    ADD_INT(d, DB_LOG_DIRECT);
feaea24
+    ADD_INT(d, DB_LOG_DSYNC);
feaea24
+    ADD_INT(d, DB_LOG_IN_MEMORY);
feaea24
+    ADD_INT(d, DB_LOG_AUTO_REMOVE);
feaea24
+    ADD_INT(d, DB_LOG_ZERO);
feaea24
+#endif
feaea24
+
feaea24
 #if (DBVER >= 43)
feaea24
-    ADD_INT(d, DB_LOG_INMEMORY);
feaea24
     ADD_INT(d, DB_BUFFER_SMALL);
feaea24
     ADD_INT(d, DB_SEQ_DEC);
feaea24
     ADD_INT(d, DB_SEQ_INC);
feaea24
     ADD_INT(d, DB_SEQ_WRAP);
feaea24
 #endif
feaea24
 
feaea24
+#if (DBVER >= 43) && (DBVER < 47)
feaea24
+    ADD_INT(d, DB_LOG_INMEMORY);
feaea24
+    ADD_INT(d, DB_DSYNC_LOG);
feaea24
+#endif
feaea24
+
feaea24
 #if (DBVER >= 41)
feaea24
     ADD_INT(d, DB_ENCRYPT_AES);
feaea24
     ADD_INT(d, DB_AUTO_COMMIT);
feaea24
diff -ru Python-2.5.2-orig/setup.py Python-2.5.2/setup.py
feaea24
--- Python-2.5.2-orig/setup.py	2008-09-24 17:01:02.000000000 -0400
feaea24
+++ Python-2.5.2/setup.py	2008-09-24 17:03:05.000000000 -0400
feaea24
@@ -608,12 +608,12 @@
feaea24
         # a release.  Most open source OSes come with one or more
feaea24
         # versions of BerkeleyDB already installed.
feaea24
 
feaea24
-        max_db_ver = (4, 5)
feaea24
+        max_db_ver = (4, 7)
feaea24
         # NOTE: while the _bsddb.c code links against BerkeleyDB 4.6.x
feaea24
         # we leave that version disabled by default as it has proven to be
feaea24
         # quite a buggy library release on many platforms.
feaea24
         min_db_ver = (3, 3)
feaea24
-        db_setup_debug = False   # verbose debug prints from this script?
feaea24
+        db_setup_debug = True   # verbose debug prints from this script?
feaea24
 
feaea24
         # construct a list of paths to look for the header file in on
feaea24
         # top of the normal inc_dirs.