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 16:15:41
Branch: HEAD Handle: 2007110815153704
Modified files:
rpm CHANGES
rpm/build files.c pack.c parseChangelog.c parsePreamble.c
reqprov.c
rpm/lib formats.c psm.c rpmchecksig.c rpmfc.c rpmfi.c
rpm/python header-py.c
rpm/rpmdb Makefile.am hdrNVR.c hdrfmt.c header.c header.h
header_internal.c rpmdb.c signature.c sqlite.c
rpm/tools rpmcache.c
Log:
- finish converting to headerAddExtension() everywhere.
- change names of header tag integer types: s/INT32/UINT32/ etc.
Summary:
Revision Changes Path
1.1773 +2 -0 rpm/CHANGES
1.285 +13 -13 rpm/build/files.c
2.245 +4 -4 rpm/build/pack.c
2.35 +1 -1 rpm/build/parseChangelog.c
2.143 +1 -1 rpm/build/parsePreamble.c
1.79 +2 -2 rpm/build/reqprov.c
2.116 +1 -1 rpm/lib/formats.c
2.255 +4 -4 rpm/lib/psm.c
1.165 +5 -5 rpm/lib/rpmchecksig.c
1.32 +7 -7 rpm/lib/rpmfc.c
2.96 +1 -1 rpm/lib/rpmfi.c
1.71 +96 -43 rpm/python/header-py.c
1.85 +1 -1 rpm/rpmdb/Makefile.am
1.24 +11 -11 rpm/rpmdb/hdrNVR.c
1.28 +20 -20 rpm/rpmdb/hdrfmt.c
1.114 +31 -31 rpm/rpmdb/header.c
1.58 +4 -4 rpm/rpmdb/header.h
1.12 +16 -14 rpm/rpmdb/header_internal.c
1.200 +16 -16 rpm/rpmdb/rpmdb.c
1.16 +1 -1 rpm/rpmdb/signature.c
1.19 +8 -8 rpm/rpmdb/sqlite.c
2.22 +36 -12 rpm/tools/rpmcache.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1772 -r1.1773 CHANGES
--- rpm/CHANGES 4 Nov 2007 20:51:26 -0000 1.1772
+++ rpm/CHANGES 8 Nov 2007 15:15:37 -0000 1.1773
@@ -1,4 +1,6 @@
4.5 -> 5.0:
+ - jbj: finish converting to headerAddExtension() everywhere.
+ - jbj: change names of header tag integer types: s/INT32/UINT32/ etc.
- jbj: finish bulldozing headerAddEntry throughout rpmbuild.
- jbj: start bulldozing headerAddEntry throughout rpmbuild.
- jbj: use HAE_t for signature tags, change int_32 to uint32_t where needed.
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/files.c
============================================================================
$ cvs diff -u -r1.284 -r1.285 files.c
--- rpm/build/files.c 6 Nov 2007 19:17:00 -0000 1.284
+++ rpm/build/files.c 8 Nov 2007 15:15:38 -0000 1.285
@@ -1252,7 +1252,7 @@
exit:
if (count > 0) {
he->tag = RPMTAG_DIRINDEXES;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = dirIndexes;
he->c = count;
xx = hae(h, he, 0);
@@ -1403,7 +1403,7 @@
/*@-sizeoftype@*/
ui32 = flp->fl_size;
he->tag = RPMTAG_FILESIZES;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1428,7 +1428,7 @@
ui32 = flp->fl_mtime;
he->tag = RPMTAG_FILEMTIMES;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1437,7 +1437,7 @@
ui16 = flp->fl_mode;
he->tag = RPMTAG_FILEMODES;
- he->t = RPM_INT16_TYPE;
+ he->t = RPM_UINT16_TYPE;
he->p.ui16p = &ui16;
he->c = 1;
he->append = 1;
@@ -1446,7 +1446,7 @@
ui16 = flp->fl_rdev;
he->tag = RPMTAG_FILERDEVS;
- he->t = RPM_INT16_TYPE;
+ he->t = RPM_UINT16_TYPE;
he->p.ui16p = &ui16;
he->c = 1;
he->append = 1;
@@ -1455,7 +1455,7 @@
ui32 = flp->fl_dev;
he->tag = RPMTAG_FILEDEVICES;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1464,7 +1464,7 @@
ui32 = flp->fl_ino;
he->tag = RPMTAG_FILEINODES;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1532,7 +1532,7 @@
ui32 = dalgo;
he->tag = RPMTAG_FILEDIGESTALGOS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1573,7 +1573,7 @@
}
ui32 = flp->verifyFlags;
he->tag = RPMTAG_FILEVERIFYFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1588,7 +1588,7 @@
ui32 = flp->flags;
he->tag = RPMTAG_FILEFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -1619,7 +1619,7 @@
ui32 = fl->totalFileSize;
he->tag = RPMTAG_SIZE;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &ui32;
he->c = 1;
he->append = 1;
@@ -2609,7 +2609,7 @@
he->append = 0;
if (srcPtr->flags & RPMFILE_GHOST) {
he->tag = RPMTAG_NOSOURCE;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &srcPtr->num;
he->c = 1;
he->append = 1;
@@ -2627,7 +2627,7 @@
he->append = 0;
if (srcPtr->flags & RPMFILE_GHOST) {
he->tag = RPMTAG_NOPATCH;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &srcPtr->num;
he->c = 1;
he->append = 1;
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/pack.c
============================================================================
$ cvs diff -u -r2.244 -r2.245 pack.c
--- rpm/build/pack.c 4 Nov 2007 19:37:02 -0000 2.244
+++ rpm/build/pack.c 8 Nov 2007 15:15:38 -0000 2.245
@@ -529,7 +529,7 @@
he->append = 0;
he->tag = RPMTAG_PROVIDEFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &fdummy;
he->c = 1;
he->append = 1;
@@ -579,7 +579,7 @@
he->append = 0;
he->tag = RPMTAG_PROVIDEFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &pFlags;
he->c = 1;
he->append = 1;
@@ -624,7 +624,7 @@
csa->cpioArchiveSize = 0;
/* Add a bogus archive size to the Header */
he->tag = RPMTAG_ARCHIVESIZE;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &csa->cpioArchiveSize;
he->c = 1;
xx = hae(h, he, 0);
@@ -790,7 +790,7 @@
{ uint32_t payloadSize = csa->cpioArchiveSize;
he->tag = RPMSIGTAG_PAYLOADSIZE;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &payloadSize;
he->c = 1;
xx = hae(sigh, he, 0);
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/parseChangelog.c
============================================================================
$ cvs diff -u -r2.34 -r2.35 parseChangelog.c
--- rpm/build/parseChangelog.c 4 Nov 2007 19:37:02 -0000 2.34
+++ rpm/build/parseChangelog.c 8 Nov 2007 15:15:38 -0000 2.35
@@ -20,7 +20,7 @@
int xx;
he->tag = RPMTAG_CHANGELOGTIME;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &mytime;
he->c = 1;
he->append = 1;
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/parsePreamble.c
============================================================================
$ cvs diff -u -r2.142 -r2.143 parsePreamble.c
--- rpm/build/parsePreamble.c 4 Nov 2007 17:59:55 -0000 2.142
+++ rpm/build/parsePreamble.c 8 Nov 2007 15:15:38 -0000 2.143
@@ -679,7 +679,7 @@
return RPMRC_FAIL;
}
he->tag = tag;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = #
he->c = 1;
xx = hae(pkg->header, he, 0);
@@ .
patch -p0 <<'@@ .'
Index: rpm/build/reqprov.c
============================================================================
$ cvs diff -u -r1.78 -r1.79 reqprov.c
--- rpm/build/reqprov.c 4 Nov 2007 19:37:02 -0000 1.78
+++ rpm/build/reqprov.c 8 Nov 2007 15:15:38 -0000 1.79
@@ -128,7 +128,7 @@
he->append = 0;
he->tag = flagtag;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &Flags;
he->c = 1;
he->append = 1;
@@ -137,7 +137,7 @@
}
if (indextag) {
he->tag = indextag;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &index;
he->c = 1;
he->append = 1;
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/formats.c
============================================================================
$ cvs diff -u -r2.115 -r2.116 formats.c
--- rpm/lib/formats.c 19 Oct 2007 00:36:44 -0000 2.115
+++ rpm/lib/formats.c 8 Nov 2007 15:15:39 -0000 2.116
@@ -81,7 +81,7 @@
if (rpmGetFilesystemList(NULL, &he->c))
goto exit;
- he->t = RPM_INT64_TYPE;
+ he->t = RPM_UINT64_TYPE;
he->freeData = 1;
if (fnames.ptr == NULL)
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/psm.c
============================================================================
$ cvs diff -u -r2.254 -r2.255 psm.c
--- rpm/lib/psm.c 3 Nov 2007 23:44:00 -0000 2.254
+++ rpm/lib/psm.c 8 Nov 2007 15:15:39 -0000 2.255
@@ -1532,13 +1532,13 @@
}
he->tag = RPMTAG_INSTALLTIME;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &installTime;
he->c = 1;
xx = hae(fi->h, he, 0);
he->tag = RPMTAG_INSTALLCOLOR;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tscolor;
he->c = 1;
xx = hae(fi->h, he, 0);
@@ -1546,7 +1546,7 @@
/* XXX FIXME: add preferred color at install. */
he->tag = RPMTAG_PACKAGECOLOR;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tecolor;
he->c = 1;
xx = hae(fi->h, he, 0);
@@ -1933,7 +1933,7 @@
{ uint32_t tid = rpmtsGetTid(ts);
he->tag = RPMTAG_REMOVETID;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tid;
he->c = 1;
xx = hae(psm->oh, he, 0);
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmchecksig.c
============================================================================
$ cvs diff -u -r1.164 -r1.165 rpmchecksig.c
--- rpm/lib/rpmchecksig.c 3 Nov 2007 23:44:00 -0000 1.164
+++ rpm/lib/rpmchecksig.c 8 Nov 2007 15:15:39 -0000 1.165
@@ -562,7 +562,7 @@
xx = hae(h, he, 0);
he->tag = RPMTAG_SIZE;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &zero;
he->c = 1;
xx = hae(h, he, 0);
@@ -580,7 +580,7 @@
he->c = 1;
xx = hae(h, he, 0);
he->tag = RPMTAG_PROVIDEFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &pflags;
he->c = 1;
xx = hae(h, he, 0);
@@ -596,7 +596,7 @@
he->c = 1;
xx = hae(h, he, 0);
he->tag = RPMTAG_PROVIDEFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &pflags;
he->c = 1;
xx = hae(h, he, 0);
@@ -617,13 +617,13 @@
xx = hae(h, he, 0);
{ uint32_t tid = rpmtsGetTid(ts);
he->tag = RPMTAG_INSTALLTIME;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tid;
he->c = 1;
xx = hae(h, he, 0);
/* XXX W2DO: tag value inheirited from parent? */
he->tag = RPMTAG_BUILDTIME;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tid;
he->c = 1;
xx = hae(h, he, 0);
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmfc.c
============================================================================
$ cvs diff -u -r1.31 -r1.32 rpmfc.c
--- rpm/lib/rpmfc.c 3 Nov 2007 23:44:01 -0000 1.31
+++ rpm/lib/rpmfc.c 8 Nov 2007 15:15:39 -0000 1.32
@@ -1517,7 +1517,7 @@
/* Add per-file colors(#files) */
he->tag = RPMTAG_FILECOLORS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = argiData(fc->fcolor);
he->c = argiCount(fc->fcolor);
assert(ac == he->c);
@@ -1543,7 +1543,7 @@
/* Add per-file classes(#files) */
he->tag = RPMTAG_FILECLASS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = argiData(fc->fcdictx);
he->c = argiCount(fc->fcdictx);
assert(ac == he->c);
@@ -1569,7 +1569,7 @@
xx = hae(pkg->header, he, 0);
he->tag = RPMTAG_PROVIDEFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = fc->provides->Flags;
assert(he->p.ptr != NULL);
xx = hae(pkg->header, he, 0);
@@ -1595,7 +1595,7 @@
xx = hae(pkg->header, he, 0);
he->tag = RPMTAG_REQUIREFLAGS;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = fc->requires->Flags;
assert(he->p.ptr != NULL);
xx = hae(pkg->header, he, 0);
@@ -1604,7 +1604,7 @@
/* Add dependency dictionary(#dependencies) */
he->tag = RPMTAG_DEPENDSDICT;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = argiData(fc->ddictx);
he->c = argiCount(fc->ddictx);
if (he->p.ptr != NULL) {
@@ -1613,7 +1613,7 @@
/* Add per-file dependency (start,number) pairs (#files) */
he->tag = RPMTAG_FILEDEPENDSX;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = argiData(fc->fddictx);
he->c = argiCount(fc->fddictx);
assert(ac == he->c);
@@ -1622,7 +1622,7 @@
}
he->tag = RPMTAG_FILEDEPENDSN;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = argiData(fc->fddictn);
he->c = argiCount(fc->fddictn);
assert(ac == he->c);
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmfi.c
============================================================================
$ cvs diff -u -r2.95 -r2.96 rpmfi.c
--- rpm/lib/rpmfi.c 3 Nov 2007 23:44:01 -0000 2.95
+++ rpm/lib/rpmfi.c 8 Nov 2007 15:15:39 -0000 2.96
@@ -1138,7 +1138,7 @@
fi->dc = he->c;
he->tag = RPMTAG_DIRINDEXES;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = dirIndexes;
he->c = fileCount;
xx = hme(h, he->tag, he->t, he->p.ptr, he->c);
@@ .
patch -p0 <<'@@ .'
Index: rpm/python/header-py.c
============================================================================
$ cvs diff -u -r1.70 -r1.71 header-py.c
--- rpm/python/header-py.c 3 Nov 2007 23:44:03 -0000 1.70
+++ rpm/python/header-py.c 8 Nov 2007 15:15:40 -0000 1.71
@@ -173,7 +173,7 @@
/*@modifies h @*/
{
HGE_t hge = (HGE_t)headerGetExtension;
- HAE_t hae = (HAE_t)headerAddEntry;
+ HAE_t hae = (HAE_t)headerAddExtension;
HRE_t hre = (HRE_t)headerRemoveEntry;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
int xx;
@@ -184,7 +184,8 @@
xx = hge(h, he, 0);
if (he->p.ptr == NULL || he->c <= 0)
return;
- xx = hae(h, RPMTAG_OLDFILENAMES, he->t, he->p, he->c);
+ he->tag = RPMTAG_OLDFILENAMES;
+ xx = hae(h, he, 0);
he->p.ptr = _free(he->p.ptr);
}
/*@=branchstate@*/
@@ -203,14 +204,14 @@
/*@modifies h @*/
{
HGE_t hge = (HGE_t)headerGetExtension;
- HAE_t hae = (HAE_t)headerAddEntry;
+ HAE_t hae = headerAddExtension;
HRE_t hre = (HRE_t)headerRemoveEntry;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
const char ** fileNames;
const char ** dirNames;
const char ** baseNames;
- int_32 * dirIndexes;
- int count;
+ uint32_t * dirIndexes;
+ uint32_t count;
int dirIndex = -1;
int xx;
int i;
@@ -281,11 +282,23 @@
exit:
if (count > 0) {
- xx = hae(h, RPMTAG_DIRINDEXES, RPM_INT32_TYPE, dirIndexes, count);
- xx = hae(h, RPMTAG_BASENAMES, RPM_STRING_ARRAY_TYPE,
- baseNames, count);
- xx = hae(h, RPMTAG_DIRNAMES, RPM_STRING_ARRAY_TYPE,
- dirNames, dirIndex + 1);
+ he->tag = RPMTAG_DIRINDEXES;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = dirIndexes;
+ he->c = count;
+ xx = hae(h, he, 0);
+
+ he->tag = RPMTAG_DIRINDEXES;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = baseNames;
+ he->c = count;
+ xx = hae(h, he, 0);
+
+ he->tag = RPMTAG_DIRNAMES;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = dirNames;
+ he->c = dirIndex + 1;
+ xx = hae(h, he, 0);
}
fileNames = _free(fileNames);
@@ -301,6 +314,7 @@
/*@*/
{
HGE_t hge = (HGE_t)headerGetExtension;
+ HAE_t hae = headerAddExtension;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
int xx;
@@ -316,7 +330,8 @@
return;
/* XXX Legacy tag needs to go away. */
- headerAddEntry(h, RPMTAG_OLDFILENAMES, he->t, he->p.ptr, he->c);
+ he->tag = RPMTAG_OLDFILENAMES;
+ xx = hae(h, he, 0);
he->p.ptr = _free(he->p.ptr);
}
@@ -331,17 +346,18 @@
static void providePackageNVR(Header h)
{
HGE_t hge = (HGE_t)headerGetExtension;
+ HAE_t hae = headerAddExtension;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
const char *N, *V, *R;
- int_32 E;
+ uint32_t E;
int gotE;
const char *pEVR;
char *p;
- int_32 pFlags = RPMSENSE_EQUAL;
+ uint32_t pFlags = RPMSENSE_EQUAL;
const char ** provides = NULL;
const char ** providesEVR = NULL;
- int_32 * provideFlags = NULL;
- int providesCount;
+ uint32_t * provideFlags = NULL;
+ uint32_t providesCount;
int i, xx;
int bingo = 1;
@@ -380,12 +396,18 @@
providesEVR = he->p.argv;
if (!xx) {
for (i = 0; i < providesCount; i++) {
- char * vdummy = "";
- int_32 fdummy = RPMSENSE_ANY;
- xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE,
- &vdummy, 1);
- xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE,
- &fdummy, 1);
+ static char vdummy[] = "";
+ static uint32_t fdummy = RPMSENSE_ANY;
+ he->tag = RPMTAG_PROVIDEVERSION;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = &vdummy;
+ he->c = 1;
+ xx = hae(h, he, 0);
+ he->tag = RPMTAG_PROVIDEFLAGS;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = &fdummy;
+ he->c = 1;
+ xx = hae(h, he, 0);
}
goto exit;
}
@@ -413,12 +435,29 @@
provideFlags = _free(provideFlags);
if (bingo) {
- xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDENAME, RPM_STRING_ARRAY_TYPE,
- &N, 1);
- xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE,
- &pFlags, 1);
- xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE,
- &pEVR, 1);
+ he->tag = RPMTAG_PROVIDENAME;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = N;
+ he->c = 1;
+ he->append = 1;
+ xx = hae(h, he, 0);
+ he->append = 0;
+
+ he->tag = RPMTAG_PROVIDEVERSION;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = pEVR;
+ he->c = 1;
+ he->append = 1;
+ xx = hae(h, he, 0);
+ he->append = 0;
+
+ he->tag = RPMTAG_PROVIDEFLAGS;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = pFlags;
+ he->c = 1;
+ he->append = 1;
+ xx = hae(h, he, 0);
+ he->append = 0;
}
}
#endif /* SUPPORT_RPMV3_PROVIDE_SELF */
@@ -453,10 +492,10 @@
case RPM_OPENPGP_TYPE:
case RPM_ASN1_TYPE:
case RPM_BIN_TYPE:
- case RPM_INT64_TYPE:
- case RPM_INT32_TYPE:
- case RPM_INT16_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT64_TYPE:
+ case RPM_UINT32_TYPE:
+ case RPM_UINT16_TYPE:
+ case RPM_UINT8_TYPE:
case RPM_CHAR_TYPE:
case RPM_STRING_ARRAY_TYPE:
case RPM_STRING_TYPE:
@@ -789,7 +828,7 @@
break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
if (he->c != 1 || forceArray) {
metao = PyList_New(0);
for (i = 0; i < he->c; i++) {
@@ -803,7 +842,7 @@
}
break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
if (he->c != 1 || forceArray) {
metao = PyList_New(0);
for (i = 0; i < he->c; i++) {
@@ -817,7 +856,7 @@
}
break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
if (he->c != 1 || forceArray) {
metao = PyList_New(0);
for (i = 0; i < he->c; i++) {
@@ -831,7 +870,7 @@
}
break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
if (he->c != 1 || forceArray) {
metao = PyList_New(0);
for (i = 0; i < he->c; i++) {
@@ -1098,6 +1137,10 @@
*/
int rpmMergeHeaders(PyObject * list, FD_t fd, int matchTag)
{
+ HGE_t hge = (HGE_t)headerGetExtension;
+ HAE_t hae = headerAddExtension;
+ HRE_t hre = (HRE_t)headerRemoveEntry;
+ HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
Header h;
HeaderIterator hi;
rpmTagData newMatch;
@@ -1108,22 +1151,32 @@
rpmTagType t;
rpmTagCount c;
rpmTagData p;
+ int xx;
Py_BEGIN_ALLOW_THREADS
h = headerRead(fd);
Py_END_ALLOW_THREADS
while (h) {
- if (!headerGetEntry(h, matchTag, NULL, &newMatch, NULL)) {
+ he->tag = matchTag;
+ xx = hge(hdr->h, he, 0);
+ newMatch.ptr = he->p.ptr;
+ if (!xx) {
PyErr_SetString(pyrpmError, "match tag missing in new header");
return 1;
}
hdr = (hdrObject *) PyList_GetItem(list, count++);
- if (!hdr) return 1;
+ if (!hdr) {
+ PyErr_SetString(pyrpmError, "match list item missing");
+ return 1;
+ }
- if (!headerGetEntry(hdr->h, matchTag, NULL, &oldMatch, NULL)) {
- PyErr_SetString(pyrpmError, "match tag missing in new header");
+ he->tag = matchTag;
+ xx = hge(hdr->h, he, 0);
+ oldMatch.ptr = he->p.ptr;
+ if (!xx) {
+ PyErr_SetString(pyrpmError, "match tag missing in old header");
return 1;
}
@@ -1137,12 +1190,12 @@
hdr->linkList = _free(hdr->linkList);
for (hi = headerInitIterator(h);
- headerNextIterator(hi, &tag, &t, &p, &c);
- p.ptr = headerFreeData(p.ptr, t))
+ headerNextIterator(hi, &he->tag, &he->t, &he->p, &he->c);
+ he->p.ptr = headerFreeData(he->p.ptr, t))
{
/* could be dupes */
- headerRemoveEntry(hdr->h, tag);
- headerAddEntry(hdr->h, tag, t, p.ptr, c);
+ xx = hre(hdr->h, he->tag);
+ xx = hae(hdr->h, he, 0);
}
headerFreeIterator(hi);
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/Makefile.am
============================================================================
$ cvs diff -u -r1.84 -r1.85 Makefile.am
--- rpm/rpmdb/Makefile.am 1 Nov 2007 17:37:49 -0000 1.84
+++ rpm/rpmdb/Makefile.am 8 Nov 2007 15:15:40 -0000 1.85
@@ -85,7 +85,7 @@
@echo '' >> $@
@echo '/*@observer@*/ /*@unchecked@*/' >> $@
@echo 'static const struct headerTagTableEntry_s rpmTagTbl[] = {' >> $@
- ${AWK} '/(RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {tt = "NULL"; ta = "ANY"; if ($$5 == "c") {tt = "CHAR"; ta = "SCALAR"} if ($$5 == "c[]") {tt = "CHAR"; ta = "ARRAY"} if ($$5 == "h") {tt = "INT16"; ta = "SCALAR"} if ($$5 == "h[]") {tt = "INT16"; ta = "ARRAY"} if ($$5 == "i") {tt = "INT32"; ta = "SCALAR"} if ($$5 == "i[]") {tt = "INT32"; ta = "ARRAY"} if ($$5 == "l") {tt = "INT64"; ta = "SCALAR"} if ($$5 == "l[]") {tt = "INT64"; ta = "ARRAY"} if ($$5 == "s") {tt = "STRING"; ta = "SCALAR"} if ($$5 == "s[]") {tt = "STRING_ARRAY"; ta = "ARRAY"} if ($$5 == "s{}") {tt = "I18NSTRING"; ta = "SCALAR"} if ($$5 == "x") {tt = "BIN"; ta = "SCALAR"} if ($$2 == "=") { printf("\t{ \"%s\", %s RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$1, $$3, tt, ta) } else { printf("\t{ \"%s\", %s, RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$2, $$3, tt, ta) } }' < ${top_srcdir}/rpmdb/rpmtag.h | sort >> $@
+ ${AWK} '/(RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {tt = "NULL"; ta = "ANY"; if ($$5 == "c") {tt = "CHAR"; ta = "SCALAR"} if ($$5 == "c[]") {tt = "CHAR"; ta = "ARRAY"} if ($$5 == "h") {tt = "UINT16"; ta = "SCALAR"} if ($$5 == "h[]") {tt = "UINT16"; ta = "ARRAY"} if ($$5 == "i") {tt = "UINT32"; ta = "SCALAR"} if ($$5 == "i[]") {tt = "UINT32"; ta = "ARRAY"} if ($$5 == "l") {tt = "UINT64"; ta = "SCALAR"} if ($$5 == "l[]") {tt = "UINT64"; ta = "ARRAY"} if ($$5 == "s") {tt = "STRING"; ta = "SCALAR"} if ($$5 == "s[]") {tt = "STRING_ARRAY"; ta = "ARRAY"} if ($$5 == "s{}") {tt = "I18NSTRING"; ta = "SCALAR"} if ($$5 == "x") {tt = "BIN"; ta = "SCALAR"} if ($$2 == "=") { printf("\t{ \"%s\", %s RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$1, $$3, tt, ta) } else { printf("\t{ \"%s\", %s, RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$2, $$3, tt, ta) } }' < ${top_srcdir}/rpmdb/rpmtag.h | sort >> $@
@echo ' { NULL, 0, 0 }' >> $@
@echo '};' >> $@
@echo '' >> $@
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/hdrNVR.c
============================================================================
$ cvs diff -u -r1.23 -r1.24 hdrNVR.c
--- rpm/rpmdb/hdrNVR.c 3 Nov 2007 23:44:03 -0000 1.23
+++ rpm/rpmdb/hdrNVR.c 8 Nov 2007 15:15:40 -0000 1.24
@@ -64,19 +64,19 @@
ival = 0;
switch (he->t) {
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
ival = he->p.ui8p[0];
val = numbuf;
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
ival = he->p.ui16p[0];
val = numbuf;
/*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
ival = he->p.ui32p[0];
val = numbuf;
/*@switchbreak@*/ break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
ival = he->p.ui64p[0];
val = numbuf;
/*@switchbreak@*/ break;
@@ -118,7 +118,7 @@
if (!xx)
continue;
switch (he->t) {
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
delMacro(NULL, tagm->macroname);
/*@switchbreak@*/ break;
case RPM_STRING_TYPE:
@@ -129,8 +129,8 @@
case RPM_BIN_TYPE:
case RPM_NULL_TYPE:
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
- case RPM_INT16_TYPE:
+ case RPM_UINT8_TYPE:
+ case RPM_UINT16_TYPE:
default:
/*@switchbreak@*/ break;
}
@@ -287,10 +287,10 @@
assert(0); /* XXX keep gcc quiet */
/*@switchbreak@*/ break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
- case RPM_INT16_TYPE:
- case RPM_INT32_TYPE:
- case RPM_INT64_TYPE:
+ case RPM_UINT8_TYPE:
+ case RPM_UINT16_TYPE:
+ case RPM_UINT32_TYPE:
+ case RPM_UINT64_TYPE:
if (he->c != 1)
continue;
/*@switchbreak@*/ break;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/hdrfmt.c
============================================================================
$ cvs diff -u -r1.27 -r1.28 hdrfmt.c
--- rpm/rpmdb/hdrfmt.c 3 Nov 2007 23:44:03 -0000 1.27
+++ rpm/rpmdb/hdrfmt.c 8 Nov 2007 15:15:40 -0000 1.28
@@ -83,7 +83,7 @@
char * val;
assert(ix == 0);
- if (he->t != RPM_INT64_TYPE)
+ if (he->t != RPM_UINT64_TYPE)
val = xstrdup(_("(invalid type)"));
else {
uint64_t anint = data.ui64p[ix];
@@ -112,7 +112,7 @@
char * val;
assert(ix == 0);
- if (he->t != RPM_INT64_TYPE) {
+ if (he->t != RPM_UINT64_TYPE) {
val = xstrdup(_("(invalid type)"));
} else {
uint64_t anint = he->p.ui64p[0];
@@ -134,7 +134,7 @@
char * val;
assert(ix == 0);
- if (he->t != RPM_INT64_TYPE) {
+ if (he->t != RPM_UINT64_TYPE) {
val = xstrdup(_("(invalid type)"));
} else {
char buf[15];
@@ -201,10 +201,10 @@
break;
case RPM_NULL_TYPE:
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
- case RPM_INT16_TYPE:
- case RPM_INT32_TYPE:
- case RPM_INT64_TYPE:
+ case RPM_UINT8_TYPE:
+ case RPM_UINT16_TYPE:
+ case RPM_UINT32_TYPE:
+ case RPM_UINT64_TYPE:
case RPM_I18NSTRING_TYPE:
default:
return xstrdup(_("(invalid type)"));
@@ -340,7 +340,7 @@
if (_jbj)
fprintf(stderr, " XML: tag %s(%d) %d %p[%d:%d] free %d\n", tagName(he->tag), he->tag, he->t, he->p.ptr, he->ix, he->c, he->freeData);
assert(ix == 0);
-assert(he->t == RPM_STRING_TYPE || he->t == RPM_INT64_TYPE || he->t == RPM_BIN_TYPE);
+assert(he->t == RPM_STRING_TYPE || he->t == RPM_UINT64_TYPE || he->t == RPM_BIN_TYPE);
switch (he->t) {
case RPM_STRING_ARRAY_TYPE:
s = data.argv[ix];
@@ -374,16 +374,16 @@
} break;
/*@=globs =mods@*/
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
anint = data.ui8p[ix];
break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
anint = data.ui16p[ix]; /* XXX note unsigned */
break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
anint = data.ui32p[ix];
break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
anint = data.ui64p[ix];
break;
case RPM_NULL_TYPE:
@@ -508,7 +508,7 @@
if (_jbj)
fprintf(stderr, "YAML: tag %s(%d) %d %p[%d:%d] free %d\n", tagName(he->tag), he->tag, he->t, he->p.ptr, he->ix, he->c, he->freeData);
assert(ix == 0);
-assert(he->t == RPM_STRING_TYPE || he->t == RPM_INT64_TYPE || he->t == RPM_BIN_TYPE);
+assert(he->t == RPM_STRING_TYPE || he->t == RPM_UINT64_TYPE || he->t == RPM_BIN_TYPE);
switch (he->t) {
case RPM_STRING_ARRAY_TYPE:
case RPM_I18NSTRING_TYPE:
@@ -567,16 +567,16 @@
} break;
/*@=globs =mods@*/
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
anint = data.ui8p[ix];
break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
anint = data.ui16p[ix]; /* XXX note unsigned */
break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
anint = data.ui32p[ix];
break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
anint = data.ui64p[ix];
break;
case RPM_NULL_TYPE:
@@ -752,7 +752,7 @@
char * val;
assert(ix == 0);
- if (he->t != RPM_INT64_TYPE) {
+ if (he->t != RPM_UINT64_TYPE) {
val = xstrdup(_("(invalid type)"));
} else {
uint64_t anint = data.ui64p[ix];
@@ -845,7 +845,7 @@
return 0;
_he->tag = he->tag;
- _he->t = RPM_INT32_TYPE;
+ _he->t = RPM_UINT32_TYPE;
_he->p.ui32p = NULL;
_he->c = 1;
_he->freeData = -1;
@@ -1179,7 +1179,7 @@
fileSystem, internalState @*/
{
he->tag = RPMTAG_DBINSTANCE;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = xmalloc(sizeof(*he->p.ui32p));
he->p.ui32p[0] = headerGetInstance(h);
he->freeData = 1;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.c
============================================================================
$ cvs diff -u -r1.113 -r1.114 header.c
--- rpm/rpmdb/header.c 3 Nov 2007 23:44:03 -0000 1.113
+++ rpm/rpmdb/header.c 8 Nov 2007 15:15:40 -0000 1.114
@@ -63,10 +63,10 @@
static int typeSizes[16] = {
0, /*!< RPM_NULL_TYPE */
1, /*!< RPM_CHAR_TYPE */
- 1, /*!< RPM_INT8_TYPE */
- 2, /*!< RPM_INT16_TYPE */
- 4, /*!< RPM_INT32_TYPE */
- 8, /*!< RPM_INT64_TYPE */
+ 1, /*!< RPM_UINT8_TYPE */
+ 2, /*!< RPM_UINT16_TYPE */
+ 4, /*!< RPM_UINT32_TYPE */
+ 8, /*!< RPM_UINT64_TYPE */
-1, /*!< RPM_STRING_TYPE */
1, /*!< RPM_BIN_TYPE */
-1, /*!< RPM_STRING_ARRAY_TYPE */
@@ -602,7 +602,7 @@
/* Perform endian conversions */
switch (ntohl(pe->type)) {
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
{ int_64 * it = (int_64 *)t;
int_32 b[2];
for (; ie.info.count > 0; ie.info.count--, it += 1) {
@@ -615,7 +615,7 @@
}
t = (unsigned char *) it;
} /*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
{ int_32 * it = (int_32 *)t;
for (; ie.info.count > 0; ie.info.count--, it += 1) {
if (dataEnd && ((unsigned char *)it) >= dataEnd)
@@ -624,7 +624,7 @@
}
t = (unsigned char *) it;
} /*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
{ int_16 * it = (int_16 *) t;
for (; ie.info.count > 0; ie.info.count--, it += 1) {
if (dataEnd && ((unsigned char *)it) >= dataEnd)
@@ -867,7 +867,7 @@
/* copy data w/ endian conversions */
switch (entry->info.type) {
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
{ int_32 b[2];
count = entry->info.count;
src = entry->data;
@@ -883,7 +883,7 @@
}
} /*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
count = entry->info.count;
src = entry->data;
while (count--) {
@@ -895,7 +895,7 @@
}
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
count = entry->info.count;
src = entry->data;
while (count--) {
@@ -1908,16 +1908,16 @@
he->freeData = 1; /* XXX RPM_BIN_TYPE is malloc'd */
/*@fallthrough@*/
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
nb = he->c * sizeof(*he->p.ui8p);
break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
nb = he->c * sizeof(*he->p.ui16p);
break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
nb = he->c * sizeof(*he->p.ui32p);
break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
nb = he->c * sizeof(*he->p.ui64p);
break;
case RPM_I18NSTRING_TYPE:
@@ -2912,16 +2912,16 @@
return xstrdup(_("(not a number)"));
break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
ival = he->p.ui8p[ix];
break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
ival = he->p.ui16p[ix]; /* XXX note unsigned. */
break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
ival = he->p.ui32p[ix];
break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
ival = he->p.ui64p[ix];
break;
case RPM_STRING_TYPE:
@@ -3010,7 +3010,7 @@
rpmTagData data = { .ptr = he->p.ptr };
char * val;
- if (he->t != RPM_INT64_TYPE) {
+ if (he->t != RPM_UINT64_TYPE) {
val = xstrdup(_("(not a number)"));
} else {
struct tm * tstruct;
@@ -3065,12 +3065,12 @@
size_t nb;
/* XXX one of these integer types is unnecessary. */
- if (he->t == RPM_INT32_TYPE) {
+ if (he->t == RPM_UINT32_TYPE) {
nb = 20;
val = xmalloc(nb);
snprintf(val, nb, "%u", data.ui32p[0]);
val[nb-1] = '\0';
- } else if (he->t == RPM_INT64_TYPE) {
+ } else if (he->t == RPM_UINT64_TYPE) {
nb = 40;
val = xmalloc(40);
snprintf(val, nb, "%llu", data.ui64p[0]);
@@ -3552,7 +3552,7 @@
if (tag->arrayCount) {
countBuf = he->c;
he = rpmheClean(he);
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &countBuf;
he->c = 1;
he->freeData = 0;
@@ -3580,29 +3580,29 @@
vhe->ix = -1;
break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
- case RPM_INT16_TYPE:
- case RPM_INT32_TYPE:
- case RPM_INT64_TYPE:
+ case RPM_UINT8_TYPE:
+ case RPM_UINT16_TYPE:
+ case RPM_UINT32_TYPE:
+ case RPM_UINT64_TYPE:
switch (he->t) {
default:
assert(0); /* XXX keep gcc quiet. */
break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
ival = he->p.ui8p[element];
break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
ival = he->p.ui16p[element]; /* XXX note unsigned. */
break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
ival = he->p.ui32p[element];
break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
ival = he->p.ui64p[element];
break;
}
- vhe->t = RPM_INT64_TYPE;
+ vhe->t = RPM_UINT64_TYPE;
vhe->p.ui64p = &ival;
vhe->c = he->c;
/* XXX TODO: force array representation? */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.h
============================================================================
$ cvs diff -u -r1.57 -r1.58 header.h
--- rpm/rpmdb/header.h 3 Nov 2007 23:44:03 -0000 1.57
+++ rpm/rpmdb/header.h 8 Nov 2007 15:15:40 -0000 1.58
@@ -115,10 +115,10 @@
enum rpmTagType_e {
RPM_NULL_TYPE = 0,
RPM_CHAR_TYPE = 1,
- RPM_INT8_TYPE = 2,
- RPM_INT16_TYPE = 3,
- RPM_INT32_TYPE = 4,
- RPM_INT64_TYPE = 5,
+ RPM_UINT8_TYPE = 2,
+ RPM_UINT16_TYPE = 3,
+ RPM_UINT32_TYPE = 4,
+ RPM_UINT64_TYPE = 5,
RPM_STRING_TYPE = 6,
RPM_BIN_TYPE = 7,
RPM_STRING_ARRAY_TYPE = 8,
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header_internal.c
============================================================================
$ cvs diff -u -r1.11 -r1.12 header_internal.c
--- rpm/rpmdb/header_internal.c 17 Oct 2007 00:32:26 -0000 1.11
+++ rpm/rpmdb/header_internal.c 8 Nov 2007 15:15:40 -0000 1.12
@@ -16,10 +16,10 @@
int rpm_typeAlign[16] = {
1, /*!< RPM_NULL_TYPE */
1, /*!< RPM_CHAR_TYPE */
- 1, /*!< RPM_INT8_TYPE */
- 2, /*!< RPM_INT16_TYPE */
- 4, /*!< RPM_INT32_TYPE */
- 8, /*!< RPM_INT64_TYPE */
+ 1, /*!< RPM_UINT8_TYPE */
+ 2, /*!< RPM_UINT16_TYPE */
+ 4, /*!< RPM_UINT32_TYPE */
+ 8, /*!< RPM_UINT64_TYPE */
1, /*!< RPM_STRING_TYPE */
1, /*!< RPM_BIN_TYPE */
1, /*!< RPM_STRING_ARRAY_TYPE */
@@ -109,16 +109,18 @@
case RPM_BIN_TYPE:
type = "BIN";
/*@switchbreak@*/ break;
- case RPM_INT8_TYPE:
- type = "INT8";
+ case RPM_UINT8_TYPE:
+ type = "UINT8";
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
- type = "INT16";
+ case RPM_UINT16_TYPE:
+ type = "UINT16";
/*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
- type = "INT32";
+ case RPM_UINT32_TYPE:
+ type = "UINT32";
+ /*@switchbreak@*/ break;
+ case RPM_UINT64_TYPE:
+ type = "UINT64";
/*@switchbreak@*/ break;
- /*case RPM_INT64_TYPE: type = "INT64"; break;*/
case RPM_STRING_TYPE:
type = "STRING";
/*@switchbreak@*/ break;
@@ -152,7 +154,7 @@
/* Print the data inline */
switch (p->info.type) {
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
while (c--) {
fprintf(f, " Data: %.3d 0x%08x (%d)\n", ct++,
(unsigned) *((int_32 *) dp),
@@ -161,7 +163,7 @@
}
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
while (c--) {
fprintf(f, " Data: %.3d 0x%04x (%d)\n", ct++,
(unsigned) (*((int_16 *) dp) & 0xffff),
@@ -169,7 +171,7 @@
dp += sizeof(int_16);
}
/*@switchbreak@*/ break;
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
while (c--) {
fprintf(f, " Data: %.3d 0x%02x (%d)\n", ct++,
(unsigned) (*((int_8 *) dp) & 0xff),
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmdb.c
============================================================================
$ cvs diff -u -r1.199 -r1.200 rpmdb.c
--- rpm/rpmdb/rpmdb.c 4 Nov 2007 18:10:20 -0000 1.199
+++ rpm/rpmdb/rpmdb.c 8 Nov 2007 15:15:40 -0000 1.200
@@ -2175,7 +2175,7 @@
ntags++;
continue;
}
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = xcalloc(1, sizeof(*he->p.ui32p));
he->c = 1;
}
@@ -2184,7 +2184,7 @@
while (1) {
switch (he->t) {
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
for (j = 0; j < he->c; j++) {
sprintf(numbuf, "%u", he->p.ui8p[j]);
rc = mireRegexec(mire, numbuf);
@@ -2192,7 +2192,7 @@
anymatch++;
}
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
for (j = 0; j < he->c; j++) {
sprintf(numbuf, "%u", he->p.ui16p[j]);
rc = mireRegexec(mire, numbuf);
@@ -2200,7 +2200,7 @@
anymatch++;
}
/*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
for (j = 0; j < he->c; j++) {
sprintf(numbuf, "%u", he->p.ui32p[j]);
rc = mireRegexec(mire, numbuf);
@@ -2208,7 +2208,7 @@
anymatch++;
}
/*@switchbreak@*/ break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
for (j = 0; j < he->c; j++) {
sprintf(numbuf, "%llu", he->p.ui64p[j]);
rc = mireRegexec(mire, numbuf);
@@ -2823,7 +2823,7 @@
if (rid != 0 && rid != -1) {
uint32_t tid = rid;
he->tag = RPMTAG_REMOVETID;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tid;
he->c = 1;
xx = hae(h, he, 0);
@@ -2936,19 +2936,19 @@
assert(0);
/*@switchbreak@*/ break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
key->size = sizeof(*he->p.ui8p);
/*@i@*/ key->data = he->p.ui8p + i;
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
key->size = sizeof(*he->p.ui16p);
/*@i@*/ key->data = he->p.ui16p + i;
/*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
key->size = sizeof(*he->p.ui32p);
/*@i@*/ key->data = he->p.ui32p + i;
/*@switchbreak@*/ break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
key->size = sizeof(*he->p.ui64p);
/*@i@*/ key->data = he->p.ui64p + i;
/*@switchbreak@*/ break;
@@ -3138,7 +3138,7 @@
if (iid != 0 && iid != -1) {
uint32_t tid = iid;
he->tag = RPMTAG_INSTALLTID;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &tid;
he->c = 1;
if (!headerIsEntry(h, he->tag))
@@ -3149,7 +3149,7 @@
if (!headerIsEntry(h, RPMTAG_PACKAGECOLOR)) {
uint32_t hcolor = hGetColor(h);
he->tag = RPMTAG_PACKAGECOLOR;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &hcolor;
he->c = 1;
xx = hae(h, he, 0);
@@ -3427,19 +3427,19 @@
assert(0);
/*@switchbreak@*/ break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
key->size = sizeof(*he->p.ui8p);
/*@i@*/ key->data = he->p.ui8p + i;
/*@switchbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
key->size = sizeof(*he->p.ui16p);
/*@i@*/ key->data = he->p.ui16p + i;
/*@switchbreak@*/ break;
- case RPM_INT32_TYPE:
+ case RPM_UINT32_TYPE:
key->size = sizeof(*he->p.ui32p);
/*@i@*/ key->data = he->p.ui32p + i;
/*@switchbreak@*/ break;
- case RPM_INT64_TYPE:
+ case RPM_UINT64_TYPE:
key->size = sizeof(*he->p.ui64p);
/*@i@*/ key->data = he->p.ui64p + i;
/*@switchbreak@*/ break;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/signature.c
============================================================================
$ cvs diff -u -r1.15 -r1.16 signature.c
--- rpm/rpmdb/signature.c 4 Nov 2007 17:59:56 -0000 1.15
+++ rpm/rpmdb/signature.c 8 Nov 2007 15:15:40 -0000 1.16
@@ -664,7 +664,7 @@
break;
pktlen = st.st_size;
he->tag = sigTag;
- he->t = RPM_INT32_TYPE;
+ he->t = RPM_UINT32_TYPE;
he->p.ui32p = &pktlen;
he->c = 1;
xx = hae(sigh, he, 0);
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/sqlite.c
============================================================================
$ cvs diff -u -r1.18 -r1.19 sqlite.c
--- rpm/rpmdb/sqlite.c 16 Oct 2007 16:23:13 -0000 1.18
+++ rpm/rpmdb/sqlite.c 8 Nov 2007 15:15:40 -0000 1.19
@@ -530,22 +530,22 @@
/*@=castfcnptr =nullpass@*/
/*@innerbreak@*/ break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
+ case RPM_UINT8_TYPE:
{ unsigned char i;
/*@i@*/ assert(key->size == sizeof(unsigned char));
assert(swapped == 0); /* Byte swap?! */
memcpy(&i, key->data, sizeof(i));
rc = sqlite3_bind_int(scp->pStmt, pos, i);
} /*@innerbreak@*/ break;
- case RPM_INT16_TYPE:
+ case RPM_UINT16_TYPE:
{ unsigned short i;
/*@i@*/ assert(key->size == sizeof(int_16));
assert(swapped == 0); /* Byte swap?! */
memcpy(&i, key->data, sizeof(i));
rc = sqlite3_bind_int(scp->pStmt, pos, i);
} /*@innerbreak@*/ break;
- case RPM_INT32_TYPE:
-/* case RPM_INT64_TYPE: */
+ case RPM_UINT32_TYPE:
+ case RPM_UINT64_TYPE:
default:
{ unsigned int i;
/*@i@*/ assert(key->size == sizeof(int_32));
@@ -747,10 +747,10 @@
keytype = "blob UNIQUE";
/*@innerbreak@*/ break;
case RPM_CHAR_TYPE:
- case RPM_INT8_TYPE:
- case RPM_INT16_TYPE:
- case RPM_INT32_TYPE:
-/* case RPM_INT64_TYPE: */
+ case RPM_UINT8_TYPE:
+ case RPM_UINT16_TYPE:
+ case RPM_UINT32_TYPE:
+ case RPM_UINT64_TYPE:
keytype = "int UNIQUE";
/*@innerbreak@*/ break;
case RPM_STRING_TYPE:
@@ .
patch -p0 <<'@@ .'
Index: rpm/tools/rpmcache.c
============================================================================
$ cvs diff -u -r2.21 -r2.22 rpmcache.c
--- rpm/tools/rpmcache.c 19 Oct 2007 00:36:47 -0000 2.21
+++ rpm/tools/rpmcache.c 8 Nov 2007 15:15:41 -0000 2.22
@@ -44,8 +44,8 @@
typedef struct Item_s {
const char * path;
- int_32 size;
- int_32 mtime;
+ uint32_t size;
+ uint32_t mtime;
rpmds this;
Header h;
} * Item;
@@ -105,9 +105,10 @@
static int ftsCacheUpdate(rpmts ts)
{
- HGE_t hge = (HGE_t)headerGetExtension;
+ HGE_t hge = headerGetExtension;
+ HAE_t hae = headerAddExtension;
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
- int_32 tid = rpmtsGetTid(ts);
+ uint32_t tid = rpmtsGetTid(ts);
rpmdbMatchIterator mi;
unsigned char * md5;
int rc = 0;
@@ -148,17 +149,40 @@
}
/* --- Add cache tags to new cache header. */
- rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHECTIME,
- RPM_INT32_TYPE, &tid, 1);
+ he->tag = RPMTAG_CACHECTIME;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = &tid;
+ he->c = 1;
+ he->append = 1;
+ rc = hae(ip->h, he, 0);
+ he->append = 0;
if (rc != 1) break;
- rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHEPKGPATH,
- RPM_STRING_ARRAY_TYPE, &ip->path, 1);
+
+ he->tag = RPMTAG_CACHEPKGPATH;
+ he->t = RPM_STRING_ARRAY_TYPE;
+ he->p.argv = &ip->path;
+ he->c = 1;
+ he->append = 1;
+ rc = hae(ip->h, he, 0);
+ he->append = 0;
if (rc != 1) break;
- rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHEPKGSIZE,
- RPM_INT32_TYPE, &ip->size, 1);
+
+ he->tag = RPMTAG_CACHEPKGSIZE;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = &ip->size;
+ he->c = 1;
+ he->append = 1;
+ rc = hae(ip->h, he, 0);
+ he->append = 0;
if (rc != 1) break;
- rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHEPKGMTIME,
- RPM_INT32_TYPE, &ip->mtime, 1);
+
+ he->tag = RPMTAG_CACHEPKGMTIME;
+ he->t = RPM_UINT32_TYPE;
+ he->p.ui32p = &ip->mtime;
+ he->c = 1;
+ he->append = 1;
+ rc = hae(ip->h, he, 0);
+ he->append = 0;
if (rc != 1) break;
/* --- Add new cache header to database. */
@@ .
Received on Thu Nov 8 16:15:41 2007