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)
__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):
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:
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:
d2 = pkgindex.packages[i]
if d2["CPV"] != cpv:
continue
- if d2.get("PATH") == d.get("PATH"):
+ if d2.get("PATH", "") == d.get("PATH", ""):
del pkgindex.packages[i]
pkgindex.packages.append(d)
self._update_pkgindex_header(pkgindex.header)