From 96ab3f8e703138bbbda0c50bb05998281207a4d4 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 20 Jun 2011 20:27:38 -0700 Subject: config: fix repo KeyErrors --- pym/portage/package/ebuild/_config/UseManager.py | 18 ++++++++++++++++-- pym/portage/package/ebuild/config.py | 10 ++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/pym/portage/package/ebuild/_config/UseManager.py b/pym/portage/package/ebuild/_config/UseManager.py index 67e92944e..d7ef0f6b0 100644 --- a/pym/portage/package/ebuild/_config/UseManager.py +++ b/pym/portage/package/ebuild/_config/UseManager.py @@ -147,7 +147,14 @@ class UseManager(object): cp = cpv_getkey(remove_slot(pkg)) usemask = [] if hasattr(pkg, "repo") and pkg.repo != Package.UNKNOWN_REPO: - for repo in [repo.name for repo in self.repositories[pkg.repo].masters] + [pkg.repo]: + repos = [] + try: + repos.extend(repo.name for repo in + self.repositories[pkg.repo].masters) + except KeyError: + pass + repos.append(pkg.repo) + for repo in repos: usemask.append(self._repo_usemask_dict.get(repo, {})) cpdict = self._repo_pusemask_dict.get(repo, {}).get(cp) if cpdict: @@ -174,7 +181,14 @@ class UseManager(object): cp = cpv_getkey(remove_slot(pkg)) useforce = [] if hasattr(pkg, "repo") and pkg.repo != Package.UNKNOWN_REPO: - for repo in [repo.name for repo in self.repositories[pkg.repo].masters] + [pkg.repo]: + repos = [] + try: + repos.extend(repo.name for repo in + self.repositories[pkg.repo].masters) + except KeyError: + pass + repos.append(pkg.repo) + for repo in repos: useforce.append(self._repo_useforce_dict.get(repo, {})) cpdict = self._repo_puseforce_dict.get(repo, {}).get(cp) if cpdict: diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index 6b7af51e9..c8ea1c86e 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -1127,8 +1127,14 @@ class config(object): repo_env = [] repo_env_empty = True if repository and repository != Package.UNKNOWN_REPO: - for repo in [repo.name for - repo in self.repositories[repository].masters] + [repository]: + repos = [] + try: + repos.extend(repo.name for repo in + self.repositories[repository].masters) + except KeyError: + pass + repos.append(repository) + for repo in repos: d = self._repo_make_defaults.get(repo) if d is None: d = {} -- cgit v1.2.3-1-g7c22