Ticket #176: repoclosure-obsoletes.diff
| File repoclosure-obsoletes.diff, 2.1 kB (added by mschwendt, 3 years ago) |
|---|
-
repoclosure
old new 29 29 from yum.misc import getCacheDir 30 30 from optparse import OptionParser 31 31 import rpmUtils.arch 32 import rpmUtils.updates 32 33 from yum.constants import * 33 34 from yum.packageSack import ListPackageSack 34 35 … … 119 120 120 121 mypkgSack = ListPackageSack(pkgs) 121 122 pkgtuplist = mypkgSack.simplePkgList() 123 124 self.up = rpmUtils.updates.Updates([],pkgtuplist) 125 self.up.rawobsoletes = mypkgSack.returnObsoletes() 122 126 123 127 if self.builddeps: 124 128 pkgs = filter(lambda x: x.arch == 'src', pkgs) … … 127 131 pkgs = filter(lambda x: x.name == self.pkgonly[0], pkgs) 128 132 129 133 for pkg in pkgs: 134 if newest: 135 thispkgobsdict = self.up.checkForObsolete([pkg.pkgtup]) 136 if thispkgobsdict.has_key(pkg.pkgtup): 137 continue 138 130 139 for (req, flags, (reqe, reqv, reqr)) in pkg.returnPrco('requires'): 131 140 if req.startswith('rpmlib'): continue # ignore rpmlib deps 132 141 … … 147 156 if newest: 148 157 resolved_by_newest = False 149 158 for po in resolve_sack:# look through and make sure all our answers are newest-only 159 # 2nd stage handling of obsoletes. If provider is 160 # obsolete, check that a pkg which obsoletes it, 161 # is a provider and newest. 162 thispkgobsdict = self.up.checkForObsolete([po.pkgtup]) 163 if thispkgobsdict.has_key(po.pkgtup): 164 for pkgtup in thispkgobsdict[po.pkgtup]: 165 if pkgtup in pkgtuplist and pkgtup in resolve_sack.simplePkgList(): 166 resolved_by_newest = True 167 break 168 continue # Obsoletes without Provides 169 150 170 if po.pkgtup in pkgtuplist: 151 171 resolved_by_newest = True 152 172 break

