Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(643)

Side by Side Diff: pym/_emerge/Binpkg.py

Issue 6713043: Merge packages asynchronously in Portage. (Closed)
Patch Set: Don't set _task_queues.merge.max_jobs Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pym/_emerge/EbuildBuild.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 1999-2011 Gentoo Foundation 1 # Copyright 1999-2011 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2 2 # Distributed under the terms of the GNU General Public License v2
3 3
4 from _emerge.EbuildPhase import EbuildPhase 4 from _emerge.EbuildPhase import EbuildPhase
5 from _emerge.BinpkgFetcher import BinpkgFetcher 5 from _emerge.BinpkgFetcher import BinpkgFetcher
6 from _emerge.BinpkgEnvExtractor import BinpkgEnvExtractor 6 from _emerge.BinpkgEnvExtractor import BinpkgEnvExtractor
7 from _emerge.BinpkgExtractorAsync import BinpkgExtractorAsync 7 from _emerge.BinpkgExtractorAsync import BinpkgExtractorAsync
8 from _emerge.CompositeTask import CompositeTask 8 from _emerge.CompositeTask import CompositeTask
9 from _emerge.BinpkgVerifier import BinpkgVerifier 9 from _emerge.BinpkgVerifier import BinpkgVerifier
10 from _emerge.EbuildMerge import EbuildMerge 10 from _emerge.EbuildMerge import EbuildMerge
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 self._writemsg_level("!!! Error Extracting '%s'\n" % \ 300 self._writemsg_level("!!! Error Extracting '%s'\n" % \
301 self._pkg_path, noiselevel=-1, level=logging.ERR OR) 301 self._pkg_path, noiselevel=-1, level=logging.ERR OR)
302 self.wait() 302 self.wait()
303 303
304 def _unlock_builddir(self): 304 def _unlock_builddir(self):
305 if self.opts.pretend or self.opts.fetchonly: 305 if self.opts.pretend or self.opts.fetchonly:
306 return 306 return
307 portage.elog.elog_process(self.pkg.cpv, self.settings) 307 portage.elog.elog_process(self.pkg.cpv, self.settings)
308 self._build_dir.unlock() 308 self._build_dir.unlock()
309 309
310 » def install(self): 310 » def install(self, handler):
311 311
312 # This gives bashrc users an opportunity to do various things 312 # This gives bashrc users an opportunity to do various things
313 # such as remove binary packages after they're installed. 313 # such as remove binary packages after they're installed.
314 settings = self.settings 314 settings = self.settings
315 settings["PORTAGE_BINPKG_FILE"] = self._pkg_path 315 settings["PORTAGE_BINPKG_FILE"] = self._pkg_path
316 settings.backup_changes("PORTAGE_BINPKG_FILE") 316 settings.backup_changes("PORTAGE_BINPKG_FILE")
317 317
318 merge = EbuildMerge(find_blockers=self.find_blockers, 318 merge = EbuildMerge(find_blockers=self.find_blockers,
319 ldpath_mtimes=self.ldpath_mtimes, logger=self.logger, 319 ldpath_mtimes=self.ldpath_mtimes, logger=self.logger,
320 pkg=self.pkg, pkg_count=self.pkg_count, 320 pkg=self.pkg, pkg_count=self.pkg_count,
321 pkg_path=self._pkg_path, scheduler=self.scheduler, 321 pkg_path=self._pkg_path, scheduler=self.scheduler,
322 settings=settings, tree=self._tree, world_atom=self.worl d_atom) 322 settings=settings, tree=self._tree, world_atom=self.worl d_atom)
323 task = merge.create_task()
324 task.addExitListener(self._install_exit)
325 self._start_task(task, handler)
323 326
324 » » try: 327 » def _install_exit(self, task):
325 » » » retval = merge.execute() 328 » » self.settings.pop("PORTAGE_BINPKG_FILE", None)
326 » » finally: 329 » » self._unlock_builddir()
327 » » » settings.pop("PORTAGE_BINPKG_FILE", None)
328 » » » self._unlock_builddir()
329 330
330 » » if retval == os.EX_OK and \ 331 » » if self._default_final_exit(task) != os.EX_OK:
331 » » » 'binpkg-logs' not in self.settings.features and \ 332 » » » return
333
334 » » if 'binpkg-logs' not in self.settings.features and \
332 self.settings.get("PORTAGE_LOG_FILE"): 335 self.settings.get("PORTAGE_LOG_FILE"):
333 try: 336 try:
334 os.unlink(self.settings["PORTAGE_LOG_FILE"]) 337 os.unlink(self.settings["PORTAGE_LOG_FILE"])
335 except OSError: 338 except OSError:
336 pass 339 pass
337 return retval
338
OLDNEW
« no previous file with comments | « no previous file | pym/_emerge/EbuildBuild.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698