1 --- satyr-0.3/lib/rpm.c.orig 2013-03-25 15:07:04.000000000 +0100
2 +++ satyr-0.3/lib/rpm.c 2013-04-06 15:46:04.134714198 +0200
7 -#include <rpm/rpmlib.h>
8 +#include <rpm/rpmtag.h>
10 +#include <rpm/rpmio.h>
11 +#include <rpm/rpmrc.h>
12 #include <rpm/rpmts.h>
13 -#include <rpm/rpmtd.h>
14 -#include <rpm/header.h>
22 - rpmtd tag_data = rpmtdNew();
23 - int success = headerGet(header,
28 + memset(&h, 0, sizeof(h));
31 + int success = headerGet(header, &h, 0);
36 - const char *str = rpmtdGetString(tag_data);
37 + const char *str = (h.t == RPM_STRING_TYPE) ? h.p.str :
38 + (((h.t == RPM_STRING_ARRAY_TYPE) || (h.t == RPM_I18NSTRING_TYPE)) ? h.p.argv[0] : NULL);
39 *result = (str ? sr_strdup(str) : NULL);
40 - rpmtdFree(tag_data);
48 - rpmtd tag_data = rpmtdNew();
49 - int success = headerGet(header,
54 + memset(&h, 0, sizeof(h));
57 + int success = headerGet(header, &h, 0);
62 - uint32_t *num = rpmtdGetUint32(tag_data);
63 + if (h.t != RPM_UINT32_TYPE)
65 + uint32_t *num = h.p.ui32p;
69 - rpmtdFree(tag_data);
76 rpmts ts = rpmtsCreate();
77 - rpmdbMatchIterator iter = rpmtsInitIterator(ts,
78 + rpmmi iter = rpmtsInitIterator(ts,
83 struct sr_rpm_package *result = NULL;
85 - while ((header = rpmdbNextIterator(iter)))
86 + while ((header = rpmmiNext(iter)))
88 struct sr_rpm_package *package = header_to_rpm_info(header,
91 result = sr_rpm_package_append(result, package);
94 - rpmdbFreeIterator(iter);
102 rpmts ts = rpmtsCreate();
103 - rpmdbMatchIterator iter = rpmtsInitIterator(ts,
104 + rpmmi iter = rpmtsInitIterator(ts,
109 struct sr_rpm_package *result = NULL;
111 - while ((header = rpmdbNextIterator(iter)))
112 + while ((header = rpmmiNext(iter)))
114 struct sr_rpm_package *package = header_to_rpm_info(header,
117 result = sr_rpm_package_append(result, package);
120 - rpmdbFreeIterator(iter);