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