diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-03-13 01:21:10 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-07-03 11:58:43 +0200 |
commit | ea3badecd90ff1156d4b86c14728bcf55e85a5c8 (patch) | |
tree | caf49d0de46357ff42028d1c6ea257880d79a9bf | |
parent | 4a696d8ca947dd37af35c8d67faac6ea583c07c1 (diff) | |
download | bcfg2-ea3badecd90ff1156d4b86c14728bcf55e85a5c8.tar.gz bcfg2-ea3badecd90ff1156d4b86c14728bcf55e85a5c8.tar.bz2 bcfg2-ea3badecd90ff1156d4b86c14728bcf55e85a5c8.zip |
Plugins/Packages/Portage: use keywords/use config everywhere
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/Portage.py | 47 |
1 files 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): |