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:53:29 Branch: rpm-5_3 Handle: 2011040109532801 Modified files: (Branch: rpm-5_3) 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.3296.2.194+1 -0 rpm/CHANGES 1.90.4.5 +40 -0 rpm/build/reqprov.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3296.2.193 -r1.3296.2.194 CHANGES --- rpm/CHANGES 1 Apr 2011 07:31:18 -0000 1.3296.2.193 +++ rpm/CHANGES 1 Apr 2011 09:53:28 -0000 1.3296.2.194 @@ -1,4 +1,5 @@ 5.3.9 -> 5.3.10 + - 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.90.4.4 -r1.90.4.5 reqprov.c --- rpm/build/reqprov.c 16 Mar 2011 15:24:17 -0000 1.90.4.4 +++ rpm/build/reqprov.c 1 Apr 2011 09:53:29 -0000 1.90.4.5 @@ -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