RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 01-Jun-2009 22:35:03 Branch: HEAD Handle: 2009060120350200 Modified files: rpm CHANGES rpm/rpmdb header.c header_internal.h librpmdb.vers rpmtag.h Log: - header: add getter/setter for header parent. Summary: Revision Changes Path 1.3011 +1 -0 rpm/CHANGES 1.192 +22 -0 rpm/rpmdb/header.c 1.55 +2 -0 rpm/rpmdb/header_internal.h 1.68 +2 -0 rpm/rpmdb/librpmdb.vers 1.64 +18 -0 rpm/rpmdb/rpmtag.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3010 -r1.3011 CHANGES --- rpm/CHANGES 1 Jun 2009 17:52:44 -0000 1.3010 +++ rpm/CHANGES 1 Jun 2009 20:35:02 -0000 1.3011 @@ -1,5 +1,6 @@ 5.2b1 -> 5.3a1 + - jbj: header: add getter/setter for header parent. - jbj: add RPMSIGTAG_PADDING to force metadata header alignment in file. - jbj: save %pre/%post scriptlet's exit code and duration. - jbj: add header to rpmdb after, not before, %post is run. @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c ============================================================================ $ cvs diff -u -r1.191 -r1.192 header.c --- rpm/rpmdb/header.c 27 May 2009 18:14:38 -0000 1.191 +++ rpm/rpmdb/header.c 1 Jun 2009 20:35:02 -0000 1.192 @@ -133,6 +133,7 @@ h->origin = _free(h->origin); h->baseurl = _free(h->baseurl); h->digest = _free(h->digest); + h->parent = _free(h->parent); /*...@-nullstate@*/ if (_hdr_stats) { @@ -172,6 +173,7 @@ h->origin = NULL; h->baseurl = NULL; h->digest = NULL; + h->parent = NULL; h->rpmdb = NULL; memset(&h->sb, 0, sizeof(h->sb)); h->instance = 0; @@ -981,6 +983,7 @@ h->origin = NULL; h->baseurl = NULL; h->digest = NULL; + h->parent = NULL; h->rpmdb = NULL; memset(&h->sb, 0, sizeof(h->sb)); h->instance = 0; @@ -1158,6 +1161,20 @@ return 0; } +const char * headerGetParent(Header h) +{ + return (h != NULL ? h->parent : NULL); +} + +int headerSetParent(Header h, const char * parent) +{ + if (h != NULL) { + h->parent = _free(h->parent); + h->parent = xstrdup(parent); + } + return 0; +} + const char * headerGetBaseURL(Header h) { /*...@-retexpose@*/ @@ -1261,6 +1278,7 @@ Header nh; void * uh; const char * origin = (h->origin != NULL ? xstrdup(h->origin) : NULL); + const char * parent = (h->parent != NULL ? xstrdup(h->parent) : NULL); const char * baseurl = (h->baseurl != NULL ? xstrdup(h->baseurl) : NULL); const char * digest = (h->digest != NULL ? xstrdup(h->digest) : NULL); struct stat sb = h->sb; /* structure assignment */ @@ -1290,6 +1308,10 @@ xx = headerSetOrigin(nh, origin); origin = _free(origin); } + if (parent != NULL) { + xx = headerSetParent(nh, parent); + parent = _free(parent); + } if (baseurl != NULL) { xx = headerSetBaseURL(nh, baseurl); baseurl = _free(baseurl); @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header_internal.h ============================================================================ $ cvs diff -u -r1.54 -r1.55 header_internal.h --- rpm/rpmdb/header_internal.h 24 May 2009 23:30:27 -0000 1.54 +++ rpm/rpmdb/header_internal.h 1 Jun 2009 20:35:02 -0000 1.55 @@ -94,6 +94,8 @@ const char * baseurl; /*!< Header base URL (e.g. path or URL). */ /*...@only@*/ /*...@null@*/ const char * digest; /*!< Header digest (from origin *.rpm file) */ +/*...@only@*/ /*...@null@*/ + const char * parent; /*!< Parent package (e.g. parent NVRA) */ /*...@null@*/ void * rpmdb; /*!< rpmdb pointer (or NULL). */ struct stat sb; /*!< Header stat(2) (from origin *.rpm file) */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/librpmdb.vers ============================================================================ $ cvs diff -u -r1.67 -r1.68 librpmdb.vers --- rpm/rpmdb/librpmdb.vers 24 May 2009 23:30:27 -0000 1.67 +++ rpm/rpmdb/librpmdb.vers 1 Jun 2009 20:35:02 -0000 1.68 @@ -52,6 +52,8 @@ headerGetMagic; headerGetOrigin; headerSetOrigin; + headerGetParent; + headerSetParent; headerGetEndOff; headerSetEndOff; headerGetStartOff; @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmtag.h ============================================================================ $ cvs diff -u -r1.63 -r1.64 rpmtag.h --- rpm/rpmdb/rpmtag.h 1 Jun 2009 17:52:44 -0000 1.63 +++ rpm/rpmdb/rpmtag.h 1 Jun 2009 20:35:02 -0000 1.64 @@ -1005,6 +1005,24 @@ /*...@modifies h @*/; /** \ingroup header + * Return header parent identifier (e.g parent's NVRA). + * @param h header + * @return header parent + */ +/*...@observer@*/ /*...@null@*/ +const char * headerGetParent(/*...@null@*/ Header h) + /*...@*/; + +/** \ingroup header + * Store header parent (e.g parent's NVRA). + * @param h header + * @param parent new header parent + * @return 0 always + */ +int headerSetParent(/*...@null@*/ Header h, const char * parent) + /*...@modifies h @*/; + +/** \ingroup header * Return header base URL (e.g path or URL). * @param h header * @return header origin @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org