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:   23-Nov-2007 19:29:02
  Branch: HEAD                             Handle: 2007112318290101

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               rpmwf.c rpmwf.h
    rpm/rpmio               rpmxar.c rpmxar.h

  Log:
    - rescusitate txar, pass private buffer through rpmxarPush.

  Summary:
    Revision    Changes     Path
    1.1876      +1  -0      rpm/CHANGES
    1.19        +34 -25     rpm/rpmdb/rpmwf.c
    1.9         +2  -2      rpm/rpmdb/rpmwf.h
    2.8         +16 -5      rpm/rpmio/rpmxar.c
    2.6         +1  -1      rpm/rpmio/rpmxar.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1875 -r1.1876 CHANGES
  --- rpm/CHANGES       23 Nov 2007 16:55:42 -0000      1.1875
  +++ rpm/CHANGES       23 Nov 2007 18:29:01 -0000      1.1876
  @@ -1,4 +1,5 @@
   5.0a2 -> 5.0a3:
  +    - jbj: rescusitate txar, pass private buffer through rpmxarPush.
       - jbj: re-add rpm2cpio.c.
       - jbj: spiffy error msgs for the XAR challenged users.
       - jbj: splint fiddles for rpmxar and rpmTag.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmwf.c
  ============================================================================
  $ cvs diff -u -r1.18 -r1.19 rpmwf.c
  --- rpm/rpmdb/rpmwf.c 23 Nov 2007 16:35:43 -0000      1.18
  +++ rpm/rpmdb/rpmwf.c 23 Nov 2007 18:29:01 -0000      1.19
  @@ -39,8 +39,10 @@
        nb = wf->np;
       }
   
  -    xx = rpmxarSwapBuf(wf->xar, b, nb, NULL, NULL);
  -    xx = rpmxarPush(wf->xar, fn);
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfPushXAR(%p, %s) %p[%u]\n", wf, fn, b, (unsigned) 
nb);
  +
  +    xx = rpmxarPush(wf->xar, fn, b, nb);
       return (xx == 0 ? RPMRC_OK : RPMRC_FAIL);
   }
   
  @@ -56,6 +58,9 @@
        return RPMRC_NOTFOUND;
       xx = rpmxarSwapBuf(wf->xar, NULL, 0, &b, &nb);
   
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfPullXAR(%p, %s) %p[%u]\n", wf, fn, b, (unsigned) 
nb);
  +
       if (!strcmp(fn, "Lead")) {
        wf->l = b;
        wf->nl = nb;
  @@ -77,10 +82,13 @@
       return rc;
   }
   
  -rpmRC rpmwfFiniRPM(rpmwf wf)
  +rpmRC rpmwfFini(rpmwf wf)
   {
       int xx;
   
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfFini(%p)\n", wf);
  +
       if (wf->b && wf->b != (void *)-1) {
        xx = munmap(wf->b, wf->nb);
        wf->b = NULL;
  @@ -98,10 +106,10 @@
       return (8 + 8 + 16 * ntohl(p[2]) + ntohl(p[3]));
   }
   
  -rpmRC rpmwfInitRPM(rpmwf wf, const char * fn, const char * fmode)
  +rpmRC rpmwfInit(rpmwf wf, const char * fn, const char * fmode)
   {
   if (_rpmwf_debug)
  -fprintf(stderr, "*** rpmwfInitRPM(%p, %s, %s)\n", wf, fn, fmode);
  +fprintf(stderr, "==> rpmwfInit(%p, %s, %s)\n", wf, fn, fmode);
       if (fn == NULL)
        fn = wf->fn;
   assert(fn != NULL);
  @@ -109,10 +117,8 @@
   /[EMAIL PROTECTED]@*/
       wf->fd = Fopen(fn, fmode);
   /[EMAIL PROTECTED]@*/
  -if (_rpmwf_debug)
  -fprintf(stderr, "*** Fopen(%s, %s) fd %p nb %u\n", fn, fmode, wf->fd, 
(unsigned)wf->nb);
       if (wf->fd == NULL || Ferror(wf->fd)) {
  -     (void) rpmwfFiniRPM(wf);
  +     (void) rpmwfFini(wf);
        return RPMRC_NOTFOUND;
       }
   
  @@ -121,7 +127,7 @@
   
        if (wf->b == (void *)-1) {
            wf->b = NULL;
  -         (void) rpmwfFiniRPM(wf);
  +         (void) rpmwfFini(wf);
            return RPMRC_NOTFOUND;
        }
   
  @@ -168,7 +174,10 @@
       if (!(b && nb > 0))
        return RPMRC_NOTFOUND;
   
  -    if (Fwrite(b, 1, nb, wf->fd) != nb)
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rpmwfPushRPM(%p, %s) %p[%u]\n", wf, fn, b, (unsigned) 
nb);
  +
  +    if (Fwrite(b, sizeof(b[0]), nb, wf->fd) != nb)
        return RPMRC_FAIL;
   
       return RPMRC_OK;
  @@ -179,7 +188,7 @@
       if (wf == NULL) return NULL;
   /[EMAIL PROTECTED]@*/
   if (_rpmwf_debug && msg != NULL)
  -fprintf(stderr, "--> wf %p -- %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln);
  +fprintf(stderr, "-->  wf %p -- %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, 
ln);
   /[EMAIL PROTECTED]@*/
       wf->nrefs--;
       return NULL;
  @@ -192,7 +201,7 @@
   
   /[EMAIL PROTECTED]@*/
   if (_rpmwf_debug && msg != NULL)
  -fprintf(stderr, "--> wf %p ++ %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, ln);
  +fprintf(stderr, "-->  wf %p ++ %d %s at %s:%u\n", wf, wf->nrefs, msg, fn, 
ln);
   /[EMAIL PROTECTED]@*/
   
       /[EMAIL PROTECTED]@*/ return wf; /[EMAIL PROTECTED]@*/
  @@ -216,7 +225,7 @@
        }
   
        wf->xar = rpmxarFree(wf->xar);
  -     (void) rpmwfFiniRPM(wf);
  +     (void) rpmwfFini(wf);
   
        wf->fn = _free(wf->fn);
   
  @@ -244,9 +253,6 @@
       wf->fn = xstrdup(fn);
       wf->nb = st->st_size;
   
  -if (_rpmwf_debug)
  -fprintf(stderr, "*** rpmwfNew(%s) wf %p nb %u\n", wf->fn, wf, 
(unsigned)wf->nb);
  -
       return rpmwfLink(wf, "rpmwfNew");
   }
   
  @@ -258,13 +264,13 @@
       if ((wf = rpmwfNew(rpmfn)) == NULL)
        return wf;
   
  -    if ((rc = rpmwfInitRPM(wf, NULL, "r")) != RPMRC_OK) {
  +    if ((rc = rpmwfInit(wf, NULL, "r")) != RPMRC_OK) {
        wf = rpmwfFree(wf);
        return NULL;
       }
   
   if (_rpmwf_debug)
  -fprintf(stderr, "*** rdRPM(%s) wf %p\n", rpmfn, wf);
  +fprintf(stderr, "==> rdRPM(%s) wf %p\n\tLead %p[%u]\n\tSignature 
%p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", rpmfn, wf, wf->l, 
(unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, 
(unsigned) wf->np);
   
       return wf;
   }
  @@ -282,13 +288,14 @@
        wf = rpmwfFree(wf);
        return NULL;
       }
  -if (_rpmwf_debug)
  -fprintf(stderr, "*** rdXAR(%s) wf %p xar %p\n", xarfn, wf, wf->xar);
   
       while (rpmxarNext(wf->xar) == 0)
        rc = rpmwfPullXAR(wf, NULL);
  -
       wf->xar = rpmxarFree(wf->xar);
  +
  +if (_rpmwf_debug)
  +fprintf(stderr, "==> rdXAR(%s) wf %p\n\tLead %p[%u]\n\tSignature 
%p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", xarfn, wf, wf->l, 
(unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, 
(unsigned) wf->np);
  +
       return wf;
   }
   
  @@ -297,7 +304,8 @@
       rpmRC rc;
   
   if (_rpmwf_debug)
  -fprintf(stderr, "*** wrXAR(%s, %p)\n", xarfn, wf);
  +fprintf(stderr, "==> wrXAR(%s) wf %p\n\tLead %p[%u]\n\tSignature 
%p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", xarfn, wf, wf->l, 
(unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, 
(unsigned) wf->np);
  +
       wf->xar = rpmxarNew(xarfn, "w");
       if (wf->xar == NULL)
        return RPMRC_FAIL;
  @@ -320,10 +328,11 @@
   {
       rpmRC rc;
   
  -    if ((rc = rpmwfInitRPM(wf, rpmfn, "w")) != RPMRC_OK)
  +    if ((rc = rpmwfInit(wf, rpmfn, "w")) != RPMRC_OK)
        goto exit;
  +
   if (_rpmwf_debug)
  -fprintf(stderr, "*** wrRPM(%s, %p)\n", rpmfn, wf);
  +fprintf(stderr, "==> wrRPM(%s) wf %p\n\tLead %p[%u]\n\tSignature 
%p[%u]\n\tHeader %p[%u]\n\tPayload %p[%u]\n", rpmfn, wf, wf->l, 
(unsigned)wf->nl, wf->s, (unsigned) wf->ns, wf->h, (unsigned) wf->nh, wf->p, 
(unsigned) wf->np);
   
       if ((rc = rpmwfPushRPM(wf, "Lead")) != RPMRC_OK)
        goto exit;
  @@ -335,7 +344,7 @@
        goto exit;
   
   exit:
  -    (void) rpmwfFiniRPM(wf);
  +    (void) rpmwfFini(wf);
   
       return rc;
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmwf.h
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 rpmwf.h
  --- rpm/rpmdb/rpmwf.h 23 Nov 2007 07:06:01 -0000      1.8
  +++ rpm/rpmdb/rpmwf.h 23 Nov 2007 18:29:01 -0000      1.9
  @@ -55,11 +55,11 @@
        /[EMAIL PROTECTED] fileSystem @*/
        /[EMAIL PROTECTED] wf, fileSystem @*/;
   
  -rpmRC rpmwfFiniRPM(rpmwf wf)
  +rpmRC rpmwfFini(rpmwf wf)
        /[EMAIL PROTECTED] fileSystem @*/
        /[EMAIL PROTECTED] wf, fileSystem @*/;
   
  -rpmRC rpmwfInitRPM(rpmwf wf, const char * fn, const char * fmode)
  +rpmRC rpmwfInit(rpmwf wf, const char * fn, const char * fmode)
        /[EMAIL PROTECTED] fileSystem @*/
        /[EMAIL PROTECTED] wf, fileSystem @*/;
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmxar.c
  ============================================================================
  $ cvs diff -u -r2.7 -r2.8 rpmxar.c
  --- rpm/rpmio/rpmxar.c        23 Nov 2007 16:37:24 -0000      2.7
  +++ rpm/rpmio/rpmxar.c        23 Nov 2007 18:29:02 -0000      2.8
  @@ -99,8 +99,10 @@
   
   int rpmxarNext(rpmxar xar)
   {
  +/[EMAIL PROTECTED]@*/
   if (_xar_debug)
  -fprintf(stderr, "*** rpmxarNext(%p) first %d\n", xar, xar->first);
  +fprintf(stderr, "--> rpmxarNext(%p) first %d\n", xar, xar->first);
  +/[EMAIL PROTECTED]@*/
   
   #if defined(WITH_XAR)
   /[EMAIL PROTECTED]@*/
  @@ -115,12 +117,17 @@
       return (xar->f == NULL ? 1 : 0);
   }
   
  -int rpmxarPush(rpmxar xar, const char * fn)
  +int rpmxarPush(rpmxar xar, const char * fn, char * b, size_t bsize)
   {
  -    if (xar->x && xar->b != NULL) {
  +/[EMAIL PROTECTED]@*/
  +if (_xar_debug)
  +fprintf(stderr, "--> rpmxarPush(%p, %s) %p[%u]\n", xar, fn, b, 
(unsigned)bsize);
  +/[EMAIL PROTECTED]@*/
  +
  +    if (xar->x && b != NULL) {
   #if defined(WITH_XAR)
   /[EMAIL PROTECTED]@*/
  -     xar->f = xar_add_frombuffer(xar->x, NULL, fn, xar->b, xar->bsize);
  +     xar->f = xar_add_frombuffer(xar->x, NULL, fn, b, bsize);
   /[EMAIL PROTECTED]@*/
   #endif
        if (xar->f == NULL)
  @@ -156,8 +163,11 @@
   /[EMAIL PROTECTED] =nullstate @*/
   #endif       /* WITH_XAR */
   
  +/[EMAIL PROTECTED]@*/
   if (_xar_debug)
  -fprintf(stderr, "*** %s %p[%lu] rc %d\n", xar->member, xar->b, (unsigned 
long)xar->bsize, rc);
  +fprintf(stderr, "--> rpmxarPull(%p, %s) %p[%u] rc %d\n", xar, fn, xar->b, 
(unsigned)xar->bsize, rc);
  +/[EMAIL PROTECTED]@*/
  +
       if (rc)
        return 1;
   
  @@ -171,6 +181,7 @@
   if (_xar_debug)
   fprintf(stderr, "*** rpmxarSwapBuf(%p, %p[%u], %p, %p) %p[%u]\n", xar, b, 
(unsigned) bsize, obp, obsizep, xar->b, (unsigned) xar->bsize);
   /[EMAIL PROTECTED]@*/
  +
       if (xar) {
        if (obsizep != NULL)
            *obsizep = xar->bsize;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmxar.h
  ============================================================================
  $ cvs diff -u -r2.5 -r2.6 rpmxar.h
  --- rpm/rpmio/rpmxar.h        23 Nov 2007 07:06:01 -0000      2.5
  +++ rpm/rpmio/rpmxar.h        23 Nov 2007 18:29:02 -0000      2.6
  @@ -89,7 +89,7 @@
        /[EMAIL PROTECTED] fileSystem @*/
        /[EMAIL PROTECTED] xar, fileSystem @*/;
   
  -int rpmxarPush(rpmxar xar, const char * fn)
  +int rpmxarPush(rpmxar xar, const char * fn, char * b, size_t bsize)
        /[EMAIL PROTECTED] xar @*/;
   
   int rpmxarPull(rpmxar xar, /[EMAIL PROTECTED]@*/ const char * fn)
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to