From 663ea07c089f74356e01fde32aaacc3138f3049b Mon Sep 17 00:00:00 2001 From: Daniel Mach Date: Oct 27 2013 19:44:08 +0000 Subject: Remove packages which are in lookaside repos from regular repos. This makes depsolving more deterministic and keeps resolved package set minimal. --- diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py index 3cfab77..7625ffb 100644 --- a/src/pypungi/__init__.py +++ b/src/pypungi/__init__.py @@ -619,7 +619,19 @@ class Pungi(pypungi.PungiBase): excludeGroups = [] # A list of groups for removal defined in the ks file # precompute pkgs and pkg_refs to speed things up - self.all_pkgs = self.ayum.pkgSack.returnPackages() + self.all_pkgs = list(set(self.ayum.pkgSack.returnPackages())) + self.all_pkgs = self.excludePackages(self.all_pkgs) + + + lookaside_nvrs = set() + for po in self.all_pkgs: + if po.repoid in self.lookaside_repos: + lookaside_nvrs.add(po.nvra) + for po in self.all_pkgs[:]: + if po.repoid not in self.lookaside_repos and po.nvra in lookaside_nvrs: + self.logger.debug("Removed %s (repo: %s), because it's also in a lookaside repo" % (po, po.repoid)) + self.all_pkgs.remove(po) + self.pkg_refs = yum.packages.buildPkgRefDict(self.all_pkgs, casematch=True) self.get_langpacks()