RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/build/ files.c rpmspec.h

From: Jeff Johnson <jbj@rpm5.org>
Date: Sun 04 Nov 2007 - 21:51:27 CET
Message-Id: <20071104205127.1C9F234847A@rpm5.org>
  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:   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 @@
   	/*@modifies 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;
   
   /*@-sizeoftype@*/
  -      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;
  +
   /*@=sizeoftype@*/
   
  -	(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 @@
       }
   /*@=branchstate@*/
   
  -    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 */
       /*@-branchstate@*/
     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);
   	    /*@switchbreak@*/ break;
   	default:
   	    /* do not copy */
  @@ -2487,9 +2569,11 @@
       /*@=branchstate@*/
   
       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 @@
   /*@dependent@*/
       const char * source;	/* Pointer into fullSource */
       int flags;
  -    int num;
  +    uint32_t num;
   /*@owned@*/
       struct Source * next;
   };
  @@ .
Received on Sun Nov 4 21:51:27 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.