summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi/_MergeProcess.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-03-25 20:24:10 -0700
committerZac Medico <zmedico@gentoo.org>2011-03-25 20:24:10 -0700
commit86250c61c7e3fd227e9e2ccbb48358b1c80114d1 (patch)
treec82c613b2711009dda06b4b27f84a0a2d4db3dae /pym/portage/dbapi/_MergeProcess.py
parent1d73babb0e5c1eb735cd8ac16e4950f4d96f3b18 (diff)
downloadportage-86250c61c7e3fd227e9e2ccbb48358b1c80114d1.tar.gz
portage-86250c61c7e3fd227e9e2ccbb48358b1c80114d1.tar.bz2
portage-86250c61c7e3fd227e9e2ccbb48358b1c80114d1.zip
MergeProcess: call elog_process for replaced pkgs
Diffstat (limited to 'pym/portage/dbapi/_MergeProcess.py')
-rw-r--r--pym/portage/dbapi/_MergeProcess.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/pym/portage/dbapi/_MergeProcess.py b/pym/portage/dbapi/_MergeProcess.py
index 809af373c..10d8873ec 100644
--- a/pym/portage/dbapi/_MergeProcess.py
+++ b/pym/portage/dbapi/_MergeProcess.py
@@ -21,7 +21,7 @@ class MergeProcess(SpawnProcess):
__slots__ = ('dblink', 'mycat', 'mypkg', 'settings', 'treetype',
'vartree', 'scheduler', 'blockers', 'pkgloc', 'infloc', 'myebuild',
'mydbapi', 'prev_mtimes', '_elog_reader_fd', '_elog_reg_id',
- '_buf')
+ '_buf', '_elog_keys')
def _elog_output_handler(self, fd, event):
output = None
@@ -41,6 +41,7 @@ class MergeProcess(SpawnProcess):
out = StringIO()
for line in lines:
funcname, phase, key, msg = line.split(' ', 3)
+ self._elog_keys.add(key)
reporter = getattr(portage.elog.messages, funcname)
reporter(msg, phase=phase, key=key, out=out)
@@ -67,6 +68,7 @@ class MergeProcess(SpawnProcess):
os.close(elog_writer_fd)
self._elog_reader_fd = elog_reader_fd
self._buf = ""
+ self._elog_keys = set()
self.vartree.dbapi._pkgs_changed = True
portage.process.spawned_pids.append(pid)
return [pid]
@@ -124,5 +126,10 @@ class MergeProcess(SpawnProcess):
if self._elog_reader_fd:
os.close(self._elog_reader_fd)
self._elog_reader_fd = None
+ if self._elog_keys is not None:
+ for key in self._elog_keys:
+ portage.elog.elog_process(key, self.settings,
+ phasefilter=("prerm", "postrm"))
+ self._elog_keys = None
super(MergeProcess, self)._unregister()