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

  Server: rpm5.org                         Name:   Per Øyvind Karlsen
  Root:   /v/rpm/cvs                       Email:  pkarl...@rpm5.org
  Module: rpm                              Date:   01-Apr-2011 11:52:57
  Branch: rpm-5_4                          Handle: 2011040109525601

  Modified files:           (Branch: rpm-5_4)
    rpm                     CHANGES
    rpm/build               reqprov.c

  Log:
    filter overlapping depencies. leaving under mandriva #ifdef for now,
    need to properly determine 'correctness' & sanity..

  Summary:
    Revision    Changes     Path
    1.3501.2.91 +1  -0      rpm/CHANGES
    1.91.2.4    +40 -0      rpm/build/reqprov.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3501.2.90 -r1.3501.2.91 CHANGES
  --- rpm/CHANGES       1 Apr 2011 07:30:28 -0000       1.3501.2.90
  +++ rpm/CHANGES       1 Apr 2011 09:52:56 -0000       1.3501.2.91
  @@ -1,4 +1,5 @@
   5.4.0 -> 5.4.1:
  +    - proyvind: mandriva: filter overlapping depencies.
       - proyvind: rubygems.rb: add/provide ruby(abi) dependencies for non-gems.
       - proyvind: rpmfc: add classifiers for gstreamer plugins & dep generator.
       - proyvind: use pythoneggs.py for python deps generated by internal 
generator.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/reqprov.c
  ============================================================================
  $ cvs diff -u -r1.91.2.3 -r1.91.2.4 reqprov.c
  --- rpm/build/reqprov.c       16 Mar 2011 15:24:06 -0000      1.91.2.3
  +++ rpm/build/reqprov.c       1 Apr 2011 09:52:57 -0000       1.91.2.4
  @@ -103,9 +103,49 @@
            len--;
            if (strcmp(names[len], N))
                continue;
  +
  +#if defined(RPM_VENDOR_MANDRIVA) /* filter-overlapping-dependencies */
  +         /* XXX: Potential drawbacks? Need to study & discuess this one a
  +          * bit further, leaving under #ifdef for now...
  +          * TODO: auto-generated deps too
  +          */
  +         if (flagtag && versions != NULL) {
  +             int overlap;
  +
  +             if(*EVR && !*versions[len]) {
  +                 overlap = 1;
  +                 flags[len] = Flags;
  +                 he->tag = flagtag;
  +                 he->t = RPM_UINT32_TYPE;
  +                 he->p.argv = (void *) &Flags;
  +                 xx = headerMod(h, he, 0);
  +             } else {
  +                 EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0),
  +                       rEVR = rpmEVRnew(RPMSENSE_ANY, 0);
  +
  +                 rpmEVRparse(EVR, lEVR);
  +                 rpmEVRparse(versions[len], rEVR);
  +                 lEVR->Flags = Flags | RPMSENSE_EQUAL;
  +                 rEVR->Flags = flags[len] | RPMSENSE_EQUAL;
  +                 overlap = rpmEVRoverlap(lEVR, rEVR);
  +                 lEVR = rpmEVRfree(lEVR);
  +                 rEVR = rpmEVRfree(rEVR);
  +             }
  +             if (overlap) {
  +                 versions[len] = EVR;
  +                 he->tag = versiontag;
  +                 he->t = RPM_STRING_ARRAY_TYPE;
  +                 he->p.argv = versions;
  +                 xx = headerMod(h, he, 0);
  +             } else
  +                 continue;
  +         }
  +#else
            if (flagtag && versions != NULL &&
                (strcmp(versions[len], EVR) || (rpmsenseFlags)flags[len] != 
Flags))
                continue;
  +#endif
  +
            if (indextag && indexes != NULL && indexes[len] != index)
                continue;
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to