diff -u boost1.38-1.38.0/debian/changelog boost1.38-1.38.0/debian/changelog --- boost1.38-1.38.0/debian/changelog +++ boost1.38-1.38.0/debian/changelog @@ -1,3 +1,10 @@ +boost1.38 (1.38.0-6ubuntu6.1) karmic-proposed; urgency=low + + * Apply patch from SVN r53731 to fix the static property initialization + - patches/python2.6.4.patch (Boost SVN r53731) (LP: #457688) + + -- Andrew Mitchell Wed, 11 Nov 2009 16:55:00 +1300 + boost1.38 (1.38.0-6ubuntu6) karmic; urgency=low * Rebuild with updated toolchain for armel. diff -u boost1.38-1.38.0/debian/patches/series boost1.38-1.38.0/debian/patches/series --- boost1.38-1.38.0/debian/patches/series +++ boost1.38-1.38.0/debian/patches/series @@ -15,0 +16 @@ +python2.6.4.patch only in patch2: unchanged: --- boost1.38-1.38.0.orig/debian/patches/python2.6.4.patch +++ boost1.38-1.38.0/debian/patches/python2.6.4.patch @@ -0,0 +1,67 @@ +Index: boost1.38-1.38.0/libs/python/src/object/class.cpp +=================================================================== +--- boost1.38-1.38.0.orig/libs/python/src/object/class.cpp 2009-11-11 16:50:27.000000000 +1300 ++++ boost1.38-1.38.0/libs/python/src/object/class.cpp 2009-11-11 16:50:55.000000000 +1300 +@@ -67,8 +67,44 @@ + PyObject *prop_set; + PyObject *prop_del; + PyObject *prop_doc; ++ int getter_doc; + } propertyobject; + ++ // Copied from Python source and removed the part for setting docstring, ++ // since we don't have a setter for __doc__ and trying to set it will ++ // cause the init fail. ++ static int property_init(PyObject *self, PyObject *args, PyObject *kwds) ++ { ++ PyObject *get = NULL, *set = NULL, *del = NULL, *doc = NULL; ++ static char *kwlist[] = {"fget", "fset", "fdel", "doc", 0}; ++ propertyobject *prop = (propertyobject *)self; ++ ++ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOOO:property", ++ kwlist, &get, &set, &del, &doc)) ++ return -1; ++ ++ if (get == Py_None) ++ get = NULL; ++ if (set == Py_None) ++ set = NULL; ++ if (del == Py_None) ++ del = NULL; ++ ++ Py_XINCREF(get); ++ Py_XINCREF(set); ++ Py_XINCREF(del); ++ Py_XINCREF(doc); ++ ++ prop->prop_get = get; ++ prop->prop_set = set; ++ prop->prop_del = del; ++ prop->prop_doc = doc; ++ prop->getter_doc = 0; ++ ++ return 0; ++ } ++ ++ + static PyObject * + static_data_descr_get(PyObject *self, PyObject * /*obj*/, PyObject * /*type*/) + { +@@ -109,7 +145,7 @@ + PyObject_HEAD_INIT(0)//&PyType_Type) + 0, + "Boost.Python.StaticProperty", +- PyType_Type.tp_basicsize, ++ sizeof(propertyobject), + 0, + 0, /* tp_dealloc */ + 0, /* tp_print */ +@@ -143,7 +179,7 @@ + static_data_descr_get, /* tp_descr_get */ + static_data_descr_set, /* tp_descr_set */ + 0, /* tp_dictoffset */ +- 0, /* tp_init */ ++ property_init, /* tp_init */ + 0, /* tp_alloc */ + 0, // filled in with type_new /* tp_new */ + 0, // filled in with __PyObject_GC_Del /* tp_free */