RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
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);
}
/*@=bounds@*/
@@ .
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);
/*@switchbreak@*/ break;
case RPMSIGTAG_RSA:
- xx = headerRemoveEntry(sigh, RPMSIGTAG_PGP);
+ he->tag = RPMSIGTAG_PGP;
+ xx = hre(sigh, he, 0);
/*@switchbreak@*/ break;
case RPMSIGTAG_GPG:
- xx = headerRemoveEntry(sigh, RPMSIGTAG_DSA);
+ he->tag = RPMSIGTAG_DSA;
+ xx = hre(sigh, he, 0);
/*@fallthrough@*/
case RPMSIGTAG_PGP5:
case RPMSIGTAG_PGP:
- xx = headerRemoveEntry(sigh, RPMSIGTAG_RSA);
+ he->tag = RPMSIGTAG_RSA;
+ xx = hre(sigh, he, 0);
/*@switchbreak@*/ 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)
/*@modifies 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 @@
}
/*@=branchstate@*/
- 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);
}
/*@-bounds@*/
@@ -203,9 +206,9 @@
static void compressFilelist(Header h)
/*@modifies 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);
}
/*@=bounds@*/
@@ -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
+ */
+/*@mayexit@*/
+/*@unused@*/ static inline
+int headerRemoveExtension(Header h, HE_t he, /*@unused@*/ unsigned int flags)
+ /*@modifies 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)
/*@modifies 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;
@@ .
Received on Thu Nov 8 17:20:13 2007