Ticket #296: yum-3.2.x-sourcerpm_installed_check.patch

File yum-3.2.x-sourcerpm_installed_check.patch, 1.7 kB (added by derks, 2 years ago)

Add points if po.sourcerpm is already installed (compare_providers)

  • depsolve.py

    old new  
    7979 
    8080        self.installedFileRequires = None 
    8181        self.installedUnresolvedFileRequires = None 
     82        self.installedSourceRPMS = [] 
    8283 
    8384    def doTsSetup(self): 
    8485        warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'), 
     
    10101011                return False 
    10111012            return x.sourcerpm == y.sourcerpm 
    10121013 
     1014        def _sourcerpm_installed(x): 
     1015            if not hasattr(x, 'sourcerpm'): 
     1016                return False 
     1017            return x.sourcerpm in self.installedSourceRPMS  
     1018 
    10131019        def _compare_arch_distance(x, y, req_compare_arch): 
    10141020            # take X and Y package objects 
    10151021            # determine which has a closer archdistance to compare_arch 
     
    10371043        pkgresults = {} 
    10381044        ipkgresults = {} 
    10391045 
     1046        # for _sourcerpm_installed() comparison.       
     1047        for installed_po in self.rpmdb.returnPackages(): 
     1048            if installed_po.sourcerpm not in self.installedSourceRPMS: 
     1049                self.installedSourceRPMS.append(installed_po.sourcerpm) 
     1050 
    10401051        for pkg in pkgs: 
    10411052            pkgresults[pkg] = 0 
    10421053            if self.rpmdb.contains(pkg.name): 
     
    11131124                self.verbose_logger.log(logginglevels.DEBUG_4, 
    11141125                    _('common sourcerpm %s and %s' % (po, reqpo))) 
    11151126                pkgresults[po] += 20 
     1127            if _sourcerpm_installed(po): 
     1128                self.verbose_logger.log(logginglevels.DEBUG_4, 
     1129                    _('sourcerpm is installed %s' % po)) 
     1130                pkgresults[po] += 20 
    11161131            if reqpo: 
    11171132                cpl = _common_prefix_len(po.name, reqpo.name) 
    11181133                if cpl > 2: