--- 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.14.4/src/daemon/rpm.c.orig 2020-08-17 16:37:07.000000000 +0200 +++ abrt-2.14.4/src/daemon/rpm.c 2020-10-17 08:24:59.359365923 +0200 @@ -20,10 +20,10 @@ #include "rpm.h" #ifdef HAVE_LIBRPM -#include -#include -#include -#include +#include +#include +#include +#include #endif /** @@ -72,7 +72,6 @@ void rpm_destroy() { #ifdef HAVE_LIBRPM /* Mirroring the order of deinit calls in rpm-4.11.1/lib/poptALL.c::rpmcliFini() */ - rpmFreeCrypto(); rpmFreeMacros(NULL); rpmFreeRpmrc(); #endif @@ -92,7 +91,7 @@ void rpm_load_gpgkey(const char* filenam } uint8_t keyID[8]; - if (pgpPubkeyKeyID(pkt, pklen, keyID) == 0) + if (pgpPubkeyFingerprint(pkt, pklen, keyID) == 0) { char *fingerprint = pgpHexStr(keyID, sizeof(keyID)); if (fingerprint != NULL) @@ -125,13 +124,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) { log_notice("cannot get siggpg:pgpsig. reason: %s", @@ -144,8 +150,8 @@ char *rpm_get_fingerprint(const char *pk fingerprint = g_strdup(pgpsig_tmp + sizeof(" Key ID ") - 1); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return fingerprint; #else return NULL; @@ -165,8 +171,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; @@ -186,14 +192,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; @@ -201,11 +207,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 */ @@ -214,12 +216,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); } @@ -234,8 +236,8 @@ char* rpm_get_component(const char *file char *ret = NULL; g_autofree 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; @@ -244,7 +246,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); @@ -254,8 +256,8 @@ char* rpm_get_component(const char *file ret = get_package_name_from_NVR_or_NULL(srpm); error: - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return ret; #else return NULL; @@ -267,7 +269,7 @@ char* rpm_get_component(const char *file static inline int pkg_add_##name(Header header, struct pkg_nevra *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; \ \ @@ -289,8 +291,8 @@ struct pkg_nevra *rpm_get_package_nvr(co { #ifdef HAVE_LIBRPM rpmts ts; - rpmdbMatchIterator iter; - Header header; + rpmmi iter = NULL; + Header header = NULL; struct pkg_nevra *p = NULL; @@ -341,15 +343,15 @@ struct pkg_nevra *rpm_get_package_nvr(co else p->p_nvr = g_strdup_printf("%s:%s-%s-%s", p->p_name, p->p_epoch, p->p_version, p->p_release); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return p; error: free_pkg_nevra(p); - rpmdbFreeIterator(iter); - rpmtsFree(ts); + iter = rpmmiFree(iter); + ts = rpmtsFree(ts); return NULL; #else 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;