r2177 - trunk/Python

randy at linuxfromscratch.org randy at linuxfromscratch.org
Thu Feb 18 08:03:53 PST 2010


Author: randy
Date: 2010-02-18 09:03:53 -0700 (Thu, 18 Feb 2010)
New Revision: 2177

Added:
   trunk/Python/Python-2.6.4-bdb_4.8-1.patch
Log:
Python patch to provide support for Berkeley-DB-4.8.x

Added: trunk/Python/Python-2.6.4-bdb_4.8-1.patch
===================================================================
--- trunk/Python/Python-2.6.4-bdb_4.8-1.patch	                        (rev 0)
+++ trunk/Python/Python-2.6.4-bdb_4.8-1.patch	2010-02-18 16:03:53 UTC (rev 2177)
@@ -0,0 +1,129 @@
+Submitted By:            Randy McMurchy <randy_at_linuxfromscratch_dot_org>
+Date:                    2010-02-18
+Initial Package Version: 2.6.4
+Upstream Status:         Already applied upstream
+Origin:                  Upstream (http://bugs.python.org/issue6949)
+Description:             Provides support for Berkeley-DB-4.8.x
+
+
+diff -Naur Python-2.6.4-orig/Modules/_bsddb.c Python-2.6.4/Modules/_bsddb.c
+--- Python-2.6.4-orig/Modules/_bsddb.c	2008-09-23 18:54:08.000000000 +0000
++++ Python-2.6.4/Modules/_bsddb.c	2010-02-18 15:48:56.000000000 +0000
+@@ -215,6 +215,10 @@
+ #define	DB_BUFFER_SMALL		ENOMEM
+ #endif
+ 
++#if (DBVER < 48)
++#define DB_GID_SIZE DB_XIDDATASIZE
++#endif
++
+ 
+ /* --------------------------------------------------------------------- */
+ /* Structure definitions */
+@@ -4501,7 +4505,11 @@
+     DBTxnObject *txn;
+ #define PREPLIST_LEN 16
+     DB_PREPLIST preplist[PREPLIST_LEN];
++#if (DBVER < 48)
+     long retp;
++#else
++    u_int32_t retp;
++#endif
+ 
+     CHECK_ENV_NOT_CLOSED(self);
+ 
+@@ -4522,7 +4530,7 @@
+         flags=DB_NEXT;  /* Prepare for next loop pass */
+         for (i=0; i<retp; i++) {
+             gid=PyBytes_FromStringAndSize((char *)(preplist[i].gid),
+-                                DB_XIDDATASIZE);
++                                DB_GID_SIZE);
+             if (!gid) {
+                 Py_DECREF(list);
+                 return NULL;
+@@ -5047,6 +5055,7 @@
+ }
+ 
+ 
++#if (DBVER < 48)
+ static PyObject*
+ DBEnv_set_rpc_server(DBEnvObject* self, PyObject* args, PyObject* kwargs)
+ {
+@@ -5068,6 +5077,7 @@
+     RETURN_IF_ERR();
+     RETURN_NONE();
+ }
++#endif
+ 
+ static PyObject*
+ DBEnv_set_verbose(DBEnvObject* self, PyObject* args)
+@@ -5947,9 +5957,9 @@
+     if (!PyArg_ParseTuple(args, "s#:prepare", &gid, &gid_size))
+         return NULL;
+ 
+-    if (gid_size != DB_XIDDATASIZE) {
++    if (gid_size != DB_GID_SIZE) {
+         PyErr_SetString(PyExc_TypeError,
+-                        "gid must be DB_XIDDATASIZE bytes long");
++                        "gid must be DB_GID_SIZE bytes long");
+         return NULL;
+     }
+ 
+@@ -6539,8 +6549,10 @@
+ #endif
+     {"set_get_returns_none",(PyCFunction)DBEnv_set_get_returns_none, METH_VARARGS},
+     {"txn_recover",     (PyCFunction)DBEnv_txn_recover,       METH_NOARGS},
++#if (DBVER < 48)
+     {"set_rpc_server",  (PyCFunction)DBEnv_set_rpc_server,
+         METH_VARARGS||METH_KEYWORDS},
++#endif
+     {"set_verbose",     (PyCFunction)DBEnv_set_verbose,       METH_VARARGS},
+ #if (DBVER >= 42)
+     {"get_verbose",     (PyCFunction)DBEnv_get_verbose,       METH_VARARGS},
+@@ -7089,6 +7101,7 @@
+     ADD_INT(d, DB_MAX_PAGES);
+     ADD_INT(d, DB_MAX_RECORDS);
+ 
++#if (DBVER < 48)
+ #if (DBVER >= 42)
+     ADD_INT(d, DB_RPCCLIENT);
+ #else
+@@ -7096,7 +7109,11 @@
+     /* allow apps to be written using DB_RPCCLIENT on older Berkeley DB */
+     _addIntToDict(d, "DB_RPCCLIENT", DB_CLIENT);
+ #endif
++#endif
++
++#if (DBVER < 48)
+     ADD_INT(d, DB_XA_CREATE);
++#endif
+ 
+     ADD_INT(d, DB_CREATE);
+     ADD_INT(d, DB_NOMMAP);
+@@ -7113,7 +7130,13 @@
+     ADD_INT(d, DB_INIT_TXN);
+     ADD_INT(d, DB_JOINENV);
+ 
++#if (DBVER >= 48)
++    ADD_INT(d, DB_GID_SIZE);
++#else
+     ADD_INT(d, DB_XIDDATASIZE);
++    /* Allow new code to work in old BDB releases */
++    _addIntToDict(d, "DB_GID_SIZE", DB_XIDDATASIZE);
++#endif
+ 
+     ADD_INT(d, DB_RECOVER);
+     ADD_INT(d, DB_RECOVER_FATAL);
+
+diff -Naur Python-2.6.4-orig/setup.py Python-2.6.4/setup.py
+--- Python-2.6.4-orig/setup.py	2009-10-08 09:48:32.000000000 +0000
++++ Python-2.6.4/setup.py	2010-02-18 15:48:56.000000000 +0000
+@@ -705,7 +705,7 @@
+         # a release.  Most open source OSes come with one or more
+         # versions of BerkeleyDB already installed.
+ 
+-        max_db_ver = (4, 7)
++        max_db_ver = (4, 8)
+         min_db_ver = (3, 3)
+         db_setup_debug = False   # verbose debug prints from this script?
+ 




More information about the patches mailing list