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: 04-Nov-2007 21:51:27 Branch: HEAD Handle: 2007110420512600 Modified files: rpm CHANGES rpm/build files.c rpmspec.h Log: - jbj: finish bulldozing headerAddEntry throughout rpmbuild. Summary: Revision Changes Path 1.1772 +1 -0 rpm/CHANGES 1.282 +202 -98 rpm/build/files.c 2.62 +1 -1 rpm/build/rpmspec.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.1771 -r1.1772 CHANGES --- rpm/CHANGES 4 Nov 2007 19:37:01 -0000 1.1771 +++ rpm/CHANGES 4 Nov 2007 20:51:26 -0000 1.1772 @@ -1,4 +1,5 @@ 4.5 -> 5.0: + - 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. - rpm.org: rpmhash.c: use size_t for keySize. @@ . patch -p0 <<'@@ .' Index: rpm/build/files.c ============================================================================ $ cvs diff -u -r1.281 -r1.282 files.c --- rpm/build/files.c 4 Nov 2007 01:29:23 -0000 1.281 +++ rpm/build/files.c 4 Nov 2007 20:51:26 -0000 1.282 @@ -1252,11 +1252,13 @@ he->p.ui32p = dirIndexes; he->c = count; xx = hae(h, he, 0); + he->tag = RPMTAG_BASENAMES; 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; @@ -1286,7 +1288,11 @@ /[EMAIL PROTECTED] h, *fip, fl->processingFailed, fl->fileList, rpmGlobalMacroContext, fileSystem, internalState @*/ { + HAE_t hae = headerAddExtension; + HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const char * apath; + uint16_t ui16; + uint32_t ui32; int _addDotSlash = !isSrc; int apathlen = 0; int dpathlen = 0; @@ -1382,67 +1388,95 @@ * compressed file list write before we write the actual package to * disk. */ - (void) headerAddOrAppendEntry(h, RPMTAG_OLDFILENAMES, RPM_STRING_ARRAY_TYPE, - &(flp->fileURL), 1); + he->tag = RPMTAG_OLDFILENAMES; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &flp->fileURL; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; /[EMAIL PROTECTED]@*/ - if (sizeof(flp->fl_size) != sizeof(uint32_t)) { - uint32_t psize = (uint32_t)flp->fl_size; - (void) headerAddOrAppendEntry(h, RPMTAG_FILESIZES, RPM_INT32_TYPE, - &(psize), 1); - } else { - (void) headerAddOrAppendEntry(h, RPMTAG_FILESIZES, RPM_INT32_TYPE, - &(flp->fl_size), 1); - } - (void) headerAddOrAppendEntry(h, RPMTAG_FILEUSERNAME, RPM_STRING_ARRAY_TYPE, - &(flp->uname), 1); - (void) headerAddOrAppendEntry(h, RPMTAG_FILEGROUPNAME, RPM_STRING_ARRAY_TYPE, - &(flp->gname), 1); - if (sizeof(flp->fl_mtime) != sizeof(uint32_t)) { - uint32_t mtime = (uint32_t)flp->fl_mtime; - (void) headerAddOrAppendEntry(h, RPMTAG_FILEMTIMES, RPM_INT32_TYPE, - &(mtime), 1); - } else { - (void) headerAddOrAppendEntry(h, RPMTAG_FILEMTIMES, RPM_INT32_TYPE, - &(flp->fl_mtime), 1); - } - if (sizeof(flp->fl_mode) != sizeof(uint16_t)) { - uint16_t pmode = (uint16_t)flp->fl_mode; - (void) headerAddOrAppendEntry(h, RPMTAG_FILEMODES, RPM_INT16_TYPE, - &(pmode), 1); - } else { - (void) headerAddOrAppendEntry(h, RPMTAG_FILEMODES, RPM_INT16_TYPE, - &(flp->fl_mode), 1); - } - if (sizeof(flp->fl_rdev) != sizeof(uint16_t)) { - uint16_t prdev = (uint16_t)flp->fl_rdev; - (void) headerAddOrAppendEntry(h, RPMTAG_FILERDEVS, RPM_INT16_TYPE, - &(prdev), 1); - } else { - (void) headerAddOrAppendEntry(h, RPMTAG_FILERDEVS, RPM_INT16_TYPE, - &(flp->fl_rdev), 1); - } - if (sizeof(flp->fl_dev) != sizeof(uint32_t)) { - uint32_t pdevice = (uint32_t)flp->fl_dev; - (void) headerAddOrAppendEntry(h, RPMTAG_FILEDEVICES, RPM_INT32_TYPE, - &(pdevice), 1); - } else { - (void) headerAddOrAppendEntry(h, RPMTAG_FILEDEVICES, RPM_INT32_TYPE, - &(flp->fl_dev), 1); - } - if (sizeof(flp->fl_ino) != sizeof(uint32_t)) { - uint32_t ino = (uint32_t)flp->fl_ino; - (void) headerAddOrAppendEntry(h, RPMTAG_FILEINODES, RPM_INT32_TYPE, - &(ino), 1); - } else { - (void) headerAddOrAppendEntry(h, RPMTAG_FILEINODES, RPM_INT32_TYPE, - &(flp->fl_ino), 1); - } + ui32 = flp->fl_size; + he->tag = RPMTAG_FILESIZES; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + he->tag = RPMTAG_FILEUSERNAME; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &flp->uname; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + he->tag = RPMTAG_FILEGROUPNAME; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &flp->gname; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + ui32 = flp->fl_mtime; + he->tag = RPMTAG_FILEMTIMES; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + ui16 = flp->fl_mode; + he->tag = RPMTAG_FILEMODES; + he->t = RPM_INT16_TYPE; + he->p.ui16p = &ui16; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + ui16 = flp->fl_rdev; + he->tag = RPMTAG_FILERDEVS; + he->t = RPM_INT16_TYPE; + he->p.ui16p = &ui16; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + ui32 = flp->fl_dev; + he->tag = RPMTAG_FILEDEVICES; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + ui32 = flp->fl_ino; + he->tag = RPMTAG_FILEINODES; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + /[EMAIL PROTECTED]@*/ - (void) headerAddOrAppendEntry(h, RPMTAG_FILELANGS, RPM_STRING_ARRAY_TYPE, - &(flp->langs), 1); - + he->tag = RPMTAG_FILELANGS; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &flp->langs; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + { static uint32_t source_file_dalgo = 0; static uint32_t binary_file_dalgo = 0; static int oneshot = 0; @@ -1483,10 +1517,23 @@ if (S_ISREG(flp->fl_mode)) (void) dodigest(dalgo, flp->diskURL, (unsigned char *)buf, 1, NULL); s = buf; - (void) headerAddOrAppendEntry(h, RPMTAG_FILEDIGESTS, RPM_STRING_ARRAY_TYPE, - &s, 1); - (void) headerAddOrAppendEntry(h, RPMTAG_FILEDIGESTALGOS, RPM_INT32_TYPE, - &dalgo, 1); + + he->tag = RPMTAG_FILEDIGESTS; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &s; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + ui32 = dalgo; + he->tag = RPMTAG_FILEDIGESTALGOS; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; } buf[0] = '\0'; @@ -1508,15 +1555,26 @@ } } s = buf; - (void) headerAddOrAppendEntry(h, RPMTAG_FILELINKTOS, RPM_STRING_ARRAY_TYPE, - &s, 1); - + he->tag = RPMTAG_FILELINKTOS; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &s; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + if (flp->flags & RPMFILE_GHOST) { flp->verifyFlags &= ~(RPMVERIFY_MD5 | RPMVERIFY_FILESIZE | RPMVERIFY_LINKTO | RPMVERIFY_MTIME); } - (void) headerAddOrAppendEntry(h, RPMTAG_FILEVERIFYFLAGS, RPM_INT32_TYPE, - &(flp->verifyFlags), 1); + ui32 = flp->verifyFlags; + he->tag = RPMTAG_FILEVERIFYFLAGS; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; if (!isSrc && isDoc(fl, flp->fileURL)) flp->flags |= RPMFILE_DOC; @@ -1524,18 +1582,30 @@ if (S_ISDIR(flp->fl_mode)) flp->flags &= ~(RPMFILE_CONFIG|RPMFILE_DOC); - (void) headerAddOrAppendEntry(h, RPMTAG_FILEFLAGS, RPM_INT32_TYPE, - &(flp->flags), 1); - + ui32 = flp->flags; + he->tag = RPMTAG_FILEFLAGS; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + /* Add file security context to package. */ { - mode_t fmode; static char *nocon = ""; - fmode = (uint16_t)flp->fl_mode; + mode_t fmode = flp->fl_mode; if (matchpathcon(flp->fileURL, fmode, &scon) || scon == NULL) scon = nocon; - (void) headerAddOrAppendEntry(h, RPMTAG_FILECONTEXTS, RPM_STRING_ARRAY_TYPE, - &scon, 1); + + he->tag = RPMTAG_FILECONTEXTS; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = (const char **)&scon; /* XXX NOCAST */ + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + if (scon != nocon) freecon(scon); } @@ -1544,9 +1614,15 @@ matchpathcon_fini(); sxfn = _free(sxfn); - (void) headerAddEntry(h, RPMTAG_SIZE, RPM_INT32_TYPE, - &(fl->totalFileSize), 1); - + ui32 = fl->totalFileSize; + he->tag = RPMTAG_SIZE; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &ui32; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + compressFilelist(h); { int scareMem = 0; @@ -1991,6 +2067,8 @@ check_fileList, rpmGlobalMacroContext, fileSystem, internalState @*/ { + HAE_t hae = headerAddExtension; + HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const char * buildURL = "%{_builddir}/%{?buildsubdir}/"; const char * fn = NULL; const char * apkt = NULL; @@ -2036,8 +2114,13 @@ } /[EMAIL PROTECTED]@*/ - xx = headerAddOrAppendEntry(pkg->header, tag, - RPM_STRING_ARRAY_TYPE, &apkt, 1); + he->tag = tag; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &apkt; + he->c = 1; + he->append = 1; + xx = hae(pkg->header, he, 0); + he->append = 0; rc = 0; if (absolute) @@ -2437,22 +2520,21 @@ int initSourceHeader(Spec spec, StringBuf *sfp) { + HAE_t hae = headerAddExtension; + HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); HeaderIterator hi; - rpmTag tag; - rpmTagType type; - rpmTagCount count; - const void * ptr; StringBuf sourceFiles; struct Source *srcPtr; + int xx; /* Only specific tags are added to the source package header */ /[EMAIL PROTECTED]@*/ if (!spec->sourceHdrInit) { for (hi = headerInitIterator(spec->packages->header); - headerNextIterator(hi, &tag, &type, &ptr, &count); - ptr = headerFreeData(ptr, type)) + headerNextIterator(hi, &he->tag, &he->t, &he->p.ptr, &he->c); + he->p.ptr = headerFreeData(he->p.ptr, he->t)) { - switch (tag) { + switch (he->tag) { case RPMTAG_NAME: case RPMTAG_VERSION: case RPMTAG_RELEASE: @@ -2475,8 +2557,8 @@ case RPMTAG_GIF: case RPMTAG_XPM: case HEADER_I18NTABLE: - if (ptr) - (void)headerAddEntry(spec->sourceHeader, tag, type, ptr, count); + if (he->p.ptr) + xx = hae(spec->sourceHeader, he, 0); /[EMAIL PROTECTED]@*/ break; default: /* do not copy */ @@ -2487,9 +2569,11 @@ /[EMAIL PROTECTED]@*/ if (spec->BANames && spec->BACount > 0) { - (void) headerAddEntry(spec->sourceHeader, RPMTAG_BUILDARCHS, - RPM_STRING_ARRAY_TYPE, - spec->BANames, spec->BACount); + he->tag = RPMTAG_BUILDARCHS; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = spec->BANames; + he->c = spec->BACount; + xx = hae(spec->sourceHeader, he, 0); } } @@ -2513,19 +2597,39 @@ continue; if (srcPtr->flags & RPMFILE_SOURCE) { - (void) headerAddOrAppendEntry(spec->sourceHeader, RPMTAG_SOURCE, - RPM_STRING_ARRAY_TYPE, &srcPtr->source, 1); + he->tag = RPMTAG_SOURCE; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &srcPtr->source; + he->c = 1; + he->append = 1; + xx = hae(spec->sourceHeader, he, 0); + he->append = 0; if (srcPtr->flags & RPMFILE_GHOST) { - (void) headerAddOrAppendEntry(spec->sourceHeader, RPMTAG_NOSOURCE, - RPM_INT32_TYPE, &srcPtr->num, 1); + he->tag = RPMTAG_NOSOURCE; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &srcPtr->num; + he->c = 1; + he->append = 1; + xx = hae(spec->sourceHeader, he, 0); + he->append = 0; } } if (srcPtr->flags & RPMFILE_PATCH) { - (void) headerAddOrAppendEntry(spec->sourceHeader, RPMTAG_PATCH, - RPM_STRING_ARRAY_TYPE, &srcPtr->source, 1); + he->tag = RPMTAG_PATCH; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &srcPtr->source; + he->c = 1; + he->append = 1; + xx = hae(spec->sourceHeader, he, 0); + he->append = 0; if (srcPtr->flags & RPMFILE_GHOST) { - (void) headerAddOrAppendEntry(spec->sourceHeader, RPMTAG_NOPATCH, - RPM_INT32_TYPE, &srcPtr->num, 1); + he->tag = RPMTAG_NOPATCH; + he->t = RPM_INT32_TYPE; + he->p.ui32p = &srcPtr->num; + he->c = 1; + he->append = 1; + xx = hae(spec->sourceHeader, he, 0); + he->append = 0; } } } @@ . patch -p0 <<'@@ .' Index: rpm/build/rpmspec.h ============================================================================ $ cvs diff -u -r2.61 -r2.62 rpmspec.h --- rpm/build/rpmspec.h 4 Nov 2007 19:37:02 -0000 2.61 +++ rpm/build/rpmspec.h 4 Nov 2007 20:51:26 -0000 2.62 @@ -40,7 +40,7 @@ /[EMAIL PROTECTED]@*/ const char * source; /* Pointer into fullSource */ int flags; - int num; + uint32_t num; /[EMAIL PROTECTED]@*/ struct Source * next; }; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org