On Wed, 2010-11-10 at 18:29 -0500, James Antill wrote: > --- > yum/depsolve.py | 5 ++++- > yum/rpmsack.py | 5 +++++ > 2 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/yum/depsolve.py b/yum/depsolve.py > index b0d1e80..f273cff 100644 > --- a/yum/depsolve.py > +++ b/yum/depsolve.py > @@ -1103,8 +1103,11 @@ class Depsolve(object): > for po in self.rpmdb.returnConflictPackages(): > if self.tsInfo.getMembersWithState(po.pkgtup, > output_states=TS_REMOVE_STATES): > continue > + conflicts = po.returnPrco('conflicts') > + if not conflicts: # We broke this due to dbMatch() usage. > + continue > cpkgs.append(po) > - for conflict in po.returnPrco('conflicts'): > + for conflict in conflicts: > (r, f, v) = conflict > for conflicting_po in self.tsInfo.getNewProvides(r, f, v): > if conflicting_po.pkgtup[0] == po.pkgtup[0] and > conflicting_po.pkgtup[2:] == po.pkgtup[2:]: > diff --git a/yum/rpmsack.py b/yum/rpmsack.py > index e227729..2302cf6 100644 > --- a/yum/rpmsack.py > +++ b/yum/rpmsack.py > @@ -40,6 +40,7 @@ import yum.depsolve > class RPMInstalledPackage(YumInstalledPackage): > > def __init__(self, rpmhdr, index, rpmdb): > + self._has_hdr = True > YumInstalledPackage.__init__(self, rpmhdr, yumdb=rpmdb.yumdb) > # NOTE: We keep summary/description/url because it doesn't add much > # and "yum search" uses them all. > @@ -638,6 +639,10 @@ class RPMDBPackageSack(PackageSackBase): > if hdr['name'] == 'gpg-pubkey': # Just in case... > continue > > + if not hdr[rpm.RPMTAG_CONFLICTNAME]: > + # Pre. rpm-4.9.x the above dbMatch() does nothing. > + continue > + > po = self._makePackageObject(hdr, mi.instance()) > result[po.pkgid] = po > if po._has_hdr:
ACK - but can I tell you how much I'm not in love with special cases for various versions of things? not your fault but <sigh> -sv _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel