From b7e747903d9a777d2487878200ce84175dafe837 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Wed, 13 Mar 2013 01:21:10 +0100 Subject: Plugins/Packages/Portage: use keywords/use config everywhere --- src/lib/Bcfg2/Server/Plugins/Packages/Portage.py | 47 ++++++++++++------------ 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py b/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py index 02bcfa5a2..8629699ca 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Portage.py @@ -62,28 +62,6 @@ class PortageCollection(Collection): if not self.portage: _import_portage(self) - # get global use flags - self.portage.settings.unlock() - self.portage.settings['USE'] = '' - if 'gentoo-use-flags' in self.metadata.Probes: - self.portage.settings['USE'] = \ - self.metadata.Probes['gentoo-use-flags'] - - # add package flags (accept_keywords, use) - if hasattr(self.metadata, 'PkgVars'): - for k in self.metadata.PkgVars['keywords']: - keyword = metadata.PkgVars['keywords'][k] - self.portage.settings._keywords_manager.pkeywordsdict[k] = \ - {k: tuple(keyword)} - - - for u in self.metadata.PkgVars['use']: - use = metadata.PkgVars['use'][u] - self.portage.settings._use_manager._pusedict[u] = \ - {u: tuple(use)} - - self.portage.settings.lock() - # calculate deps setconfig = self.portage._sets.load_default_config( self.portage.settings, @@ -126,7 +104,6 @@ class PortageCollection(Collection): try: name = entry.get('name') - # TODO: handle package specific accept keywords pkgs = self.porttree.dep_bestmatch(name) except self.portage.exception.AmbiguousPackageName as e: self.logger.error("Packages: AmbiguousPackageName: %s" % e) @@ -192,10 +169,34 @@ class PortageCollection(Collection): portage.db[portage.root]['vartree'].settings = portage.settings portage.db[portage.root]['vartree'].dbapi.settings = portage.settings + def _set_portage_config(self): + # get global use flags + self.portage.settings.unlock() + self.portage.settings['USE'] = '' + if 'gentoo-use-flags' in self.metadata.Probes: + self.portage.settings['USE'] = \ + self.metadata.Probes['gentoo-use-flags'] + + # add package flags (accept_keywords, use) + if hasattr(self.metadata, 'PkgVars'): + for k in self.metadata.PkgVars['keywords']: + keyword = metadata.PkgVars['keywords'][k] + self.portage.settings._keywords_manager.pkeywordsdict[k] = \ + {k: tuple(keyword)} + + + for u in self.metadata.PkgVars['use']: + use = metadata.PkgVars['use'][u] + self.portage.settings._use_manager._pusedict[u] = \ + {u: tuple(use)} + + self.portage.settings.lock() + def _import_portage(self, portage, emerge, porttree): self.portage = portage self.emerge = emerge self.porttree = porttree + self._set_portage_config() for s in self.sources: if isinstance(s, PortageSource): -- cgit v1.2.3-1-g7c22