--- 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.0.8/src/daemon/rpm.c.0011~ 2011-12-21 13:20:12.000000000 +0100 +++ abrt-2.0.8/src/daemon/rpm.c 2012-03-11 21:28:01.051031573 +0100 @@ -62,7 +62,6 @@ void rpm_init() void rpm_destroy() { rpmFreeRpmrc(); - rpmFreeCrypto(); rpmFreeMacros(NULL); list_free_with_free(list_fingerprints); @@ -97,13 +96,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); @@ -121,8 +127,8 @@ int rpm_chk_fingerprint(const char* pkg) error: free(pgpsig); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } @@ -160,8 +166,8 @@ bool CheckHash(const char* pPackage, con } rpmfiFree(fi); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } */ @@ -171,15 +177,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; @@ -192,17 +198,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); @@ -213,9 +218,8 @@ char* rpm_get_component(const char *file free(srpm); error: - rpmdbFreeIterator(iter); - error1: - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; } @@ -227,7 +227,7 @@ 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; \ \ @@ -254,17 +258,17 @@ char* rpm_get_package_nvr(const char *fi 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; 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; @@ -285,11 +289,9 @@ char* rpm_get_package_nvr(const char *fi /* 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; } @@ -320,9 +332,8 @@ 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" {