RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 08-Nov-2007 17:20:13 Branch: HEAD Handle: 2007110816201102 Modified files: rpm CHANGES rpm/build files.c pack.c rpm/lib rpmchecksig.c rpmfc.c rpm/python header-py.c rpm/rpmdb hdrinline.h header.h rpmdb.c Log: - add headerRemoveExtension everywhere. Summary: Revision Changes Path 1.1774 +1 -0 rpm/CHANGES 1.286 +5 -3 rpm/build/files.c 2.246 +2 -1 rpm/build/pack.c 1.166 +35 -17 rpm/lib/rpmchecksig.c 1.33 +13 -6 rpm/lib/rpmfc.c 1.73 +18 -13 rpm/python/header-py.c 1.26 +16 -0 rpm/rpmdb/hdrinline.h 1.59 +1 -1 rpm/rpmdb/header.h 1.201 +5 -1 rpm/rpmdb/rpmdb.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.1773 -r1.1774 CHANGES --- rpm/CHANGES 8 Nov 2007 15:15:37 -0000 1.1773 +++ rpm/CHANGES 8 Nov 2007 16:20:11 -0000 1.1774 @@ -1,4 +1,5 @@ 4.5 -> 5.0: + - jbj: add headerRemoveExtension everywhere. - jbj: finish converting to headerAddExtension() everywhere. - jbj: change names of header tag integer types: s/INT32/UINT32/ etc. - jbj: finish bulldozing headerAddEntry throughout rpmbuild. @@ . patch -p0 <<'@@ .' Index: rpm/build/files.c ============================================================================ $ cvs diff -u -r1.285 -r1.286 files.c --- rpm/build/files.c 8 Nov 2007 15:15:38 -0000 1.285 +++ rpm/build/files.c 8 Nov 2007 16:20:12 -0000 1.286 @@ -1172,7 +1172,7 @@ { HGE_t hge = headerGetExtension; HAE_t hae = headerAddExtension; - HRE_t hre = (HRE_t)headerRemoveEntry; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const char ** fileNames; const char * fn; @@ -1191,7 +1191,8 @@ */ if (headerIsEntry(h, RPMTAG_DIRNAMES)) { - xx = hre(h, RPMTAG_OLDFILENAMES); + he->tag = RPMTAG_OLDFILENAMES; + xx = hre(h, he, 0); return; /* Already converted. */ } @@ -1272,7 +1273,8 @@ fileNames = _free(fileNames); - xx = hre(h, RPMTAG_OLDFILENAMES); + he->tag = RPMTAG_OLDFILENAMES; + xx = hre(h, he, 0); } /[EMAIL PROTECTED]@*/ @@ . patch -p0 <<'@@ .' Index: rpm/build/pack.c ============================================================================ $ cvs diff -u -r2.245 -r2.246 pack.c --- rpm/build/pack.c 8 Nov 2007 15:15:38 -0000 2.245 +++ rpm/build/pack.c 8 Nov 2007 16:20:12 -0000 2.246 @@ -175,6 +175,7 @@ { HGE_t hge = (HGE_t)headerGetExtension; HAE_t hae = headerAddExtension; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); StringBuf sb = newStringBuf(); int xx; @@ -183,7 +184,7 @@ xx = hge(h, he, 0); if (xx) { appendLineStringBuf(sb, he->p.str); - (void) headerRemoveEntry(h, tag); + (void) hre(h, he, 0); } he->p.ptr = _free(he->p.ptr); @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmchecksig.c ============================================================================ $ cvs diff -u -r1.165 -r1.166 rpmchecksig.c --- rpm/lib/rpmchecksig.c 8 Nov 2007 15:15:39 -0000 1.165 +++ rpm/lib/rpmchecksig.c 8 Nov 2007 16:20:12 -0000 1.166 @@ -179,6 +179,7 @@ { HGE_t hge = headerGetExtension; HAE_t hae = headerAddExtension; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); rpmgi gi = NULL; FD_t fd = NULL; @@ -296,25 +297,37 @@ if (sigh != NULL) { /* Eliminate broken digest values. */ - xx = headerRemoveEntry(sigh, RPMSIGTAG_LEMD5_1); - xx = headerRemoveEntry(sigh, RPMSIGTAG_LEMD5_2); - xx = headerRemoveEntry(sigh, RPMSIGTAG_BADSHA1_1); - xx = headerRemoveEntry(sigh, RPMSIGTAG_BADSHA1_2); + he->tag = RPMSIGTAG_LEMD5_1; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_LEMD5_2; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_BADSHA1_1; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_BADSHA1_2; + xx = hre(sigh, he, 0); /* Toss and recalculate header+payload size and digests. */ - xx = headerRemoveEntry(sigh, RPMSIGTAG_SIZE); + he->tag = RPMSIGTAG_SIZE; + xx = hre(sigh, he, 0); xx = rpmAddSignature(sigh, sigtarget, RPMSIGTAG_SIZE, qva->passPhrase); - xx = headerRemoveEntry(sigh, RPMSIGTAG_MD5); + he->tag = RPMSIGTAG_MD5; + xx = hre(sigh, he, 0); xx = rpmAddSignature(sigh, sigtarget, RPMSIGTAG_MD5, qva->passPhrase); - xx = headerRemoveEntry(sigh, RPMSIGTAG_SHA1); + he->tag = RPMSIGTAG_SHA1; + xx = hre(sigh, he, 0); xx = rpmAddSignature(sigh, sigtarget, RPMSIGTAG_SHA1, qva->passPhrase); if (deleting) { /* Nuke all the signature tags. */ - xx = headerRemoveEntry(sigh, RPMSIGTAG_GPG); - xx = headerRemoveEntry(sigh, RPMSIGTAG_PGP5); - xx = headerRemoveEntry(sigh, RPMSIGTAG_PGP); - xx = headerRemoveEntry(sigh, RPMSIGTAG_DSA); - xx = headerRemoveEntry(sigh, RPMSIGTAG_RSA); + he->tag = RPMSIGTAG_GPG; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_PGP5; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_PGP; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_DSA; + xx = hre(sigh, he, 0); + he->tag = RPMSIGTAG_RSA; + xx = hre(sigh, he, 0); } else { /* If gpg/pgp is configured, replace the signature. */ int addsig = 0; #if defined(SUPPORT_PGP_SIGNING) @@ -333,21 +346,26 @@ switch (sigtag) { case RPMSIGTAG_DSA: - xx = headerRemoveEntry(sigh, RPMSIGTAG_GPG); + he->tag = RPMSIGTAG_GPG; + xx = hre(sigh, he, 0); /[EMAIL PROTECTED]@*/ break; case RPMSIGTAG_RSA: - xx = headerRemoveEntry(sigh, RPMSIGTAG_PGP); + he->tag = RPMSIGTAG_PGP; + xx = hre(sigh, he, 0); /[EMAIL PROTECTED]@*/ break; case RPMSIGTAG_GPG: - xx = headerRemoveEntry(sigh, RPMSIGTAG_DSA); + he->tag = RPMSIGTAG_DSA; + xx = hre(sigh, he, 0); /[EMAIL PROTECTED]@*/ case RPMSIGTAG_PGP5: case RPMSIGTAG_PGP: - xx = headerRemoveEntry(sigh, RPMSIGTAG_RSA); + he->tag = RPMSIGTAG_RSA; + xx = hre(sigh, he, 0); /[EMAIL PROTECTED]@*/ break; } - xx = headerRemoveEntry(sigh, sigtag); + he->tag = sigtag; + xx = hre(sigh, he, 0); xx = rpmAddSignature(sigh, sigtarget, sigtag, qva->passPhrase); /* If package was previously signed, check for same signer. */ @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmfc.c ============================================================================ $ cvs diff -u -r1.32 -r1.33 rpmfc.c --- rpm/lib/rpmfc.c 8 Nov 2007 15:15:39 -0000 1.32 +++ rpm/lib/rpmfc.c 8 Nov 2007 16:20:12 -0000 1.33 @@ -1391,6 +1391,7 @@ int rpmfcGenerateDepends(void * specp, void * pkgp) { HAE_t hae = headerAddExtension; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const Spec spec = specp; Package pkg = pkgp; @@ -1469,9 +1470,12 @@ ds = rpmdsNew(pkg->header, RPMTAG_PROVIDENAME, flags); xx = rpmdsMerge(&fc->provides, ds); ds = rpmdsFree(ds); - xx = headerRemoveEntry(pkg->header, RPMTAG_PROVIDENAME); - xx = headerRemoveEntry(pkg->header, RPMTAG_PROVIDEVERSION); - xx = headerRemoveEntry(pkg->header, RPMTAG_PROVIDEFLAGS); + he->tag = RPMTAG_PROVIDENAME; + xx = hre(pkg->header, he, 0); + he->tag = RPMTAG_PROVIDEVERSION; + xx = hre(pkg->header, he, 0); + he->tag = RPMTAG_PROVIDEFLAGS; + xx = hre(pkg->header, he, 0); /* Add config dependency, Provides: config(N) = EVR */ if (genConfigDeps) { @@ -1491,9 +1495,12 @@ ds = rpmdsNew(pkg->header, RPMTAG_REQUIRENAME, flags); xx = rpmdsMerge(&fc->requires, ds); ds = rpmdsFree(ds); - xx = headerRemoveEntry(pkg->header, RPMTAG_REQUIRENAME); - xx = headerRemoveEntry(pkg->header, RPMTAG_REQUIREVERSION); - xx = headerRemoveEntry(pkg->header, RPMTAG_REQUIREFLAGS); + he->tag = RPMTAG_REQUIRENAME; + xx = hre(pkg->header, he, 0); + he->tag = RPMTAG_REQUIREVERSION; + xx = hre(pkg->header, he, 0); + he->tag = RPMTAG_REQUIREFLAGS; + xx = hre(pkg->header, he, 0); /* Add config dependency, Requires: config(N) = EVR */ if (genConfigDeps) { @@ . patch -p0 <<'@@ .' Index: rpm/python/header-py.c ============================================================================ $ cvs diff -u -r1.72 -r1.73 header-py.c --- rpm/python/header-py.c 8 Nov 2007 15:25:55 -0000 1.72 +++ rpm/python/header-py.c 8 Nov 2007 16:20:12 -0000 1.73 @@ -172,9 +172,9 @@ static void expandFilelist(Header h) /[EMAIL PROTECTED] h @*/ { - HGE_t hge = (HGE_t)headerGetExtension; - HAE_t hae = (HAE_t)headerAddExtension; - HRE_t hre = (HRE_t)headerRemoveEntry; + HGE_t hge = headerGetExtension; + HAE_t hae = headerAddExtension; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); int xx; @@ -190,9 +190,12 @@ } /[EMAIL PROTECTED]@*/ - xx = hre(h, RPMTAG_DIRNAMES); - xx = hre(h, RPMTAG_BASENAMES); - xx = hre(h, RPMTAG_DIRINDEXES); + he->tag = RPMTAG_DIRNAMES; + xx = hre(h, he, 0); + he->tag = RPMTAG_BASENAMES; + xx = hre(h, he, 0); + he->tag = RPMTAG_DIRINDEXES; + xx = hre(h, he, 0); } /[EMAIL PROTECTED]@*/ @@ -203,9 +206,9 @@ static void compressFilelist(Header h) /[EMAIL PROTECTED] h @*/ { - HGE_t hge = (HGE_t)headerGetExtension; + HGE_t hge = headerGetExtension; HAE_t hae = headerAddExtension; - HRE_t hre = (HRE_t)headerRemoveEntry; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const char ** fileNames; const char ** dirNames; @@ -223,7 +226,8 @@ */ if (headerIsEntry(h, RPMTAG_DIRNAMES)) { - xx = hre(h, RPMTAG_OLDFILENAMES); + he->tag = RPMTAG_OLDFILENAMES; + xx = hre(h, he, 0); return; /* Already converted. */ } @@ -303,7 +307,8 @@ fileNames = _free(fileNames); - xx = hre(h, RPMTAG_OLDFILENAMES); + he->tag = RPMTAG_OLDFILENAMES; + xx = hre(h, he, 0); } /[EMAIL PROTECTED]@*/ @@ -1137,9 +1142,9 @@ */ int rpmMergeHeaders(PyObject * list, FD_t fd, int matchTag) { - HGE_t hge = (HGE_t)headerGetExtension; + HGE_t hge = headerGetExtension; HAE_t hae = headerAddExtension; - HRE_t hre = (HRE_t)headerRemoveEntry; + HRE_t hre = headerRemoveExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); Header h; HeaderIterator hi; @@ -1190,7 +1195,7 @@ he->p.ptr = headerFreeData(he->p.ptr, he->t)) { /* could be dupes */ - xx = hre(hdr->h, he->tag); + xx = hre(hdr->h, he, 0); xx = hae(hdr->h, he, 0); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrinline.h ============================================================================ $ cvs diff -u -r1.25 -r1.26 hdrinline.h --- rpm/rpmdb/hdrinline.h 3 Nov 2007 23:44:03 -0000 1.25 +++ rpm/rpmdb/hdrinline.h 8 Nov 2007 16:20:13 -0000 1.26 @@ -292,6 +292,22 @@ } /** \ingroup header + * Remove tag container from header. + * + * @param h header + * @param he tag container + * @param flags (unused) + * @return 1 on success, 0 on failure + */ +/[EMAIL PROTECTED]@*/ +/[EMAIL PROTECTED]@*/ static inline +int headerRemoveExtension(Header h, HE_t he, /[EMAIL PROTECTED]@*/ unsigned int flags) + /[EMAIL PROTECTED] h @*/ +{ + return (h2hv(h)->hdrremove) (h, he->tag); +} + +/** \ingroup header * Retrieve tag value. * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with * RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.h ============================================================================ $ cvs diff -u -r1.58 -r1.59 header.h --- rpm/rpmdb/header.h 8 Nov 2007 15:15:40 -0000 1.58 +++ rpm/rpmdb/header.h 8 Nov 2007 16:20:13 -0000 1.59 @@ -402,7 +402,7 @@ * @param tag tag * @return 0 on success, 1 on failure (INCONSISTENT) */ -typedef int (*HRE_t) (Header h, uint32_t tag) +typedef int (*HRE_t) (Header h, HE_t he, unsigned int flags) /[EMAIL PROTECTED] h @*/; /** \ingroup header @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmdb.c ============================================================================ $ cvs diff -u -r1.200 -r1.201 rpmdb.c --- rpm/rpmdb/rpmdb.c 8 Nov 2007 15:15:40 -0000 1.200 +++ rpm/rpmdb/rpmdb.c 8 Nov 2007 16:20:13 -0000 1.201 @@ -3106,6 +3106,9 @@ DBT * data = alloca(sizeof(*data)); HGE_t hge = headerGetExtension; HAE_t hae = headerAddExtension; +#ifdef NOTYET /* XXX headerRemoveEntry() broken on dribbles. */ + HRE_t hre = headerRemoveExtension; +#endif HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); sigset_t signalMask; #if defined(SUPPORT_RPMV3_BASENAMES_HACKS) @@ -3133,7 +3136,8 @@ memset(data, 0, sizeof(*data)); #ifdef NOTYET /* XXX headerRemoveEntry() broken on dribbles. */ - xx = headerRemoveEntry(h, RPMTAG_REMOVETID); + he->tag = RPMTAG_REMOVETID; + xx = hre(h, he, 0); #endif if (iid != 0 && iid != -1) { uint32_t tid = iid; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org