[packages/abrt] - support rpm5, patch from Mandriva

baggins baggins at pld-linux.org
Sun Oct 14 23:17:49 CEST 2012


commit 56d713b938acef32eab44b328589df42215080d8
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Oct 14 23:02:12 2012 +0200

    - support rpm5, patch from Mandriva

 abrt-rpm.patch  | 117 ----------------------------------
 abrt-rpm5.patch | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 192 insertions(+), 117 deletions(-)
---
diff --git a/abrt-rpm.patch b/abrt-rpm.patch
deleted file mode 100644
index 27b84d1..0000000
--- a/abrt-rpm.patch
+++ /dev/null
@@ -1,117 +0,0 @@
---- abrt-1.0.0/src/Daemon/Makefile.am~	2009-11-22 21:50:18.000000000 +0200
-+++ abrt-1.0.0/src/Daemon/Makefile.am	2009-12-07 13:07:30.732868433 +0200
-@@ -16,6 +16,7 @@
- abrtd_CPPFLAGS = \
-     -I$(srcdir)/../../inc \
-     -I$(srcdir)/../../lib/Utils \
-+    -I/usr/include/rpm \
-     -DBIN_DIR=\"$(bindir)\" \
-     -DVAR_RUN=\"$(VAR_RUN)\" \
-     -DCONF_DIR=\"$(CONF_DIR)\" \
---- abrt-1.0.7/src/Daemon/RPM.cpp	2010-03-15 00:26:28.929435334 +0200
-+++ abrt-1.0.8/src/Daemon/RPM.cpp	2010-03-24 13:03:13.691485654 +0200
-@@ -33,9 +33,11 @@
- 
- void CRPM::LoadOpenGPGPublicKey(const char* pFileName)
- {
-+#if 0
-     uint8_t* pkt = NULL;
-     size_t pklen;
-     pgpKeyID_t keyID;
-+
-     if (pgpReadPkts(pFileName, &pkt, &pklen) != PGPARMOR_PUBKEY)
-     {
-         free(pkt);
-@@ -51,11 +53,13 @@
-         }
-     }
-     free(pkt);
-+#endif
- }
- 
- bool CRPM::CheckFingerprint(const char* pPackage)
- {
-     bool ret = false;
-+#if 0
-     rpmts ts = rpmtsCreate();
-     rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0);
-     Header header = rpmdbNextIterator(iter);
-@@ -97,12 +101,14 @@
-     }
-     rpmdbFreeIterator(iter);
-     rpmtsFree(ts);
-+#endif
-     return ret;
- }
- 
- bool CheckHash(const char* pPackage, const char* pPath)
- {
-     bool ret = false;
-+#if 0
-     rpmts ts = rpmtsCreate();
-     rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0);
-     Header header = rpmdbNextIterator(iter);
-@@ -128,23 +134,25 @@
-     rpmdbFreeIterator(iter);
-     rpmtsFree(ts);
-     return ret;
-+#endif
- }
- 
- std::string GetDescription(const char* pPackage)
- {
--    std::string pDescription;
-+    std::string pDescription = "";
-+
-     rpmts ts = rpmtsCreate();
-     rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_NAME, pPackage, 0);
-     Header header = rpmdbNextIterator(iter);
-     if (header != NULL)
-     {
--        rpmtd td = rpmtdNew();
--        headerGet(header, RPMTAG_SUMMARY, td, HEADERGET_DEFAULT);
--        const char* summary = rpmtdGetString(td);
--        headerGet(header, RPMTAG_DESCRIPTION, td, HEADERGET_DEFAULT);
--        const char* description = rpmtdGetString(td);
-+        const char *summary, *description;
-+        int_32 type, count;
-+
-+        headerGetEntry(header, RPMTAG_SUMMARY, &type, (void**)&summary, &count);
-+        headerGetEntry(header, RPMTAG_DESCRIPTION, &type, (void**)&description, &count);
-+
-         pDescription = summary + std::string("\n\n") + description;
--        rpmtdFree(td);
-     }
-     rpmdbFreeIterator(iter);
-     rpmtsFree(ts);
-@@ -153,7 +161,8 @@
- 
- std::string GetComponent(const char* pFileName)
- {
--    std::string ret;
-+    std::string ret = "";
-+#if 0
-     rpmts ts = rpmtsCreate();
-     rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName, 0);
-     Header header = rpmdbNextIterator(iter);
-@@ -172,12 +181,14 @@
- 
-     rpmdbFreeIterator(iter);
-     rpmtsFree(ts);
-+#endif
-     return ret;
- }
- 
- char* GetPackage(const char* pFileName)
- {
-     char* ret = NULL;
-+#if 0
-     rpmts ts = rpmtsCreate();
-     rpmdbMatchIterator iter = rpmtsInitIterator(ts, RPMTAG_BASENAMES, pFileName, 0);
-     Header header = rpmdbNextIterator(iter);
-@@ -189,4 +200,5 @@
-     rpmdbFreeIterator(iter);
-     rpmtsFree(ts);
-+#endif
-     return ret;
- }
diff --git a/abrt-rpm5.patch b/abrt-rpm5.patch
new file mode 100644
index 0000000..b0cd0d1
--- /dev/null
+++ b/abrt-rpm5.patch
@@ -0,0 +1,192 @@
+--- 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 <rpm/rpmts.h>
+-#include <rpm/rpmcli.h>
+-#include <rpm/rpmdb.h>
+-#include <rpm/rpmpgp.h>
++#include <rpmcli.h>
++#include <rpmts.h>
++#include <rpmdb.h>
++#include <rpmio.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/abrt.git/commitdiff/608b599415cd8aca91ec23eeadb3367d9a146c5f



More information about the pld-cvs-commit mailing list