blob: df6f4722eecb56ce2b8d0dc473aa44e25970eab7 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001rpm/python: The RPM5 API requires a hdrNum to be passed in
2
3The former behavior of passing in -1 as the hdrNum resulting in erase
4operations that did not complete, but also did not error. Changing to
5using the header instance resolves this problem.
6
7Upstream-Status: Pending
8
9Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
10
11Index: rpm-5.4.15/python/rpmts-py.c
12===================================================================
13--- rpm-5.4.15.orig/python/rpmts-py.c
14+++ rpm-5.4.15/python/rpmts-py.c
15@@ -241,12 +241,19 @@ static PyObject *
16 rpmts_AddErase(rpmtsObject * s, PyObject * args)
17 {
18 Header h;
19+ uint32_t hdrNum;
20
21 if (!PyArg_ParseTuple(args, "O&:AddErase", hdrFromPyObject, &h))
22 return NULL;
23
24-SPEW((stderr, "*** %s(%p,%p) ts %p\n", __FUNCTION__, s, h, s->ts));
25+ hdrNum = headerGetInstance(h);
26+
27+SPEW((stderr, "*** %s(%p,%p) ts %p hdrNum %ld\n", __FUNCTION__, s, h, s->ts, hdrNum));
28+#ifdef REFERENCE /* this doesn't work, RPM5 requires a unique hdrNum */
29 return PyBool_FromLong(rpmtsAddEraseElement(s->ts, h, -1) == 0);
30+#else
31+ return PyBool_FromLong(rpmtsAddEraseElement(s->ts, h, hdrNum) == 0);
32+#endif
33 }
34
35 static int