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 14:27:47
  Branch: rpm-5_4                          Handle: 2011040112274700

  Modified files:           (Branch: rpm-5_4)
    rpm/lib                 rpmfc.c

  Log:
    filter overlapping auto generated dependencies as well under mandriva
    #ifdef

  Summary:
    Revision    Changes     Path
    1.75.2.4    +26 -0      rpm/lib/rpmfc.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmfc.c
  ============================================================================
  $ cvs diff -u -r1.75.2.3 -r1.75.2.4 rpmfc.c
  --- rpm/lib/rpmfc.c   1 Apr 2011 05:16:21 -0000       1.75.2.3
  +++ rpm/lib/rpmfc.c   1 Apr 2011 12:27:47 -0000       1.75.2.4
  @@ -513,6 +513,32 @@
   
            ds = rpmdsSingle(tagN, N, EVR, Flags);
   
  +#if defined(RPM_VENDOR_MANDRIVA) /* filter-overlapping-dependencies */
  +         int overlap = 0;
  +         if (*depsp) {
  +             int ix = rpmdsSearch(*depsp, ds);
  +             if (ix >= 0) {
  +                 EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0),
  +                       rEVR = rpmEVRnew(RPMSENSE_ANY, 0);
  +
  +                 rpmdsSetIx(*depsp, ix);
  +
  +                 rpmEVRparse(rpmdsEVR(*depsp), lEVR);
  +                 rpmEVRparse(EVR, rEVR);
  +                 lEVR->Flags = rpmdsFlags(*depsp) | RPMSENSE_EQUAL;
  +                 rEVR->Flags = Flags | RPMSENSE_EQUAL;
  +
  +                 if (rpmEVRcompare(lEVR, rEVR) < 0) {
  +                     (*depsp)->EVR[(*depsp)->i] = EVR;
  +                     (*depsp)->Flags[(*depsp)->i] = Flags;
  +                     overlap = 1;
  +                 }
  +                 lEVR = rpmEVRfree(lEVR);
  +                 rEVR = rpmEVRfree(rEVR);
  +             }
  +         }
  +         if (!overlap)
  +#endif
            /* Add to package dependencies. */
            xx = rpmdsMerge(depsp, ds);
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to