rpm/python: The RPM5 API requires a hdrNum to be passed in The former behavior of passing in -1 as the hdrNum resulting in erase operations that did not complete, but also did not error. Changing to using the header instance resolves this problem. Upstream-Status: Pending Signed-off-by: Mark Hatle Index: rpm-5.4.15/python/rpmts-py.c =================================================================== --- rpm-5.4.15.orig/python/rpmts-py.c +++ rpm-5.4.15/python/rpmts-py.c @@ -241,12 +241,19 @@ static PyObject * rpmts_AddErase(rpmtsObject * s, PyObject * args) { Header h; + uint32_t hdrNum; if (!PyArg_ParseTuple(args, "O&:AddErase", hdrFromPyObject, &h)) return NULL; -SPEW((stderr, "*** %s(%p,%p) ts %p\n", __FUNCTION__, s, h, s->ts)); + hdrNum = headerGetInstance(h); + +SPEW((stderr, "*** %s(%p,%p) ts %p hdrNum %ld\n", __FUNCTION__, s, h, s->ts, hdrNum)); +#ifdef REFERENCE /* this doesn't work, RPM5 requires a unique hdrNum */ return PyBool_FromLong(rpmtsAddEraseElement(s->ts, h, -1) == 0); +#else + return PyBool_FromLong(rpmtsAddEraseElement(s->ts, h, hdrNum) == 0); +#endif } static int