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-Dec-2007 02:56:40
  Branch: HEAD                             Handle: 2007122301563901

  Modified files:
    rpm                     CHANGES
    rpm/build               files.c pack.c

  Log:
    - jbj: permit rpm -q --qf '%{track}\n' --specsrpm foo.spec queries.

  Summary:
    Revision    Changes     Path
    1.2008      +1  -0      rpm/CHANGES
    1.310       +43 -0      rpm/build/files.c
    2.280       +0  -42     rpm/build/pack.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2007 -r1.2008 CHANGES
  --- rpm/CHANGES       23 Dec 2007 00:14:01 -0000      1.2007
  +++ rpm/CHANGES       23 Dec 2007 01:56:39 -0000      1.2008
  @@ -1,4 +1,5 @@
   5.0b3 -> 5.0b4:
  +    - jbj: permit rpm -q --qf '%{track}\n' --specsrpm foo.spec queries.
       - jbj: fix: supply additional indentation for forced array[1] with 
--yaml.
   
   5.0b2 -> 5.0b3:
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/files.c
  ============================================================================
  $ cvs diff -u -r1.309 -r1.310 files.c
  --- rpm/build/files.c 19 Dec 2007 03:00:23 -0000      1.309
  +++ rpm/build/files.c 23 Dec 2007 01:56:40 -0000      1.310
  @@ -17,6 +17,7 @@
   #include <rpmio_internal.h>  /* XXX fdGetFp */
   #include <fts.h>
   
  +#define      _RPMTAG_INTERNAL        /* XXX rpmTags->aTags */
   #define      _RPMFI_INTERNAL
   #define      _RPMTE_INTERNAL
   #include <rpmbuild.h>
  @@ -2489,6 +2490,7 @@
       struct Source *srcPtr;
       static rpmTag classTag = 0xffffffff;
       int xx;
  +    int i;
   
       if (classTag == 0xffffffff)
        classTag = tagValue("Class");
  @@ -2546,6 +2548,47 @@
        he->c = spec->BACount;
        xx = headerPut(spec->sourceHeader, he, 0);
       }
  +
  +    /* Load arbitrary tags into srpm header. */
  +    if (spec->foo)
  +    for (i = 0; i < spec->nfoo; i++) {
  +     const char * str = spec->foo[i].str;
  +     rpmTag tag = spec->foo[i].tag;
  +     StringBuf sb = spec->foo[i].val;
  +     char * s;
  +
  +     if (str == NULL || sb == NULL)
  +         continue;
  +
  +     /* XXX Special case %track interpreter for now. */
  +     if (!xstrcasecmp(str, "track")) {
  +         he->p.str = rpmExpand("%{?__vcheck}", NULL);
  +         if (!(he->p.str != NULL && he->p.str[0] != '\0')) {
  +             he->p.str = _free(he->p.str);
  +             continue;
  +         }
  +         he->tag = tagValue("Trackprog");
  +         he->t = RPM_STRING_TYPE;
  +         he->c = 1;
  +         xx = headerPut(spec->sourceHeader, he, 0);
  +         he->p.str = _free(he->p.str);
  +     }
  +
  +     s = getStringBuf(sb);
  +     he->tag = tag;
  +     he->append = headerIsEntry(spec->sourceHeader, tag);
  +     if (he->append) {
  +         he->t = RPM_STRING_ARRAY_TYPE;
  +         he->p.argv = (const char **) &s;
  +         he->c = 1;
  +     } else {
  +         he->t = RPM_STRING_TYPE;
  +         he->p.str = s;
  +         he->c = 1;
  +     }
  +     xx = headerPut(spec->sourceHeader, he, 0);
  +     he->append = 0;
  +    }
     }
   
       if (sfp != NULL && *sfp != NULL)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/pack.c
  ============================================================================
  $ cvs diff -u -r2.279 -r2.280 pack.c
  --- rpm/build/pack.c  19 Dec 2007 03:03:39 -0000      2.279
  +++ rpm/build/pack.c  23 Dec 2007 01:56:40 -0000      2.280
  @@ -1111,7 +1111,6 @@
       CSA_t csa = &csabuf;
       rpmRC rc;
       int xx;
  -    int i;
   
       /* Add rpmlib markers for tracking. */
       (void) rpmlibMarkers(spec->sourceHeader);
  @@ -1130,47 +1129,6 @@
        av = argvFree(av);
       }
   
  -    /* Load arbitrary tags into srpm header. */
  -    if (spec->foo)
  -    for (i = 0; i < spec->nfoo; i++) {
  -     const char * str = spec->foo[i].str;
  -     rpmTag tag = spec->foo[i].tag;
  -     StringBuf sb = spec->foo[i].val;
  -     char * s;
  -
  -     if (str == NULL || sb == NULL)
  -         continue;
  -
  -     /* XXX Special case %track interpreter for now. */
  -     if (!xstrcasecmp(str, "track")) {
  -         he->p.str = rpmExpand("%{?__vcheck}", NULL);
  -         if (!(he->p.str != NULL && he->p.str[0] != '\0')) {
  -             he->p.str = _free(he->p.str);
  -             continue;
  -         }
  -         he->tag = tagValue("Trackprog");
  -         he->t = RPM_STRING_TYPE;
  -         he->c = 1;
  -         xx = headerPut(spec->sourceHeader, he, 0);
  -         he->p.str = _free(he->p.str);
  -     }
  -
  -     s = getStringBuf(sb);
  -     he->tag = tag;
  -     he->append = headerIsEntry(spec->sourceHeader, tag);
  -     if (he->append) {
  -         he->t = RPM_STRING_ARRAY_TYPE;
  -         he->p.argv = (const char **) &s;
  -         he->c = 1;
  -     } else {
  -         he->t = RPM_STRING_TYPE;
  -         he->p.str = s;
  -         he->c = 1;
  -     }
  -     xx = headerPut(spec->sourceHeader, he, 0);
  -     he->append = 0;
  -    }
  -
       spec->cookie = _free(spec->cookie);
       
       /* XXX this should be %_srpmdir */
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to