--- 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.1.7/src/daemon/rpm.c.orig 2013-09-10 14:11:13.000000000 +0200 +++ abrt-2.1.7/src/daemon/rpm.c 2013-09-27 19:07:08.004722755 +0200 @@ -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(); @@ -104,13 +103,20 @@ int rpm_chk_fingerprint(const char* pkg) 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) { VERB1 log("cannot get siggpg:pgpsig. reason: %s", errmsg); @@ -128,8 +134,8 @@ int rpm_chk_fingerprint(const char* pkg) error: free(pgpsig); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } @@ -167,8 +173,8 @@ bool CheckHash(const char* pPackage, con } rpmfiFree(fi); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } */ @@ -178,15 +184,15 @@ 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; ts = rpmtsCreate(); /* This loop executes once (normally) or twice (if we detect chroot) */ while (1) { iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, filename, 0); - header = rpmdbNextIterator(iter); + header = rpmmiNext(iter); //log("%s: header('%s'):%p", __func__, filename, header); if (header) break; @@ -199,17 +205,16 @@ char* rpm_get_component(const char *file /* It is a chroot */ //log("%s: skipping '%s' pfx", __func__, rootdir_or_NULL); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); ts = rpmtsCreate(); - if (rpmtsSetRootDir(ts, rootdir_or_NULL) != 0) - goto error1; + rpmtsSetRootDir(ts, rootdir_or_NULL); filename += len; rootdir_or_NULL = NULL; } 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); @@ -220,9 +225,8 @@ char* rpm_get_component(const char *file free(srpm); error: - rpmdbFreeIterator(iter); - error1: - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } @@ -230,7 +234,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; \ \ @@ -249,8 +253,8 @@ pkg_add_id(arch); 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; @@ -259,7 +263,7 @@ struct pkg_envra *rpm_get_package_nvr(co while (1) { iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, filename, 0); - header = rpmdbNextIterator(iter); + header = rpmmiNext(iter); //log("%s: header('%s'):%p", __func__, filename, header); if (header) break; @@ -272,11 +276,9 @@ struct pkg_envra *rpm_get_package_nvr(co /* It is a chroot */ //log("%s: skipping '%s' pfx", __func__, rootdir_or_NULL); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); ts = rpmtsCreate(); - if (rpmtsSetRootDir(ts, rootdir_or_NULL) != 0) - goto error1; filename += len; rootdir_or_NULL = NULL; } @@ -316,16 +318,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); + iter = rpmmiFree(iter); rpmtsFree(ts); return p; error: free_pkg_envra(p); - rpmdbFreeIterator(iter); - error1: - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return NULL; } --- abrt-2.0.8/src/daemon/rpm.h.0011~ 2011-12-21 13:20:12.000000000 +0100 +++ abrt-2.0.8/src/daemon/rpm.h 2012-03-11 21:28:01.051031573 +0100 @@ -22,10 +22,10 @@ #ifndef RPM_H_ #define RPM_H_ -#include -#include -#include -#include +#include +#include +#include +#include #ifdef __cplusplus extern "C" { --- 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;