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 <mark.hatle@windriver.com>

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
