From c01551e6e9fd293a3f40e481afe8c28e786fe632 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 11 Aug 2017 13:24:26 +0300 Subject: [PATCH] Quick hack to fix build with rpm >= 4.14 1) rpm >= 4.14 no longer has rpmCheckTerminate() call, it cleans up automatically on exit(). Note that "needing" rpmCheckTerminate() means the code is buggy: it does not properly track and free rpmdb iterators and/or rpmts handles. 2) pgpPubkeyFingerprint() now returns the actual fingerprint, the key ID which it previously returned is now retrieved by pgpPubkeyKeyID() If compatibility to older versions is needed, these will need configure checks, left as an excercise for someone more familiar with the abrt codebase. --- src/daemon/rpm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/daemon/rpm.c b/src/daemon/rpm.c index 36b36a91..011e44ca 100644 --- a/src/daemon/rpm.c +++ b/src/daemon/rpm.c @@ -76,11 +76,14 @@ void rpm_destroy() rpmFreeMacros(NULL); rpmFreeRpmrc(); +/* rpm >= 4.14 handles this automatically on exit */ +#if 0 /* RPM doc says "clean up any open iterators and databases". * Observed to eliminate these Berkeley DB warnings: * "BDB2053 Freeing read locks for locker 0x1e0: 28718/139661746636736" */ rpmdbCheckTerminate(1); +#endif #endif list_free_with_free(list_fingerprints); @@ -100,7 +103,11 @@ void rpm_load_gpgkey(const char* filename) } uint8_t keyID[8]; +#if 0 if (pgpPubkeyFingerprint(pkt, pklen, keyID) == 0) +#else + if (pgpPubkeyKeyID(pkt, pklen, keyID) == 0) +#endif { char *fingerprint = pgpHexStr(keyID, sizeof(keyID)); if (fingerprint != NULL) -- 2.14.0