- replace our patch to compile against db4.8 with a patch from upstream
    (patch 53, from r78974); update patch 54 since part of it is now in
    that upstream patch
- update patch 110 so that it still applies in the face of upstream r78380
This commit is contained in:
dmalcolm 2010-03-20 04:12:53 +00:00
parent f5df1f8343
commit 912b4112f7
6 changed files with 186 additions and 26 deletions

View File

@ -1 +1 @@
Python-2.6.4.tar.bz2
Python-2.6.5.tar.bz2

View File

@ -9,7 +9,7 @@ diff -ur Python-2.6~/Modules/_ctypes/callbacks.c Python-2.6/Modules/_ctypes/call
- FreeClosure(self->pcl);
+ if (self->pcl_write)
+ ffi_closure_free(self->pcl_write);
PyObject_Del(self);
PyObject_GC_Del(self);
}
@@ -373,7 +373,8 @@

View File

@ -10,18 +10,4 @@ diff -up Python-2.6.4/Modules/Setup.dist.setup-db48 Python-2.6.4/Modules/Setup.d
DBINC=/usr/include/db4
DBLIB=/usr/lib
_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER)
diff -up Python-2.6.4/setup.py.setup-db48 Python-2.6.4/setup.py
--- Python-2.6.4/setup.py.setup-db48 2009-12-17 22:03:58.048015993 -0500
+++ Python-2.6.4/setup.py 2009-12-17 22:03:58.169016398 -0500
@@ -705,9 +705,9 @@ class PyBuildExt(build_ext):
# 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?
+ db_setup_debug = True # verbose debug prints from this script?
def allow_db_ver(db_ver):
"""Returns a boolean if the given BerkeleyDB version is acceptable.

167
python-2.6.5-db48.patch Normal file
View File

@ -0,0 +1,167 @@
Index: setup.py
===================================================================
--- setup.py (revision 78973)
+++ setup.py (revision 78974)
@@ -707,7 +707,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?
Index: Lib/bsddb/test/test_basics.py
===================================================================
--- Lib/bsddb/test/test_basics.py (revision 78973)
+++ Lib/bsddb/test/test_basics.py (revision 78974)
@@ -1000,11 +1000,12 @@
# # See http://bugs.python.org/issue3307
# self.assertRaises(db.DBInvalidArgError, db.DB, None, 65535)
- def test02_DBEnv_dealloc(self):
- # http://bugs.python.org/issue3885
- import gc
- self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
- gc.collect()
+ if db.version() < (4, 8) :
+ def test02_DBEnv_dealloc(self):
+ # http://bugs.python.org/issue3885
+ import gc
+ self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
+ gc.collect()
#----------------------------------------------------------------------
Index: Lib/bsddb/test/test_distributed_transactions.py
===================================================================
--- Lib/bsddb/test/test_distributed_transactions.py (revision 78973)
+++ Lib/bsddb/test/test_distributed_transactions.py (revision 78974)
@@ -35,7 +35,7 @@
db.DB_INIT_TXN | db.DB_INIT_LOG | db.DB_INIT_MPOOL |
db.DB_INIT_LOCK, 0666)
self.db = db.DB(self.dbenv)
- self.db.set_re_len(db.DB_XIDDATASIZE)
+ self.db.set_re_len(db.DB_GID_SIZE)
if must_open_db :
if db.version() > (4,1) :
txn=self.dbenv.txn_begin()
@@ -76,7 +76,7 @@
# let them be garbage collected.
for i in xrange(self.num_txns) :
txn = self.dbenv.txn_begin()
- gid = "%%%dd" %db.DB_XIDDATASIZE
+ gid = "%%%dd" %db.DB_GID_SIZE
gid = adapt(gid %i)
self.db.put(i, gid, txn=txn, flags=db.DB_APPEND)
txns.add(gid)
Index: Modules/_bsddb.c
===================================================================
--- Modules/_bsddb.c (revision 78973)
+++ Modules/_bsddb.c (revision 78974)
@@ -215,7 +215,11 @@
#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)
@@ -5949,9 +5959,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;
}
@@ -6541,8 +6551,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},
@@ -7091,6 +7103,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
@@ -7098,7 +7111,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);
@@ -7115,7 +7132,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);

View File

@ -51,8 +51,8 @@
Summary: An interpreted, interactive, object-oriented programming language
Name: %{python}
Version: 2.6.4
Release: 23%{?dist}
Version: 2.6.5
Release: 1%{?dist}
License: Python
Group: Development/Languages
Provides: python-abi = %{pybasever}
@ -246,11 +246,11 @@ Patch51: python-2.6-distutils_rpm.patch
Patch52: disable-pymalloc-on-valgrind-py26.patch
# Patch generated by jwboyer@gmail.com to compile against db-4.8, using upstream
# http://www.jcea.es/programacion/pybsddb.htm
# See https://bugzilla.redhat.com/show_bug.cgi?id=544275
Patch53: python-2.6-update-bsddb3-4.8.patch
# ...and a further patch to setup.py so that it searches for 4.8:
# Upstream patch to compile against db-4.8
# http://bugs.python.org/issue6949
# Based on http://svn.python.org/view?view=rev&revision=78974
Patch53: python-2.6.5-db48.patch
# ...and a further patch to setup.py so that it links against 4.8:
Patch54: python-2.6.4-setup-db48.patch
# Systemtap support: add statically-defined probe points
@ -481,7 +481,7 @@ rm -r Modules/zlib || exit 1
%patch51 -p1 -b .brprpm
%patch52 -p0 -b .valgrind
%patch53 -p1 -b .db48
%patch53 -p0 -b .db48
%patch54 -p1 -b .setup-db48
%if 0%{?with_systemtap}
%patch55 -p1 -b .systemtap
@ -960,6 +960,13 @@ rm -fr %{buildroot}
# payload file would be unpackaged)
%changelog
* Fri Mar 19 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-1
- update to 2.6.5: http://www.python.org/download/releases/2.6.5/
- replace our patch to compile against db4.8 with a patch from
upstream (patch 53, from r78974); update patch 54 since part of it is now in
that upstream patch
- update patch 110 so that it still applies in the face of upstream r78380
* Tue Mar 16 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-23
- fixup distutils/unixccompiler.py to remove standard library path from
rpath (patch 17)

View File

@ -1 +1 @@
fee5408634a54e721a93531aba37f8c1 Python-2.6.4.tar.bz2
6bef0417e71a1a1737ccf5750420fdb3 Python-2.6.5.tar.bz2