RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Anders F. Björklund
  Root:   /v/rpm/cvs                       Email:  a...@rpm5.org
  Module: rpm                              Date:   14-May-2011 09:22:09
  Branch: HEAD                             Handle: 2011051407220800

  Modified files:
    rpm/rpmdb               hdrfmt.c
    rpm/scripts             wnh_filelists_mongo wnh_primary_mongo

  Log:
    json: separate from sql, remove dbinstance fields

  Summary:
    Revision    Changes     Path
    1.160       +79 -8      rpm/rpmdb/hdrfmt.c
    1.6         +1  -1      rpm/scripts/wnh_filelists_mongo
    1.7         +5  -5      rpm/scripts/wnh_primary_mongo
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/hdrfmt.c
  ============================================================================
  $ cvs diff -u -r1.159 -r1.160 hdrfmt.c
  --- rpm/rpmdb/hdrfmt.c        13 May 2011 11:59:38 -0000      1.159
  +++ rpm/rpmdb/hdrfmt.c        14 May 2011 07:22:08 -0000      1.160
  @@ -3502,7 +3502,7 @@
   }
   
   /*@-compmempass -kepttrans -nullstate -usereleased @*/
  -static int PRCOsqlTag(Header h, HE_t he, rpmTag EVRtag, rpmTag Ftag)
  +static int PRCOsqlTag(Header h, HE_t he, rpmTag EVRtag, rpmTag Ftag, int 
json)
        /*@globals internalState @*/
        /*@modifies he, internalState @*/
   {
  @@ -3536,7 +3536,10 @@
       if (xx == 0) goto exit;
       F.ui32p = he->p.ui32p;
   
  +    if (!json)
       xx = snprintf(instance, sizeof(instance), "'%u'", 
(unsigned)headerGetInstance(h));
  +    else
  +    *instance = '\0';
       nb = 0;
       ac = 0;
       for (i = 0; i < c; i++) {
  @@ -3591,8 +3594,10 @@
            continue;
   /*@=nullstate@*/
        he->p.argv[ac++] = te;
  +     if (*instance) {
        te = stpcpy(te, instance);
        *te++ = ',';    *te++ = ' ';
  +     }
        *te++ = q;      te = stpcpy(te, N.argv[i]);     *te++ = q;
   /*@-readonlytrans@*/
        if (EVR.argv != NULL && EVR.argv[i] != NULL && *EVR.argv[i] != '\0') {
  @@ -3657,7 +3662,7 @@
        /*@modifies he, internalState @*/
   {
       he->tag = RPMTAG_PROVIDENAME;
  -    return PRCOsqlTag(h, he, RPMTAG_PROVIDEVERSION, RPMTAG_PROVIDEFLAGS);
  +    return PRCOsqlTag(h, he, RPMTAG_PROVIDEVERSION, RPMTAG_PROVIDEFLAGS, 0);
   }
   
   static int RsqlTag(Header h, HE_t he)
  @@ -3665,7 +3670,7 @@
        /*@modifies he, internalState @*/
   {
       he->tag = RPMTAG_REQUIRENAME;
  -    return PRCOsqlTag(h, he, RPMTAG_REQUIREVERSION, RPMTAG_REQUIREFLAGS);
  +    return PRCOsqlTag(h, he, RPMTAG_REQUIREVERSION, RPMTAG_REQUIREFLAGS, 0);
   }
   
   static int CsqlTag(Header h, HE_t he)
  @@ -3673,7 +3678,7 @@
        /*@modifies he, internalState @*/
   {
       he->tag = RPMTAG_CONFLICTNAME;
  -    return PRCOsqlTag(h, he, RPMTAG_CONFLICTVERSION, RPMTAG_CONFLICTFLAGS);
  +    return PRCOsqlTag(h, he, RPMTAG_CONFLICTVERSION, RPMTAG_CONFLICTFLAGS, 
0);
   }
   
   static int OsqlTag(Header h, HE_t he)
  @@ -3681,7 +3686,39 @@
        /*@modifies he, internalState @*/
   {
       he->tag = RPMTAG_OBSOLETENAME;
  -    return PRCOsqlTag(h, he, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS);
  +    return PRCOsqlTag(h, he, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS, 
0);
  +}
  +
  +static int PjsonTag(Header h, HE_t he)
  +     /*@globals internalState @*/
  +     /*@modifies he, internalState @*/
  +{
  +    he->tag = RPMTAG_PROVIDENAME;
  +    return PRCOsqlTag(h, he, RPMTAG_PROVIDEVERSION, RPMTAG_PROVIDEFLAGS, 1);
  +}
  +
  +static int RjsonTag(Header h, HE_t he)
  +     /*@globals internalState @*/
  +     /*@modifies he, internalState @*/
  +{
  +    he->tag = RPMTAG_REQUIRENAME;
  +    return PRCOsqlTag(h, he, RPMTAG_REQUIREVERSION, RPMTAG_REQUIREFLAGS, 1);
  +}
  +
  +static int CjsonTag(Header h, HE_t he)
  +     /*@globals internalState @*/
  +     /*@modifies he, internalState @*/
  +{
  +    he->tag = RPMTAG_CONFLICTNAME;
  +    return PRCOsqlTag(h, he, RPMTAG_CONFLICTVERSION, RPMTAG_CONFLICTFLAGS, 
1);
  +}
  +
  +static int OjsonTag(Header h, HE_t he)
  +     /*@globals internalState @*/
  +     /*@modifies he, internalState @*/
  +{
  +    he->tag = RPMTAG_OBSOLETENAME;
  +    return PRCOsqlTag(h, he, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS, 
1);
   }
   
   static int PRCOyamlTag(Header h, HE_t he, rpmTag EVRtag, rpmTag Ftag)
  @@ -3993,7 +4030,7 @@
       return FDGxmlTag(h, he, 2);
   }
   
  -static int FDGsqlTag(Header h, HE_t he, int lvl)
  +static int FDGsqlTag(Header h, HE_t he, int lvl, int json)
        /*@globals internalState @*/
        /*@modifies he, internalState @*/
   {
  @@ -4038,7 +4075,10 @@
       if (xx == 0) goto exit;
       FFLAGS.ui32p = he->p.ui32p;
   
  +    if (!json)
       xx = snprintf(instance, sizeof(instance), "'%u'", 
(unsigned)headerGetInstance(h));
  +    else
  +    *instance = '\0';
       nb = sizeof(*he->p.argv);
       ac = 0;
       for (i = 0; i < c; i++) {
  @@ -4075,6 +4115,7 @@
        if (S_ISDIR(FMODES.ui16p[i]))
            continue;
        he->p.argv[ac++] = t;
  +     if (*instance)
        t = stpcpy( stpcpy(t, instance), ", '");
        t = strcpy(t, DN.argv[DI.ui32p[i]]);    t += strlen(t);
        t = strcpy(t, BN.argv[i]);              t += strlen(t);
  @@ -4089,6 +4130,7 @@
        if (!S_ISDIR(FMODES.ui16p[i]))
            continue;
        he->p.argv[ac++] = t;
  +     if (*instance)
        t = stpcpy( stpcpy(t, instance), ", '");
        t = strcpy(t, DN.argv[DI.ui32p[i]]);    t += strlen(t);
        t = strcpy(t, BN.argv[i]);              t += strlen(t);
  @@ -4106,6 +4148,7 @@
        if (!(FFLAGS.ui32p[i] & 0x40))  /* XXX RPMFILE_GHOST */
            continue;
        he->p.argv[ac++] = t;
  +     if (*instance)
        t = stpcpy( stpcpy(t, instance), ", '");
        t = strcpy(t, DN.argv[DI.ui32p[i]]);    t += strlen(t);
        t = strcpy(t, BN.argv[i]);              t += strlen(t);
  @@ -4137,7 +4180,7 @@
        /*@modifies he, internalState @*/
   {
       he->tag = RPMTAG_BASENAMES;
  -    return FDGsqlTag(h, he, 1);
  +    return FDGsqlTag(h, he, 1, 0);
   }
   
   static int F2sqlTag(Header h, HE_t he)
  @@ -4145,7 +4188,23 @@
        /*@modifies he, internalState @*/
   {
       he->tag = RPMTAG_BASENAMES;
  -    return FDGsqlTag(h, he, 2);
  +    return FDGsqlTag(h, he, 2, 0);
  +}
  +
  +static int F1jsonTag(Header h, HE_t he)
  +     /*@globals internalState @*/
  +     /*@modifies he, internalState @*/
  +{
  +    he->tag = RPMTAG_BASENAMES;
  +    return FDGsqlTag(h, he, 1, 1);
  +}
  +
  +static int F2jsonTag(Header h, HE_t he)
  +     /*@globals internalState @*/
  +     /*@modifies he, internalState @*/
  +{
  +    he->tag = RPMTAG_BASENAMES;
  +    return FDGsqlTag(h, he, 2, 1);
   }
   
   static int FDGyamlTag(Header h, HE_t he, int lvl)
  @@ -5083,6 +5142,18 @@
        { .tagFunction = F1sqlTag } },
       { HEADER_EXT_TAG, "RPMTAG_FILESSQLENTRY2",
        { .tagFunction = F2sqlTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_PROVIDEJSONENTRY",
  +     { .tagFunction = PjsonTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_REQUIREJSONENTRY",
  +     { .tagFunction = RjsonTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_CONFLICTJSONENTRY",
  +     { .tagFunction = CjsonTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_OBSOLETEJSONENTRY",
  +     { .tagFunction = OjsonTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_FILESJSONENTRY1",
  +     { .tagFunction = F1jsonTag } },
  +    { HEADER_EXT_TAG, "RPMTAG_FILESJSONENTRY2",
  +     { .tagFunction = F2jsonTag } },
       { HEADER_EXT_TAG, "RPMTAG_DEBCONFLICTS",
        { .tagFunction = debconflictsTag } },
       { HEADER_EXT_TAG, "RPMTAG_DEBDEPENDS",
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/scripts/wnh_filelists_mongo
  ============================================================================
  $ cvs diff -u -r1.5 -r1.6 wnh_filelists_mongo
  --- rpm/scripts/wnh_filelists_mongo   11 Apr 2011 23:51:21 -0000      1.5
  +++ rpm/scripts/wnh_filelists_mongo   14 May 2011 07:22:08 -0000      1.6
  @@ -9,7 +9,7 @@
   \n  Files:  \[
   %|basenames?{\
   [\
  -    \[ %{filessqlentry2} \],\n\
  +    \[ %{filesjsonentry2} \],\n\
   ]\
   }|\
     \]\
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/scripts/wnh_primary_mongo
  ============================================================================
  $ cvs diff -u -r1.6 -r1.7 wnh_primary_mongo
  --- rpm/scripts/wnh_primary_mongo     11 Apr 2011 23:51:21 -0000      1.6
  +++ rpm/scripts/wnh_primary_mongo     14 May 2011 07:22:08 -0000      1.7
  @@ -27,31 +27,31 @@
   %|providename?{\
   ,\n  Provides: \
   \[ [\
  -\n    \[ %{providesqlentry} \],\
  +\n    \[ %{providejsonentry} \],\
   ] \]\
   }|\
   %|requirename?{\
   ,\n  Requires: \
   \[ [\
  -\n    \[ %{requiresqlentry} \],\
  +\n    \[ %{requirejsonentry} \],\
   ] \]\
   }|\
   %|conflictname?{\
   ,\n  Conflicts: \
   \[ [\
  -\n    \[ %{conflictsqlentry} \],\
  +\n    \[ %{conflictjsonentry} \],\
   ] \]\
   }|\
   %|obsoletename?{\
   ,\n  Obsoletes: \
   \[ [\
  -\n    \[ %{obsoletesqlentry} \],\
  +\n    \[ %{obsoletejsonentry} \],\
   ] \]\
   }|\
   %|filesxmlentry1?{\
   ,\n  Files: \
   \[ [\
  -\n    \[ %{filessqlentry1} \],\
  +\n    \[ %{filesjsonentry1} \],\
   ] \]\
   }|\
   ,\n\});\
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to