--- abrt-2.0.8/src/daemon/Makefile.am.0011~ 2011-12-15 13:39:13.000000000 +0100 +++ abrt-2.0.8/src/daemon/Makefile.am 2012-03-11 21:28:24.900043460 +0100 @@ -84,6 +84,7 @@ abrt_action_save_package_data_CPPFLAGS = -I$(srcdir)/../include \ -I$(srcdir)/../lib \ -DCONF_DIR=\"$(CONF_DIR)\" \ + $(RPM_CFLAGS) \ $(GLIB_CFLAGS) \ $(LIBREPORT_CFLAGS) \ -D_GNU_SOURCE \ --- abrt-2.8.2/src/daemon/rpm.c.orig 2016-07-08 09:49:44.000000000 +0200 +++ abrt-2.8.2/src/daemon/rpm.c 2016-08-03 20:51:03.649708165 +0200 @@ -22,10 +22,10 @@ #include "rpm.h" #ifdef HAVE_LIBRPM -#include -#include -#include -#include +#include +#include +#include +#include #endif /** @@ -62,7 +62,6 @@ void rpm_init() void rpm_destroy() { /* Mirroring the order of deinit calls in rpm-4.11.1/lib/poptALL.c::rpmcliFini() */ - rpmFreeCrypto(); rpmFreeMacros(NULL); rpmFreeRpmrc(); @@ -102,7 +102,7 @@ } uint8_t keyID[8]; -#if 0 +#if 1 if (pgpPubkeyFingerprint(pkt, pklen, keyID) == 0) #else if (pgpPubkeyKeyID(pkt, pklen, keyID) == 0) @@ -119,13 +118,20 @@ char *rpm_get_fingerprint(const char *pk const char *errmsg = NULL; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pkg, 0); - Header header = rpmdbNextIterator(iter); + rpmmi iter = rpmtsInitIterator(ts, RPMTAG_NAME, pkg, 0); + Header header = rpmmiNext(iter); if (!header) goto error; - pgpsig = headerFormat(header, "%|SIGGPG?{%{SIGGPG:pgpsig}}:{%{SIGPGP:pgpsig}}|", &errmsg); + pgpsig = headerSprintf( + header, + "%|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:" + "{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|", + NULL, + NULL, + &errmsg); + if (!pgpsig && errmsg) { log_notice("cannot get siggpg:pgpsig. reason: %s", errmsg); @@ -138,8 +144,8 @@ char *rpm_get_fingerprint(const char *pk error: free(pgpsig); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return fingerprint; } @@ -156,8 +162,8 @@ bool CheckHash(const char* pPackage, con { bool ret = true; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0); - Header header = rpmdbNextIterator(iter); + rpmmi iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0); + Header header = rpmmiNext(iter); if (header == NULL) goto error; @@ -177,14 +183,14 @@ bool CheckHash(const char* pPackage, con } rpmfiFree(fi); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } */ #ifdef HAVE_LIBRPM -static int rpm_query_file(rpmts *ts, rpmdbMatchIterator *iter, Header *header, +static int rpm_query_file(rpmts *ts, rpmmi *iter, Header *header, const char *filename, const char *rootdir_or_NULL) { const char *queryname = filename; @@ -191,11 +197,7 @@ static int rpm_query_file(rpmts *ts, rpm *ts = rpmtsCreate(); if (rootdir_or_NULL) { - if (rpmtsSetRootDir(*ts, rootdir_or_NULL) != 0) - { - rpmtsFree(*ts); - return -1; - } + rpmtsSetRootDir(*ts, rootdir_or_NULL); unsigned len = strlen(rootdir_or_NULL); /* remove 'chroot' prefix */ @@ -204,12 +206,12 @@ static int rpm_query_file(rpmts *ts, rpm } *iter = rpmtsInitIterator(*ts, RPMTAG_BASENAMES, queryname, 0); - *header = rpmdbNextIterator(*iter); + *header = rpmmiNext(*iter); if (!(*header) && rootdir_or_NULL) { - rpmdbFreeIterator(*iter); - rpmtsFree(*ts); + *iter = rpmmiFree(*iter); + *ts = rpmtsFree(*ts); return rpm_query_file(ts, iter, header, filename, NULL); } @@ -222,8 +224,8 @@ char* rpm_get_component(const char *file char *ret = NULL; char *srpm = NULL; rpmts ts; - rpmdbMatchIterator iter; - Header header; + rpmmi iter = NULL; + Header header = NULL; if (rpm_query_file(&ts, &iter, &header, filename, rootdir_or_NULL) < 0) return NULL; @@ -232,7 +234,7 @@ char* rpm_get_component(const char *file goto error; const char *errmsg = NULL; - srpm = headerFormat(header, "%{SOURCERPM}", &errmsg); + srpm = headerSprintf(header, "%{SOURCERPM}", NULL, NULL, &errmsg); if (!srpm && errmsg) { error_msg("cannot get srpm. reason: %s", errmsg); @@ -243,8 +245,8 @@ char* rpm_get_component(const char *file free(srpm); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } @@ -252,7 +254,7 @@ char* rpm_get_component(const char *file static inline int pkg_add_##name(Header header, struct pkg_envra *p) \ { \ const char *errmsg = NULL; \ - p->p_##name = headerFormat(header, "%{"#name"}", &errmsg); \ + p->p_##name = headerSprintf(header, "%{"#name"}", NULL, NULL, &errmsg); \ if (p->p_##name || !errmsg) \ return 0; \ \ @@ -272,8 +274,8 @@ pkg_add_id(vendor); struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL) { rpmts ts; - rpmdbMatchIterator iter; - Header header; + rpmmi iter = NULL; + Header header = NULL; struct pkg_envra *p = NULL; @@ -320,15 +322,15 @@ struct pkg_envra *rpm_get_package_nvr(co p->p_nvr = xasprintf("%s-%s-%s", p->p_name, p->p_version, p->p_release); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return p; error: free_pkg_envra(p); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return NULL; } --- abrt-2.0.15/src/plugins/bodhi.c~ 2012-10-05 08:30:34.000000000 +0200 +++ abrt-2.0.15/src/plugins/bodhi.c 2012-10-15 15:54:12.298943477 +0200 @@ -331,24 +331,23 @@ char *nvr = NULL; rpmts ts = rpmtsCreate(); - rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pkg_name, 0); - Header header = rpmdbNextIterator(iter); + rpmmi iter = rpmtsInitIterator(ts, RPMTAG_NAME, pkg_name, 0); + Header header = rpmmiNext(iter); if (!header) goto error; const char *errmsg = NULL; - nvr = headerFormat(header, "%{name}-%{version}-%{release}", &errmsg); + nvr = headerSprintf(header, "%{name}-%{version}-%{release}", NULL, NULL, &errmsg); if (!nvr && errmsg) error_msg("cannot get nvr. reason: %s", errmsg); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); rpmFreeRpmrc(); - rpmFreeCrypto(); rpmFreeMacros(NULL); return nvr;