Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 1 | rpm/python: The RPM5 API requires a hdrNum to be passed in |
| 2 | |
| 3 | The former behavior of passing in -1 as the hdrNum resulting in erase |
| 4 | operations that did not complete, but also did not error. Changing to |
| 5 | using the header instance resolves this problem. |
| 6 | |
| 7 | Upstream-Status: Pending |
| 8 | |
| 9 | Signed-off-by: Mark Hatle <mark.hatle@windriver.com> |
| 10 | |
| 11 | Index: 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 |