From 0cd6bf58f3a5ef752582f0cf1c2f9b9efb4441a8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 13 Jul 2008 07:30:43 +0000 Subject: Fix broken binpkg path comparison in in binarytree.inject() so that duplicate entries are correctly from the Packages index. svn path=/main/trunk/; revision=11034 --- pym/_emerge/__init__.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'pym/_emerge/__init__.py') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index ac2d63b28..d8c5347f3 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -2760,6 +2760,8 @@ class EbuildBinpkg(EbuildPhase): pkg = self.pkg bintree = pkg.root_config.trees["bintree"] binpkg_tmpfile = self._binpkg_tmpfile + writemsg("EbuildBinpkg returncode %s binpkg_tmpfile '%s'\n" % \ + (self.returncode, binpkg_tmpfile)) if self.returncode == os.EX_OK: bintree.inject(pkg.cpv, filename=binpkg_tmpfile) @@ -3361,7 +3363,23 @@ class PackageMerge(AsynchronousTask): __slots__ = ("merge",) def _start(self): - self.returncode = self.merge.merge() + + log_path = self.merge.settings.get("PORTAGE_LOG_FILE") + log_file = None + + orig_stdout = sys.stdout + + if self.background and log_path is not None: + log_file = open(log_path, 'a') + sys.stdout = log_file + + try: + self.returncode = self.merge.merge() + finally: + if log_file is not None: + sys.stdout = orig_stdout + log_file.close() + self.wait() class DependencyArg(object): @@ -8790,7 +8808,7 @@ class Scheduler(PollScheduler): def _build_exit(self, build): if build.returncode == os.EX_OK: self.curval += 1 - merge = PackageMerge(merge=build) + merge = PackageMerge(background=build.background, merge=build) merge.addExitListener(self._merge_exit) self._task_queues.merge.add(merge) else: @@ -8926,7 +8944,7 @@ class Scheduler(PollScheduler): task = self._task(pkg, background) if pkg.installed: - merge = PackageMerge(merge=task) + merge = PackageMerge(background=background, merge=task) merge.addExitListener(self._merge_exit) task_queues.merge.add(merge) elif pkg.built: -- cgit v1.2.3-1-g7c22