RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/lib/ psm.c rpm/rpmdb/ librpmdb.vers

From: Jeff Johnson <jbj@rpm5.org>
Date: Mon 26 Nov 2007 - 06:42:24 CET
Message-Id: <20071126054224.9E0F034847C@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:   26-Nov-2007 06:42:24
  Branch: HEAD                             Handle: 2007112605422301

  Modified files:
    rpm                     CHANGES
    rpm/lib                 psm.c
    rpm/rpmdb               librpmdb.vers

  Log:
    - limit headerGetEntry usage to -lrpmdb only.

  Summary:
    Revision    Changes     Path
    1.1890      +1  -0      rpm/CHANGES
    2.270       +9  -6      rpm/lib/psm.c
    1.36        +0  -1      rpm/rpmdb/librpmdb.vers
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1889 -r1.1890 CHANGES
  --- rpm/CHANGES	26 Nov 2007 05:16:48 -0000	1.1889
  +++ rpm/CHANGES	26 Nov 2007 05:42:23 -0000	1.1890
  @@ -1,4 +1,5 @@
   5.0a2 -> 5.0a3:
  +    - jbj: limit headerGetEntry usage to -lrpmdb only.
       - jbj: Eliminate header.h and hdrinline.h.
       - jbj: insure that HE_t in headerGet/headerNext is initialized sanely.
       - jbj: python: lose rpmMergeHeaderFoo methods.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/psm.c
  ============================================================================
  $ cvs diff -u -r2.269 -r2.270 psm.c
  --- rpm/lib/psm.c	26 Nov 2007 02:03:09 -0000	2.269
  +++ rpm/lib/psm.c	26 Nov 2007 05:42:24 -0000	2.270
  @@ -112,6 +112,7 @@
   	/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
   	/*@modifies psm, rpmGlobalMacroContext, fileSystem, internalState @*/
   {
  +    HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
       const rpmts ts = psm->ts;
       rpmte te = psm->te;
       rpmfi fi = psm->fi;
  @@ -153,21 +154,22 @@
   
       sfi = replaced;
       while ((h = rpmdbNextIterator(mi)) != NULL) {
  -	rpmTagData secStates;
   	int modified;
  -	rpmTagCount count;
   
   	modified = 0;
   
  -	if (!headerGetEntry(h, RPMTAG_FILESTATES, NULL, &secStates, &count))
  +	/* XXX FIXME: not correct yet, but headerGetEntry needs to die now! */
  +	he->tag = RPMTAG_FILESTATES;
  +	xx = headerGet(h, he, 0);
  +	if (!xx)
   	    continue;
   	
   	prev = rpmdbGetIteratorOffset(mi);
   	num = 0;
   	while (sfi->otherPkg && sfi->otherPkg == prev) {
  -	    assert(sfi->otherFileNum < count);
  -	    if (secStates.ui8p[sfi->otherFileNum] != RPMFILE_STATE_REPLACED) {
  -		secStates.ui8p[sfi->otherFileNum] = RPMFILE_STATE_REPLACED;
  +assert(sfi->otherFileNum < he->c);
  +	    if (he->p.ui8p[sfi->otherFileNum] != RPMFILE_STATE_REPLACED) {
  +		he->p.ui8p[sfi->otherFileNum] = RPMFILE_STATE_REPLACED;
   		if (modified == 0) {
   		    /* Modified header will be rewritten. */
   		    modified = 1;
  @@ -177,6 +179,7 @@
   	    }
   	    sfi++;
   	}
  +	he->p.ptr = _free(he->p.ptr);
       }
       mi = rpmdbFreeIterator(mi);
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.35 -r1.36 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers	26 Nov 2007 05:16:52 -0000	1.35
  +++ rpm/rpmdb/librpmdb.vers	26 Nov 2007 05:42:24 -0000	1.36
  @@ -36,7 +36,6 @@
       headerFini;
       headerFree;
       headerGet;
  -    headerGetEntry;
       headerGetInstance;
       headerGetMagic;
       headerGetOrigin;
  @@ .
Received on Mon Nov 26 06:42:24 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.